이 가이드는 API 명세를 기반으로 자동 생성했습니다.
Classic/VPC 환경에서 이용 가능합니다.
Ncloud API 표준 규격을 적용한 API입니다.
인증된 계정 하위에 새 서브 계정을 생성하고, 생성된 서브 계정을 반환. 비밀번호는 자동 생성한 경우에만 응답에 포함되며, 비밀번호 재설정 및 MFA 요구 사항은 도메인 정책에 따라 적용됩니다.
요청
요청 형식을 설명합니다. 요청 형식은 다음과 같습니다.
| 메서드 | URI |
|---|---|
| POST | /sub-accounts |
요청 헤더
Sub Account API에서 공통으로 사용하는 헤더에 대한 정보는 Sub Account 요청 헤더를 참조해 주십시오.
요청 바디
요청 바디에 대한 설명은 다음과 같습니다.
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
loginId |
String | Required | 서브 계정이 로그인할 때 사용하는 아이디. 계정 내에서 고유 필요
|
name |
String | Required | 서브 계정의 표시 이름. 콘솔과 목록 조회에서 서브 계정을 식별하는 데 사용. 앞뒤 공백은 제거하여 저장하며, 길이는 제거한 값으로 판정
|
email |
String (email) | Optional | 서브 계정의 이메일 주소
|
password |
String | Optional | 서브 계정의 초기 비밀번호. passwordGenerationRequired가 false이거나 생략된 경우 필수로 입력하며, true인 경우 입력한 값은 사용되지 않고 자동 생성된 비밀번호가 응답으로 반환
|
passwordGenerationRequired |
Boolean | Optional | 비밀번호 자동 생성 필요 여부
|
apiGatewayAccessible |
Boolean | Required | API Gateway 접근 허용 여부
|
consoleAccessible |
Boolean | Required | 콘솔 접근 허용 여부
|
consolePermitIpEnabled |
Boolean | Optional | 콘솔 접근 IP 대역 제한 사용 여부
|
consolePermitIpAddresses |
List<String> | Optional | 콘솔 접근을 허용할 IP 대역 목록. 각 항목은 IPv4·IPv6 주소 또는 CIDR 대역 형식으로 입력. consolePermitIpEnabled가 true이면 필수입니다 — 생략하면 허용 IP가 없어 콘솔 접근이 차단되므로 요청을 거부. consolePermitIpEnabled가 false이면 제한을 사용하지 않으므로 생략 가능
|
apiAllowSourceEnabled |
Boolean | Optional | 액세스 키 접근 소스 제한 사용 여부
|
apiAllowSources |
List<AllowSource> | Optional | Access Key 접근을 허용할 소스 목록. apiAllowSourceEnabled가 true이면 필수입니다 — 생략하면 허용 소스가 없어 API 접근이 차단되므로 요청을 거부. apiAllowSourceEnabled가 false이면 제한을 사용하지 않으므로 생략 가능 |
memo |
String | Optional | 서브 계정에 대한 메모
|
tags |
Map<String> | Optional | 리소스에 부여할 태그의 키-값 맵
|
tags.<키> |
String | - | 태그의 값
|
AllowSource
접근을 허용할 소스 정보
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
type |
String | Required | 허용 소스의 유형
|
source |
String | Required | type에 따른 허용 소스 값. IP 유형은 IP 주소 또는 CIDR(예: 10.0.0.0/8), VPC 유형은 VPC 번호, VPC_SERVER 유형은 서버 인스턴스 번호를 지정
|
요청 예시
요청 예시는 다음과 같습니다.
curl --location --request POST 'https://subaccount.apigw.gov-ntruss.com/api/v2/sub-accounts' \
--header 'x-ncp-apigw-timestamp: {Timestamp}' \
--header 'x-ncp-iam-access-key: {Access Key}' \
--header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \
--header 'Content-Type: application/json' \
--data '{
"loginId": "myloginid01",
"name": "홍길동",
"apiGatewayAccessible": false,
"consoleAccessible": true
}'
응답
응답 형식을 설명합니다.
응답 바디
응답 바디에 대한 설명은 다음과 같습니다.
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
subAccountId |
String (uuid) | - | 서브 계정의 식별자
|
subAccountNo |
Integer (int64) | - | 서브 계정에 부여된 숫자 번호. 식별자(subAccountId)와는 별개의 값이며, 서브 계정 번호를 식별자로 변환하는 API(POST /sub-accounts/resolve-nos)로 상호 변환 가능
|
loginId |
String | - | 서브 계정의 로그인 아이디
|
name |
String | - | 서브 계정의 표시 이름
|
email |
String (email) | - | 서브 계정의 이메일 주소. emailVerified로 점유 인증 여부 확인 가능
|
emailVerified |
Boolean | - | 이메일 점유 인증 완료 여부
|
passwordResetRequired |
Boolean | - | 비밀번호 재설정 필요 여부. 공공 도메인에서는 서브 계정 생성 시 항상 true로 설정
|
apiGatewayAccessible |
Boolean | - | API Gateway 접근 허용 여부
|
consoleAccessible |
Boolean | - | 콘솔 접근 허용 여부
|
consolePermitIpEnabled |
Boolean | - | 콘솔 접근 IP 대역 제한 사용 여부
|
consolePermitIpAddresses |
List<String> | - | 콘솔 접근을 허용한 IP 대역 목록
|
apiAllowSourceEnabled |
Boolean | - | 액세스 키 접근 소스 제한 사용 여부
|
apiAllowSources |
List<AllowSource> | - | Access Key 접근이 허용된 소스 목록 |
lastLoginDateTime |
String (date-time) | - | 서브 계정이 마지막으로 로그인한 일시
|
createdDateTime |
String (date-time) | - | 서브 계정이 생성된 일시
|
memo |
String | - | 서브 계정에 대한 메모
|
active |
Boolean | - | 서브 계정 활성화 상태
|
updatedDateTime |
String (date-time) | - | 서브 계정이 마지막으로 수정된 일시
|
groups |
List<GroupSummary> | - | 서브 계정이 속한 그룹 목록 |
policies |
List<PolicySummary> | - | 서브 계정에 부여된 정책 목록 |
nrn |
String | - | 서브 계정의 NRN(Ncloud Resource Name)
|
generatedPassword |
String | - | 자동 생성된 비밀번호. passwordGenerationRequired=true로 생성한 경우에만 반환되며, 입력한 비밀번호로 생성한 경우에는 응답에 포함되지 않음. 이 응답에서만 확인 가능
|
AllowSource
접근을 허용할 소스 정보
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
type |
String | - | 허용 소스의 유형
|
source |
String | - | type에 따른 허용 소스 값. IP 유형은 IP 주소 또는 CIDR(예: 10.0.0.0/8), VPC 유형은 VPC 번호, VPC_SERVER 유형은 서버 인스턴스 번호를 지정
|
GroupSummary
그룹 요약 정보. 서브 계정 응답의 소속 그룹 목록에 사용
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
groupId |
String (uuid) | - | 그룹의 식별자
|
groupName |
String | - | 그룹의 이름
|
nrn |
String | - | 그룹의 NRN(Ncloud Resource Name)
|
PolicySummary
정책 요약 정보. 서브 계정·그룹·역할 응답의 연결된 정책 목록에 사용
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
policyId |
String (uuid) | - | 정책의 식별자
|
policyName |
String | - | 정책의 이름
|
policyType |
String | - | 정책 유형
|
description |
String | - | 정책에 대한 설명
|
nrn |
String | - | 정책의 NRN(Ncloud Resource Name)
|
응답 상태 코드
Sub Account API에서 공통으로 사용하는 응답 상태 코드에 대한 정보는 Sub Account 응답 상태 코드를 참조해 주십시오.
이 API에만 해당하는 응답 상태 코드는 다음과 같습니다.
| HTTP 상태 코드 | 코드 | 메시지 | 설명 |
|---|---|---|---|
| 201 | - | - | 생성된 서브 계정을 반환. 비밀번호를 자동 생성한 경우에만 generatedPassword가 포함 |
| 400 | BadRequest | The request is malformed or contains an error such as an invalid parameter value or a missing required parameter. | 유효하지 않은 요청. 필수 필드 누락, 형식 오류 등 입력값 검증 실패 |
| 403 | Forbidden | You do not have sufficient permissions to perform this action. | 요청한 자원(또는 상위 자원)에 대한 접근 권한 없음. 자원의 존재 여부와 무관하게 우선 반환 |
| 409 | AlreadyExists | A resource with the requested identifier already exists. | 이미 같은 값을 사용하는 자원이 존재 |
응답 예시
응답 예시는 다음과 같습니다.
{
"subAccountId": "4e066e50-9c3a-11e7-8a66-1e5021fa7c80",
"subAccountNo": 23229,
"loginId": "myloginid01",
"name": "홍길동",
"email": "user@example.com",
"emailVerified": true,
"passwordResetRequired": true,
"apiGatewayAccessible": false,
"consoleAccessible": true,
"consolePermitIpEnabled": false,
"consolePermitIpAddresses": [
"10.0.0.0/8"
],
"apiAllowSourceEnabled": false,
"apiAllowSources": [
{
"type": "IP",
"source": "10.0.0.0/8"
}
],
"lastLoginDateTime": "2024-01-01T00:00:00Z",
"createdDateTime": "2024-01-01T00:00:00Z",
"memo": "서브 계정 메모입니다",
"active": true,
"updatedDateTime": "2024-01-01T00:00:00Z",
"groups": [
{
"groupId": "4e066e50-9c3a-11e7-8a66-1e5021fa7c80",
"groupName": "my-group",
"nrn": "nrn:GOV:IAM::25000000:Group/4e066e50-9c3a-11e7-8a66-1e5021fa7c80"
}
],
"policies": [
{
"policyId": "4e066e50-9c3a-11e7-8a66-1e5021fa7c80",
"policyName": "my-policy",
"policyType": "USER_CREATED",
"description": "정책 설명입니다",
"nrn": "nrn:GOV:IAM::25000000:Policy/4e066e50-9c3a-11e7-8a66-1e5021fa7c80"
}
],
"nrn": "nrn:GOV:IAM::25000000:SubAccount/4e066e50-9c3a-11e7-8a66-1e5021fa7c80",
"generatedPassword": "P@ssw0rd!23"
}