AWS CodeBuild コントロール - AWS Security Hub

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS CodeBuild コントロール

これらのコントロールは CodeBuild リソースに関連しています。

これらのコントロールは、すべての で利用できるとは限りません AWS リージョン。詳細については、「リージョン別のコントロールの可用性」を参照してください。

〔CodeBuild.1] CodeBuild Bitbucket ソースリポジトリ URLsには機密認証情報を含めないでください

関連する要件: PCI DSS v3.2.1/8.2.1、NIST.800-53.r5 SA-3

カテゴリ: 保護 > セキュアな開発

重要度: 非常事態

リソースタイプ: AWS::CodeBuild::Project

AWS Config ルール : codebuild-project-source-repo-url-check

スケジュールタイプ: 変更がトリガーされた場合

パラメータ: なし

このコントロールは、 AWS CodeBuild プロジェクトの Bitbucket ソースリポジトリ URL に個人用アクセストークンが含まれているか、ユーザー名とパスワードが含まれているかをチェックします。Bitbucket ソースリポジトリ URL に個人用アクセストークンまたはユーザー名とパスワードが含まれている場合、コントロールは失敗します。

注記

このコントロールは、 CodeBuild ビルドプロジェクトのプライマリソースとセカンダリソースの両方を評価します。プロジェクトソースの詳細については、「 AWS CodeBuild ユーザーガイド」の「複数の入力ソースと出力アーティファクトのサンプル」を参照してください。

サインイン認証情報は、クリアテキストで保存または送信したり、ソースリポジトリ URL に表示されたりしないでください。個人用アクセストークンやサインイン認証情報の代わりに、 のソースプロバイダーにアクセスし CodeBuild、Bitbucket リポジトリの場所へのパスのみを含むようにソースリポジトリ URL を変更する必要があります。個人アクセストークンまたはサインイン認証情報を使用すると、意図しないデータ漏えいや不正アクセスにつながる可能性があります。

修正

OAuth を使用するように CodeBuild プロジェクトを更新できます。

CodeBuild プロジェクトソースから基本認証/ (GitHub) Personal Access Token を削除するには
  1. https://console.aws.amazon.com/codebuild/ で CodeBuild コンソールを開きます。

  2. 個人用のアクセストークンまたはユーザー名とパスワードを含むビルドプロジェクトを選択します。

  3. [Edit] (編集) から、[Source] (ソース) を選択します。

  4. GitHub / Bitbucket から切断を選択します

  5. OAuth を使用して接続 を選択し、/ Bitbucket に接続 GitHub を選択します。

  6. プロンプトが表示されたら、[authorize as appropriate] (必要に応じて認可)を選択します。

  7. 必要に応じて、[Repository URL] (リポジトリ URL) と [additional configuration] (追加の設定) を再設定します。

  8. [Update source] (ソースの更新) を選択します。

詳細については、「 ユーザーガイド」のCodeBuild 「ユースケースベースのサンプルAWS CodeBuild 」を参照してください。

〔CodeBuild.2] CodeBuild プロジェクト環境変数にはクリアテキスト認証情報を含めないでください

関連する要件: PCI DSS v3.2.1/8.2.1、NIST.800-53.r5 IA-5(7)、NIST.800-53.r5 SA-3

カテゴリ: 保護 > セキュアな開発

重要度: 非常事態

リソースタイプ: AWS::CodeBuild::Project

AWS Config ルール : codebuild-project-envvar-awscred-check

スケジュールタイプ: 変更がトリガーされた場合

パラメータ: なし

このコントロールは、プロジェクトに環境変数 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY が含まれているかどうかをチェックします。

認証情報 AWS_ACCESS_KEY_ID および AWS_SECRET_ACCESS_KEY はクリアテキストで保存しないでください。これは、意図しないデータ漏えいや不正アクセスに認証情報が公開される可能性があるためです。

修正

CodeBuild プロジェクトから環境変数を削除するには、「 AWS CodeBuild ユーザーガイド」の「 でビルドプロジェクトの設定を変更する AWS CodeBuild」を参照してください。[環境変数] に何も選択されていないことを確認します。

機密性の高い値を持つ環境変数を AWS Systems Manager Parameter Store または に保存し AWS Secrets Manager 、ビルド仕様から取得できます。手順については、「AWS CodeBuild ユーザーガイド」の「環境」セクションで、「重要」ラベルの付いたボックスを参照してください。

〔CodeBuild.3] CodeBuild S3 ログは暗号化する必要があります

関連する要件: NIST.800-53.r5 CA-9(1)、NIST.800-53.r5 CM-3(6)、NIST.800-53.r5 SC-13、NIST.800-53.r5 SC-28、NIST.800-53.r5 SC-28(1)、NIST.800-53.r5 SI-7(6)

カテゴリ: 保護 > データ保護 > の暗号化 data-at-rest

重要度:

リソースタイプ: AWS::CodeBuild::Project

AWS Config ルール : codebuild-project-s3-logs-encrypted

