本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
GitLab 访问令牌
秘密值字段
以下是 Secrets Manager 密钥中必须包含的字段:
{
"token": "GitLab access token value",
"tokenId": "numeric token ID",
"gitlabUrl": "GitLab instance URL",
"projectId": "project ID (optional)",
"groupId": "group ID (optional)"
}
- token
-
GitLab 访问令牌值(开头为
glpat-)。这是被轮换的字段。 - tokenID
-
数字令牌 ID。使用新代币的 ID 更新了每次轮换。
- gitlabUrl
-
您的 GitLab 实例 URL(例如,
https://gitlab.com)。必须使用 HTTPS。 - projectId
-
(可选)数字项目 ID。仅提供项目访问令牌。
- groupId
-
(可选)数字群组 ID。仅提供群组访问令牌。
机密元数据字段
以下是 GitLab 访问令牌的元数据字段:
{ "adminSecretArn": "arn:aws:secretsmanager:us-east-1:111122223333:secret:GitLabAdmin", "daysToExpiry": "30 (optional)" }
- 管理员 SecretArn
-
(可选)包含用于轮换此密钥的 API 范围 GitLab 访问令牌类型的密钥 GitLabAccessToken 的 Amazon 资源名称 (ARN)。如果省略,则令牌会自行旋转(需要
api或self_rotate作用域)。对于项目令牌,管理员令牌需要在项目中扮演维护者角色。对于群组令牌,它需要在群组中扮演所有者角色。 - 天 ToExpiry
-
(可选)距离新令牌到期的天数 (1—365)。映射到 GitLab 旋转 API 中的
expires_at字段。如果省略,则新令牌将继承实例的默认过期时间。
使用流程
此轮换支持单密架构(自轮换)和双密架构(管理员协助)。令牌范围由可选projectId和groupId字段确定。如果两个字段都不存在,则该令牌是个人访问令牌。如果存在,projectId则该令牌为项目访问令牌。如果存在,groupId则该令牌为群组访问令牌。
使用CreateSecret通话创建您的密钥。将密码值设置为上述字段,并将密钥类型设置为 GitLabAccessToken。要配置轮换,请使用RotateSecret呼叫。提供一个角色 ARN,该角色向服务授予轮换密钥所需的权限。有关权限策略的示例,请参阅安全和权限。
使用管理员辅助轮换时,管理员密钥也是类型的。GitLabAccessToken您必须明确提供轮换角色对管理员密钥的访问权限。为此,您可以直接在角色策略中添加仅限于管理员密钥 ARN 的声明。
在轮换期间,驱动程序会验证当前令牌是否处于活动状态。然后它调用 rotat GitLab e 端点,该端点以原子方式创建一个新令牌并撤消旧的令牌。Secrets Manager 将新的代币值和 ID 存储为 AWSPENDING,通过 GitLab API 对其进行验证,然后将其提升到 AWSCURRENT。使用 Secrets Manager 缓存库的应用程序在下次刷新时会自动获取新令牌。