

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

# Jenkins API 權杖
<a name="mes-partner-JenkinsApiToken"></a>

## 秘密值欄位
<a name="w2aac27c11c25b3"></a>

以下是必須包含在 Secrets Manager 秘密中的欄位：

```
{
  "apiToken": "{{API token value}}",
  "tokenUuid": "{{token UUID}}",
  "username": "{{user that owns the token}}",
  "jenkinsUrl": "https://jenkins.example.com"
}
```

apiToken  
Jenkins API 字符值 (32-34 個字元的十六進位字串）。輪換程序會更新此欄位。

tokenUuid  
API 字符的通用唯一識別符 (UUID)。輪換使用此 UUID 來撤銷舊字符，並在每次輪換後以新字符的 UUID 更新此欄位。

使用者名稱  
擁有權杖Jenkins的使用者。

jenkinsUrl  
您的Jenkins執行個體 URL （例如 `https://jenkins.example.com`)。URL 必須使用 HTTPS，且結尾不得為結尾斜線。

## 秘密中繼資料欄位
<a name="w2aac27c11c25b5"></a>

以下是 Jenkins API Token 的中繼資料欄位：

```
{
  "adminSecretArn": "arn:aws:secretsmanager:us-east-1:111122223333:secret:{{JenkinsAdmin}}"
}
```

adminSecretArn  
（選用） 包含管理員字符之 JenkinsApiToken 類型的秘密的 Amazon Resource Name (ARN)。管理員字符可以為目標使用者產生和撤銷 API 字符。如果省略，字符會自行輪換 （自我輪換）。

## 用量流程
<a name="w2aac27c11c25b7"></a>

此輪換支援單一秘密 （自我輪換） 和兩個秘密 （管理員輔助） 架構。當您提供 時`adminSecretArn`，管理員字符會產生和撤銷目標使用者的字符。如果您省略它，目前的權杖會自行輪換。

若要建立秘密，請使用 [CreateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html) API 呼叫。將秘密值設定為上述欄位，並將秘密類型設定為 JenkinsApiToken。若要設定輪換，請使用 [RotateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_RotateSecret.html) API 呼叫。在 RotateSecret 呼叫中，提供角色 ARN，授予服務輪換秘密的許可。如需許可政策範例，請參閱 [安全與許可](mes-security.md)。使用管理員輔助輪換時，明確授予輪換角色對管理員秘密 ARN 的存取權。

在輪換期間，驅動程式會驗證目前的權杖，並從 取得跨網站請求偽造 (CSRF) 記錄Jenkins。接著會產生新的 API 字符，並將其儲存為待定版本。它會針對 Jenkins API 驗證新權杖，將其提升為最新版本，然後由其 撤銷舊權杖`tokenUuid`。使用 Secrets Manager 快取程式庫的應用程式會在下次重新整理時取得新的權杖。

Jenkins 是由客戶託管，因此您的Jenkins執行個體必須透過 HTTPS 從 Secrets Manager 輪換服務連線。輪換呼叫來自 AWS受管字首清單 `com.amazonaws.{{region}}.secretsmanager-managed-external-secrets`。允許執行個體安全群組或防火牆上此字首清單的傳入存取，並確保執行個體呈現公開信任的 TLS 憑證。如需詳細資訊，請參閱《*Amazon VPC 使用者指南*》中的 [AWS受管字首清單](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-aws-managed-prefix-lists.html)。不支援無法透過公有網際網路連線的執行個體。