View a markdown version of this page

GitLab 访问令牌 - AWS Secrets Manager

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

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 访问令牌。如果省略,则令牌会自行旋转(要求apiself_rotate范围)。对于项目令牌,管理员令牌需要在项目中扮演维护者角色。对于群组令牌,它需要群组的所有者角色。

天 ToExpiry

(可选)距离新令牌到期的天数(1—365)。映射到 rotate API GitLab 中的expires_at字段。如果省略,则新令牌继承实例的默认到期时间。

使用流程

这种轮换支持单机密(自轮换)和双机密(管理员辅助)架构。令牌范围由可选projectIdgroupId字段确定。如果两个字段都不存在,则该令牌是个人访问令牌。如果存在,projectId则该令牌是项目访问令牌。如果存在,groupId则该令牌是群组访问令牌。

使用CreateSecret通话创建您的秘密。将密钥值设置为上述字段,并将密钥类型设置为 GitLabAccessToken。要配置轮换,请使用RotateSecret呼叫。提供一个角色 ARN,向该服务授予轮换密钥所需的权限。有关权限策略的示例,请参阅安全和权限

使用管理员辅助轮换时,管理员密钥也是类型的。GitLabAccessToken您必须明确提供轮换角色对管理员密钥的访问权限。为此,您可以直接在角色策略中添加一个范围为管理员密钥 ARN 的语句。

在轮换期间,驱动程序会验证当前令牌是否处于活动状态。然后,它调用 GitLab rotate 端点,该端点以原子方式创建新令牌并撤消旧令牌。Secrets Manager 将新的代币值和 ID 存储为 AWSPENDING,通过 GitLab API 对其进行验证,并将其推广到 AWSCURRENT。使用 Secrets Manager 缓存库的应用程序会在下次刷新时自动获取新令牌。