DVAセキュリティ
Lambda関数がAWS Systems Manager Parameter Storeから、カスタマーマネージドキーで暗号化したSecureStringパラメータを取得します。実行ロールには ssm:GetParameter が付与され、API呼び出しでWithDecryption=trueを指定していますが、AccessDeniedExceptionが発生します。値を正しく取得できるようにする対応はどれですか。
Aパラメータのタイプを SecureString から String に変更し、暗号化を解除する
SecureStringをStringに変更すると暗号化が解除されてしまい、機密データを平文保存することになりセキュリティ要件に反する。AccessDeniedの原因であるKMS権限不足も解消しない不適切な対応。
B実行ロールに、暗号化に使用したカスタマーマネージドキーに対する kms:Decrypt 権限を付与する
✓ 正解
SecureStringの復号にはssm権限に加え暗号化に使ったKMSキーへのkms:Decryptが必須で、これが欠けるとWithDecryption=true時にAccessDeniedになる。kms:Decrypt付与が根本原因への正しい対処。
C実行ロールに ssm:GetParametersByPath と ssm:DescribeParameters を追加する
ssm:GetParametersByPathやssm:DescribeParametersは階層取得や一覧用の権限で、単一パラメータ取得のGetParameterには不要。AccessDeniedの原因であるKMS復号権限の不足は解決しない。
Dパラメータを Standard ティアから Advanced ティアに変更し、パラメータポリシーを有効化する
StandardとAdvancedのティア差はパラメータ数・サイズ・パラメータポリシー対応の違いであり、SecureStringの復号権限とは無関係。ティアを変えてもkms:Decrypt不足は解消しない。
解説
SecureStringの復号にはParameter Storeの権限に加えて、暗号化に使ったKMSキーへの kms:Decrypt 権限が必要です。
WithDecryption=true を指定するとSSMがそのキーで復号を試みるため、実行ロールに kms:Decrypt がないとAccessDeniedExceptionになります。カスタマーマネージドキーのキーポリシー/IAMポリシーで kms:Decrypt を許可すれば解決します。
選択肢Aの暗号化解除はセキュリティ要件に反し、根本対応ではない。
選択肢Cの追加SSM権限はGetParameterに不要で、KMS権限不足は解消しない。
選択肢Dのティア変更は復号権限とは無関係。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →