View a markdown version of this page

将 webhook 与 AWS CodeBuild - AWS CodeBuild

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将 webhook 与 AWS CodeBuild

AWS CodeBuild 支持与 GitHub、 GitHub 企业服务器、 GitLab 自助管理和 Bitbuck GitLab et 集成 webhook。

使用 webhook 的最佳实践 AWS CodeBuild

对于使用公共存储库设置 webhook 的项目,我们建议使用以下选项:

设置ACTOR_ACCOUNT_ID过滤器

向项目的 webhook 过滤器组中添加ACTOR_ACCOUNT_ID过滤器,以指定哪些用户可以触发构建。传送到的每个 webhook 事件都 CodeBuild 附带了指定参与者标识符的发送者信息。 CodeBuild 将根据过滤器中提供的正则表达式模式过滤 webhook。您可以使用此筛选器指定允许触发构建的特定用户。有关更多信息,请参阅GitHub webhook 事件Bitbucket Webhook 事件

设置FILE_PATH过滤器

向项目的 webhook 过滤器组中添加FILE_PATH过滤器,以包括或排除更改时可能触发构件的文件。例如,您可以使用正则表达式模式(例如 ^buildspec.yml$)和 excludeMatchedPattern 属性来拒绝对 buildspec.yml 文件进行更改的构建请求。有关更多信息,请参阅GitHub webhook 事件Bitbucket Webhook 事件

缩小构建 IAM 角色的权限

由 Webhook 触发的构建使用项目中指定的 IAM 服务角色。我们建议将服务角色中的权限设置为运行构建所需的最低权限集。例如,在测试和部署场景中,创建一个用于测试的项目和另一个用于部署的项目。测试项目接受存储库中的 Webhook 构建,但不提供对您的资源的写入权限。部署项目提供对您的资源的写入权限,并且 Webhook 筛选条件配置为仅允许受信任的用户触发构建。

使用内联或 Amazon S3 存储的 buildspec

如果您自行在项目内定义内联 buildspec,或者将 buildspec 文件存储在 Amazon S3 存储桶中,则该 buildspec 文件仅对项目所有者可见。这样可以防止拉取请求对 buildspec 文件进行代码更改并触发不必要的构建。有关更多信息,请参阅《CodeBuild API Reference》中的 ProjectSource.buildspec