이 가이드는 API 명세를 기반으로 자동 생성했습니다.
Classic/VPC 환경에서 이용 가능합니다.
Ncloud API 표준 규격을 적용한 API입니다.
역할 ID로 지정한 기존 역할의 설명 등 변경 가능한 속성을 수정하고, 수정된 역할을 반환. 요청 본문은 부분 수정 미디어 타입(application/merge-patch+json)과 일반 JSON을 모두 지원하며, 생략한 필드는 기존 값을 유지합니다. null 허용으로 선언한 필드에 null을 보내면 값을 비우고, 그 외 필드에 null을 보내면 400을 반환합니다.
요청
요청 형식을 설명합니다. 요청 형식은 다음과 같습니다.
| 메서드 | URI |
|---|---|
| PATCH | /roles/{roleId} |
요청 헤더
Sub Account API에서 공통으로 사용하는 헤더에 대한 정보는 Sub Account 요청 헤더를 참조해 주십시오.
요청 경로 파라미터
요청 경로 파라미터에 대한 설명은 다음과 같습니다.
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
roleId |
String (uuid) | Required | 대상 역할의 식별자
|
요청 바디
요청 바디에 대한 설명은 다음과 같습니다.
요청 바디는 application/merge-patch+json, application/json 형식을 지원하며, Content-Type 헤더로 형식을 지정합니다.
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
roleName |
String | Optional | 변경할 역할의 이름
|
roleType |
String | Optional | 역할 유형. 생략하면 기존 값을 유지하며, 기존 값과 다르게 변경 불가. 값은 V1 API와 같은 역할 유형 코드를 그대로 사용
|
description |
String | null | Optional | 역할에 대한 설명. null이면 설명을 비움
|
sessionExpirationSeconds |
Integer (int32) | Optional | 세션 만료 시간(초). 생략하면 기존 값을 유지. 역할 유형(roleType)이 Account가 아닌 역할에서 입력하면 400을 반환
|
요청 예시
요청 예시는 다음과 같습니다.
curl --location --request PATCH 'https://subaccount.apigw.gov-ntruss.com/api/v2/roles/4e066e50-9c3a-11e7-8a66-1e5021fa7c80' \
--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'
응답
응답 형식을 설명합니다.
응답 바디
응답 바디에 대한 설명은 다음과 같습니다.
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
nrn |
String | - | 역할의 NRN(Ncloud Resource Name)
|
roleId |
String (uuid) | - | 역할의 식별자
|
roleName |
String | - | 역할의 이름
|
roleType |
String | - | 역할 유형. 값은 V1 API와 같은 역할 유형 코드를 그대로 사용
|
sessionExpirationSeconds |
Integer (int32) | - | 역할 세션의 만료 시간(초). 역할 유형(roleType)이 Account·SSO인 경우에만 반환
|
description |
String | - | 역할에 대한 설명
|
active |
Boolean | - | 역할 활성화 상태
|
createdDateTime |
String (date-time) | - | 역할이 생성된 일시
|
updatedDateTime |
String (date-time) | - | 역할이 마지막으로 수정된 일시
|
lastUsedDateTime |
String (date-time) | - | 역할이 마지막으로 사용된 일시
|
policies |
List<PolicySummary> | - | 역할에 연결된 정책 목록 |
entities |
List<RoleEntity> | - | 역할에 연결된 엔터티 목록 |
PolicySummary
정책 요약 정보. 서브 계정·그룹·역할 응답의 연결된 정책 목록에 사용
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
policyId |
String (uuid) | - | 정책의 식별자
|
policyName |
String | - | 정책의 이름
|
policyType |
String | - | 정책 유형
|
description |
String | - | 정책에 대한 설명
|
nrn |
String | - | 정책의 NRN(Ncloud Resource Name)
|
RoleEntity
역할을 부여받는 엔터티 정보
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
id |
String | - | 역할을 부여받는 엔터티의 식별자. Server 유형은 서버 인스턴스 번호, Account 유형은 역할 전환을 허용받은 계정의 계정 번호, Service 유형은 서비스 이름을 사용. SSO·NcloudStorage 유형은 각 서비스가 관리하는 식별자
|
type |
String | - | 역할을 부여받는 엔터티의 유형. 값은 V1 API와 같은 역할 유형 코드를 그대로 사용
|
응답 상태 코드
Sub Account API에서 공통으로 사용하는 응답 상태 코드에 대한 정보는 Sub Account 응답 상태 코드를 참조해 주십시오.
이 API에만 해당하는 응답 상태 코드는 다음과 같습니다.
| HTTP 상태 코드 | 코드 | 메시지 | 설명 |
|---|---|---|---|
| 200 | - | - | 수정된 역할을 반환 |
| 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. | 요청한 자원(또는 상위 자원)에 대한 접근 권한 없음. 자원의 존재 여부와 무관하게 우선 반환 |
| 404 | RoleNotFound | The specified role could not be found. | 지정한 역할이 존재하지 않음 |
| 409 | AlreadyExists | A resource with the requested identifier already exists. | 이미 같은 값을 사용하는 자원이 존재 |
응답 예시
응답 예시는 다음과 같습니다.
{
"nrn": "nrn:GOV:IAM::25000000:Role/4e066e50-9c3a-11e7-8a66-1e5021fa7c80",
"roleId": "4e066e50-9c3a-11e7-8a66-1e5021fa7c80",
"roleName": "my-role",
"roleType": "Server",
"sessionExpirationSeconds": 600,
"description": "역할 설명입니다",
"active": true,
"createdDateTime": "2019-08-10T13:21:00Z",
"updatedDateTime": "2019-08-10T13:21:00Z",
"lastUsedDateTime": "2019-08-10T13:21:00Z",
"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"
}
],
"entities": [
{
"id": "12345",
"type": "Server"
}
]
}