View a markdown version of this page

GitLab 存取字符 - AWS Secrets Manager

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

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 Access Token 的中繼資料欄位:

{ "adminSecretArn": "arn:aws:secretsmanager:us-east-1:111122223333:secret:GitLabAdmin", "daysToExpiry": "30 (optional)" }
adminSecretArn

(選用) GitLabAccessToken 類型的秘密的 Amazon Resource Name (ARN),其中包含用於輪換此秘密的 api 範圍 GitLab 存取字符。如果省略,字符會自行輪換 (需要apiself_rotate範圍)。對於專案字符,管理員字符需要專案上的維護器角色。對於群組字符,它需要群組上的擁有者角色。

daysToExpiry

(選用) 新權杖過期前的天數 (1–365)。映射至 GitLab 輪換 API 中的 expires_at 欄位。如果省略,新的字符會繼承執行個體預設過期時間。

用量流程

此輪換支援單一秘密 (自我輪換) 和兩個秘密 (管理員輔助) 架構。權杖範圍是由選用的 projectIdgroupId 欄位決定。如果兩個欄位都不存在,則字符是個人存取字符。如果 projectId 存在,權杖即為專案存取權杖。如果 groupId 存在,則字符是群組存取字符。

使用 CreateSecret 呼叫建立您的秘密。將秘密值設定為上述欄位,並將秘密類型設定為 GitLabAccessToken。若要設定輪換,請使用 RotateSecret 呼叫。提供角色 ARN,授予服務輪換秘密所需的許可。如需許可政策的範例,請參閱安全和許可

使用管理員輔助輪換時,管理員秘密也屬於類型 GitLabAccessToken。您必須明確提供 管理員秘密的輪換角色存取權。您可以直接在角色政策中新增範圍為管理員秘密 ARN 的陳述式來執行此操作。

在輪換期間,驅動程式會驗證目前的權杖是否處於作用中狀態。然後,它會呼叫 GitLab 輪換端點,以原子方式建立新的權杖並撤銷舊權杖。Secrets Manager 會將新的字符值和 ID 儲存為 AWSPENDING,透過 GitLab API 驗證它們,並將其提升為 AWSCURRENT。使用 Secrets Manager 快取程式庫的應用程式會在下一次重新整理時自動取得新權杖。