本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Jenkins API 代币
秘密值字段
以下是密钥管理器密钥中必须包含的字段:
{
"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 且不得以斜杠结尾。
机密元数据字段
以下是 Jenkins API 令牌的元数据字段:
{ "adminSecretArn": "arn:aws:secretsmanager:us-east-1:111122223333:secret:JenkinsAdmin" }
- 管理员 SecretArn
-
(可选)包含管理员令牌的机密类型 JenkinsApiToken 的 Amazon 资源名称 (ARN)。管理员令牌可以为目标用户生成和撤销 API 令牌。如果省略,则令牌会自行旋转(自旋转)。
使用流程
这种轮换支持单机密(自轮换)和双机密(管理员辅助)架构。当您提供时adminSecretArn,管理员令牌会生成并撤消目标用户的令牌。如果省略它,则当前令牌会自行旋转。
要创建您的密钥,请使用 CreateSecret API 调用。将密钥值设置为上述字段,并将密钥类型设置为 JenkinsApiToken。要配置轮换,请使用 RotateSecret API 调用。在 RotateSecret 通话中,提供一个角色 ARN,该角色授予服务轮换密钥的权限。有关权限策略的示例,请参阅安全和权限。使用管理员辅助轮换时,明确授予轮换角色对管理员密钥 ARN 的访问权限。
在轮换期间,驱动程序会验证当前令牌并从中获取 Cross-Site 请求伪造 (CSRF) 碎屑。Jenkins然后,它生成一个新的 API 令牌并将其存储为待处理版本。它根据 Jenkins API验证新令牌,将其升级为当前令牌,然后通过其撤销旧令牌。tokenUuid使用 Secrets Manager 缓存库的应用程序在下次刷新时会获取新令牌。
Jenkins是客户托管的,因此必须能够通过 HTTPS 从密钥管理器轮换服务访问您的Jenkins实例。轮换调用源自 AWS-managed 前缀列表。com.amazonaws.允许从您的实例的安全组或防火墙上的此前缀列表进行入站访问,并确保该实例提供公开信任的 TLS 证书。有关更多信息,请参阅《Amazon VPC 用户指南》中的 AWS托管的前缀列表。不支持无法通过公共互联网访问的实例。region.secretsmanager-managed-external-secrets