LoginSignup
1
1

More than 3 years have passed since last update.

CodeCommitエンドポイントでPrivateサブネットからgit cloneしてみる

Posted at

はじめに

  • 今回は
    1. Privateサブネット内にある
    2. EC2インスタンスから
    3. VPCエンドポイントを使って
    4. AWS CodeCommitにアクセスし
    5. リソースをgit clone
  • してみます

構造図

  • Publicサブネット × 1
    • SSHアクセス用の踏み台インスタンス × 1
  • Privateサブネット × 2
    • VPC(CodeCommit)エンドポイントを置くサブネット × 1
    •          〃           を置かないサブネット × 1
      • git cloneをテストする用インスタンス × 1 ずつ

codecommit_endpoint-Page-1.png

つまづきそうなところ

  • セキュリティグループの設定
    • インバウンド、アウトバウンドの設定を理解していないと沼る危険性があります
      • 筆者は時間を溶かしました...
    • 本記事では設定の目的を簡潔に添えているため、理解されていない方は一読することを推奨します
      • また、間違いがありましたらご指摘ください
  • IAMユーザ認証の作成
    • git cloneする際には「ユーザ名」と「PW」を求められます
    • IAMでユーザの認証情報を作成する必要があります
    • ドキュメント(ステップ3)を参考にご作成ください

手順

1. ネットワークを構築する

2. EC2インスタンスを生成する

セキュリティグループ

  • CodeCommit-step-sg(踏み台サーバ用)

    • インバウンド: SSH
      • ローカルPCからのSSHアクセスを許可
    • アウトバウンド: SSH
      • Privateサブネット内のサーバへのSSHアクセスを許可 スクリーンショット 2021-01-11 20.20.04.png
  • CodeCommit-clong-sg(git cloneテストサーバ用)

    • インバウンド: SSH
      • 踏み台サーバからのSSHアクセスを許可するため
    • アウトバウンド: HTTPS
      • HTTPSによるgit cloneを許可するため(SSHによるgit cloneがしたい場合はSSHを許可) スクリーンショット 2021-01-11 20.25.00.png

3. VPCエンドポイントを作成する

  • サービスカテゴリ: AWSサービス
  • サービス名: com.amazonaws.ap-northeast-1.git-codecommit(gitで検索すれば出る)
    スクリーンショット 2021-01-11 20.12.15.png

  • VPC: 10.1.0.0/16

  • サブネット: 10.1.2.0/24

  • Enable DNS name: 有効にする

セキュリティグループ

  • インバウンド: HTTPS
    • Privateサブネット内のサーバからHTTPSアクセスを許可するため
  • アウトバウンド: HTTPS
    • CodeCommitへのgit cloneを許可するため スクリーンショット 2021-01-11 20.16.12.png

4. EC2インスタンスにgitをインストールする

  • Privateサブネットのインスタンスに入れていく
  • Amazon Linuxn 2にはExtras Library と呼ばれるパッケージ群が存在

    • インターネットに繋がなくてもgit等をインストール可能
    • 中身はamazon-linux-extrasで確認可能(アウトバウンドにHTTPを追加する必要あり)
  • いざgitを入れていく

    • sudo yum update -y
      • 成功
    • sugo yum install git -y
      • 応答がない...
  • amazon-linux-extrasからyum installするためにはS3エンドポイントを設定する必要がある

    • パッケージはS3に保存されているため

S3エンドポイントを配置する

  • サービスカテゴリ: AWSサービス
  • サービス名: com.amazonaws.ap-northeast-1.s3
  • ルートテーブルの設定: Privateサブネットのルートテーブル

リベンジ

  • sudo yum install git -y
    • 無事にインストール完了

5. CodeCommitにリポジトリを作る

  • リポジトリを作成
    • リポジトリ名、説明: endpoint-test
    • ファイルの作成
      • ファイル名: endpoint-test.text
      • 内容: endpoint-test

6. IAMで「AWS CodeCommit の HTTPS Git 認証情報」を生成

  • IAM
  • ユーザー
    • リポジトリを作成したユーザを選択
    • 「認証情報」タブ
      • 「AWS CodeCommit の HTTPS Git 認証情報」で「認証情報を生成」
      • これがgit cloneの際に要求される「Username」と「Password」になる
        • 保存しておく(取り扱いには注意する)

7. git clone(HTTPS)

  • [CodeCommit]
    • リポジトリ → URLのクローン(HTTPS)
  • [ローカルのターミナル]
    • Privateサブネットのインスタンスにsshアクセス
    • 踏み台サーバを経由
  • [PrivateサブネットのEC2サーバ内]
    • git clone <CodeCommitリポジトリのHTTPS URL>
      • Username, Password: 認証情報を参照して入力
    • codecommit-test1、codecommit-test2のどちらもgit clone可能
  • 完了

おわりに

  • Privateサブネット内のEC2インスタンスからVPCエンドポイントを利用してgit cloneすることができました
  • 理解が浅く不安な点もあるので、ご指摘等ございましたらどしどしコメントください

参考資料

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1