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 文字の 16 進数文字列)。ローテーションプロセスはこのフィールドを更新します。

tokenUuid

API トークンのユニバーサル一意識別子 (UUID)。ローテーションはこの UUID を使用して古いトークンを取り消し、ローテーションのたびに新しいトークンの UUID でこのフィールドを更新します。

ユーザー名

トークンを所有するJenkinsユーザー。

jenkinsUrl

Jenkins インスタンス URL ( などhttps://jenkins.example.com)。URL は HTTPS を使用する必要があり、末尾にスラッシュを付けることはできません。

シークレットメタデータフィールド

Jenkins API トークンのメタデータフィールドは次のとおりです。

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

(オプション) 管理者トークンを含む JenkinsApiToken タイプのシークレットの Amazon リソースネーム (ARN)。管理者トークンは、ターゲットユーザーの API トークンを生成および取り消すことができます。省略すると、トークン自体がローテーションされます (自己ローテーション)。

使用フロー

このローテーションは、単一シークレット (セルフローテーション) アーキテクチャと 2 シークレット (管理者支援) アーキテクチャの両方をサポートしています。を指定するとadminSecretArn、管理者トークンはターゲットユーザーのトークンを生成して取り消します。これを省略すると、現在のトークン自体がローテーションされます。

シークレットを作成するには、CreateSecret API コールを使用します。シークレット値を上記のフィールドに設定し、シークレットタイプを JenkinsApiToken に設定します。ローテーションを設定するには、RotateSecret API コールを使用します。RotateSecret 呼び出しで、シークレットをローテーションするアクセス許可をサービスに付与するロール ARN を指定します。アクセス許可ポリシーの例については、「セキュリティとアクセス許可」を参照してください。管理者支援ローテーションを使用する場合は、ローテーションロールに管理者シークレット ARN へのアクセス権を明示的に付与します。

ローテーション中、ドライバーは現在のトークンを検証し、 から Cross-Site Request Forgery (CSRF) クラムを取得しますJenkins。次に、新しい API トークンを生成し、保留中のバージョンとして保存します。API に対して新しいトークンを検証しJenkins、現在のトークンに昇格してから、 によって古いトークンを取り消しますtokenUuid。Secrets Manager キャッシュライブラリを使用するアプリケーションは、次の更新時に新しいトークンを取得します。

Jenkins はカスタマーホスト型であるため、Jenkinsインスタンスは Secrets Manager ローテーションサービスから HTTPS 経由で到達可能である必要があります。ローテーション呼び出しは AWS、マネージドプレフィックスリスト から発信されますcom.amazonaws.region.secretsmanager-managed-external-secrets。インスタンスのセキュリティグループまたはファイアウォールでこのプレフィックスリストからのインバウンドアクセスを許可し、インスタンスがパブリックに信頼された TLS 証明書を提示していることを確認します。詳細については、「Amazon VPC ユーザーガイド」の「AWSマネージドプレフィックスリスト」を参照してください。パブリックインターネット経由で到達できないインスタンスはサポートされていません。