ある企業は AWS KMS の CMK を使用しています。外部の監査会社に対して、特定の期間(30 日間)だけ対象 CMK で暗号化されたデータを復号できる権限を委任したいと考えています。監査終了後は自動的に権限が失効するようにしたい。キーポリシーを変更せずに実現できる最適な方法はどれですか?
- A. 監査会社の IAM ロールに kms:Decrypt を許可する IAM ポリシーを一時的にアタッチし、30 日後に手動で削除する
- B. KMS グラント(Grant)を使用して監査会社のロールに kms:Decrypt 権限を付与し、有効期間の制御はグラントの退職条件(Retiring Principal)で管理する
- C. キーポリシーに監査会社の IAM ロール ARN を追加し、30 日後に手動でキーポリシーから削除する
- D. AWS Secrets Manager でデータキーを管理し、監査会社に Secrets Manager のシークレットへの一時アクセスを付与する
解答と解説を見る
正解: B
KMS グラント(Grant)はキーポリシーを変更せずに特定のプリンシパルに特定の KMS オペレーション権限を委任できる仕組みです。グラントにはリタイアプリンシパル(Retiring Principal)を設定でき、期間が終わったらそのプリンシパルがグラントを退職(Retire)させることで権限を失効させます。グラントは CreateGrant API で作成でき、キーポリシーへの変更が不要です。C は手動でキーポリシーを削除する方法は操作ミスのリスクがあり自動失効もできません。A の IAM ポリシーの手動削除も同様で、自動失効の仕組みがなく KMS のキーポリシーで対象ロールが許可されていなければ IAM ポリシーだけでは権限が付与されません。D の Secrets Manager はデータキー管理に特化していませんし、問題の要件とは異なります。
📚 関連サービスの解説: AWS KMS