AWS CodeBuild での Webhook の使用 - AWS CodeBuild

AWS CodeBuild での Webhook の使用

AWS CodeBuild は、GitHub、GitHub Enterprise Server、Bitbucket と Webhook の統合をサポートしています。

AWS CodeBuild でのWebhook の使用のベストプラクティス

パブリックリポジトリを使用してウェブフックをセットアップするプロジェクトでは、以下のオプションを使用することをお勧めします。

ACTOR_ACCOUNT_ID」フィルタの設定

プロジェクトのウェブフックフィルターグループに「ACTOR_ACCOUNT_ID」フィルターを追加して、ビルドをトリガーできるユーザーを指定します。CodeBuild に配信されるすべてのウェブフックイベントには、アクターの識別子を指定する送信者情報が含まれています。CodeBuild は、フィルタで提供される正規表現パターンに基づいてウェブフックをフィルタリングします。このフィルタを使用して、ビルドのトリガーを許可する特定のユーザーを指定できます。詳細については、「GitHub ウェブフックイベント」および「Bitbucket ウェブフックイベント」を参照してください。

FILE_PATH」フィルタの設定

プロジェクトの Webhook フィルターグループに「FILE_PATH」フィルターを追加して、変更時にビルドをトリガーできるファイルを含めるか除外します。たとえば、変更に対するビルド要求を拒否できます。「buildspec.yml」ファイル、「^buildspec.yml$」などの正規表現パターンや「excludeMatchedPattern」プロパティを使用できます。詳細については、「GitHub ウェブフックイベント」および「Bitbucket ウェブフックイベント」を参照してください。

ビルドの IAM ロールのアクセス権限を絞り込む

Webhook によってトリガーされたビルドは、プロジェクトで指定された IAM サービスロールを使用します。サービスロールのアクセス許可は、ビルドの実行に必要な最小限のアクセス許可セットに設定することをお勧めします。たとえば、テストおよびデプロイのシナリオでは、テスト用にプロジェクトを 1 つ作成し、デプロイ用に別のプロジェクトを作成します。テストプロジェクトは、リポジトリからの webhook ビルドを受け付けますが、リソースへの書き込み権限は提供しません。デプロイメントプロジェクトはリソースへの書き込み権限を提供し、webhook フィルターは信頼済みのユーザーにのみビルドをトリガーできるように設定されています。

インラインまたは Amazon S3 に保管した buildspec を使用する

プロジェクト自体内で buildspec をインラインで定義する場合、または buildspec ファイルを Amazon S3 バケットに格納する場合、buildspec ファイルはプロジェクト所有者のみに表示されます。これにより、プル要求が buildspec ファイルにコードを変更したり、不要なビルドをトリガーしたりするのを防ぎます。詳細については、CodeBuild API リファレンスの「ProjectSource.BuildSpec」を参照してください。