Documentation Index

Fetch the complete documentation index at: https://guide.ncloud-docs.com/llms.txt

Use this file to discover all available pages before exploring further.

Tag 기반 권한 관리

Prev Next

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

네이버 클라우드 플랫폼에서는 Condition 조건 키를 기반으로 리소스에 대한 엑세스 및 액션 수행 요청에 대해 제어할 수 있습니다. 리소스에 대한 엑세스를 제어할 수 있는 Condition 조건 키인 Resource Tag와, 액션 수행 요청을 제어할 수 있는 Condition 조건 키인 Request Tag에 대해 설명합니다.

구분 Resource Tag Request Tag Principal Tag Dynamic Condition
사용 목적 특정 태그가 지정된 리소스에 대해 사용자 작업을 허용/거부하는데 사용 리소스 생성 또는 태그 수정 시, 특정 태그 키-값이 반드시 지정되도록 작업을 허용/거부하는데 사용됨 Action 수행 주체(서브 계정/역할)에 특정 태그가 지정된 경우에 한해 사용자 작업을 허용/거부하는데 사용 정적인 값이 아니라, 요청 시점의 속성을 변수처럼 비교하여, 요청 시점의 컨텍스트에 따라 동적으로 작업을 허용/거부하는데 사용
사용 가능한 액션 리소스 지정이 가능한 액션
  • View/get~List 와 같이 특정 리소스를 지정할 수 없는 액션은 사용 불가
  • 예외적으로 태그 정보가 포함된 리소스 생성액션(Change/create~)은 사용 가능
  • 태그 정보가 포함된 리소스 생성액션(Change/create~)
  • 태그지정액션(Change/tag~, Change/untag~)
모든 액션 조건 키가 사용 가능한 액션에 한함
권한 체크 방식 IAM 정책에 지정된 태그 키-값 쌍을 리소스에 연결된 키-값 쌍과 비교하여 리소스에 대한 액세스 허용 여부 관리 IAM 정책에 지정된 태그 키-값 쌍을 권한 체크 요청에 포함된 태그 키-값 쌍과 비교하여 액션 수행에 대한 허용 여부 관리 IAM 정책에 지정된 태그 키-값 쌍을 Action 수행 주체에 지정된 태그 키-값 쌍과 비교하여 액션 수행에 대한 허용 여부 관리 정책에 정의된 변수 ${조건 키 전체}(예: ${ncp:principalTag/key})를 요청 시점의 실제 값으로 치환한 뒤, 비교 대상 태그 키-값과 일치 여부를 확인하여 허용 여부 관리

Resource Tag 사용을 통한 리소스에 대한 액세스 제어

아래 정책은 ncp:resourceTag 조건 키를 사용하여 특정 태그 [key:value]를 가진 Policy만 삭제 가능하도록 권한을 정의합니다.
subaccount_resourcetag_ko

Request Tag 사용을 통한 액션 수행 요청 제어

아래 정책은 ncp:requestTag 조건 키를 사용하여 특정 태그 [key:value]를 가진 Sub Account만 생성 가능하도록 권한을 정의합니다.
subaccount_requesttag_ko

이 정책을 부여받은 서브계정은 [project:unicorn] 태그를 가진 Sub Account만 생성이 가능합니다. 만약 태그를 지정하지 않은 채 서브계정을 생성하거나, [project:unicorn] 태그가 포함되지않은 이외의 태그를 지정하여 Sub Account를 생성하는 경우, 해당 작업은 거부됩니다. 또한 태그정보가 포함된 리소스 생성 액션의 경우 ncp:requestTag 조건 키를 사용하여도 동일하게 특정 태그 [key:value]를 가진 서브계정만 생성 가능하도록 정의할 수 있습니다.

Principal Tag 사용을 통한 액세스 제어

아래 정책은 ncp:Principal Tag 조건 키를 사용하여 특정 태그 [key:value]를 가진 서브계정 또는 역할만 액션 수행이 가능하도록 권한을 정의합니다.

subaccount_principaltag_ko

이 정책을 부여받은 서브 계정 중, [team:devops] 태그가 지정된 서브 계정만 Policy 생성이 가능합니다. 만약 태그가 지정되지 않은 서브 계정이거나 [team:devops] 이외의 값이 지정된 서브 계정이 Policy 생성을 요청하는 경우, 해당 작업은 거부됩니다.

Dynamic Condition을 활용한 태그 기반 액세스 제어

Dynamic Condition은 정책의 조건 값에 특정 값을 직접 입력하는 대신, 변수를 사용하여 동적으로 참조하도록 정의하는 방식입니다.

정책 변수 ${조건 키 전체}(예: ${ncp:principalTag/key}) 를 조건 값에 사용하면, 권한 체크 시점에 태그 값으로 치환되어 조건키와 비교됩니다.

subaccount_dynamic_ko

이 정책을 부여받은 서브 계정에 [project:unicorn] 태그가 지정되어 있다면, [project:unicorn] 태그가 지정된 Policy만 삭제할 수 있습니다. [project:pegasus] 태그가 지정된 서브 계정은 별도의 정책 수정 없이 [project:pegasus] 태그를 가진 Policy만 삭제할 수 있습니다.

참고
  • 액션별 지정할 수 있는 조건 키는 서비스별 Sub Account 권한관리에서 확인할 수 있습니다.
  • 액션에 사용불가한 조건 키가 지정된 정책을 부여받은 서브계정의 경우 해당 액션은 수행이 거부됩니다.
  • 네이버 클라우드 플랫폼에서 정의하는 연산자 정보는 Condition 조건 키 및 연산자에서 확인할 수 있습니다.

다수의 키 또는 값이 포함되어 있는 경우 권한 체크 로직

CASE 권한 체크 로직
1개의 조건 키 내에 값을 여러 개 지정할 경우 논리 연산자 or 를 활용하여, 정책에 지정된 태그 키-값 중 1개만 일치하면 권한이 허용됨
1개의 조건 키 내에 부정 연산자로 태그 값을 여러개 지정할 경우 논리 연산자 Nor를 활용하여, 정책에 지정된 태그 키-값 모두가 일치하지 않아야만 권한이 허용됨
1개의 Condition 내에 여러개의 조건키가 사용되는 경우 논리 연산자 AND를 활용하여, 모든 조건키가 일치하는 경우에만 권한이 허용됨