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 を取得するには、次のステップを実行します。
- AWS Organizations コンソールを開きます。
- [Settings (設定)] を選択します。
- [組織の詳細] で、組織 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 アカウントから行われます。
関連情報
AWS Organizations の使用を開始する方法を教えてください。
AWS Organizations で、組織の一括請求からメンバーアカウントを削除するにはどうすればよいですか?