AWSのセキュリティグループは、EC2などのAWSリソースへの通信を制御する重要なセキュリティ機能です。
しかし、「SSHで接続できない」「Webサイトが表示されない」といったトラブルは、セキュリティグループの設定が原因になっていることが少なくありません。
この記事では、セキュリティグループの基本的な仕組みから、インバウンドルールの設定方法、EC2へSSH接続する手順までを実際の画面を交えながら解説します。
1.セキュリティグループとは
AWSのセキュリティグループとは、EC2などのAWSリソースに対して通信を制御するための仮想ファイアウォールです。
インターネットからEC2へアクセスする際は、セキュリティグループのインバウンドルールに一致した通信だけが許可されます。反対に、EC2からインターネットへ送信する通信も、アウトバウンドルールによって制御されます。
また、用途ごとに異なるセキュリティグループを作成し、それぞれに必要な通信だけを許可することで、安全なシステムを構築できます。
下図は、Webサーバー用とDBサーバー用でセキュリティグループを分け、それぞれ必要な通信だけを許可するイメージです。

例えば、Webサーバー用のセキュリティグループではHTTPやHTTPSを許可し、DBサーバー用のセキュリティグループではデータベース接続だけを許可する、といったように用途ごとに通信ルールを設定できます。
2.セキュリティグループでできること
AWSのセキュリティグループでは、通信を許可する条件をルールとして設定できます。
許可する通信は、以下のような条件で制御できます。
- 通信プロトコル(TCP、UDPなど)…通信方式を指定します。WebサイトやSSH接続では一般的にTCPが利用されます。
- ポート番号(22、80、443など)…どのサービス・アプリケーション宛ての通信なのかを識別するための番号です。
- 接続元(ソース)IPアドレス…どこからのアクセスを許可するかを決めます。
- 他のセキュリティグループ…AWS内部のサーバー間通信をするための設定です。
そしてAWSのセキュリティグループは、主に「インバウンド」と「アウトバウンド」という2種類のルールで構成されています。
| 設定 | 内容 |
|---|---|
| インバウンド | 外から来る通信 例: PC→EC2(SSH接続) インターネット→Webサイト閲覧 |
| アウトバウンド | 外へ出る通信 例: EC2→OSアップデート WordPress→外部APIへ接続 メール送信 |
デフォルトではアウトバウンドは全許可(0.0.0.0/0)です。
3.インバウンドルールの設定例
いくつかの設定を組み合わせてセキュリティグループを作成します。
| 用途 | タイプ | ポート |
|---|---|---|
| サーバー内に入って操作 | SSH | 22 |
| 暗号化していない通信 | HTTP | 80 |
| SSL/TLSで暗号化された通信 (証明書の発行が必要) | HTTPS | 443 |
| リモートデスクトップ接続 | RDP | 3389 |
ソース(接続元)の選び方
主なソースの種類は以下の通りです。使い方に合わせて指定します。
| 用途 | ソース |
|---|---|
| 現在使用中の通信を指定 | マイIP |
| 任意のIPアドレス | 例:192.0.2.45/32 |
| すべてのIPv4アドレスを許可 | 0.0.0.0/0 |
| すべてのIPv6アドレスを許可 | ::/0 |
4.セキュリティグループを設定してEC2へSSH接続する
実際にEC2へ接続します。
【検証環境】
- AWS EC2
- Amazon Linux 2023
- Windows 11
- Windows PowerShell
- OpenSSHクライアント
手順1:セキュリティグループのインバウンドルールを編集する
EC2インスタンスを立ち上げる際の初期設定の場合

「からのSSHトラフィックを許可」にチェックを入れます。
「任意の場所」から、「自分のIP」へ変更します。
セキュリティグループ画面から設定する場合
インスタンスでどのセキュリティグループが使われているか確認してから、セキュリティグループへ移動します。

設定を変更したいセキュリティグループを選択して、「インバウンドのルールを編集」をクリックします。

インバウンドのルールを編集する画面に移動します。

①「ルールを追加」をクリックします。
②タイプ「SSH」を選択します。
③ソースから「マイIP」を選択します。
④「ルールを保存」をクリックします。
セキュリティグループに自動で戻り、インバウンドルールに設定が追加されていることを確認してください。

手順2:PowerShellからSSHコマンドを実行する
powershellで以下のコマンドを入力します。
ssh -i C:\Users\ユーザー名\Downloads\鍵の名前.pem ec2-user@パブリック IPv4 アドレス
※一例です。秘密鍵のパスとIPアドレスはご自身の環境に置き換えてください。
初回ログインの場合は接続していいか?を聞かれるため、「yes」と入力してEnterを押します。
接続に成功すると[ec2-user@ip-198.51.100.45 ~]$ のような表示になります。

SSHの設定がうまくいっていない場合
タイムアウトが表示され、ログインできませんでした。
セキュリティグループが正しく設定されていないとSSHに入れないことがわかります。

5.よくある設定ミス
①SSHが繋がらない
セキュリティグループの設定を見直してください。ポート22が開いているか、ソースIPが変わっていないか確認してください(プロバイダの都合で自分のIPが変わることがあります)。
また、EC2 Instance Connect(ブラウザから)接続する場合、マイIPだと繋がりません。EC2 Instance ConnectがAWS内部のEC2 Instance Connect用サーバーを経由してSSH接続する方式だからです。セキュリティグループで、以下の設定を許可すると接続できます。

| タイプ | ソース | ソースの選択 |
|---|---|---|
| SSH | カスタム | com.amazonaws.ap-northeast-1.ec2-instance-connect (東京リージョンの場合) |
参考:チュートリアル: EC2 Instance Connect を使用してインスタンスに接続するために必要な設定を完了する
②IPアドレスが間違っている
インスタンスの詳細画面からパブリック IPv4 アドレスを確認してください。コマンドを入力する際、プライベート IPv4 アドレスでは繋がらないため、間違えないように注意しましょう。
③サイトが表示されない
セキュリティグループのインバウンドルールでHTTPまたは、HTTPSを許可しないと表示されません。
④HTTPSにならない
SSL証明書が発行されていないサイトはHTTPS通信ができません。
SSL証明書が有効になっているか確認してください。
6.セキュリティグループ利用時の注意点
- SSHを0.0.0.0/0にしない
第三者からSSH接続を試みられる可能性が高くなります。 - 必要なポートだけ開ける
利用しないポートは閉じておきましょう。 - 不要なルールは削除する
不要な許可設定は攻撃対象を増やす原因になります。 - セキュリティグループを用途ごとに分ける
用途ごとに分けることで管理がしやすくなるため、おすすめです。
7.まとめ
AWSのセキュリティグループは、EC2などのAWSリソースへの通信を制御する仮想ファイアウォールです。
インバウンドルールでは外部からの通信、アウトバウンドルールでは外部への通信を制御できます。
EC2へSSH接続する場合は22番ポート、Webサイトを公開する場合は80番・443番ポートを許可するなど、用途に応じて必要な通信だけを許可することが重要です。
ただし、ポートを広く公開すると不正アクセスのリスクが高まるため、SSH接続は自分のIPアドレスだけを許可するなど、最小限の設定を心がけましょう。
【おすすめの関連記事】
当サイトでは他にもAWSに関する情報を初心者向けに発信しています。
【事故防止】大切なEC2インスタンスを誤削除から守る設定方法
「間違って消してしまった…」となる前に!数分で完了する安全対策を解説しています。
【IPアドレス固定化】Elastic IPとは?使う理由から設定まで徹底解説
固定IPが必要な理由から、無駄な料金を発生させないための正しい設定・解除手順まで分かりやすく解説しています。