AWS 組織内のすべてのアカウントが自分のアカウントで AWS KMS キーを使用することを許可するにはどうすればよいですか?

最終更新日: 2021 年 8 月 5 日

AWS Key Management Service (AWS KMS) のキーアクセスを自分の AWS 組織に属するプリンシパルのみに制限したい。

簡単な説明

aws:PrincipalOrgID グローバル条件キーは、AWS KMS を使ったリソースベースのポリシーPrincipal 要素で使用できます。組織内のすべての AWS アカウント ID を一覧表示する代わりに、Condition 要素で組織 ID を指定できます。

解決方法

AWS KMS キーポリシーを作成し、AWS 組織内のすべてのアカウントが AWS グローバル条件コンテキストキー aws: PrincipalOrgID を使用して AWS KMS アクションを実行できるようにします。

重要: AWS Identity and Access Management (IAM) ポリシーを使用して、最小権限のアクセス許可を付与することをお勧めします。

ステートメントの条件要素に AWS 組織 ID を指定し、組織内のアカウントのプリンシパルのみが AWS KMS キーにアクセスできることを確認します。組織 ID を取得するには、次のステップを実行します。

  1. AWS Organizations コンソールを開きます。
  2. [Settings (設定)] を選択します。
  3. [組織の詳細] で、組織 ID をコピーします。

次の AWS KMS キーポリシーステートメントでは、ID o-xxxxxxxxxxx を持つ AWS 組織に属する AWS アカウントのアイデンティティが KMS キーを使用することを許可します。

{
  "Sid": "Allow use of the KMS key for organization",
  "Effect": "Allow",
  "Principal": {
    "AWS": "*"
  },
  "Action": [
    "kms:Decrypt",
    "kms:DescribeKey",
    "kms:Encrypt",
    "kms:ReEncrypt*",
    "kms:GetKeyPolicy"
  ],
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "aws:PrincipalOrgID": "o-xxxxxxxxxxx"
    }
  }
}

注: aws:PrincipalOrgID グローバル条件コンテキストキーを使用して、AWS のサービスプリンシパルへのアクセスを制限することはできません。API コールを呼び出す AWS のサービスは、AWS 組織に属していない内部 AWS アカウントから行われます。