AWS ShieldとVPCセキュリティグループの関係をやさしく解説!DDoS対策とアクセス制御の基本
生徒
「先生、AWSのDDoS対策って、AWS Shieldを使うって聞いたんですけど、セキュリティグループとはどう違うんですか?」
先生
「いい質問ですね。AWS Shield(エーダブリューエス シールド)は、DDoS攻撃から守るための仕組みで、VPCのセキュリティグループとは少し役割が違うんですよ。」
生徒
「一緒に使うものなんですか?それともどっちかを選べばいいんですか?」
先生
「それじゃあ、AWS ShieldとVPCのセキュリティグループの関係や違いをわかりやすく説明していきましょう!」
1. AWS Shieldとは?読み方と基本の役割
AWS Shield(エーダブリューエス シールド)は、インターネット上の悪意ある攻撃者が仕掛けるDDoS(ディードス)攻撃から、あなたのシステムを守るためのマネージド型セキュリティサービスです。
DDoS攻撃とは、一度に大量のデータを送りつけてサーバーをパンクさせる攻撃のこと。AWS Shieldは、特にネットワークの深い層(レイヤー3・4)での攻撃を24時間体制で監視し、異常な通信を自動的に検知・緩和(遮断)してくれる、いわば「24時間稼働の全自動防波堤」です。
- AWS Shield Standard(スタンダード):追加料金なしで、すべてのAWSユーザーに自動適用されます。一般的な攻撃を勝手に防いでくれる、初心者にも安心の基本機能です。
- AWS Shield Advanced(アドバンスド):月額費用が発生する上位版です。より大規模な攻撃への対応や、24時間体制の専門チーム(SRT)による直接サポート、攻撃によるコスト増の補填などが受けられます。
たとえば、攻撃者がサーバーをダウンさせようとして、以下のような大量の「ゴミデータ」を送りつけてきたとします。
【DDoS攻撃のイメージ】
[攻撃者A] --- 大量の偽データ ---> [AWS Shield] --- 正常な通信のみ通す ---> [あなたのシステム]
[攻撃者B] --- 大量の偽データ ---↗ (ここで自動ブロック)
[一般客] --- 買い物リクエスト ----------------------------------------→ (快適に動作!)
このように、私たちが特別な設定(プログラミングや複雑なルール作成)をしなくても、「標準で勝手に守ってくれている」のがShieldの大きな強みです。まずは「外からの大きな波を防ぐための壁」だと覚えておきましょう。
2. VPCセキュリティグループとは?読み方と意味
VPC(ブイピーシー)は「Virtual Private Cloud(バーチャル プライベート クラウド)」の略で、AWS上に作るプライベートなネットワークのことです。 その中で「セキュリティグループ」は、インスタンスに対する通信を制御するファイアウォールのようなものです。
セキュリティグループでは、たとえば「TCPのポート80だけを許可する」「特定のIPアドレスだけからのアクセスを許す」といった細かい設定ができます。
3. AWS Shieldとセキュリティグループの違いと関係
AWS ShieldとVPCセキュリティグループは同じセキュリティ目的で使われますが、役割が異なります。
- AWS Shield:主にDDoS攻撃のような大量トラフィック攻撃を防ぐ
- セキュリティグループ:個々の通信のアクセス制御を行う
つまり、Shieldは外からの「波」を自動で受け止める防波堤、セキュリティグループは誰を中に入れるか決める門番のようなイメージです。 この2つは組み合わせて使うことで、強固なセキュリティが実現できます。
4. なぜ両方必要なの?初心者にもわかる考え方
セキュリティグループだけでは、攻撃者が短時間に何百万回もアクセスしてくるようなDDoS攻撃を防ぐのは難しいです。 一方、AWS Shieldだけでは「特定のIPだけ許可したい」「このポートだけ開けたい」といった細かい制御はできません。
だからこそ、Shieldで攻撃の波を食い止め、セキュリティグループで細かくアクセスを管理することで、安心してシステムを運用できます。
5. 実際の使い方:Shieldとセキュリティグループの連携例
たとえば、WebアプリケーションをEC2(イーシーツー)上で運用している場合、次のような構成になります。
- Shield Standard:インターネットからの異常なトラフィックを自動で検出
- VPCセキュリティグループ:80番(HTTP)と443番(HTTPS)だけを開放、それ以外はブロック
このようにして、DDoS攻撃の入口はShieldで抑え、通信の中身はセキュリティグループで制御するという分担ができています。
6. AWS Shieldが守る範囲とセキュリティグループの設定範囲
Shieldは、AWSの外から来る大量トラフィックを対象とした自動防御が主な役割です。 特に、CloudFront(クラウドフロント)やElastic Load Balancing、Route 53などのサービスと連携して効果を発揮します。
一方、セキュリティグループは、VPC内のインスタンス(EC2など)に対して入出力の通信制御を行います。 これにより、特定のIPアドレスのみ接続を許可するなどの細かいルール設定が可能です。
7. AWS初心者が覚えておきたいセキュリティ設計の考え方
AWSで安全な環境を作るためには、「多層防御」という考え方が大切です。 つまり、1つの方法に頼るのではなく、複数の層で守るということです。
AWS ShieldはDDoS攻撃の大きな脅威に対する自動防御の役割、セキュリティグループは許可された通信だけを通す門番の役割を担っています。 両方を正しく設定し、ログや監視の仕組みも組み合わせることで、より安全なクラウド環境を構築できます。
まとめ
ここまで、AWS Shield(エーダブリューエス シールド)とVPCセキュリティグループのそれぞれの役割や、なぜこの二つを組み合わせて使う必要があるのかについて詳しく解説してきました。クラウド環境におけるセキュリティ対策は、単一のツールで完結するものではありません。特にDDoS攻撃のようなインフラ層を狙った攻撃と、特定の通信を制限するアクセス制御では、求められる技術要素が根本的に異なるからです。
クラウドセキュリティの要、多層防御の重要性
AWS Shieldは、私たちが意識せずとも背後で動いている強力な盾です。特にStandardプランは標準で有効化されており、Amazonの広大なネットワークを活かして、外部からの洪水のようなトラフィックを検知し、正常な通信を妨げることなく攻撃だけをいなしてくれます。一方で、セキュリティグループは、私たちが設計図を書くように「誰が、どのドアを通って、どの部屋(インスタンス)にアクセスできるか」を定義する精密な鍵のような存在です。
この二つの連携こそが、AWSが提唱する「責任共有モデル」に基づいた強固なインフラ構築の第一歩となります。例えば、Webサーバーを構築する際には、Shieldが外部からのサービス不能攻撃(DDoS)を防ぎ、セキュリティグループが不要なポート(例えばSSHの22番ポートを全開放しない等)を閉じることで、外部からの侵入リスクを最小限に抑えることができます。
設定の自動化とTerraformによるインフラ管理
実際の運用現場では、これらセキュリティ設定を手動で行うのではなく、コードによって管理する「Infrastructure as Code (IaC)」が主流です。ここでは、Terraform(テラフォーム)というツールを使って、Webサーバー用のセキュリティグループを作成し、HTTPおよびHTTPS通信を許可する設定例を見てみましょう。
<!-- セキュリティグループの設定イメージをXML形式で表現した場合 -->
<SecurityGroup>
<Name>web-server-sg</Name>
<Description>Allow HTTP and HTTPS traffic</Description>
<IngressRules>
<Rule>
<Protocol>tcp</Protocol>
<FromPort>80</FromPort>
<ToPort>80</ToPort>
<CidrIp>0.0.0.0/0</CidrIp>
</Rule>
<Rule>
<Protocol>tcp</Protocol>
<FromPort>443</FromPort>
<ToPort>443</ToPort>
<CidrIp>0.0.0.0/0</CidrIp>
</Rule>
</IngressRules>
</SecurityGroup>
このように、許可したいプロトコルとポート番号を明確に定義することが、セキュリティグループ運用の鉄則です。また、設定が正しく反映されているかを確認するために、Linuxコマンドを使ってインスタンスのステータスや適用されているネットワーク設定を確認することもしばしばあります。
aws ec2 describe-security-groups --group-names web-server-sg
{
"SecurityGroups": [
{
"Description": "Allow HTTP and HTTPS traffic",
"GroupName": "web-server-sg",
"IpPermissions": [
{
"FromPort": 80,
"IpProtocol": "tcp",
"IpRanges": [{"CidrIp": "0.0.0.0/0"}],
"ToPort": 80
}
]
}
]
}
さらに高度な保護が必要な場合:Shield Advanced
もし、あなたが大規模なECサイトや金融システムなど、ダウンタイムが許されないビジネスを運営している場合は、無料のStandardではなく「AWS Shield Advanced」の検討が必要です。Advancedでは、24時間365体制のDDoSレスポンスチーム(DRT)によるサポートや、攻撃によって発生したコストの保護(スパイク時の費用補填)など、よりビジネスに直結した安心を得ることができます。
しかし、どのような高度な盾(Shield)を持っていても、城門(セキュリティグループ)が開きっぱなしでは意味がありません。「適切なポート制御」と「自動化されたDDoS防御」を両立させること。これがAWSで安定したサービスを継続するための最大のポイントです。初心者の方はまず、デフォルトで守られていることを理解した上で、セキュリティグループで「最小権限の原則」を適用することから始めてみてください。
生徒
「先生、まとめるとAWS Shieldは『洪水から街全体を守る大きなダム』で、セキュリティグループは『それぞれの家の玄関にある鍵』という感じですね!」
先生
「その通り、素晴らしい例えです!ダム(Shield)がなければ、家(インスタンス)ごと流されてしまいますし、鍵(セキュリティグループ)がなければ、泥棒に簡単に入られてしまいます。どちらが欠けてもいけない理由がわかったかな?」
生徒
「はい!よくわかりました。まずは無料のShield Standardが自動で動いていることに安心しつつ、自分で設定するセキュリティグループはしっかり最小限の許可に絞るようにします。これって設定を間違えると、自分もアクセスできなくなっちゃいますよね?」
先生
「そうですね。特にお仕事でLinuxサーバーを扱う時は、SSHのポート(22番)をうっかり閉じてしまって、後から焦るなんてこともよくある失敗談です。まずは自分のIPアドレスだけを許可するなど、工夫してみるといいですよ。」
生徒
「自分のIPだけ許可すれば、知らない誰かにログインされる心配も減りますね。さっそくAWSのコンソールを開いて、今の設定がどうなっているか確認してみます!」
先生
「その意気です。理論を学んだら、次は実際に動かしてみることが一番の近道です。頑張ってくださいね!」