

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# CodeBuild 中的 Bitbucket 存取
<a name="access-tokens-bitbucket-overview"></a>

對於 Bitbucket，您可以使用存取字符、應用程式密碼、OAuth 應用程式或 Bitbucket 連線來存取來源提供者。

**Topics**
+ [Bitbucket 應用程式連線](connections-bitbucket-app.md)
+ [Bitbucket 應用程式密碼或存取權杖](access-tokens-bitbucket.md)
+ [Bitbucket OAuth 應用程式](oauth-app-bitbucket.md)

# Bitbucket 應用程式連線
<a name="connections-bitbucket-app"></a>

您可以使用 Bitbucket 與 CodeBuild 連線。透過 支援 Bitbucket 應用程式連線[AWS CodeConnections](https://docs.aws.amazon.com/dtconsole/latest/userguide/welcome-connections.html)。

**注意**  
CodeConnections 可在比 CodeBuild 更少的區域中使用。您可以在 CodeBuild 中使用跨區域連線。在選擇加入區域中建立的連線無法在其他區域中使用。如需詳細資訊，請參閱 [AWS CodeConnections 端點和配額](https://docs.aws.amazon.com/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)

## 步驟 1：建立與 Bitbucket 的連線 （主控台）
<a name="connections-bitbucket-console"></a>

使用這些步驟來使用 CodeBuild 主控台為 Bitbucket 中的專案新增連線。

**建立連至 Bitbucket 的連線**
+ 請遵循*開發人員工具使用者指南*中[建立 Bitbucket 連線](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create-bitbucket.html)的說明。

**注意**  
您可以使用從另一個帳戶共用的連線，而不是在帳戶中建立或使用現有的連線 AWS 。如需詳細資訊，請參閱[與 AWS 帳戶共用連線](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-share.html)。

## 步驟 2：授予 CodeBuild 專案 IAM 角色存取權以使用連線
<a name="connections-bitbucket-role-access"></a>

您可以授予 CodeBuild 專案 IAM 角色存取權，以使用連線提供的 Bitbucket 權杖。

**授予 CodeBuild 專案 IAM 角色存取權**

1. 遵循 CodeBuild 專案的 指示，為您的 CodeBuild 專案建立 [允許 CodeBuild 與其他 AWS 服務互動](setting-up-service-role.md) IAM 角色。

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>

您可以將連線設定為帳戶層級登入資料，並在專案中使用它。

------
#### [ AWS 管理主控台 ]

**若要在 中將連線設定為帳戶層級登入資料 AWS 管理主控台**

1. 對於 **Source provider (來源供應商)**，選擇 **Bitbucket**。

1. 對於**登入**資料，請執行下列其中一項操作：
   + 選擇**預設來源登入**資料，以使用您帳戶的預設來源登入資料套用至所有專案。

     1. 如果您未連線至 Bitbucket，請選擇**管理預設來源憑證**。

     1. 針對**登入資料類型**，選擇 **CodeConnections**。

     1. 在**連線**中，選擇使用現有的連線或建立新的連線。
   + 選擇**自訂來源登入**資料，以使用自訂來源登入資料覆寫您帳戶的預設設定。

     1. 針對**登入資料類型**，選擇 **CodeConnections**。

     1. 在**連線**中，選擇使用現有的連線或建立新的連線。

------
#### [ AWS CLI ]

**若要在 中將連線設定為帳戶層級登入資料 AWS CLI**
+ 開啟終端機 (Linux、macOS 或 Unix) 或命令提示 (Windows)。使用 AWS CLI 執行 **import-source-credentials**命令，`--token`為您的連線指定 `--auth-type`、 `--server-type`和 。

  使用下列命令：

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

------

如需在 CodeBuild 專案中設定多個字符的詳細資訊，請參閱 [將多個字符設定為來源層級登入資料](multiple-access-tokens.md#asm-source-credential)。

# 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 網站上的 [Bitbucket Cloud REST API 的範圍](https://developer.atlassian.com/cloud/bitbucket/bitbucket-cloud-rest-api-scopes/)和 [Bitbucket Cloud 上的 OAuth](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. 對於 **Source provider (來源供應商)**，選擇 **Bitbucket**。

1. 對於**登入**資料，請執行下列其中一項操作：
   + 選擇使用帳戶登入資料，將帳戶的預設來源登入資料套用至所有專案。

     1. 如果您未連線至 Bitbucket，請選擇**管理帳戶登入**資料。

     1. 針對**登入資料類型**，選擇**應用程式密碼**。
   + 如果您選擇使用 **Service** 的帳戶層級登入資料，請選擇您要用來存放字符的服務，並執行下列動作：

     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. 對於 **Source provider (來源供應商)**，選擇 **Bitbucket**。

1. 對於**登入**資料，請執行下列其中一項操作：
   + 選擇使用帳戶登入資料，將帳戶的預設來源登入資料套用至所有專案。

     1. 如果您未連線至 Bitbucket，請選擇**管理帳戶登入**資料。

     1. 針對**登入資料類型**，選擇**個人存取字符**。
   + 如果您選擇使用 **Service** 的帳戶層級登入資料，請選擇您要用來存放字符的服務，並執行下列動作：

     1. 如果您選擇使用 **Secrets Manager**，您可以選擇使用現有的秘密連線或建立新的秘密，然後選擇**儲存**。如需如何建立新的秘密的詳細資訊，請參閱 [在 Secrets Manager 秘密中建立和存放權杖](asm-create-secret.md)。

     1. 如果您選擇使用 **CodeBuild**，請輸入您的 Bitbucket 個人存取字符，然後選擇**儲存**。
   + 選取**僅使用此專案的覆寫登入**資料來使用自訂來源登入資料來覆寫帳戶的登入資料設定。

     1. 從填入的登入資料清單中，選擇**個人存取字符**下的其中一個選項。

     1. 您也可以在描述中選取建立新的個人存取權杖**連線，以建立新的個人存取權杖**。

## 使用應用程式密碼或存取權杖 (CLI) 連接 Bitbucket
<a name="access-tokens-bitbucket-cli"></a>

請依照下列步驟使用 AWS CLI ，使用應用程式密碼或存取權杖將您的專案連線至 Bitbucket。如需 AWS CLI 搭配 使用 的詳細資訊 AWS CodeBuild，請參閱 [命令列參考](cmd-ref.md)。

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

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

   即會在輸出中顯示 JSON 格式化資料。將資料複製到 AWS CLI 安裝 的本機電腦或執行個體位置中的檔案 （例如 `import-source-credentials.json`)。如下所示修改複製的資料，並儲存您的結果。

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

   取代以下項目：
   + *server-type*：必要值。用於此登入資料的來源供應商。有效值為 GITHUB、BITBUCKET、GITHUB\$1ENTERPRISE、GITLAB 和 GITLAB\$1SELF\$1MANAGED。
   + *auth-type*：必要值。用於連線至儲存庫的身分驗證類型。有效值為 OAUTH、BASIC\$1AUTH、Personal\$1ACCESS\$1TOKEN、CODECONNECTIONS 和 SECRETS\$1MANAGER。對於 GitHub，僅允許使用 Personal\$1ACCESS\$1TOKEN。BASIC\$1AUTH 僅允許使用 Bitbucket 應用程式密碼。
   + *should-overwrite*：選用值。設為 `false` 可防止覆寫儲存庫來源登入資料。設為 `true` 可覆寫儲存庫來源登入資料。預設值為 `true`。
   + *token*：必要值。對於 GitHub 或 GitHub Enterprise Server，這是個人存取字符。對於 Bitbucket，這是個人存取字符或應用程式密碼。對於身分驗證類型 CODECONNECTIONS，這是連線 ARN。對於身分驗證類型 SECRETS\$1MANAGER，這是秘密 ARN。
   + *username*：選用值。GitHub 和 GitHub Enterprise Server 來源提供者會忽略此參數。

1. 若要使用應用程式密碼或存取字符來連接您的帳戶，請切換到包含您在步驟 1 中儲存之`import-source-credentials.json`檔案的目錄，然後再次執行 **import-source-credentials**命令。

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

   JSON 格式的資料會出現在 Amazon Resource Name (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`、`CODECONNECTIONS`、 `PERSONAL_ACCESS_TOKEN`或 `SECRETS_MANAGER`。
   + `serverType` 是來源供應商的類型。這可以是 `GITHUB`、`GITHUB_ENTERPRISE`、`GITLAB`、 `BITBUCKET`或 `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"
       }
   ```

# Bitbucket OAuth 應用程式
<a name="oauth-app-bitbucket"></a>

## 使用 OAuth 連接 Bitbucket （主控台）
<a name="oauth-app-bitbucket-console"></a>

若要使用 主控台，使用 OAuth 應用程式將專案連線至 Bitbucket，請在建立專案時執行下列動作。如需相關資訊，請參閱[建立組建專案 (主控台)](create-project.md#create-project-console)。

1. 對於 **Source provider (來源供應商)**，選擇 **Bitbucket**。

1. 對於**登入**資料，請執行下列其中一項操作：
   + 選擇使用帳戶登入資料，將帳戶的預設來源登入資料套用至所有專案。

     1. 如果您未連線至 Bitbucket，請選擇**管理帳戶登入**資料。

     1. 針對**登入資料類型**，選擇 **OAuth 應用程式**。
   + 如果您選擇使用 **Service** 的帳戶層級登入資料，請選擇您要用來存放字符的服務，並執行下列動作：

     1. 如果您選擇使用 **Secrets Manager**，您可以選擇使用現有的秘密連線或建立新的秘密，然後選擇**儲存**。如需如何建立新的秘密的詳細資訊，請參閱 [在 Secrets Manager 秘密中建立和存放權杖](asm-create-secret.md)。

     1. 如果您選擇使用 **CodeBuild**，然後選擇**儲存**。
   + 選取**僅使用此專案的覆寫登入**資料來使用自訂來源登入資料來覆寫帳戶的登入資料設定。

     1. 從填入的登入資料清單中，選擇 **OAuth 應用程式**下的其中一個選項。

     1. 您也可以在描述中選取建立新的 Oauth 應用程式字符連線，以建立新的 OAuth 應用程式字符。 ****

若要檢閱授權的 OAuth 應用程式，請導覽至 Bitbucket [上的應用程式授權](https://bitbucket.org/account/settings/app-authorizations/)，並確認`AWS CodeBuild (region)`已列出名為 的應用程式。