Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GitLab SelfManagedをCodePipelineのソースに設定する/SetGit...

GitLab SelfManagedをCodePipelineのソースに設定する/SetGitLabSelfManagedtoCodePipeline

GitLab SelfManagedをCodePipelineのソースステージに設定するために必要な構成要素について説明する。この構成を実現するためには以下の2点を満たすことが重要である。
①GitLab SelfManagedへの通信のHTTPS化
②CodePipelineからのアクセス元IPアドレスの固定化

Norihiro Ishiyama

January 28, 2025
Tweet

Other Decks in Technology

Transcript

  1. 2 ©AR Advanced Technology All Right Reserved. 自己紹介 ARアドバンストテクノロジ株式会社 2023年新卒

    石山 徳紘 いしやま のりひろ ▽業務内容 ・サーバレスアーキテクチャの設計・構築 ▽趣味 ・アニメ、YouTube鑑賞 ・カラオケ
  2. 3 ©AR Advanced Technology All Right Reserved. アジェンダ ・テーマの背景 ・GitLabとは

    ・検証前の想定 ・検証の際に工夫したこと ・まとめ
  3. 4 ©AR Advanced Technology All Right Reserved. 今回の発表範囲 説明すること 説明しないこと

    • GitLabの概要 • GitLab SlefManaged⇔CodePipeline 間のネットワーク構成 • CodePipelineの設定方法、パラメータ
  4. 8 ©AR Advanced Technology All Right Reserved. 【参考」CodePipelineのソースステージに設定できるサービス No. サービス名

    説明 1 AWS CodeCommit プライベートGitリポジトリをホストするAWSマネージド なソース管理サービス 2 Amazon ECR Dockerコンテナイメージを保存し、管理するためのフル マネージドなDockerコンテナストレージサービス 3 Amazon S3 AWSが提供するオブジェクトストレージサービス 4 Bitbucket Gitベースのソースコード管理サービス 5 GitHub ソースコードをオンラインで共有・管理するソース管理 サービス 6 GitHub Enterprise Server GitHubが提供するオンプレミス版のGitリポジトリ管理 ツール 7 GitLab Gitを利用したソースコード管理サービス CI/CD、PJ管理機能なども兼ね備えている 8 GitLab Self Managed GitLabのオンプレミス版
  5. 10 ©AR Advanced Technology All Right Reserved. GitLabの概要 ⚫ “Git”

    • ローカル環境でのバージョン管理システム ⚫ GitLab • リモートリポジトリをホスティングするサービス • 開発者が協力してコードを管理・共有するためのプラットフォーム
  6. 11 ©AR Advanced Technology All Right Reserved. GitLabの概要 ⚫ GitLabの種類

    1. GitLab.com →SaaS版。自社サーバーを運用する必要がないため負担が少ない。 2. GitLab Self Managed →オンプレミス版。サーバー運用が必要だが基盤回りの自由度が高い。 ⚫ GitLabの機能 1. Gitによるソースコードのバージョン管理 2. プロジェクト管理/課題管理 3. CI/CD機能
  7. 12 ©AR Advanced Technology All Right Reserved. なぜGitLab SelfManagedなのか ⚫

    EC2でホストが可能 ⚫ ソースコードの管理をAWS環境に閉じることができる セキュリティの向上
  8. 16 ©AR Advanced Technology All Right Reserved. GitLab Self ManagedをCodePipelineのソースにする際の課題

    ⚫ GitLabの認証時にエラーが発生 • GitLabサーバーへの接続がタイムアウトされてしまった
  9. 19 ©AR Advanced Technology All Right Reserved. 工夫したポイント 1. GitLabのHTTPS化

    2. CodePipelineからのアクセス元IPアドレスの固定化
  10. 20 ©AR Advanced Technology All Right Reserved. 工夫したポイント 1. GitLabのHTTPS化

    2. CodePipelineからのアクセス元IPアドレスの固定化
  11. 21 ©AR Advanced Technology All Right Reserved. ⚫ ホストと接続の作成 •

    GitLabのURL、GitLabアクセストークンを登録し、GitLabへの接続を認証する 1. GitLabのHTTPS化 ホスト:実際にサードパーティプロバイダーへアクセスするリソース 接続:サードパーティのリポジトリを他のAWSサービスに接続するためのAWSリソース ・URL ・アクセストークン ※登録するURLはHTTPSでなければならない 用語説明
  12. 22 ©AR Advanced Technology All Right Reserved. ⚫ GitLabのURLをHTTPS化 •

    EC2の前にALBを設置し、パブリック証明書を紐づける →HTTPS通信が可能となり、ホストと接続を作成完了 1. GitLabのHTTPS化 〇ALBにアクセスするIPアドレスを固定にしたい インバウンドルール 0.0.0.0/0
  13. 23 ©AR Advanced Technology All Right Reserved. 工夫したポイント 1. GitLabのHTTP化

    2. CodePipelineからのアクセス元IPアドレスの固定化
  14. 24 ©AR Advanced Technology All Right Reserved. 2. CodePipelineからのアクセス元IPアドレスの固定化 ①

    ホスト作成時に「VPCを使用」を選択 • 指定したサブネット内にENIが作成され、GitLabへのアクセス元となる ② NAT Gatewayを作成し、IPアドレスを固定 • NAT Gatewayを経由することでアクセス元IPアドレスが固定される →ALBのSGインバウンドを制限できる インバウンドルール NAT GatewayのIP (xx.xx.xx.xx/32) ① ②
  15. 27 ©AR Advanced Technology All Right Reserved. まとめ(気づき) 1. GitLab

    Self ManagedをCodePipelineのソースにするときは、HTTPS通信が必須 2. セキュリティリスクを考慮し、IPアドレス制限をかけるべし