無限ノック › DVA 練習問題一覧 › 問題
DVAセキュリティ

Lambda関数がSSM Parameter Storeのパラメータ「/prod/app/db-password」(SecureString型、カスタムCMKで暗号化)を取得しようとしています。 Lambda実行ロールには以下の権限を付与していますが、実行時に「AccessDeniedException」が発生します。 - ssm:GetParameter - ssm:GetParametersByPath 原因として最も可能性が高いのはどれですか?

A
Lambda実行ロールに暗号化に使用したKMSキーへのkms:Decrypt権限が付与されていない
✓ 正解
SecureStringはKMSで暗号化されており、GetParameter時の復号にkms:Decrypt権限が必要です。ssm:GetParameterだけでは不十分で、暗号化CMKへのDecrypt権限がないとAccessDeniedExceptionが発生します。
B
SecureString型パラメータはGetParameterではなくGetParameterHistoryでのみ現在値を取得できる
GetParameterHistoryはパラメータの変更履歴取得用のAPIです。現在の値はGetParameterで取得でき、SecureStringもWithDecryption=trueで取得可能です。この説明は誤りです。
C
Lambda関数がVPC内にデプロイされておらず、SSM Parameter StoreのVPCエンドポイントに到達できない
VPC外のLambdaはSSMのパブリックエンドポイントにインターネット経由でアクセスできます。VPCエンドポイントはオプションであり、AccessDeniedExceptionの主因ではありません。
D
IAMポリシーのリソースARNでワイルドカードを使用しているため、特定のパラメータへのアクセスが拒否されている
IAMポリシーのリソースARNにワイルドカードを使用してもssm:GetParameterが許可されている場合は通常アクセスできます。kms:Decryptの欠如が最も可能性の高い原因です。

解説

SSM Parameter StoreのSecureStringパラメータはKMSキーで暗号化されて保存されます。GetParameter APIでWithDecryption=trueを指定して取得する際、SSMは内部でKMSのDecrypt APIを呼び出します。このとき、呼び出し元(Lambda実行ロール)にKMSキーへのkms:Decrypt権限がないとAccessDeniedExceptionが発生します。ssm:GetParameter権限だけでは不十分で、暗号化に使用したCMKへのDecrypt権限も必要です。 選択肢BのGetParameterHistoryはパラメータの変更履歴を取得するAPIであり、現在の値を取得するにはGetParameterを使用します。SecureStringのGetParameter対応は正常に機能します。 選択肢CのVPCエンドポイントについては、VPC外のLambdaはインターネット経由でSSMパブリックエンドポイントにアクセスできるため、VPCエンドポイントなしでも通常はアクセス可能です。 選択肢DのリソースARN指定については、設問では「ssm:GetParameter権限は付与されている」とされているため、ARNワイルドカードが主因である可能性は低く、kms:Decryptの欠如が最も典型的な原因です。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。

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