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