createSubAccount

Prev Next

이 가이드는 API 명세를 기반으로 자동 생성했습니다.

Classic/VPC 환경에서 이용 가능합니다.

Ncloud API 표준 규격을 적용한 API입니다.

인증된 계정 하위에 새 서브 계정을 생성하고, 생성된 서브 계정을 반환. 비밀번호는 자동 생성한 경우에만 응답에 포함되며, 비밀번호 재설정 및 MFA 요구 사항은 도메인 정책에 따라 적용됩니다.

요청

요청 형식을 설명합니다. 요청 형식은 다음과 같습니다.

메서드 URI
POST /sub-accounts

요청 헤더

Sub Account API에서 공통으로 사용하는 헤더에 대한 정보는 Sub Account 요청 헤더를 참조해 주십시오.

요청 바디

요청 바디에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
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<String> 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> Optional Access Key 접근을 허용할 소스 목록. apiAllowSourceEnabled가 true이면 필수입니다 — 생략하면 허용 소스가 없어 API 접근이 차단되므로 요청을 거부. apiAllowSourceEnabled가 false이면 제한을 사용하지 않으므로 생략 가능
memo String Optional 서브 계정에 대한 메모
  • 길이: 0 ~ 300
  • <예시> 서브 계정 메모입니다
tags Map<String> 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<String> - 콘솔 접근을 허용한 IP 대역 목록
  • <예시> ["10.0.0.0/8"]
apiAllowSourceEnabled Boolean - 액세스 키 접근 소스 제한 사용 여부
  • true | false
    • true: apiAllowSources에 지정한 소스에서만 액세스 키로 API 접근 가능
    • false: 접근 소스를 제한하지 않음
  • <예시> false
apiAllowSources List<AllowSource> - 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> - 서브 계정이 속한 그룹 목록
policies List<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 응답 상태 코드를 참조해 주십시오.

이 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"
}