
AWS DevOps Agent では複数の AWS アカウント/リージョンから単一の GitHub 組織/ユーザーに接続できない
こんにちは、製造ビジネステクノロジー部の若槻です。
AWS DevOps Agent を複数の AWS 環境から使う際に、GitHub 組織/ユーザーへの接続に制約があることを確認したので共有します。
AWS DevOps Agent の GitHub 接続の仕組み
AWS DevOps Agent の GitHub 接続は、GitHub App を対象の GitHub 組織/ユーザーにインストールすることで確立します。この登録は AWS アカウント・リージョンレベルで行われ、同一アカウント・リージョン内のすべての Agent Space で共有されます(1 アカウント・1 リージョンにつき 1 回の登録で済みます)。
一方、**GitHub App がすでにインストールされている組織/ユーザーに対して、別のアカウント・リージョンから AWS DevOps Agent の GitHub 登録を行おうとしても、追加での登録ができません。**これが今回直面した制約です。
検証
前提
| 項目 | 値 |
|---|---|
| アカウント A | 検証用 AWS アカウント A |
| アカウント B | 検証用 AWS アカウント B |
| リージョン A | ap-northeast-1(東京) |
| リージョン B | us-east-1(バージニア北部) |
| GitHub 接続先 | GitHub ユーザー A |
パターン 1: アカウント A / リージョン A → GitHub ユーザー A(OK)
最初の接続を アカウント A / リージョン A で作成します。
以前の記事で AWS DevOps Agent コンソールの [機能プロバイダー] から GitHub App をインストール済みです。Currently registered として登録されています。

アカウント A / リージョン A では GitHub(cm-rwakatsuki)が正常に登録されている
パターン 2: アカウント A / リージョン B → GitHub ユーザー A(NG)
次に 同じアカウント A の 別リージョン(リージョン B) から、同じ GitHub ユーザー A への接続を試みます。
機能プロバイダー画面から GitHub の登録を開始します。

アカウント A / リージョン B の機能プロバイダー画面。GitHub はまだ未登録
「User」を選択して送信します。

User / Organization を選択する画面
GitHub のインストール先を選択する画面が表示されます。パターン 1 ですでに GitHub App をインストール済みのため、ユーザー名の横が Configure になっています。

cm-rwakatsuki が Configure 表示になっており、新規インストールができない
Configure をクリックすると GitHub App の設定画面が表示されますが、アプリはすでにインストール済みの状態です。新たに別のリージョン用 App をインストールすることはできません。

GitHub App 設定画面。すでにインストール済みの状態
機能プロバイダー画面に戻っても、GitHub は登録されていません。

機能プロバイダー画面に戻っても GitHub は未登録のまま
結果: 接続不可
パターン 3: アカウント B / リージョン A → GitHub ユーザー A(NG)
次に 別アカウント(アカウント B) の リージョン A から、同じ GitHub ユーザー A への接続を試みましたが、こちらも同様に GitHub App がすでにインストール済みのため接続が完了しません。
結果: 接続不可
まとめ
| アカウント | リージョン | GitHub ユーザー | 接続結果 |
|---|---|---|---|
| アカウント A | リージョン A(東京) | GitHub ユーザー A | OK |
| アカウント A | リージョン B(バージニア) | GitHub ユーザー A | NG |
| アカウント B | リージョン A(東京) | GitHub ユーザー A | NG |
回避策
現状の根本的な回避策として、GitHub 接続を持つ単一のアカウント・リージョンに Agent Space を集約し、調査対象としたいアカウントごとにスペースを作成してセカンダリリソースに追加することで権限分離する構成が考えられます。

Agent Space のセカンダリリソースに他アカウントを追加する
ハブアカウント上で作成した Agent Space のセカンダリリソースに、接続したい他のアカウントを追加することで、GitHub 接続を共有しつつ複数アカウントの AWS リソースを参照できるようになります(参考: Connecting multiple AWS accounts - AWS DevOps Agent)。
イメージとしては、CodeCommit / CodePipeline のマルチアカウント構成でハブアカウントを用意する構成に近いですね(参考: Building a cross-account CI/CD pipeline for single-tenant SaaS solutions)。
まとめ
AWS DevOps Agent では、単一の GitHub ユーザー/組織に接続できるのは 1 つの AWS アカウント・リージョンの組み合わせのみです。複数の AWS 環境から同じ GitHub ユーザー/組織にアクセスしたい場合は、上記の回避策を検討してください。
参考
- Connecting GitHub - AWS DevOps Agent
- 今月 GA された AWS DevOps Agent のスペース作成から GitHub 連携までを AWS CDK で実装してみた | DevelopersIO
以上










