1
0

More than 3 years have passed since last update.

[AWS]CloudBuildのビルドコンテナからEC2にアクセスしたい

Last updated at Posted at 2021-07-12

自分メモ用。

概要

CloudBuildのビルドコンテナからEC2にアクセスする方法。
前提として、EC2にはIP制限&SSHキーで接続する。

手順

  1. CloudBuildのビルドコンテナをVPC内で立ち上げる
  2. SSMパラメータストアにSSHキー登録する
  3. ビルド時にSSHキーを読み込んで接続

1. CloudBuildのビルドコンテナをVPC内で立ち上げる

基本的に上の手順の通り。
CodeBuildのロールにVPCのポリシーをアタッチする必要がある。

2. SSMパラメータストアにSSHキー登録する

SSM(Systems Manager)パラメータストアにSSHキー登録。
id_rsa.pub(公開鍵)、id_rsa(秘密鍵)の二つをKMSを利用して登録する。
IAMでCodeBuildのロールにAmazonSSMReadOnlyAccessのポリシーをアタッチする必要あり。

スクリーンショット 2021-07-12 18.58.42.png

3. ビルド時にキーを読み込んでEC2に接続

詳しい手順は以下を参考に。

buildspec.ymlを作成

buildspec.yml
version: 0.2

env:
  parameter-store:
    ssh_key: id_rsa
    ssh_pub: id_rsa.pub

phases:
  build:
    commands:
      - echo "$ssh_key" > ~/.ssh/id_rsa
      - echo "$ssh_pub" > ~/.ssh/id_rsa.pub
      - chmod 0700 ~/.ssh
      - chmod 0600 ~/.ssh/id_rsa
      - ssh USER_NAME@TARGET -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -t -t

USER_NAMEはEC2のデフォルトだとec2-user
TARGETはサブネット間の通信なのでEC2のプライベートIPアドレスを指定する。

(補足)セッションマネージャ使ってCodeBuildのビルドコンテナに接続する

ビルドコンテナの中身に入れると調査に便利。

最後に

もっと他にいい方法あるよとかあれば教えてください

1
0
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
0