View a markdown version of this page

Bitbucket 应用程序连接 - AWS CodeBuild

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

Bitbucket 应用程序连接

你可以使用 Bitbucket 来 CodeBuild连接。通过 AWS CodeConnections 支持 Bitbucket 应用程序连接。

注意

CodeConnections 在少于以下的地区可用 CodeBuild。您可以在中使用跨区域连接。 CodeBuild在可选区域中创建的连接不能用于其他区域。有关更多信息,请参阅 AWS CodeConnections 终端节点和限额

步骤 1:创建到 Bitbucket 的连接(控制台)

使用这些步骤使用 CodeBuild 控制台在 Bitbucket 中为您的项目添加连接。

要创建到 Bitbucket 的连接
注意

您可以使用其他 AWS 账户共享的连接,而不必在账户中创建或使用现有连接。有关更多信息,请参阅与 AWS 账户共享连接

第 2 步:授予 CodeBuild 项目 IAM 角色访问权限以使用连接

您可以授予 CodeBuild 项目 IAM 角色访问权限,以使用您的连接提供的 Bitbucket 代币。

授予 CodeBuild 项目 IAM 角色访问权限
  1. 按照项目的说明为您的 CodeBuild 项目创建 IAM 角色。CodeBuild 允许与其他人互动 AWS 务 CodeBuild

  2. 在按照说明进行操作的同时,将以下 IAM 策略添加到您的 CodeBuild 项目角色以授予连接访问权限。

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codeconnections:GetConnectionToken", "codeconnections:GetConnection" ], "Resource": [ "arn:aws:iam::*:role/Service*" ] } ] }

步骤 3:配置 CodeBuild 为使用新连接

您可以将连接配置为账户级别凭证,并在项目中使用。

AWS 管理控制台
要将连接配置为账户级凭证,请在 AWS 管理控制台
  1. 对于源提供商,选择 Bitbucket

  2. 对于凭证,执行以下操作之一:

    • 选择默认来源凭证,使用您账户的默认来源凭证应用于所有项目。

      1. 如果未连接到 Bitbucket,请选择管理默认来源凭证

      2. 对于凭证类型,选择CodeConnections

      3. 连接中,选择使用现有连接或创建新连接。

    • 选择自定义来源凭证,以便使用自定义来源凭证来覆盖您账户的默认设置。

      1. 对于凭证类型,选择CodeConnections

      2. 连接中,选择使用现有连接或创建新连接。

AWS CLI
要将连接配置为账户级凭证,请在 AWS CLI
  • 打开终端(Linux、macOS 或 Unix)或命令提示符(Windows)。使用运行import-source-credentials命令,--token为您的连接指定--auth-type--server-type、和。 AWS CLI

    使用以下命令:

    aws codebuild import-source-credentials --auth-type CODECONNECTIONS --server-type BITBUCKET --token <connection-arn>

有关在 CodeBuild 项目中设置多个令牌的更多信息,请参阅将多个令牌配置为源级别凭证

Bitbucket OAuth 轮换刷新代币

Atlassian 现在强制执行 Bitbucket OAuth 的一次性轮换刷新代币。每次使用刷新令牌时,Bitbucket 都会使其失效并返回一个新的令牌。有关更多信息,请参阅 Atlassian 开发者网站上的 Bitbucket OAuth 一次性刷新令牌 (CHANGE-3052)。

Secrets Manager-stored 凭证所需的操作

如果您将 Bitbucket OAuth 凭据存储在密钥管理器中,请为您的 CodeBuild 服务角色添加secretsmanager:PutSecretValue权限。拥有此权限后, CodeBuild 可以在每次令牌刷新后将更新后的刷新令牌写回您的密钥。没有此权限,令牌刷新后的下一次构建将失败。

以下示例 IAM 策略声明授予所需权限:

{ "Effect": "Allow", "Action": "secretsmanager:PutSecretValue", "Resource": "arn:aws:secretsmanager:*:*:secret:codebuild/*" }

如果您使用该 CodeBuild-managed 选项,则无需进行任何更改。 CodeBuild 自动处理代币轮换。

迁移到 AWS CodeConnections (推荐)

我们建议迁移到进行 Bit AWS CodeConnections bucket 集成。 AWS CodeConnections 使用单独的授权机制,轮换刷新令牌不会影响。您无需管理令牌或添加权限。

要迁移到 AWS CodeConnections,请完成以下步骤:

  1. 打开 开发人员工具控制台。选择设置连接,然后选择创建连接。选择 Bitbucket 作为提供商。

  2. 在您的 Bitbucket 工作空间中对 AWS CodeConnections 应用程序进行授权。这需要 Bitbucket 中的管理工作空间权限。

  3. 为您的 CodeBuild 服务角色添加以下权限:codeconnections:GetConnectionTokencodeconnections:GetConnection

  4. 将连接设置为您的默认凭据:

    aws codebuild import-source-credentials --auth-type CODECONNECTIONS --server-type BITBUCKET --token <connection-arn>
  5. 所有项目自动使用默认凭证开关。单独更新使用每个项目的自定义凭证的项目。使用控制台或 UpdateProject API。