View a markdown version of this page

Jenkins API 權杖 - AWS Secrets Manager

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

Jenkins API 權杖

秘密值欄位

以下是必須包含在 Secrets Manager 秘密中的欄位:

{ "apiToken": "API token value", "tokenUuid": "token UUID", "username": "user that owns the token", "jenkinsUrl": "https://jenkins.example.com" }
apiToken

Jenkins API 字符值 (32-34 個字元的十六進位字串)。輪換程序會更新此欄位。

tokenUuid

API 字符的通用唯一識別符 (UUID)。輪換使用此 UUID 來撤銷舊字符,並在每次輪換後以新字符的 UUID 更新此欄位。

使用者名稱

擁有權杖Jenkins的使用者。

jenkinsUrl

您的Jenkins執行個體 URL (例如 https://jenkins.example.com)。URL 必須使用 HTTPS,且結尾不得為結尾斜線。

秘密中繼資料欄位

以下是 Jenkins API Token 的中繼資料欄位:

{ "adminSecretArn": "arn:aws:secretsmanager:us-east-1:111122223333:secret:JenkinsAdmin" }
adminSecretArn

(選用) 包含管理員字符之 JenkinsApiToken 類型的秘密的 Amazon Resource Name (ARN)。管理員字符可以為目標使用者產生和撤銷 API 字符。如果省略,字符會自行輪換 (自我輪換)。

用量流程

此輪換支援單一秘密 (自我輪換) 和兩個秘密 (管理員輔助) 架構。當您提供 時adminSecretArn,管理員字符會產生和撤銷目標使用者的字符。如果您省略它,目前的權杖會自行輪換。

若要建立秘密,請使用 CreateSecret API 呼叫。將秘密值設定為上述欄位,並將秘密類型設定為 JenkinsApiToken。若要設定輪換,請使用 RotateSecret API 呼叫。在 RotateSecret 呼叫中,提供角色 ARN,授予服務輪換秘密的許可。如需許可政策範例,請參閱 安全與許可。使用管理員輔助輪換時,明確授予輪換角色對管理員秘密 ARN 的存取權。

在輪換期間,驅動程式會驗證目前的權杖,並從 取得跨網站請求偽造 (CSRF) 記錄Jenkins。接著會產生新的 API 字符,並將其儲存為待定版本。它會針對 Jenkins API 驗證新權杖,將其提升為最新版本,然後由其 撤銷舊權杖tokenUuid。使用 Secrets Manager 快取程式庫的應用程式會在下次重新整理時取得新的權杖。

Jenkins 是由客戶託管,因此您的Jenkins執行個體必須透過 HTTPS 從 Secrets Manager 輪換服務連線。輪換呼叫來自 AWS受管字首清單 com.amazonaws.region.secretsmanager-managed-external-secrets。允許執行個體安全群組或防火牆上此字首清單的傳入存取,並確保執行個體呈現公開信任的 TLS 憑證。如需詳細資訊,請參閱《Amazon VPC 使用者指南》中的 AWS受管字首清單。不支援無法透過公有網際網路連線的執行個體。