AWS上での踏み台サーバーの運用について考えてみる

前提としてのMFA(Multi-Factor Authentication)の設定

A virtual MFA deviceで作成する
※Google Authenticatorを使用する

docs.aws.amazon.com

踏み台サーバーの作成

  • AMI
CentOS 7 (x86_64) with Updates HVM
  • IP
作成時にはAuto-assign Public IPせずに作成後にEIPを紐付ける

※Use subnet settings(Disable)

  • IAMロール
AmazonEC2FullAccess
  • Enable termination protection
Protect against accidental termination

※間違えて削除できないようにしたい場合

  • Monitoring
Enable CloudWatch detailed monitoring

※Additional charges apply.

  • Name
ec2-at-{{パブリックサブネット名}}

※public-subnet-{{AZ}}-{{組織名}}-{{アプリケーション名}}-{{環境名}}-{{数字}}

  • Security Group
ec2-at-{{パブリックサブネット名}}

※sg-から始まるものは使用できません

  • EIPの紐付け
省略

※紐付けの前提条件として、IGWのVPCへの紐付けが必要です

踏み台サーバーへのアクセス

  • 各種権限の前提条件
chmod 400 {{pemファイル}}
chmod 700 ~/.ssh
chmod 600 ~/.ssh/config
Host {{ホスト名}}
  HostName {{EIP}}
  User centos
  IdentityFile {{pemファイルへのパス}}

※今回はCentOS7のため、Userはcentosです。通常はec2-userだと思います。

  • 接続
$ ssh {{configのホスト名}}

VPCに紐付いたRoute TableにDestinationが0.0.0.0/0でIGWが紐付いている前提です

踏み台サーバーに他のユーザーを接続できるようにする

docs.aws.amazon.com

  • 公開鍵の取得
ssh-keygen -y
Enter file in which the key is (/Users/k_higo/.ssh/id_rsa): {{pemファイルの絶対パス}}

※PuTTYgenにloadさせてもpemから公開鍵を取得できます

  • 踏み台サーバーでのユーザー追加
$ sudo adduser {{ユーザー名}}
$ sudo su - {{ユーザー名}}
$ mkdir -m 700 ~/.ssh
$ touch ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
$ vi ~/.ssh/authorized_keys
※追加したいユーザーの公開鍵を貼り付ける