https://dev.classmethod.jp/articles/tsnote-private-ec2-ssm-vpc-endpoint/
- IAMユーザーの作成
- AmazonSSMFullAccess
- AmazonEC2ReadOnlyAccess
- IAMロール作成
- AmazonSSMManagedInstanceCore
- VPCエンドポイントの作成(privateサブネットの場合)
- com.amazonaws.ap-northeast-1.ssm
- com.amazonaws.ap-northeast-1.ssmmessages
- com.amazonaws.ap-northeast-1.ec2messages
- セキュリティグループ(privateサブネットの場合)
- インバウンドで443をVPCのIPアドレス範囲を指定
- ローカルにSSMプラグインのインストール
1 2 3 4 5 |
$ brew install awscli $ curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/mac/sessionmanager-bundle.zip" -o "sessionmanager-bundle.zip" $ unzip sessionmanager-bundle.zip $ sudo ./sessionmanager-bundle/install -i /usr/local/sessionmanagerplugin -b /usr/local/bin/session-manager-plugin |
- EC2(Amazon Linux2)にSSM エージェントをインストール
1 2 3 |
$ sudo yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm $ sudo systemctl restart amazon-ssm-agent |
- AWSコンソール > EC2 > 上記のIAMロールを指定して保存
接続できない場合はamazon-ssm-agentを再起動するか、EC2再起動
- AWS Systems Manager > Session Manager
- 60分とログインシェルを変更
- ログイン
AWSコンソール > EC2 > 接続 > セッションマネージャー
1 |
$ aws --profile=hoge ssm start-session --target i-xxxxxxx |
SSHでログインしたい場合
- ~/.ssh/config (ローカル)
1 2 3 |
#SSH over Session Manager host i-* mi-* ProxyCommand sh -c "aws --profile=hoge ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'" |
- インスタンスIDを指定してログイン
1 |
$ ssh -i hoge hoge@i-xxxxxxxx -p xxxxxxx |
セキュリティグループは開放しなくていいが、インスタンス内のSSHプロセスは動かす前提となるので注意。
Was this helpful?
0 / 0
1989年生まれのFindy/SRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、緊急対応、AWSでのインフラ構築、Docker開発環境の提供、IaC、新技術の検証、リファクタリング、セキュリティ強化、分析基盤の運用などを担当している。個人事業主では数社サーバー保守とベンチャー企業のSREインフラコンサルティングやMENTA/TechBullで未経験者にインフラのコーチング/コミュニティマネージャーとして立ち上げと運営をしている。また、過去「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。