

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

# Jenkins API 代币
<a name="mes-partner-JenkinsApiToken"></a>

## 秘密值字段
<a name="w2aac27c11c25b3"></a>

以下是密钥管理器密钥中必须包含的字段：

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

apiToken  
JenkinsAPI 令牌值（一个 32-34 个字符的十六进制字符串）。轮换过程会更新此字段。

TokenUID  
API 令牌的通用唯一标识符 (UUID)。Rotation 使用此 UUID 撤消旧令牌，并在每次轮换后使用新令牌的 UUID 更新此字段。

username  
拥有令牌的Jenkins用户。

JenkinSurl  
您的Jenkins实例 URL（例如`https://jenkins.example.com`）。该网址必须使用 HTTPS 且不得以斜杠结尾。

## 机密元数据字段
<a name="w2aac27c11c25b5"></a>

以下是 Jenkins API 令牌的元数据字段：

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

管理员 SecretArn  
（可选）包含管理员令牌的机密类型 JenkinsApiToken 的 Amazon 资源名称 (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 的访问权限。

在轮换期间，驱动程序会验证当前令牌并从中获取 Cross-Site 请求伪造 (CSRF) 碎屑。Jenkins然后，它生成一个新的 API 令牌并将其存储为待处理版本。它根据 Jenkins API验证新令牌，将其升级为当前令牌，然后通过其撤销旧令牌。`tokenUuid`使用 Secrets Manager 缓存库的应用程序在下次刷新时会获取新令牌。

Jenkins是客户托管的，因此必须能够通过 HTTPS 从密钥管理器轮换服务访问您的Jenkins实例。轮换调用源自 AWS-managed 前缀列表。`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)。不支持无法通过公共互联网访问的实例。