AWSセキュリティグループとは?ベストプラクティスや設定の方法

アマゾン ウェブ サービス(AWS)は柔軟でスケーラブルな環境であるものの、便利な機能を扱うにはセキュリティ技術の習得が不可欠です。AWSを運用する際は「外部からどの通信を許可し、拒否するか」を決める必要があるため、特にAWSセキュリティグループは、AWS初心者の情シス担当者にとっても押さえておきたい重要な機能といえるでしょう。セキュリティグループはまさにそのための仮想ファイアウォールで、専門用語が多く難しく感じるかもしれませんが、本記事ではわかりやすく解説します。
この記事でわかること
- AWSセキュリティグループの基本とネットワークACLとの違い
- AWSを安全に運用するためのベストプラクティス
- セキュリティグループの具体的な設定手順
※当記事は2025年4月に書かれたものであり、以後に展開された最新情報が含まれていない可能性がございます。
AWSにおけるセキュリティグループの基本情報
セキュリティグループとは仮想ファイアフォール機能を指します。オンプレミス環境では登場することはありませんが、AWSを始めとしたクラウドサービス環境では必須の概念となるので、重要度は高いといえるでしょう。
そもそもセキュリティグループとは
AWSセキュリティグループは、AWSの仮想ネットワークであるAWS VPC内でAmazon EC2などのリソースに適用できる仮想ファイアウォール機能です。セキュリティグループをリソース(例えばAmazon EC2インスタンス)に関連付けることで、そのインスタンスへのインバウンド(外部からインスタンスへ)およびアウトバウンド(インスタンスから外部へ)の通信をコントロールできます。
セキュリティグループとネットワークACLとの違い
セキュリティグループとよく比較されるものにネットワークACL (Access Control List) があります。どちらもVPC内の通信を制御しますが、その適用範囲や動作に違いがあります。簡単に例えるなら、セキュリティグループが「各サーバー(インスタンス)の玄関にいる門番」だとすれば、ネットワークACLは「サブネット全体の入り口にある門」のようなイメージです。それぞれの主な違いを以下の表にまとめました。
セキュリティグループ | ネットワークACL | |
---|---|---|
適用範囲 | インスタンス単位 | サブネット単位 |
設定方法 | ホワイトリスト方式(許可のみ) | ブラックリスト方式(許可・拒否) |
設定効果 | ステートフル | ステートレス |
ルールの評価 | すべて評価される | 優先度順に評価される |
上記のような違いから、使い分けも変わってきます。基本的には細かなアクセス制御はセキュリティグループで行い、ネットワークACLは必要に応じてサブネット全体への追加の防御策として使われるケースが多いです。日常的にはセキュリティグループ中心でOKですが、例えば「特定のIPアドレスからのアクセスをサブネットレベルでまとめて遮断したい」場合などに、ネットワークACLを併用すると効果的です。ただし両方を使うと管理も複雑になるため、本当に必要な場合に限定して導入を検討すると良いでしょう。
セキュリティグループの構成要素
セキュリティグループは大きく「AWSリソース」「グループ(セキュリティグループ本体)」「ルール」という要素で構成されています。
AWSリソース:リソースとはセキュリティグループを適用する対象で、Amazon EC2インスタンスやAmazon RDSデータベースなどVPC内のサービスが該当します。通常5つまでセキュリティグループを割り当てることができます。
セキュリティグループ:グループという概念の本体で、特定のVPCに属し、名前と説明、および複数のルールの集合体として機能します。設定可能なルールは通常60ルールまでです。
ルール:ルールには方向(インバウンドかアウトバウンド)、プロトコル(例: TCP、UDP、ICMP)、ポート番号(例: 22や443など、範囲指定も可能)、通信相手(インバウンドなら送信元(Source)、アウトバウンドなら送信先(Destination))を指定します。通信相手はIPアドレスやCIDRブロック(例: 203.0.113.0/24)、プレフィックスリスト、他のセキュリティグループIDなどで指定可能です。
例えば「インターネット全体にHTTP(80番)を開放」する場合は、インバウンドルールでTCPポート80、送信元を0.0.0.0/0(全てのIPv4アドレス)にします。逆に「特定の社内IPからのみリモートデスクトップを許可」したいなら、インバウンドでRDP(3389番)をプロトコルTCPで許可し、送信元に社内ネットワークのIPアドレス範囲をCIDRで指定すればOKです。こうしたルールを必要に応じて追加し、セキュリティグループとしてリソースに関連付けることで、細かなアクセスコントロールが可能になります。
AWSにおけるセキュリティグループのベストプラクティス
AWS環境を安全に運用するためには、セキュリティグループの正しい設計と運用が不可欠です。ここでは代表的なベストプラクティスを紹介します。AWS初心者の方でもすぐ実践できるように、ポイントごとに解説します。
セキュリティグループの数は必要最小限に収める
セキュリティグループは必要に応じていくつでも作成できますが、数が増えすぎると管理が複雑になり設定ミスの原因になります。例えば似たような役割のサーバーごとに別々のセキュリティグループを作りすぎると、自分でも把握しきれなくなる恐れがあります。役割ごとにまとめられるものはまとめ、セキュリティグループの数は必要最小限に絞りましょう。
特定のユーザーにだけ作成・変更を許可する
組織内で誰でもセキュリティグループを編集できてしまう状態は危険です。意図せず不用意なポートを開けてしまったり、誤って必要なルールを消してしまったりするリスクがあります。そこで、AWSのIAM(Identity and Access Management)機能を使ってセキュリティグループの作成・変更権限を限定された管理者のみに与えることがベストプラクティスです。
必要最低限のポートのみ開放する
セキュリティグループでは許可するポート番号を細かく指定できますが、必要のないポートまで開放しないことが原則です。例えばサーバー上でウェブサービスだけ提供するなら、80番(HTTP)や443番(HTTPS)以外のポートは閉じておくべきです。ポートを広範囲に開けてしまうと、それだけ不正アクセスの入り口が増えることになります。よく分からないからとりあえず「全部許可」は厳禁です。
インバウンドは特定のIPアドレスのみ許可する
インターネット経由でアクセス可能にする場合でも、可能な限り許可する相手先(送信元)のIPアドレスを限定しましょう。特にSSHやRDPなど管理用のアクセスは、社内ネットワークや担当者の固定IPからだけ許可する設定がおすすめです。
AWSが公開しておいるユースケースを参照する
セキュリティグループの設定に迷ったときは、AWS公式が公開しているユースケース別のルール例が参考になります。AWSドキュメントには「Webサーバー用のルール」「データベースサーバー用のルール」「自分のPCからSSH接続するためのルール」など、様々なケースに応じたセキュリティグループ設定例が掲載されています。
AWSのセキュリティグループの設定方法
それでは実際に、AWSマネジメントコンソールからセキュリティグループを設定する手順を説明します。ここではAWSコンソール上で新しいセキュリティグループを作成し、必要なルールを追加する一般的な流れを解説します。
- STEP1:AWSにログイン後、「サービス」を選択して一覧を表示する
- STEP2:「VPC」を選択する。
サービス一覧から「VPC」を選択し、画面左側メニューの「セキュリティグループ」をクリックします。 - STEP3:「セキュリティグループ」を選択する
- STEP4:「セキュリティグループを作成」を選択する
- STEP5:「基本的な詳細」の内容を入力する
セキュリティグループの名前と説明欄に分かりやすい名称と用途のメモを書きます。次にこのグループを属させるVPCを選択します。
以上が基本的な設定手順です。ポイントは「必要な通信だけを許可するインバウンドルール」を丁寧に設定することです。設定後は、実際に意図した通信が通るか(不要な通信は遮断されているか)をテストして確認すると安心です。
AWSセキュリティグループで安心・安全なシステム運用を実現
ここまで、AWSセキュリティグループの基礎から応用まで解説しました。セキュリティグループはAWS上でリソースへのアクセスを制御する基本機能であり、正しく理解し設定することで不正アクセスや事故を防ぐことができます。
「自社だけでAWSのセキュリティ設定を行うのは不安」という場合は、専門家の力を借りるのも一つの手です。サーバーワークスでは、AWS環境への移行や設計・運用の支援を行っています。
AWSセキュリティグループを活用しつつ、必要に応じてプロの知見も取り入れることで、安心・安全なシステム運用が実現できるはずです。まずは気軽にお問い合わせください。