GitLab Duoの認証と認可
GitLab Duo with Amazon Qは、複合アイデンティティを使用してリクエストを認証します。
製品の他の領域における複合IDのサポートは、イシュー511373で提案されています。
リクエストを認証するトークンは、次の2つのアイデンティティを組み合わせたものです:
- プライマリ作成者は、Amazon Qのサービスアカウントです。このサービスアカウントはインスタンス全体に適用され、Amazon Qのクイックアクションが使用されたプロジェクトのデベロッパーロールを持ちます。このサービスアカウントがトークンのオーナーです。
- セカンダリ作成者は、クイックアクションを送信した人間のユーザーです。このユーザーの
idは、トークンのスコープに含まれています。
この複合アイデンティティにより、Amazon Qによって作成されたアクティビティが、Amazon Qサービスアカウントに正しく帰属されることが保証されます。同時に、複合アイデンティティによって、人間のユーザーに対する特権エスカレーションが発生しないことも保証されます。
この動的スコープは、APIリクエストの認可時に検証されます。認可がリクエストされると、GitLabは、サービスアカウントとクイックアクションを開始したユーザーの両方が十分な権限を持っているかを検証します。
flowchart TD
accTitle: Authentication flow for GitLab Duo
accDescr: API requests are checked against user permissions first, then service account permissions, with access denied if either check fails.
A[API Request] --> B{Human user has access?}
B -->|No| D[Access denied]
B -->|Yes| C{Service account has access?}
C -->|No| D
C -->|Yes| E[API request succeeds]