🦔

AWS プライベートサブネットでSSMをオンラインにする手順(備忘録)

に公開

✅ 1. VPC属性の設定

  • enableDnsSupport = true
  • enableDnsHostnames = true
  • マネコン操作
    • VPC → 「アクション」→「DNS設定を編集」→ 両方オン。

✅ 2. EC2起動時の設定

  • IAMロールAmazonSSMManagedInstanceCore を付与。
  • UserData(Ubuntu例)
#!/bin/bash
apt-get update -y
apt-get install -y amazon-ssm-agent
systemctl enable amazon-ssm-agent
systemctl start amazon-ssm-agent

✅ 3. VPCエンドポイント作成

  • 作成するエンドポイント(Interface型):
    • com.amazonaws.<region>.ssm
    • com.amazonaws.<region>.ec2messages
    • com.amazonaws.<region>.ssmmessages
  • プライベートDNSを有効化(要VPC属性設定)。
  • セキュリティグループ
    • インバウンド:TCP 443、ソース = EC2のSGまたはサブネットCIDR。
    • アウトバウンド:許可(デフォルトでOK)。

✅ 4. 接続確認

  • EC2で名前解決確認:
nslookup ssm.ap-northeast-1.amazonaws.com
  • HTTPS接続確認:
curl -v https://ssm.ap-northeast-1.amazonaws.com

400 Bad Request が返ればOK(TLS成功)。


✅ 5. SSMエージェント確認

  • 再起動:
sudo systemctl restart amazon-ssm-agent
  • ログ確認:
sudo tail -f /var/log/amazon/ssm/amazon-ssm-agent.log

Successfully registeredassociationId が出ればOK。


✅ 6. AWS側確認

  • CLI:
aws ssm describe-instance-information --region ap-northeast-1
  • マネコン:
    • Systems Manager → Managed Instances → インスタンスが「オンライン」。

✅ ポイント

  • curl で 400 は正常 → ネットワークOK。
  • エージェントログに associationId → SSM登録済み。
  • セッションマネージャ > フリートマネージャーで確認して該当インスタンスがオンラインだったらSSM Agentは疎通できている。

Discussion