AWS CodeBuild は、GitHub、GitHub Enterprise Server、GitLab、GitLab セルフマネージド、および Bitbucket とウェブフックの統合をサポートしています。
トピック
AWS CodeBuild でのウェブフック使用のベストプラクティス
パブリックリポジトリを使用してウェブフックをセットアップするプロジェクトでは、以下のオプションを使用することをお勧めします。
ACTOR_ACCOUNT_ID
フィルタを設定-
プロジェクトのウェブフックフィルタグループに
ACTOR_ACCOUNT_ID
フィルタを追加して、ビルドをトリガーできるユーザーを指定します。CodeBuild に配信されるすべてのウェブフックイベントには、アクターの識別子を指定する送信者情報が含まれています。CodeBuild は、フィルタで提供される正規表現パターンに基づいてウェブフックをフィルタリングします。このフィルタを使用して、ビルドのトリガーを許可する特定のユーザーを指定できます。詳細については、GitHub ウェブフックイベントおよびBitbucket ウェブフックイベントを参照してください。 FILE_PATH
フィルタを設定-
プロジェクトのウェブフックフィルタグループに
FILE_PATH
フィルタを追加して、変更時にビルドをトリガーできるファイルを含めるか除外します。例えば、^buildspec.yml$
などの正規表現パターンをexcludeMatchedPattern
プロパティと使用して、buildspec.yml
ファイルへの変更に対するビルドリクエストを拒否できます。詳細については、GitHub ウェブフックイベントおよびBitbucket ウェブフックイベントを参照してください。 - ビルドの IAM ロールのアクセス権限を絞り込む
-
Webhook によってトリガーされたビルドは、プロジェクトで指定された IAM サービスロールを使用します。サービスロールのアクセス許可は、ビルドの実行に必要な最小限のアクセス許可セットに設定することをお勧めします。たとえば、テストおよびデプロイのシナリオでは、テスト用にプロジェクトを 1 つ作成し、デプロイ用に別のプロジェクトを作成します。テストプロジェクトは、リポジトリからの webhook ビルドを受け付けますが、リソースへの書き込み権限は提供しません。デプロイメントプロジェクトはリソースへの書き込み権限を提供し、webhook フィルターは信頼済みのユーザーにのみビルドをトリガーできるように設定されています。
- インラインまたは Amazon S3 に保管した buildspec を使用する
-
プロジェクト自体内で buildspec をインラインで定義する場合、または buildspec ファイルを Amazon S3 バケットに格納する場合、buildspec ファイルはプロジェクト所有者のみに表示されます。これにより、プル要求が buildspec ファイルにコードを変更したり、不要なビルドをトリガーしたりするのを防ぎます。詳細については、「CodeBuild API リファレンス」の「ProjectSource.buildspec」を参照してください。