【小ネタ】AWS KMS のキーポリシーが動作しない場合は Action や Resource も確認する
アノテーション・テクニカルサポートチームの hato です。
「送信元の VPC エンドポイントや IP アドレスで制限する KMS キーポリシーを設定したが、意図した通りに動作しない」という際に確認すべき点の小ネタです。
キーポリシーが動作しない場合は Action や Resource があるか確認する
現状の仕様として、キーポリシーに Action や Resource 要素がないキーポリシーも設定できます。
ただし、対象となる Action や Resource 要素が不足している場合は、そのポリシーステートメントは効果を発揮しません。
例えば、次のようなキーポリシーを設定すると、送信元 IP アドレスでアクセス制限ができるように見えますが、Action が設定されていないため、後半の Deny のポリシーステートメントは効果を発揮しません。
{
"Version": "2012-10-17",
"Id": "hato-key-consolepolicy",
"Statement": [
{
"Sid": "Enable IAM policies",
"Effect": "Allow",
"Principal": {
"AWS": [
"123456789012"
]
},
"Action": "kms:*",
"Resource": "*"
},
{
"Sid": "Deny access from non-approved IP addresses",
"Effect": "Deny",
"Principal": "*",
"Resource": "*",
"Condition": {
"NotIpAddress": {
"aws:SourceIp": [
"192.0.2.0/24",
"203.0.113.0/24"
]
}
}
}
]
}
ポリシーエディタではエラーが表示される
AWS マネジメントコンソール(ポリシーエディタ)では Action や Resource 要素がないキーポリシーはエラーが表示されます。
キーポリシーが動作しないな?と思った場合は、ポリシーエディタでエラー等が発生していないかも確認ポイントです。
参考資料
必要な Action 要素がキーポリシーステートメントにない場合、ポリシーステートメントによる影響はありません。Action 要素のないキーポリシーステートメントは、どの KMS キーにも適用されません。
キーポリシーステートメントに Action要素がない場合、 AWS KMS コンソールはエラーを正しく報告しますが、ポリシーステートメントが無効であっても CreateKey および PutKeyPolicy APIs は成功します。
…(中略)…
必要な Resource 要素がキーポリシーステートメントにない場合、ポリシーステートメントによる影響はありません。Resource 要素のないキーポリシーステートメントは、どの KMS キーにも適用されません。
キーポリシーステートメントに Resource要素がない場合、 AWS KMS コンソールはエラーを正しく報告しますが、ポリシーステートメントが無効であっても CreateKey および PutKeyPolicy APIs は成功します。
- のキーポリシー AWS KMS - AWS Key Management Service
- AWS グローバル条件キー - AWS Key Management Service
- VPC エンドポイントを使用して AWS KMS リソースへのアクセスを制御する - AWS Key Management Service
アノテーション株式会社について
アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイト をぜひご覧ください。