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生成のオリジナル問題。

無料で演習を始める →
DVA の問題一覧に戻る