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)" }
トークン

GitLab アクセストークン値 ( で始まりますglpat-)。これは、ローテーションされるフィールドです。

tokenId

数値トークン 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)" }
adminSecretArn

(オプション) このシークレットのローテーションに使用される API スコープの GitLab アクセストークンを含む GitLabAccessToken タイプのシークレットの Amazon リソースネーム (ARN)。 GitLab 省略すると、トークン自体がローテーションされます ( apiまたは self_rotateスコープが必要)。プロジェクトトークンの場合、管理者トークンにはプロジェクトで Maintainer ロールが必要です。グループトークンには、グループの所有者ロールが必要です。

daysToExpiry

(オプション) 新しいトークンの有効期限が切れるまでの日数 (1~365)。GitLab ローテーション API の expires_atフィールドにマッピングします。省略すると、新しいトークンはインスタンスのデフォルトの有効期限を継承します。

使用フロー

このローテーションは、単一シークレット (自己ローテーション) アーキテクチャと 2 シークレット (管理支援) アーキテクチャの両方をサポートしています。トークンの範囲は、オプションの フィールドprojectIdgroupIdフィールドによって決まります。どちらのフィールドも存在しない場合、トークンは個人用アクセストークンです。projectId が存在する場合、トークンはプロジェクトアクセストークンです。groupId が存在する場合、トークンはグループアクセストークンです。

CreateSecret 呼び出しを使用してシークレットを作成します。シークレット値を上記のフィールドに設定し、シークレットタイプを GitLabAccessToken に設定します。ローテーションを設定するには、RotateSecret 呼び出しを使用します。シークレットをローテーションするために必要なアクセス許可をサービスに付与するロール ARN を指定します。アクセス許可ポリシーの例については、「セキュリティとアクセス許可」を参照してください。

管理者支援ローテーションを使用する場合、管理者シークレットもタイプ ですGitLabAccessToken。ローテーションロールに管理者シークレットへのアクセスを明示的に指定する必要があります。これを行うには、ロールポリシーで管理者シークレット ARN にスコープされたステートメントを直接追加します。

ローテーション中、ドライバーは現在のトークンがアクティブであることを検証します。次にGitLab ローテーションエンドポイントを呼び出します。これにより、新しいトークンがアトミックに作成され、古いトークンが取り消されます。Secrets Manager は、新しいトークン値と ID を AWSPENDING として保存し、GitLab API を介して検証し、AWSCURRENT に昇格します。Secrets Manager キャッシュライブラリを使用するアプリケーションは、次の更新時に新しいトークンを自動的に取得します。