スケジュールタイプ: 変更がトリガーされた場合

パラメータ: なし

このコントロールは、 AWS CodeBuild プロジェクトの Amazon S3 ログが暗号化されているかどうかを確認します。 CodeBuild プロジェクトの S3 ログの暗号化が非アクティブ化されると、コントロールは失敗します。

保管中のデータの暗号化は、データ周辺にアクセス管理のレイヤーを追加するために推奨されるベストプラクティスです。保管中のログを暗号化すると、 によって認証されていないユーザーがディスクに保存されているデータにアクセスするリスクが軽減 AWS されます。権限のないユーザーがデータにアクセスできる能力を制限するための一連のアクセスコントロールが追加されます。

修正

CodeBuild プロジェクト S3 ログの暗号化設定を変更するには、「 AWS CodeBuild ユーザーガイド」の「 でビルドプロジェクトの設定を変更する AWS CodeBuild」を参照してください。

〔CodeBuild.4] CodeBuild プロジェクト環境にはログ記録 AWS Config設定が必要です

関連する要件: NIST.800-53.r5 AC-2(12)、NIST.800-53.r5 AC-2(4)、NIST.800-53.r5 AC-4(26)、NIST.800-53.r5 AC-6(9)、NIST.800-53.r5 AU-10、NIST.800-53.r5 AU-12、NIST.800-53.r5 AU-2、NIST.800-53.r5 AU-3、NIST.800-53.r5 AU-6(3)、NIST.800-53.r5 AU-6(4)、NIST.800-53.r5 AU-9(7)、NIST.800-53.r5 CA-7、NIST.800-53.r5 SC-7(9)、NIST.800-53.r5 SI-3(8)、NIST.800-53.r5 SI-4、NIST.800-53.r5 SI-4(20)、NIST.800-53.r5 SI-7(8)

カテゴリ: 識別 > ログ記録

重要度:

リソースタイプ: AWS::CodeBuild::Project

AWS Config ルール : codebuild-project-logging-enabled

スケジュールタイプ: 変更がトリガーされた場合

パラメータ: なし

このコントロールは、 CodeBuild プロジェクト環境に S3 または ログに対して少なくとも 1 つの CloudWatch ログオプションが有効になっているかどうかをチェックします。 CodeBuild プロジェクト環境で少なくとも 1 つのログオプションが有効になっていない場合、このコントロールは失敗します。

セキュリティの観点から、ログ記録はセキュリティインシデントが発生した場合に、将来的に証拠の取り組みを可能にするために重要な機能です。 CodeBuild プロジェクトの異常を脅威検出と関連付けると、それらの脅威検出の精度に対する信頼を高めることができます。

修正

CodeBuild プロジェクトログの設定方法の詳細については、 CodeBuild ユーザーガイドの「ビルドプロジェクトの作成 (コンソール)」を参照してください。

〔CodeBuild.5] CodeBuild プロジェクト環境では特権モードを有効にしないでください

重要

Security Hub は 2024 年 4 月にこのコントロールを廃止しました。詳細については、「Security Hub コントロールの変更ログ」を参照してください。

関連する要件: NIST.800-53.r5 AC-2(1)、NIST.800-53.r5 AC-3、NIST.800-53.r5 AC-3(15)、NIST.800-53.r5 AC-3(7)、NIST.800-53.r5 AC-5、NIST.800-53.r5 AC-6、NIST.800-53.r5 AC-6(10)、NIST.800-53.r5 AC-6(2)

カテゴリ: 保護 > セキュアなアクセス管理

重要度:

リソースタイプ: AWS::CodeBuild::Project

AWS Config ルール : codebuild-project-environment-privileged-check

スケジュールタイプ: 変更がトリガーされた場合

パラメータ: なし

このコントロールは、 AWS CodeBuild プロジェクト環境の特権モードが有効か無効かをチェックします。 CodeBuild プロジェクト環境で特権モードが有効になっている場合、コントロールは失敗します。

デフォルトでは、Docker コンテナはどのデバイスにもアクセスを許可できません。権限モードは、ビルドプロジェクトの Docker コンテナにすべてのデバイスへのアクセスを許可します。Docker コンテナ内で Docker デーモンの実行を許可するには、privilegedModetrue の値を設定します。Docker デーモンは、Docker API リクエストをリッスンし、イメージ、コンテナ、ネットワーク、ボリュームなどの Docker オブジェクトを管理します。このパラメータは、ビルドプロジェクトを使用して Docker イメージをビルドする場合にのみ、true に設定する必要があります。それ以外の場合、Docker API およびコンテナの基盤となるハードウェアへの意図しないアクセスを防ぐため、この設定を無効にする必要があります。privilegedModefalse に設定すると、重要なリソースを改ざんや削除から保護するのに役立ちます。

修正

CodeBuild プロジェクト環境設定を構成するには、「 CodeBuild ユーザーガイド」の「ビルドプロジェクトの作成 (コンソール)」を参照してください。[環境] セクションでは、[特権付与] 設定を選択しないでください。