1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

プライベートサブネットにあるEC2にSSMで接続する方法

Posted at

環境

  • VPC作成済み
  • プライベートサブネットにあるEC2作成済み
    • OS: Amazon Linux 2023

各VPCエンドポイントは、AZごとに課金されるため、基本料金 × AZ数 × エンドポイントの種類数になり、かなり高くなります。
本番環境や長時間稼働する環境では、事前にコストを見積もることを強くおすすめします。

手順1:VPCでSSM接続に必要なDNS設定を確認

  1. VPC管理画面 → VPC選択
  2. 「DNS 解決」、「DNS ホスト名」が両方有効になっているか確認

両方有効になっていなかった場合

  1. 「アクション」→「VPCの設定を編集」
  2. 「DNS 解決」、「DNS ホスト名」の両方を有効化にして保存をクリック

手順2:VPCエンドポイントのセキュリティグループを作成

基本的な詳細

設定項目 入力内容
セキュリティグループ名 sample-vpc-endpoint-security-group
説明 使用目的などを入力
VPC 対象のVPC名

インバウンドルール

設定項目 入力内容
タイプ HTTPS
リソースタイプ カスタム
ソース EC2のセキュリティグループ

アウトバウンドルール

設定項目 入力内容
タイプ すべてのトラフィック
送信先タイプ カスタム
送信先 0.0.0.0/0

入力が完了しましたら、セキュリティグループを作成をクリックします

手順3:VPCエンドポイント作成

VPCエンドポイントのサービス

  • com.amazonaws.region.ssm
  • com.amazonaws.region.ssmmessages
  • com.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など必要な設定を段階的に行いました。

1
0
0

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
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?