DVA-C02開発EASY単一選択

ある金融系企業のLambda関数が、外部決済APIのシークレットキーを使用している。コンプライアンス要件として「シークレットを90日ごとに自動ローテーションすること」「シークレットへのアクセスをCloudTrailで監査できること」という2点が義務付けられている。これらの要件を最小限の追加実装で満たすシークレット管理方法として最も適切なものはどれか。

  1. A. AWS Secrets Managerにシークレットを格納し、自動ローテーション設定とIAMポリシーでアクセスを制御する
  2. B. AWS Systems Manager Parameter Store の SecureString パラメータにシークレットを格納し、IAMポリシーでアクセスを制御する
  3. C. Lambda関数の環境変数(KMS暗号化あり)にシークレットを設定し、ローテーション時はコンソールから手動で更新する
  4. D. シークレットをKMSで暗号化した上でコード内に埋め込み、ローテーションのたびに再デプロイする
解答と解説を見る

正解: A

AWS Secrets Manager(A)は自動ローテーション機能をネイティブに備えており、90日ローテーションをLambdaローテーション関数と組み合わせてコード変更なしで実現できる。またSecrets Managerへのすべての呼び出しはCloudTrailに記録されるため、監査要件も自動的に満たせる。選択肢CのLambda環境変数はKMS暗号化に対応しているが、自動ローテーション機能がなく手動更新が必要なため「自動ローテーション」要件を満たせない。選択肢BのSSM Parameter Store SecureStringは暗号化保存・IAM制御・CloudTrail連携に対応しているが、自動ローテーション機能はなく(Secrets Managerとは異なりローテーションを自前で実装する必要がある)、90日自動ローテーション要件を追加実装なしには満たせない。選択肢DはコードへのシークレットEmbedは最悪の実践であり、ローテーションのたびに再デプロイが必要で運用コストが高く、コードリポジトリにシークレットが混入するリスクもある。

▸ この試験を本気で演習する(全150問・無料)