Q87 — AWS DOP-C02 第1章
第 87/100 問 | ← 第1章
ある企業がAWS上でホストされるサーバーレスWebアプリケーションを開発しました。このアプリケーションはAmazon S3、Amazon API Gateway、複数のAWS Lambda関数、およびAmazon RDS for MySQLデータベースで構成されています。同社はAWS CodeCommitを使用してソースコードを保管しており、ソースコードはAWS Serverless Application Model(AWS SAM)テンプレートとPythonコードの組み合わせです。 セキュリティ監査およびペネトレーションテストの結果、データベース認証用のユーザー名とパスワードがCodeCommitリポジトリ内にハードコードされていることが判明しました。 DevOpsエンジニアは、ハードコードされたシークレットを自動検出し防止するソリューションを実装する必要があります。
- A. Amazon CodeGuru Profilerを有効化します。処理関数に@with_lambda_profiler()デコレータを適用します。推奨レポートを手動でレビューします。シークレットをセキュア文字列としてAWS Systems Manager Parameter Storeに書き込みます。SAMテンプレートおよびPythonコードを更新してParameter Storeからシークレットを取得するようにします。
- B. CodeCommitリポジトリをAmazon CodeGuru Reviewerと関連付けます。コードレビューの推奨事項を手動で確認します。「シークレットの保護」オプションを選択します。SAMテンプレートおよびPythonコードを更新してAWS Secrets Managerからキーを取得するようにします。 ✓
- C. Amazon CodeGuru Profilerを有効化します。処理関数に@with_lambda_profiler()デコレータを適用します。推奨レポートを手動でレビューします。「シークレットの保護」オプションを選択します。SAMテンプレートおよびPythonコードを更新してAWS Secrets Managerからキーを取得するようにします。
- D. CodeCommitリポジトリをAmazon CodeGuru Reviewerと関連付けます。コードレビューの推奨事項を手動で確認します。キーを文字列としてAWS Systems Manager Parameter Storeに書き込みます。SAMテンプレートおよびPythonコードを更新してParameter Storeからシークレットを取得するようにします。
正解: B. CodeCommitリポジトリをAmazon CodeGuru Reviewerと関連付けます。コードレビューの推奨事項を手動で確認します。「シークレットの保護」オプションを選択します。SAMテンプレートおよびPythonコードを更新してAWS Secrets Managerからキーを取得するようにします。
解説
このシナリオにおいて、主要な要件はハードコードされたシークレットの自動検出および防止です。Amazon CodeGuru Reviewerは、コードレビューを自動化するツールであり、ハードコードされたシークレットを含むコード上の問題を自動的に検出できます。CodeCommitリポジトリをAmazon CodeGuru Reviewerと関連付けることで、コミットされたコードを自動的にレビューし、ハードコードされたシークレットを検出できます。問題が検出された後、コードレビューの推奨事項を手動で確認し、「シークレットの保護」オプションを選択して、キーをAWS Secrets Managerに保存します。これはシークレットの保存および管理に特化したサービスです。最後に、SAMテンプレートおよびPythonコードを更新してAWS Secrets Managerからキーを取得するようにすることで、ハードコードされたシークレットの問題を回避できます。したがって、選択肢Bはこれらの要件を満たす最も安全なソリューションです。