Q95 — AWS DVA-C02 第1章
第 95/100 問 | ← 第1章
アプリケーションがコンテナイメージを安全に実行する前にその脆弱性を強化するため、企業はAmazon Elastic Container Registry(Amazon ECR)をイメージレジストリ、Amazon Elastic Kubernetes Service(Amazon EKS)をコンピューティングプラットフォーム、およびAWS CodePipelineをコンテナ統合およびデリバリー(CI/CD)ワークフローとして使用しています。現在、アプリケーションのセキュリティテストは、CI/CDパイプラインの最終段階、つまり新規イメージがEKSクラスター内の開発名前空間にデプロイされた後に実行されています。開発者は、このデプロイ前のCI/CDパイプラインの早期段階でコンテナイメージの分析を実施したいと考えています。これらの要件を最も運用効率よく満たす解決策はどれですか?
- A. コンテナイメージを構築し、ローカルでdocker scanコマンドを実行します。ソースコードリポジトリに変更をプッシュする前に問題を解決します。コミット前にこのワークフローを強制するpre-commitフックを作成します。
- B. コンテナイメージの構築後に発生する新しいCodePipelineステージを作成します。ECRの基本イメージスキャンを、イメージのプッシュ時に実行するよう設定します。AWS Lambda関数をアクションプロバイダーとして使用します。Lambda関数がスキャン結果をチェックし、問題が検出された場合にパイプラインを失敗させるよう設定します。 ✓
- C. ソースコードリポジトリからソースコードを取得した後に発生する新しいCodePipelineステージを作成します。最新版のソースコードに対してセキュリティスキャンを実行します。問題が検出された場合、パイプラインを失敗させます。
- D. デプロイステージに、EKSクラスターへのデプロイ前に実行されるアクションを追加します。ECRの基本イメージスキャンを、イメージのプッシュ時に実行するよう設定します。AWS Lambda関数をアクションプロバイダーとして使用します。Lambda関数がスキャン結果をチェックし、問題が検出された場合にパイプラインを失敗させるよう設定します。
正解: B. コンテナイメージの構築後に発生する新しいCodePipelineステージを作成します。ECRの基本イメージスキャンを、イメージのプッシュ時に実行するよう設定します。AWS Lambda関数をアクションプロバイダーとして使用します。Lambda関数がスキャン結果をチェックし、問題が検出された場合にパイプラインを失敗させるよう設定します。
解説
選択肢Bでは、コンテナイメージの構築後に新しいCodePipelineステージを作成し、ECRの基本イメージスキャンをイメージのプッシュ時に実行するよう設定し、AWS Lambda関数でスキャン結果をチェックして問題発生時にパイプラインを失敗させるという構成が採用されています。これは、CI/CDパイプライン内で高い運用効率を実現する解決策です。この設定により、イメージがECRにプッシュされた直後にセキュリティスキャンが実行され、スキャン結果に基づいてパイプラインの失敗をトリガーできます。他の選択肢では、Aはローカル実行、Cはソースコード段階でのスキャン、Dはデプロイ段階でのスキャンであり、いずれもBほど効率的ではありません。