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環境で利用できます。

NAVERクラウドプラットフォームでは 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 の権限管理で確認できます。
  • アクションに使用できない条件キーが指定されたポリシーが与えられたサブアカウントの場合、そのアクションの実行は拒否されます。
  • NAVERクラウドプラットフォームで定義する演算子情報は、Condition条件キーと演算子で確認できます。

多数のキーまたは値が含まれた場合の権限チェックロジック

CASE 権限チェックロジック
1つの条件キー内に複数の値を指定する場合 論理演算子の orを使って、ポリシーに指定されたタグキー-値の中で1つだけが一致すると権限を許可
1つの条件キーに否定演算子としてタグ値を複数指定する場合 論理演算子の Norを使って、ポリシーに指定されたタグキー-値がすべて一致しないと権限を許可
1つの Conditionに複数の条件キーが使われる場合 論理演算子の ANDを使って、すべての条件キーが一致する場合のみに権限を許可