はじめに
EC2 のルールを削除・復元して実際の接続を観察し、SSH のルールを保ちます。
先に前段のポートフォリオラボを完了してください。この環境は必要な前段機能と独自のリソースを提供します。以前のインスタンス、ファイル、認証情報ではなく知識を引き継ぎます。
認定試験との関連
| 認定 | タスク | 練習内容 |
|---|---|---|
| AWS Certified Cloud Practitioner (CLF-C02) | Task 3.5 | セキュリティグループで EC2 接続を制御する。 |
ラボの概要

遮断された接続を観察する
このステップでは、サイトのルールだけを削除し、ページの応答とサーバーの状態を比べます。
このラボは新しいサーバーを用意しています。変更する前に、このラボの AWS View からサイトを開き、Alex Morgan を確認します。Terminal に戻り、プロジェクトへ移動します。
cd /home/labex/project
前と同じように source で現在のサーバーの識別子を読み込みます。変更するグループ SECURITY_GROUP_ID を表示します。
source website.env
echo "$SECURITY_GROUP_ID"
セキュリティグループはインスタンスのネットワーク接続を制御します。インバウンドルールは到着する接続を許可します。ポートは接続先のサービスを示し、SSH は 22、この HTTP サイトは 8081 を使います。他のサイトでは HTTP 80 や HTTPS 443 が一般的ですが、ここではこのアプリの設定を使います。
変更する前にグループを読みます。
最初のラボと同じように、--query で応答の一部を選びます。ここでは最初のグループのインバウンドルール SecurityGroups[0].IpPermissions だけを表示し、必要な二つの許可に集中します。
aws ec2 describe-security-groups \
--group-ids "$SECURITY_GROUP_ID" \
--query 'SecurityGroups[0].IpPermissions'
出力にはインバウンドルールだけが表示されます。FromPort と ToPort はポート範囲です。22 と 8081 の二つのルールを確認します。送信元 198.51.100.10/32 はこの実習用の訪問者で、/32 は一つの IPv4 アドレスです。自分の PC の公開アドレスではないので、指定値を使います。
サイトの許可だけを削除します。revoke-security-group-ingress は一致するルールを削除し、--protocol tcp はプロトコル、--port 8081 はサイト、--cidr は許可された送信元を選びます。
aws ec2 revoke-security-group-ingress \
--group-id "$SECURITY_GROUP_ID" \
--protocol tcp \
--port 8081 \
--cidr 198.51.100.10/32
応答で変更を確認したら、サイトを更新します。Website connection unavailable が表示されても、AWS View のインスタンスは running のままです。


アプリは削除されず、サーバーも停止していません。ネットワークルールが接続を遮断しています。グループは許可済み接続を追跡し、この実習の新しいリクエストで変更後のルールを確認します。SSH ルールは残します。
サイトへのアクセスを復元する
このステップでは、必要な許可を復元し、アプリが再び応答することを確認します。
authorize-security-group-ingress はインバウンドルールを追加します。同じグループ、TCP ポート、用意された訪問者アドレスを使います。
aws ec2 authorize-security-group-ingress \
--group-id "$SECURITY_GROUP_ID" \
--protocol tcp \
--port 8081 \
--cidr 198.51.100.10/32
サイトを更新すると Alex Morgan と三つの作品が戻るはずです。アプリの再導入やサーバー再起動は不要です。設定も確認するため、グループを読み返します。

aws ec2 describe-security-groups \
--group-ids "$SECURITY_GROUP_ID" \
--query 'SecurityGroups[0].IpPermissions'
サイトの 8081 と変更していない SSH の 22 を確認します。どちらも 198.51.100.10/32 です。0.0.0.0/0 はすべての IPv4 送信元を許可して範囲が広すぎます。追加の許可ではなく、指定の送信元を復元します。
設定と実際の結果の両方を確認できました。必要なルールがあり、訪問者のリクエストも成功します。次のラボは新しいサイトを用意し、作品素材のプライベートストレージを学びます。
まとめ
サイトのルールを削除して復元し、実際の失敗と回復を確認しながら SSH を維持しました。実行中のサーバーと到達可能なアプリを区別し、許可が指定の訪問者に限定されていることを確かめました。
公式ドキュメント: security group rules.



