LoginSignup
1

posted at

updated at

AWSで難しいことを考えずにSSMでBastionサーバを作成

概要

セッションマネージャでAWS接続サーバを作る。
細かいことは気にしてないので、適宜環境に合わせてください。

手順

  1. ポリシーの追加とロールの作成
  2. セキュリティグループの作成
  3. キーペアを作成する
  4. EC2の作成
  5. SessionManagerを確認
  6. 接続

※ VPCとかsubnetは割愛

ポリシーの追加とロールの作成

概要

AmazonEC2RoleforSSMのポリシーがアタッチされているロールを作成する。
また、EC2に接続する際にキーペアが不要になるようなポリシーを追加する。

方法

個別ポリシーの作成から以下のjsonを貼り付ける。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ssm:StartSession",
            "Resource": [
                "arn:aws:ec2:*:*:instance/*",
                "arn:aws:ssm:*:*:document/AWS-StartSSHSession"
            ],
            "Condition": {
                "BoolIfExists": {
                    "ssm:SessionDocumentAccessCheck": "true"
                }
            }
        }
    ]
}

IAMのロールからロールの作成する。
1.png

EC2 Role for AWS Systems Managerを選択。
2.png

先ほど作成したポリシーを追加して、あとは適宜にすすめる。

セキュリティグループの作成

概要

22番ポートが空いていないセキュリティグループを作成する。
inbound(外から発の通信)をすべて許可しないようにする。
outbound(中から発の通信)はすべて許可する。

方法

VPCのセキュリティグループから作成。

EC2の作成

概要

先に作成したIAMとセキュリティーグループをアタッチしたEC2を作成する。

方法

EC2の作成を選択してAmazonLinuxとする。
特にOSの指定がない場合は、AmazonLinuxとするほうが色々入っててやりやすい。

セキュリティグループの設定から先に作成したセキュリティーグループを選択する。
3.png

キーペアを選択する。
特に必要としないのだが、何故か選択に迫られる。
なので適当なキーを選択。
ただ、キーペアの変更はインスタンスの作り直しになるので自身のキーを作って選択しておいたほうが安全。4.png

高度な詳細のIAMインスタンスプロフィールから先に作成したIAMロールを選択する。

インスタンスを起動する。

SessionManagerを確認

AWS Sysmtes Managerのセッションマネージャからセッション開始を選択して、インスタンスが登録されていることを確認する。

Untitled

接続

概要

sshの設定をしてsshコマンド接続する

方法

sshの設定が必要なので以下を~/.ssh/configに追記する

# SSH over Session Manager
host i-* mi-*
ProxyCommand sh -c "aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"

ssh config イメージ

Untitled

接続する。

$ aws ssm start-session --target [インスタンスID] --profile [AWSに接続するプロファイル名]

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
What you can do with signing up
1