📝

【SSM】EC2にSSM経由でアクセスする方法

2022/09/26に公開

目的

EC2にSSM経由でアクセスできるようにすること

目次

  • IAMロール付与
  • SSMでEC2にアクセス
  • amazon-ssm-agentをインストール・起動
  • トラブルシューティング
    • SSMでEC2にアクセスできない
    • Failed to execute operation: File existsが表示される

IAMロール付与

  1. ポリシーAmazonSSMManagedInstanceCoreが含まれたロールを作成
  2. 作成したロールをEC2に付与
AmazonEC2RoleforSSMは使わないのか

AmazonSSMManagedInstanceCore は内含されている権限が多く、将来非推奨になるため使用しないようにしてみます。
https://docs.aws.amazon.com/en_us/systems-manager/latest/userguide/setup-instance-profile.html

SSMでEC2にアクセス

最大10分ほど待つと、SSMでEC2にアクセスできるようになります。
AWSコンソールからSSM経由でEC2にアクセスできることを確認してください。

SSMでEC2にアクセスできない場合

amazon-ssm-agentがEC2にインストールされていない可能性があります。
次項に沿ってEC2にamazon-ssm-agentをインストールし、起動してみてください。

amazon-ssm-agentをインストール・起動

この項は SSMでEC2にアクセスができない時のみ実行してください。

SSMでEC2にアクセスできない場合

EC2にamazon-ssm-agentをインストールしてください。
利用しているOSとCPUの種類によってコマンドが少し異なるので、詳細は公式を参照してください。
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/agent-install-al2.html

AmazonLinux2のARM64を使用しているEC2の場合は、次のコマンドでamazon-ssm-agentをインストールできます。

$ curl -O https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_arm64/amazon-ssm-agent.rpm # このURLがCPUによって異なる
$ sudo yum install -y ./amazon-ssm-agent.rpm
$ sudo systemctl enable amazon-ssm-agent
$ sudo systemctl start amazon-ssm-agent
$ sudo systemctl status amazon-ssm-agent

トラブルシューティング

どうしてもSSMでEC2にアクセスできない

アウトバウンド443ポートの通信が許可されていない可能性があります。
アウトバウンド443ポートの通信許可しているか、セキュリティグループを確認してみてください。

Failed to execute operation: File existsが表示される

1度disableしてからenableにしてみてください。

$ sudo systemctl disable amazon-ssm-agent
$ sudo systemctl enable amazon-ssm-agent

Discussion