あるチームがAWS KMSでカスタマーマネージドキー(CMK)を作成する際、デフォルトキーポリシーを削除してカスタムポリシーを適用しました。このポリシーにはキー管理者(admin@example.com)の権限のみを記述しました。後からIAMユーザーBobに kms:Decrypt を許可するIAMポリシーをアタッチしましたが、BobがDecrypt APIを呼び出すとAccessDeniedエラーが発生します。最も可能性の高い原因はどれですか?
KMSキーポリシーはリソースベースのポリシーであり、IAMポリシーと組み合わせて機能します。デフォルトキーポリシーには「アカウントのルートプリンシパルにkms:*を許可する」ステートメントが含まれており、これによりIAMポリシーでの制御が有効になります。このステートメントが削除されたカスタムポリシーでは、IAMポリシーだけでは同一アカウント内でもアクセスできません。キーポリシー自体にBobの許可、またはIAM委任のステートメントが必要です。 選択肢A: KMS GrantsはIAMポリシーの代替手段の一つですが必須ではありません。 選択肢C: Key Administratorsはキーのメタデータやポリシー管理を行い、データの暗号化・復号はKey Usersが担当しますが、そもそもキーポリシーにBobが含まれていないことが根本原因です。 選択肢D: 同一アカウントであってもキーポリシーなしにIAMポリシーのみではアクセスできません。