無限ノック › DOP 練習問題一覧 › 問題
DOPセキュリティとコンプライアンス

DevOpsチームはLambda関数を使ったサーバーレスアプリケーションをCodePipelineでデプロイしています。セキュリティ要件として「CI/CDパイプライン自体が侵害された場合でも、セキュリティチームが承認した署名済みコードパッケージのみが本番Lambda関数にデプロイされること」を保証する必要があります。この要件を最も確実に満たすアーキテクチャはどれですか?

A
AWS Signerの署名プロファイルでLambdaデプロイパッケージに署名し、本番Lambda関数にコード署名設定(Code Signing Configuration)を適用して未署名・不正署名のパッケージをブロックする
✓ 正解
AWS Signerでコードに暗号学的デジタル署名を付与し、Lambda Code Signing Configurationでプラットフォームレベルの強制を実装します。パイプライン侵害時でも署名検証はLambdaレベルで実行されるため、未署名コードのデプロイはブロックされます。
B
CodeBuildでデプロイパッケージのSHA-256チェックサムを計算してSSM Parameter Storeに保存し、CodeDeployのライフサイクルフックでデプロイ直前にチェックサムを再検証するカスタムスクリプトを実行して改ざんを検知する
チェックサム検証はコード内スクリプトで実行されるため、パイプライン侵害時にスクリプト自体が改ざん・スキップされるリスクがあります。暗号学的署名のような強制力を持たず、技術的保証が不十分です。
C
Lambda関数のデプロイパッケージをKMS(AWS Key Management Service)のカスタマー管理キーで暗号化し、本番アカウントのデプロイ用IAMロールのみが復号できるようキーポリシーとIAMポリシーを厳格に設定する
KMS暗号化はデータ機密性を保護しますが、コードの完全性やその出所(承認者情報)を検証するものではありません。パイプライン侵害時に改ざんされたコードのデプロイを防げません。
D
CodePipelineにManual Approvalステージを追加し、セキュリティリードがパッケージ内容を確認して承認した場合のみ後続の本番デプロイステージへ処理が進むようパイプラインを構成する
Manual Approvalは人間の承認を要求しますが、パイプライン侵害時に承認ステップが迂回されるリスクがあります。技術的な強制力を持たず、単なる手続き上の制御であり、セキュリティ要件を確実には満たしません。

解説

AWS Signerは、Lambdaデプロイパッケージに暗号学的デジタル署名を付与するマネージドサービスです。本番Lambda関数にCode Signing Configurationをアタッチすると、有効な署名を持たないパッケージはパイプラインの状態に関わらずLambdaのAPI呼び出し時点でデプロイが拒否されます。これはパイプライン侵害時でも機能するプラットフォームレベルの強制(enforcement)であり、セキュリティチームが管理する署名鍵で署名されたコードのみを本番へ通せます。 選択肢Bのチェックサム検証は、ライフサイクルフックのスクリプト自体が侵害された攻撃者によって改ざん・スキップされる可能性があり、暗号学的署名ほどの信頼性がありません。 選択肢CのKMS暗号化はデータの機密性を保護しますが、コードの完全性(誰の承認で署名されたか)を保証するものではなく、パイプライン侵害への防御になりません。 選択肢DのManual Approvalは人間の承認を介しますが、パイプラインが侵害された場合に承認ステップ自体がバイパスされるリスクがあり、技術的な強制力を持ちません。

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

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

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