将 Webhook 与Amazon CodeBuild - Amazon CodeBuild
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

将 Webhook 与Amazon CodeBuild

Amazon CodeBuild支持与 GitHub、GitHub Enterprise Server 和 Bitbucket 的 Webhook 集成。

使用 Webhook 的最佳实践Amazon CodeBuild

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

设置ACTOR_ACCOUNT_ID过滤器

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

设置FILE_PATH过滤器

AddFILE_PATH过滤器到项目的 webhook 筛选器组,以包括或排除可能在更改时触发构建的文件。例如,您可以拒绝对对更改的构建请求buildspec.yml使用正则表达式模式的文件,例如^buildspec.yml$,以及excludeMatchedPattern财产。有关更多信息,请参阅 事件 GitHub Webhook 事件Bitbucket Webhook 事件

缩小构建 IAM 角色的权限范围

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

使用内联或 Amazon S3 存储的构建规范

如果您在项目本身内联定义 buildspec,或将 buildspec 文件存储在 Amazon S3 存储桶中,则该 buildspec 文件只对项目所有者可见。这可以防止拉取请求对 buildspec 文件进行代码更改并触发不需要的构建。有关更多信息,请参阅 。项目来源。BuildSpec中的CodeBuild API 参考.