

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

# Bitbucket 应用程序连接
<a name="connections-bitbucket-app"></a>

你可以使用 Bitbucket 来 CodeBuild连接。通过 [Amazon CodeConnections](https://docs.amazonaws.cn/dtconsole/latest/userguide/welcome-connections.html) 支持 Bitbucket 应用程序连接。

**注意**  
CodeConnections 在少于以下的地区可用 CodeBuild。您可以在中使用跨区域连接。 CodeBuild在可选区域中创建的连接不能用于其他区域。有关更多信息，请参阅 [Amazon CodeConnections 终端节点和限额](https://docs.amazonaws.cn/general/latest/gr/codestar_connections.html)。

**Topics**
+ [步骤 1：创建到 Bitbucket 的连接（控制台）](#connections-bitbucket-console)
+ [第 2 步：授予 CodeBuild 项目 IAM 角色访问权限以使用连接](#connections-bitbucket-role-access)
+ [步骤 3：配置 CodeBuild 为使用新连接](#connections-bitbucket-account-credential)
+ [Bitbucket OAuth 轮换刷新代币](#connections-bitbucket-migrate-from-oauth)

## 步骤 1：创建到 Bitbucket 的连接（控制台）
<a name="connections-bitbucket-console"></a>

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

**要创建到 Bitbucket 的连接**
+ 按照《开发人员工具用户指南》**中的说明来[创建与 Bitbucket 的连接](https://docs.amazonaws.cn/dtconsole/latest/userguide/connections-create-bitbucket.html)。

**注意**  
您可以使用其他 Amazon 账户共享的连接，而不必在账户中创建或使用现有连接。有关更多信息，请参阅与 Amazon 账户[共享连接](https://docs.amazonaws.cn/dtconsole/latest/userguide/connections-share.html)。

## 第 2 步：授予 CodeBuild 项目 IAM 角色访问权限以使用连接
<a name="connections-bitbucket-role-access"></a>

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

**授予 CodeBuild 项目 IAM 角色访问权限**

1. 按照项目的说明为您的 CodeBuild 项目创建 IAM 角色。[CodeBuild 允许与其他人互动 Amazon 务](setting-up-service-role.md) CodeBuild 

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

------
#### [ JSON ]

****  

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

------

## 步骤 3：配置 CodeBuild 为使用新连接
<a name="connections-bitbucket-account-credential"></a>

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

------
#### [ Amazon Web Services 管理控制台 ]

**要将连接配置为账户级凭证，请在 Amazon Web Services 管理控制台**

1. 对于**源提供商**，选择 **Bitbucket**。

1. 对于**凭证**，执行以下操作之一：
   + 选择**默认来源凭证**，使用您账户的默认来源凭证应用于所有项目。

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

     1. 对于**凭证类型**，选择**CodeConnections**。

     1. 在**连接**中，选择使用现有连接或创建新连接。
   + 选择**自定义来源凭证**，以便使用自定义来源凭证来覆盖您账户的默认设置。

     1. 对于**凭证类型**，选择**CodeConnections**。

     1. 在**连接**中，选择使用现有连接或创建新连接。

------
#### [ Amazon CLI ]

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

  使用以下命令：

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

------

有关在 CodeBuild 项目中设置多个令牌的更多信息，请参阅[将多个令牌配置为源级别凭证](multiple-access-tokens.md#asm-source-credential)。

## Bitbucket OAuth 轮换刷新代币
<a name="connections-bitbucket-migrate-from-oauth"></a>

Atlassian 现在强制执行 Bitbucket OAuth 的一次性轮换刷新代币。每次使用刷新令牌时，Bitbucket 都会使其失效并返回一个新的令牌。有关更多信息，请参阅 Atlassian 开发者[网站上的 ](https://developer.atlassian.com/cloud/bitbucket/changelog/#CHANGE-3052) Bitbucket OAuth 一次性刷新令牌 (CHANGE-3052)。

### Secrets Manager-stored 凭证所需的操作
<a name="connections-bitbucket-oauth-sm-action"></a>

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

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

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

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

### 迁移到 Amazon CodeConnections （推荐）
<a name="connections-bitbucket-migrate-to-codeconnections"></a>

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

要迁移到 Amazon CodeConnections，请完成以下步骤：

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

1. 在您的 Bitbucket 工作空间中对 Amazon CodeConnections 应用程序进行授权。这需要 Bitbucket 中的 “*管理工作空间” * 权限。

1. 为您的 CodeBuild 服务角色添加以下权限：`codeconnections:GetConnectionToken`和`codeconnections:GetConnection`。

1. 将连接设置为您的默认凭据：

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

1. 所有项目自动使用默认凭证开关。单独更新使用每个项目的自定义凭证的项目。使用控制台或 `UpdateProject` API。