--- title: "createSubAccount" slug: "gov-iam-v2-sub-account-createsubaccount" updated: 2026-10-22T10:47:29Z published: 2026-10-22T10:47:29Z canonical: "api-gov.ncloud-docs.com/gov-iam-v2-sub-account-createsubaccount" --- > ## Documentation Index > Fetch the complete documentation index at: https://api-gov.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # createSubAccount 이 가이드는 API 명세를 기반으로 자동 생성했습니다. Classic/VPC 환경에서 이용 가능합니다. Ncloud API 표준 규격을 적용한 API입니다. 인증된 계정 하위에 새 서브 계정을 생성하고, 생성된 서브 계정을 반환. 비밀번호는 자동 생성한 경우에만 응답에 포함되며, 비밀번호 재설정 및 MFA 요구 사항은 도메인 정책에 따라 적용됩니다. ## 요청 요청 형식을 설명합니다. 요청 형식은 다음과 같습니다. | 메서드 | URI | | --- | --- | | POST | /sub-accounts | ### 요청 헤더 Sub Account API에서 공통으로 사용하는 헤더에 대한 정보는 [Sub Account 요청 헤더](/docs/gov-iam-v2-overview#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%94)를 참조해 주십시오. ### 요청 바디 요청 바디에 대한 설명은 다음과 같습니다. | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `loginId` | String | Required | 서브 계정이 로그인할 때 사용하는 아이디. 계정 내에서 고유 필요 - 길이: 3 ~ 60 - <예시> myloginid01 | | `name` | String | Required | 서브 계정의 표시 이름. 콘솔과 목록 조회에서 서브 계정을 식별하는 데 사용. 앞뒤 공백은 제거하여 저장하며, 길이는 제거한 값으로 판정 - 길이: 2 ~ 30 - <예시> 홍길동 | | `email` | String (email) | Optional | 서브 계정의 이메일 주소 - <예시> user@example.com | | `password` | String | Optional | 서브 계정의 초기 비밀번호. passwordGenerationRequired가 false이거나 생략된 경우 필수로 입력하며, true인 경우 입력한 값은 사용되지 않고 자동 생성된 비밀번호가 응답으로 반환 - <예시> P@ssw0rd!23 | | `passwordGenerationRequired` | Boolean | Optional | 비밀번호 자동 생성 필요 여부 - `true` \| `false` - `true`: 난수화된 비밀번호를 자동 생성. 자동 생성된 비밀번호는 생성 완료 시점에 1회만 확인 가능 - `false`: password에 입력한 값을 사용 - 기본값: false - <예시> true | | `apiGatewayAccessible` | Boolean | Required | API Gateway 접근 허용 여부 - `true` \| `false` - `true`: 액세스 키를 생성해 API Gateway에 등록된 API 사용 가능 - `false`: API Gateway에 등록된 API 사용 불가 - <예시> false | | `consoleAccessible` | Boolean | Required | 콘솔 접근 허용 여부 - `true` \| `false` - `true`: 서브 계정의 관리 콘솔 접근 가능 - `false`: 관리 콘솔 접근 불가 - <예시> true | | `consolePermitIpEnabled` | Boolean | Optional | 콘솔 접근 IP 대역 제한 사용 여부 - `true` \| `false` - `true`: consolePermitIpAddresses에 지정한 IP 대역에서만 콘솔 접근 가능 - `false`: IP 대역을 제한하지 않음 - 기본값: false - <예시> false | | `consolePermitIpAddresses` | List | Optional | 콘솔 접근을 허용할 IP 대역 목록. 각 항목은 IPv4·IPv6 주소 또는 CIDR 대역 형식으로 입력. consolePermitIpEnabled가 true이면 필수입니다 — 생략하면 허용 IP가 없어 콘솔 접근이 차단되므로 요청을 거부. consolePermitIpEnabled가 false이면 제한을 사용하지 않으므로 생략 가능 - 항목 수: 0 ~ 100 - <예시> `["10.0.0.0/8"]` | | `apiAllowSourceEnabled` | Boolean | Optional | 액세스 키 접근 소스 제한 사용 여부 - `true` \| `false` - `true`: apiAllowSources에 지정한 소스에서만 액세스 키로 API 접근 가능 - `false`: 접근 소스를 제한하지 않음 - 기본값: false - <예시> false | | `apiAllowSources` | List<[AllowSource](/docs/gov-iam-v2-sub-account-createsubaccount#AllowSource)> | Optional | Access Key 접근을 허용할 소스 목록. apiAllowSourceEnabled가 true이면 필수입니다 — 생략하면 허용 소스가 없어 API 접근이 차단되므로 요청을 거부. apiAllowSourceEnabled가 false이면 제한을 사용하지 않으므로 생략 가능 | | `memo` | String | Optional | 서브 계정에 대한 메모 - 길이: 0 ~ 300 - <예시> 서브 계정 메모입니다 | | `tags` | Map | Optional | 리소스에 부여할 태그의 키-값 맵 - <예시> `{"env": "dev", "team": "a"}` | | `tags.<키>` | String | - | 태그의 값 - 길이: 1 ~ 256 | #### AllowSource 접근을 허용할 소스 정보 | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `type` | String | Required | 허용 소스의 유형 - `IP` \| `VPC` \| `VPC_SERVER` - `IP`: IP 주소 또는 CIDR 대역 단위로 접근을 허용 - `VPC`: VPC 단위로 접근을 허용 - `VPC_SERVER`: VPC 서버 인스턴스 단위로 접근을 허용 - <예시> IP | | `source` | String | Required | type에 따른 허용 소스 값. IP 유형은 IP 주소 또는 CIDR(예: 10.0.0.0/8), VPC 유형은 VPC 번호, VPC_SERVER 유형은 서버 인스턴스 번호를 지정 - <예시> 10.0.0.0/8 | ### 요청 예시 요청 예시는 다음과 같습니다. ``` 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) | - | 서브 계정의 식별자 - <예시> 4e066e50-9c3a-11e7-8a66-1e5021fa7c80 | | `subAccountNo` | Integer (int64) | - | 서브 계정에 부여된 숫자 번호. 식별자(subAccountId)와는 별개의 값이며, 서브 계정 번호를 식별자로 변환하는 API(POST /sub-accounts/resolve-nos)로 상호 변환 가능 - <예시> 23229 | | `loginId` | String | - | 서브 계정의 로그인 아이디 - <예시> myloginid01 | | `name` | String | - | 서브 계정의 표시 이름 - <예시> 홍길동 | | `email` | String (email) | - | 서브 계정의 이메일 주소. emailVerified로 점유 인증 여부 확인 가능 - <예시> user@example.com | | `emailVerified` | Boolean | - | 이메일 점유 인증 완료 여부 - `true` \| `false` - `true`: 이메일 점유 인증 완료 - `false`: 이메일 점유 인증 미완료 - <예시> true | | `passwordResetRequired` | Boolean | - | 비밀번호 재설정 필요 여부. 공공 도메인에서는 서브 계정 생성 시 항상 true로 설정 - `true` \| `false` - `true`: 서브 계정이 로그인할 때 새 비밀번호로 변경하도록 안내 - `false`: 별도로 안내하지 않음 - <예시> true | | `apiGatewayAccessible` | Boolean | - | API Gateway 접근 허용 여부 - `true` \| `false` - `true`: 액세스 키를 생성해 API Gateway에 등록된 API 사용 가능 - `false`: API Gateway에 등록된 API 사용 불가 - <예시> false | | `consoleAccessible` | Boolean | - | 콘솔 접근 허용 여부 - `true` \| `false` - `true`: 서브 계정의 관리 콘솔 접근 가능 - `false`: 관리 콘솔 접근 불가 - <예시> true | | `consolePermitIpEnabled` | Boolean | - | 콘솔 접근 IP 대역 제한 사용 여부 - `true` \| `false` - `true`: consolePermitIpAddresses에 지정한 IP 대역에서만 콘솔 접근 가능 - `false`: IP 대역을 제한하지 않음 - <예시> false | | `consolePermitIpAddresses` | List | - | 콘솔 접근을 허용한 IP 대역 목록 - <예시> `["10.0.0.0/8"]` | | `apiAllowSourceEnabled` | Boolean | - | 액세스 키 접근 소스 제한 사용 여부 - `true` \| `false` - `true`: apiAllowSources에 지정한 소스에서만 액세스 키로 API 접근 가능 - `false`: 접근 소스를 제한하지 않음 - <예시> false | | `apiAllowSources` | List<[AllowSource](/docs/gov-iam-v2-sub-account-createsubaccount#AllowSource2)> | - | Access Key 접근이 허용된 소스 목록 | | `lastLoginDateTime` | String (date-time) | - | 서브 계정이 마지막으로 로그인한 일시 - <예시> 2024-01-01T00:00:00Z | | `createdDateTime` | String (date-time) | - | 서브 계정이 생성된 일시 - <예시> 2024-01-01T00:00:00Z | | `memo` | String | - | 서브 계정에 대한 메모 - <예시> 서브 계정 메모입니다 | | `active` | Boolean | - | 서브 계정 활성화 상태 - `true` \| `false` - `true`: 서브 계정이 활성 상태 - `false`: 서브 계정이 비활성 상태여서 로그인·API 호출 불가 - <예시> true | | `updatedDateTime` | String (date-time) | - | 서브 계정이 마지막으로 수정된 일시 - <예시> 2024-01-01T00:00:00Z | | `groups` | List<[GroupSummary](/docs/gov-iam-v2-sub-account-createsubaccount#GroupSummary)> | - | 서브 계정이 속한 그룹 목록 | | `policies` | List<[PolicySummary](/docs/gov-iam-v2-sub-account-createsubaccount#PolicySummary)> | - | 서브 계정에 부여된 정책 목록 | | `nrn` | String | - | 서브 계정의 NRN(Ncloud Resource Name) - <예시> nrn:GOV:IAM::25000000:SubAccount/4e066e50-9c3a-11e7-8a66-1e5021fa7c80 | | `generatedPassword` | String | - | 자동 생성된 비밀번호. passwordGenerationRequired=true로 생성한 경우에만 반환되며, 입력한 비밀번호로 생성한 경우에는 응답에 포함되지 않음. 이 응답에서만 확인 가능 - <예시> P@ssw0rd!23 | #### AllowSource 접근을 허용할 소스 정보 | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `type` | String | - | 허용 소스의 유형 - `IP` \| `VPC` \| `VPC_SERVER` - `IP`: IP 주소 또는 CIDR 대역 단위로 접근을 허용 - `VPC`: VPC 단위로 접근을 허용 - `VPC_SERVER`: VPC 서버 인스턴스 단위로 접근을 허용 - <예시> IP | | `source` | String | - | type에 따른 허용 소스 값. IP 유형은 IP 주소 또는 CIDR(예: 10.0.0.0/8), VPC 유형은 VPC 번호, VPC_SERVER 유형은 서버 인스턴스 번호를 지정 - <예시> 10.0.0.0/8 | #### GroupSummary 그룹 요약 정보. 서브 계정 응답의 소속 그룹 목록에 사용 | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `groupId` | String (uuid) | - | 그룹의 식별자 - <예시> 4e066e50-9c3a-11e7-8a66-1e5021fa7c80 | | `groupName` | String | - | 그룹의 이름 - <예시> my-group | | `nrn` | String | - | 그룹의 NRN(Ncloud Resource Name) - <예시> nrn:GOV:IAM::25000000:Group/4e066e50-9c3a-11e7-8a66-1e5021fa7c80 | #### PolicySummary 정책 요약 정보. 서브 계정·그룹·역할 응답의 연결된 정책 목록에 사용 | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `policyId` | String (uuid) | - | 정책의 식별자 - <예시> 4e066e50-9c3a-11e7-8a66-1e5021fa7c80 | | `policyName` | String | - | 정책의 이름 - <예시> my-policy | | `policyType` | String | - | 정책 유형 - `SYSTEM_MANAGED` \| `USER_CREATED` - `SYSTEM_MANAGED`: 네이버 클라우드 플랫폼이 제공하는 관리형 정책 - `USER_CREATED`: 사용자가 생성한 정책 - <예시> USER_CREATED | | `description` | String | - | 정책에 대한 설명 - <예시> 정책 설명입니다 | | `nrn` | String | - | 정책의 NRN(Ncloud Resource Name) - <예시> nrn:GOV:IAM::25000000:Policy/4e066e50-9c3a-11e7-8a66-1e5021fa7c80 | ### 응답 상태 코드 Sub Account API에서 공통으로 사용하는 응답 상태 코드에 대한 정보는 [Sub Account 응답 상태 코드](/docs/gov-iam-v2-overview#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C)를 참조해 주십시오. 이 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" } ```