

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# GitLab アクセストークン
<a name="mes-partner-GitLabAccessToken"></a>

## シークレット値フィールド
<a name="w2aac25c11c23b3"></a>

以下は、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。グループアクセストークンにのみ を指定します。

## シークレットメタデータフィールド
<a name="w2aac25c11c23b5"></a>

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`フィールドにマッピングします。省略すると、新しいトークンはインスタンスのデフォルトの有効期限を継承します。

## 使用フロー
<a name="w2aac25c11c23b7"></a>

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

[CreateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html) 呼び出しを使用してシークレットを作成します。シークレット値を上記のフィールドに設定し、シークレットタイプを GitLabAccessToken に設定します。ローテーションを設定するには、[RotateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_RotateSecret.html) 呼び出しを使用します。シークレットをローテーションするために必要なアクセス許可をサービスに付与するロール ARN を指定します。アクセス許可ポリシーの例については、[「セキュリティとアクセス許可](mes-security.md)」を参照してください。

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

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