すべてのプロダクト
Search
ドキュメントセンター

Key Management Service:タグを使用してキーとシークレットへのアクセスを制御する

最終更新日:Jan 03, 2025

このトピックでは、タグに基づいて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) を設定しました。

image

管理者は、指定されたキーとシークレットへのアクセスを許可するポリシーを各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などの基本要素で構成されています。 詳細については、「ポリシー要素」をご参照ください。