

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

# Bitbucket 应用程序密码或访问令牌
<a name="access-tokens-bitbucket"></a>

## 先决条件
<a name="access-tokens-bitbucket-prerequisites"></a>

在开始之前，您必须向 Bitbucket 应用程序密码或访问令牌添加适当的权限范围。

对于 Bitbucket，您的应用程序密码或访问令牌必须具有以下权限范围。
+ **repository:read**：授予对授权用户有权访问的所有存储库的读取访问权限。
+ **pullrequest:read**：授予对拉取请求的读取访问权限。如果您的项目具有 Bitbucket webhook，则您的应用程序密码或访问令牌必须具有此权限范围。
+ **Webhook**：授予对 Webhook 的访问权限。如果您的项目具有 webhook 操作，则您的应用程序密码或访问令牌必须具有此权限范围。
+ **账户**：授予对用户账户信息的读取权限。

有关更多信息，请参阅 [Bitbucket Cloud REST API 的作用域](https://developer.atlassian.com/cloud/bitbucket/bitbucket-cloud-rest-api-scopes/)和 Bitbucket [OAuth 网站上的 Bitbucket Clou](https://confluence.atlassian.com/bitbucket/oauth-on-bitbucket-cloud-238027431.html)

## 使用应用程序密码连接 Bitbucket（控制台）
<a name="access-tokens-bitbucket-password-console"></a>

要在控制台中使用应用程序密码将您的项目连接到 Bitbucket，请在创建项目时执行以下操作。有关信息，请参阅[创建构建项目（控制台）](create-project.md#create-project-console)。

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

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

     1. 如果未连接到 Bitbucket，请选择**管理账户凭证**。

     1. 对于**凭证类型**，选择**应用程序密码**。
   + 如果您选择为**服务**使用账户级别凭证，请选择要用于存储令牌的服务，然后执行以下操作：

     1. 如果您选择使用 **Secrets Manager**，则可以选择使用现有密钥连接或创建新密钥，然后选择**保存**。有关如何创建新密钥的更多信息，请参阅[在 Secrets Manager 密钥中创建和存储令牌](asm-create-secret.md)。

     1. 如果您选择使用 **CodeBuild**，请输入您的 Bitbucket 用户名和应用程序密码，然后选择 “**保存**”。
   + 选择**仅为此项目使用覆盖凭证**，以便使用自定义源凭证来覆盖账户的凭证设置。

     1. 从填充的凭证列表中，选择**应用程序密码**下的选项之一。

     1. 您也可以通过在描述中选择**创建新的应用程序密码连接**来创建新的应用程序密码令牌。

## 使用访问令牌连接 Bitbucket（控制台）
<a name="access-tokens-bitbucket-console"></a>

要在控制台中使用访问令牌将您的项目连接到 Bitbucket，请在创建项目时执行以下操作。有关信息，请参阅[创建构建项目（控制台）](create-project.md#create-project-console)。

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

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

     1. 如果未连接到 Bitbucket，请选择**管理账户凭证**。

     1. 对于**凭证类型**，选择**个人访问令牌**。
   + 如果您选择为**服务**使用账户级别凭证，请选择要用于存储令牌的服务，然后执行以下操作：

     1. 如果您选择使用 **Secrets Manager**，则可以选择使用现有密钥连接或创建新密钥，然后选择**保存**。有关如何创建新密钥的更多信息，请参阅[在 Secrets Manager 密钥中创建和存储令牌](asm-create-secret.md)。

     1. 如果您选择使用 **CodeBuild**，请输入您的 Bitbucket 个人访问令牌，然后选择 “**保存**”。
   + 选择**仅为此项目使用覆盖凭证**，以便使用自定义源凭证来覆盖账户的凭证设置。

     1. 从填充的凭证列表中，选择**个人访问令牌**下的选项之一。

     1. 您也可以通过在描述中选择**创建新的个人访问令牌连接**来创建新的个人访问令牌。

## 使用应用程序密码或访问令牌连接 Bitbucket（CLI）
<a name="access-tokens-bitbucket-cli"></a>

按照以下步骤使用应用程序密码或访问令牌将您的项目连接到 Bitbucket。 AWS CLI 有关 AWS CLI 搭配使用的信息 AWS CodeBuild，请参阅[命令行参考](cmd-ref.md)。

1. 运行 **import-source-credentials** 命令：

   ```
   aws codebuild import-source-credentials --generate-cli-skeleton
   ```

   输出中将显示 JSON 格式的数据。将数据复制到安装的本地计算机或实例上某个位置的文件（例如`{{import-source-credentials.json}}`）。 AWS CLI 按照下面所示修改复制的数据，并保存您的结果。

   ```
   {
       "serverType": "BITBUCKET",
       "authType": "{{auth-type}}",
       "shouldOverwrite": "{{should-overwrite}}",
       "token": "{{token}}",
       "username": "{{username}}"
       }
   ```

   替换以下内容：
   + {{server-type}}：必填值。用于此凭证的源提供商。有效值为 GITHUB、BITBUCKET、GITHUB\_ENTERPRISE、GITLAB 和 GITLAB\_SELF\_MANAGED。
   + {{auth-type}}：必填值。用于连接到存储库的身份验证类型。有效值为 OAUTH、BASIC\_AUTH、PERSONAL\_ACCESS\_TOKEN、CODECONNECTIONS 和 SECRETS\_MANAGER。对于 GitHub，仅允许使用个人访问令牌。对于 Bitbucket 应用程序密码，仅允许 BASIC\_AUTH。
   + {{should-overwrite}}: 可选值。设置为 `false` 可防止覆盖存储库源凭证。设置为 `true` 可覆盖存储库源凭证。默认值为 `true`。
   + {{token}}：必填值。对于 GitHub 我们的 GitHub 企业服务器，这是个人访问令牌。对于 Bitbucket，这是个人访问令牌或应用程序密码。对于身份验证类型 CODECONNECTIONS，这是连接 ARN。对于身份验证类型 SECRETS\_MANAGER，这是密钥 ARN。
   + {{username}}: 可选值。对于 GitHub 和 GitHub 企业服务器源提供程序，将忽略此参数。

1. 要使用应用程序密码或访问令牌连接您的账户，请切换到包含您在步骤 1 中保存的 `import-source-credentials.json` 文件的目录，然后重新运行 **import-source-credentials** 命令。

   ```
   aws codebuild import-source-credentials --cli-input-json file://import-source-credentials.json
   ```

   JSON 格式的数据将使用 Amazon 资源名称 (ARN) 显示在输出中。

   ```
   {
       "arn": "arn:aws:codebuild:{{region}}:{{account-id}}:token/{{server-type}}"
       }
   ```
**注意**  
如果您再次使用相同的服务器类型和身份验证类型运行 **import-source-credentials** 命令，则会更新存储的访问令牌。

   使用应用程序密码关联账户后`create-project`，您可以使用创建 CodeBuild 项目。有关更多信息，请参阅 [创建构建项目 (AWS CLI)](create-project.md#create-project-cli)。

1. 要查看连接的应用程序密码或访问令牌，请运行 **list-source-credentials** 命令。

   ```
   aws codebuild list-source-credentials
   ```

   JSON 格式的 `sourceCredentialsInfos` 对象将显示在输出中：

   ```
   {
           "sourceCredentialsInfos": [
               {
                   "authType": "{{auth-type}}",
                   "serverType": "BITBUCKET", 
                   "arn": "{{arn}}"
               }
           ]
       }
   ```

   `sourceCredentialsObject` 包含连接的源凭证信息的列表：
   + `authType` 是凭证使用的身份验证类型。这可以是 `OAUTH`、`BASIC_AUTH`、`PERSONAL_ACCESS_TOKEN`、`CODECONNECTIONS` 或 `SECRETS_MANAGER`。
   + `serverType` 是源提供商类型。这可以是 `GITHUB`、`GITHUB_ENTERPRISE`、`BITBUCKET`、`GITLAB` 或 `GITLAB_SELF_MANAGED`。
   + `arn` 是令牌的 ARN。

1. 要断开与源提供商的连接并删除其应用程序密码或访问令牌，请使用其 ARN 运行 **delete-source-credentials** 命令。

   ```
   aws codebuild delete-source-credentials --arn {{arn-of-your-credentials}}
   ```

   将返回 JSON 格式的数据，并带有已删除凭证的 ARN。

   ```
   {
       "arn": "arn:aws:codebuild:{{region}}:{{account-id}}:token/{{server-type}}"
       }
   ```