このトピックでは、タグに基づいてRAMユーザーまたはRAMロールのキーおよびシークレットへのアクセス許可を制御する方法について説明します。
機能の説明
カスタムポリシー、キーポリシー、またはシークレットポリシーをRAMユーザーまたはRAMロールに付与する場合、KMSはタグを使用してアクセス許可を設定し、特定のタグを持つキーとシークレットへのアクセスを許可または拒否することをサポートします。 タグの条件キーはkms:tag
です。 詳細については、「カスタムポリシー」、「キーポリシー」、「シークレットポリシー」、「Condition key」をご参照ください。
複数のキーとシークレットに同じタグを付けることができるため、この機能を使用すると、特定のキーまたはシークレットのグループに権限を適用できます。 設定したら、キーとシークレットのタグを変更して、許可または拒否されたアクセスを変更できます。 たとえば、カスタムポリシーではタグAを持つキーへのアクセスが許可され、タグAを持つキーは2つ (キー1とキー2) あります。タグAをキー3にアタッチすると、カスタムポリシーは自動的にキー3へのアクセスを許可します。
例
3つのエンタープライズアプリケーション (App1、App2、App3) が異なる環境に分散されており、3つのKMSインスタンス (KMSインスタンスA、KMSインスタンスB、KMSインスタンスC) を購入しています。
管理者 (Alibaba Cloudアカウント) は、アプリケーションに関連する3つのKMSインスタンスのキーとシークレットにタグを設定しています。 例えば、App1によってアクセスされる鍵および秘密は、Application=App1でタグ付けされる。
管理者は3人のRAMユーザー (App1 Admin、App2 Admin、App3 Admin) を設定しました。
管理者は、指定されたキーとシークレットへのアクセスを許可するポリシーを各RAMユーザーに設定する必要があります。 たとえば、RAMユーザーApp2 Adminを設定して、3つのKMSインスタンス間でApplication=App2でタグ付けされたキーとシークレットにアクセスします。 次のカスタムポリシーをRAMユーザーに付与できます。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "kms:*",
"Resource": "*",
"Condition": {
"StringEqualsIgnoreCase": {
"kms:tag/Application": [
"App2"
]
}
}
}
]
}
Effect
: ステートメントの結果が明示的な許可か、明示的な拒否かを指定します。 有効な値は、Allow および Deny です。アクション
: 許可または拒否される1つ以上のAPI操作について説明します。 詳細なAPIリストについては、「Condition key」をご参照ください。kms:*
は、リスト内のすべてのAPIインターフェイスを表します。リソース
: ステートメントがカバーする1つ以上のオブジェクトを指定します。 * は、KMSインスタンスのすべてのキーとシークレットを表します。 より洗練されたリソーススコープを設定することもできます。 詳細については、「権限情報」をご参照ください。条件
: ポリシーを有効にするために必要な条件を指定します。 詳細な値については、「ポリシー要素」をご参照ください。
関連ドキュメント
ポリシーは、Effect、Action、Resource、Condition、Principalなどの基本要素で構成されています。 詳細については、「ポリシー要素」をご参照ください。