- 公開日
- 最終更新日
GitLabとAWS CodePipeline連携で気をつけたい認証トラブルの話
この記事を共有する

目次
はじめに
こんにちは!パーソル&サーバーワークスの野間です。
私は普段 GitLab Self-Managed を EC2 上に構築し、そこから AWS CodePipeline (以下、CodePipeline) を利用して CI/CD を実現しています。
この構成で日々の開発運用を行っていましたが、アカウント整理をきっかけに思わぬトラブルが発生しました。
何が起きた?
不要な GitLab アカウントを削除していた際、特に影響がないと思い AWS との接続に使用したアカウントも削除してしまいました。
その後 GitLab にコードを Push すると CodePipeline のトリガー自体は動作しますが、Source ステージでエラーが発生しました。
エラー内容
[GitLabSelfManaged] Unable to use Connection: arn:aws:codeconnections:ap-northeast-1:{アカウントID}:connection/{接続ID}. Ensure your source provider account has access to the repository.
GitLab と AWS を接続する際に利用している AWS CodeConnections (旧称 AWS CodeStar Connections) の認証情報が使えず接続できない状態になっていました。
調査の結果このような場合は、接続を再作成する必要があることが判明しました。
特に、1つの接続を複数の Pipeline が共有している場合は、影響範囲が広がるため注意が必要です。
GitLabとAWSの接続方法
続いて、GitLab と CodePipeline と連携する際の接続作成手順をご紹介します。
- AWS マネジメントコンソールで CodePipeline を開き、左ペインの [設定] > [接続] を選択。
- [接続を作成] を選択。
- プロバイダーを選択。(今回は [GitLab Self Managed] を選択しました。
- 接続名と GitLab の URL を入力し、[GitLab Self Managed に接続] を選択。
- [保留中の接続を更新] を選択。
- api 権限を含む GitLab のトークンを入力。
- 認証画面でログイン済みアカウントを確認し、認証を実施。
- ホストインスタンスでのインストール確認画面で [続行] を選択。
- 接続ステータスが「利用可能」になったら接続完了です!
トラブルの原因と対策
上記手順で作成した接続は、接続作成時に認証に利用した GitLab アカウントに紐づいています。 そのため、その GitLab アカウントが削除されると、CodePipeline 側では接続エラーとなってしまいます。
対策として有効な運用ポイント
- 共有アカウントやサービスアカウントの利用
個人アカウントではなく組織で管理できる共有アカウントが利用できる場合は、そのアカウントを利用して接続を作成することで今回のようなトラブルを防ぐことができます。
- 接続の定期的な棚卸しと確認
接続の一覧やステータスを定期的に確認し、古い接続や未使用の接続を整理することも有効な対策となりそうです。
まとめ
GitLab と CodePipeline の連携は、CI/CD を効率化する便利な仕組みです。 しかし、接続の認証に使用したアカウントの運用を誤ると、意図せず Pipeline が動作しなくなるなど、影響が大きくなります。
安定した CI/CD 環境を作成するために、「認証用アカウントの管理ルールを整備する」など運用ルールの整備をしっかり行いたいと感じました! 同様の構成を利用している方の一助になれば幸いです。
この記事は私が書きました
野間 太一
記事一覧猫とCloudFormationが好きです。
