

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

# 在 Secrets Manager 密钥中创建和存储令牌
<a name="asm-create-secret"></a>

如果您选择使用 Secrets Manager 存储访问令牌，则可以使用现有的秘密连接或创建新的密钥。要创建新密钥，请执行以下操作：

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

**在中创建密钥管理器密钥 Amazon Web Services 管理控制台**

1. 对于**来源提供商**，选择 ** Bitbucket ** 或 E ** GitHub nterprise **。** GitHub **

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

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

     1. 对于**凭证类型**，请选择除以外的凭证类型。** CodeConnections **

     1. 对于**服务**，选择 **Secrets Manager**，对于**密钥**，选择**新密钥**。

     1. 在**密钥名称**中，输入密钥的名称。

     1. （可选）在**密钥描述 - 可选**中，为密钥输入描述。

     1. 根据您选择的来源提供商，输入您的令牌或用户名和应用程序密码，然后选择**保存**。要获得 Bitbucket API 代币，请改为输入您的 Atlassian 账户电子邮件地址和 API 令牌。
   + 选择**自定义来源凭证**，以便使用自定义来源凭证来覆盖您账户的默认设置。

     1. 对于**凭证类型**，请选择除以外的凭证类型。** CodeConnections **

     1. 在**连接**中，选择**创建密钥**。

     1. 在**密钥名称**中，输入密钥的名称。

     1. （可选）在**密钥描述 - 可选**中，为密钥输入描述。

     1. 根据您选择的源提供商，输入您的令牌或用户名和应用程序密码，然后选择**创建**。要获得 Bitbucket API 代币，请改为输入您的 Atlassian 账户电子邮件地址和 API 令牌。

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

**在中创建密钥管理器密钥 Amazon CLI**
+ 打开终端（Linux、macOS 或 Unix）或命令提示符（Windows）。使用运行 Amazon CLI 密钥管理器**create-secret**命令。

  ```
  aws secretsmanager create-secret --region {{<aws-region>}} \
              --name '{{<secret-name>}}' \
              --description '{{<secret-description>}}' \
              --secret-string '{
                  "ServerType":"{{<server-type>}}",
                  "AuthType":"{{<auth-type>}}",
                  "Token":"{{<token>}}"
                  }' \
              --tags Key=codebuild:source,Value='' \
                  Key=codebuild:source:type,Value={{<type>}} \
                  Key=codebuild:source:provider,Value={{<provider>}}
  ```

   CodeBuild 接受的 Secrets Manager 密钥必须与 CodeBuild 项目位于相同的账户和 Amazon 区域中，并且必须采用以下 JSON 格式：

  ```
  {
              "ServerType": ServerType,
              "AuthType: AuthType,
              "Token": string,
              "Username": string // Optional and is only used for Bitbucket app password or API token
          }
  ```


<table>
<thead>
  <tr><th>字段</th><th>有效值</th><th>说明</th></tr>
</thead>
<tbody>
  <tr><td>ServerType</td><td>GITHUB<br />GITHUB_ENTERPRISE<br />BITBUCKET</td><td>您的 Secrets Manager 密钥的第三方源提供商。</td></tr>
  <tr><td>AuthType</td><td>PERSONAL_ACCESS_TOKEN<br />BASIC_AUTH</td><td>凭证使用的访问令牌类型。对于 GitHub，只有 PERSONAL_ACCESS_TOKEN 有效。BASIC_AUTH 仅对 Bitbucket 应用程序密码或 API 令牌有效。</td></tr>
  <tr><td>令牌</td><td>{{string}}</td><td>对于 GitHub GitHub 企业版，这是个人访问令牌。对于 Bitbucket 来说，这是访问令牌、Bitbucket 应用程序密码或 Bitbucket API 令牌。</td></tr>
  <tr><td>用户名</td><td>{{string}}</td><td> AuthType 是 BASIC_AUTH 时的 Bitbucket 用户名。如果您使用 Bitbucket API 代币，则这是与您的 Atlassian 账户关联的电子邮件地址。对于其他类型的源提供商，此参数无效。</td></tr>
</tbody>
</table>


  此外，在密钥上 CodeBuild 使用以下资源标签，以确保在创建或编辑项目时可以轻松选择密钥。


<table>
<thead>
  <tr><th>标签密钥</th><th>标签值</th><th>说明</th></tr>
</thead>
<tbody>
  <tr><td>codebuild:source:provider</td><td>GitHub<br />github_enterprise<br />bitbucket</td><td>告诉这个秘密是为 CodeBuild 哪个提供商准备的。</td></tr>
  <tr><td>codebuild:source:type</td><td>personal_access_token<br />basic_auth</td><td>告知 CodeBuild 此机密中的访问令牌的类型。</td></tr>
</tbody>
</table>


------