AWSのネットワーク設計の基本がVPCとセキュリティグループです。今回はVPCの構成を確認して、EC2のセキュリティグループのSSH設定を全世界公開から自分のIPだけに絞りました。
目次
VPC・セキュリティグループってなに?小学生でもわかる説明
VPC(Virtual Private Cloud)はマンションの敷地です。
AWS全体(街)
└── VPC(マンションの敷地)
├── パブリックサブネット(玄関・外から入れる)
└── プライベートサブネット(住居部分・外から入れない)
セキュリティグループは各部屋のドアの鍵です。「どのIPアドレスから・どのポートへの通信を許可するか」を設定します。
今回やったこと
- VPCとサブネットの構成を確認
- セキュリティグループのSSH設定を自分のIPだけに絞る
手順① VPCとサブネットを確認する
AWSマネジメントコンソールの検索バーに「VPC」と入力→クリック。
左メニューの「お使いのVPC」をクリックするとVPCの一覧が表示されます。
デフォルトVPCの詳細はこのようになっていました:
| 項目 | 値 |
|---|---|
| IPv4 CIDR | 172.31.0.0/16 |
| デフォルトVPC | はい |
| 状態 | Available |
次に左メニューの「サブネット」を確認。東京リージョンの3つのアベイラビリティゾーンにそれぞれサブネットが1つずつ作られていました。
| サブネット | IPv4 CIDR | AZ |
|---|---|---|
| subnet-05bc… | 172.31.32.0/20 | ap-northeast-1a |
| subnet-050d… | 172.31.0.0/20 | ap-northeast-1c |
| subnet-08b5… | 172.31.16.0/20 | ap-northeast-1d |
手順② セキュリティグループのSSHを自分のIPに絞る
左メニューの「セキュリティグループ」をクリック。
launch-wizard-1(charakatsu.comのEC2にアタッチされているもの)を開くと、インバウンドルールはこうなっていました:
| タイプ | ポート | ソース |
|---|---|---|
| SSH | 22 | 0.0.0.0/0 ← 問題! |
| HTTPS | 443 | 0.0.0.0/0 |
| HTTP | 80 | 0.0.0.0/0 |
SSH(ポート22)のソースが 0.0.0.0/0(全世界)になっていました。これは世界中の誰でもSSH接続を試みられる状態です。
「インバウンドルールを編集」→ SSHのソースを「マイIP」に変更→「ルールを保存」で修正完了。
変更前・変更後
| タイプ | 変更前 | 変更後 |
|---|---|---|
| SSH | 0.0.0.0/0(全世界) | 自分のIPアドレス/32 |
| HTTPS | 0.0.0.0/0 | そのまま |
| HTTP | 0.0.0.0/0 | そのまま |
ハマったポイント
ソースの変更で迷いました。ソースの欄の左側にある「リソースタイプ」のドロップダウンをクリックすると「マイIP」が選べます。
注意点
自宅のWi-Fiが変わったり外出先から接続するときはIPアドレスが変わります。その場合はまたセキュリティグループの編集画面で「マイIP」に更新してください。
まとめ
- VPCはAWS内の自分専用ネットワーク空間
- サブネットはVPCをさらに細かく区切ったエリア
- セキュリティグループはEC2への通信の入口を管理するもの
- SSHのソースを
0.0.0.0/0から自分のIPだけに絞ってセキュリティを強化

