AWS Key Management Service (AWS KMS) のキーアクセスを、自分の AWS 組織に属するプリンシパルのみに制限したいと考えています。
簡単な説明
AWS KMS では、リソースベースのポリシーにおいて Principal 要素と aws:PrincipalOrgID グローバル条件キーを組み合わせて使用することができます。Condition 要素に、組織内のすべての AWS アカウント ID のリストの代わりに組織 ID を指定できます。
解決策
AWS グローバル条件コンテキストキー aws:PrincipalOrgID を使用して AWS KMS キーポリシーを作成し、AWS 組織のすべてのアカウントに対して AWS KMS アクションの実行を許可します。
重要: ベストプラクティスとして、AWS Identity and Access Management (IAM) ポリシーでは最小特権のアクセス許可を付与してください。
ステートメントポリシーの条件要素に、AWS 組織 ID を指定します。このポリシーによって、組織内のアカウントのプリンシパルのみが AWS KMS キーにアクセスできるようになります。
組織 ID を取得するには、以下の手順を実行します。
- AWS Organizations コンソールを開きます。
- [設定] を選択します。
- [組織の詳細] で、組織 ID をコピーします。
{ "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 KMS キーポリシーステートメントは、ID が o-xxxxxxxxxxx の AWS 組織に属する AWS アカウントのアイデンティティが KMS キーを使用することを許可します。
注: aws:PrincipalOrgID グローバル条件コンテキストキーを使用して AWS サービスプリンシパルへのアクセスを制限することはできません。API コールを呼び出す AWS サービスは、AWS 組織に属していない内部 AWS アカウントから作成されます。
関連情報
AWS Organizations を使い始めるにはどうすればいいですか?
組織からメンバーアカウントを削除するにはどうすればよいですか?