環境
- VPC作成済み
- プライベートサブネットにあるEC2作成済み
- OS: Amazon Linux 2023
各VPCエンドポイントは、AZごとに課金されるため、基本料金 × AZ数 × エンドポイントの種類数になり、かなり高くなります。
本番環境や長時間稼働する環境では、事前にコストを見積もることを強くおすすめします。
手順1:VPCでSSM接続に必要なDNS設定を確認
- VPC管理画面 → VPC選択
- 「DNS 解決」、「DNS ホスト名」が両方有効になっているか確認
両方有効になっていなかった場合
- 「アクション」→「VPCの設定を編集」
- 「DNS 解決」、「DNS ホスト名」の両方を有効化にして
保存をクリック
手順2:VPCエンドポイントのセキュリティグループを作成
基本的な詳細
| 設定項目 | 入力内容 |
|---|---|
| セキュリティグループ名 | sample-vpc-endpoint-security-group |
| 説明 | 使用目的などを入力 |
| VPC | 対象のVPC名 |
インバウンドルール
| 設定項目 | 入力内容 |
|---|---|
| タイプ | HTTPS |
| リソースタイプ | カスタム |
| ソース | EC2のセキュリティグループ |
アウトバウンドルール
| 設定項目 | 入力内容 |
|---|---|
| タイプ | すべてのトラフィック |
| 送信先タイプ | カスタム |
| 送信先 | 0.0.0.0/0 |
入力が完了しましたら、セキュリティグループを作成をクリックします
手順3:VPCエンドポイント作成
VPCエンドポイントのサービス
com.amazonaws.region.ssmcom.amazonaws.region.ssmmessagescom.amazonaws.region.ec2messages
※ regionはap-northeast-1などの使用しているリージョン名に置き換えてください
3つのVPCエンドポイントのサービスをつけるために合計3つのVPCエンドポイントを作成します。
下記はそのうちの1つです。
エンドポイントの設定
| 設定項目 | 入力内容 |
|---|---|
| 名前タグ | sample-vpc-endpoint-ssm |
| タイプ | AWSのサービス |
サービス
| 設定項目 | 入力内容 |
|---|---|
| サービス | com.amazonaws.region.ssm |
ネットワークの設定
| 設定項目 | 入力内容 |
|---|---|
| VPC | 対象のVPC名 |
| DNS名を有効化 | ON |
| DNS レコードの IP タイプ | IPv4 |
サブネット
| 設定項目 | 入力内容 |
|---|---|
| アベイラビリティーゾーン | EC2があるAZ |
| サブネットID | EC2があるサブネット |
| IPアドレスタイプ | IPv4 |
セキュリティグループ
| 設定項目 | 入力内容 |
|---|---|
| セキュリティグループ | sample-vpc-endpoint-security-group |
ポリシー
| 設定項目 | 入力内容 |
|---|---|
| ポリシー | カスタム |
{
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": [
"ssm:*",
"ssmmessages:*",
"ec2messages:*"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:SourceVpc": "vpc-xxxxxxxxxxxxxxxxx"
}
}
}
]
}
-
aws:SourceVpcで対象のVPCだけ許可 -
Actionで必要な操作だけ許可 -
Resourceはさらに限定可能(ARNで絞る)
入力が完了しましたら、エンドポイントを作成をクリックします
手順4:EC2インスタンスからSSMセッションマネージャーに接続するためのIAMロールの作成
信頼されたエンティティを選択
| 設定項目 | 入力内容 |
|---|---|
| 信頼されたエンティティタイプ | AWSのサービス |
| ユースケース | EC2 |
入力が完了しましたら、次へをクリックします
許可を追加
| 設定項目 | 入力内容 |
|---|---|
| 許可ポリシー | AmazonSSMManagedInstanceCore |
入力が完了しましたら、次へをクリックします
名前、確認、および作成
| 設定項目 | 入力内容 |
|---|---|
| ロール名 | sample-ec2-role |
| 説明 | Allows EC2 instances to call AWS services on your behalf. |
入力が完了しましたら、ロールを作成をクリックします
手順5:EC2のIAMロールを変更
EC2管理画面 → インスタンス選択 → 「アクション」→「セキュリティ」→「IAM ロールの変更」
| 設定項目 | 入力内容 |
|---|---|
| IAMロール | sample-ec2-role |
入力が完了しましたら、IAM ロールの更新をクリックします
手順6:SystemsManager Agent(SSM Agent)のインストール確認
EC2インスタンスに接続し、SSM Agentがインストールされているかを確認します
$ dnf info amazon-ssm-agent
Last metadata expiration check: 0:00:23 ago on Fri May 16 09:28:58 2025.
Installed Packages
Name : amazon-ssm-agent
Version : 3.3.1957.0
Release : 1.amzn2023
Architecture : x86_64
Size : 116 M
Source : amazon-ssm-agent-3.3.1957.0-1.amzn2023.src.rpm
Repository : @System
Summary : Manage EC2 Instances using SSM APIs
URL : http://docs.aws.amazon.com/ssm/latest/APIReference/Welcome.html
License : ASL 2.0
Description : This package provides Amazon SSM Agent for managing EC2 Instances using SSM
: APIs
Installed Packages Name : amazon-ssm-agentとなっていることから、インストール済みであることがわかります
SSM Agentが起動しているか確認する
systemctl status amazon-ssm-agent
Active: active (running)起動していることがわかります
手順7:SSMを使ったEC2インスタンスへの接続確認
EC2管理画面 → インスタンス選択 → 「接続」→「セッションマネージャー」→「接続」
※SSMでの接続が可能になるまで、反映に時間がかかります
SSMから操作するユーザーはssm-userです
$ whoami
ssm-user
EC2でローカル接続していて、設定やファイル作成を行っていた場合の場所/home/ec2-user
SSMの中で作業を行う場合、ルートユーザーになった方がスムーズに行えます
sudo su -
まとめ
プライベートサブネット上のEC2インスタンスにSSMで接続するために、VPCエンドポイントやIAMロール、SSM Agentなど必要な設定を段階的に行いました。