カテゴリ: AWS 更新日: 2026/03/02

AWS ShieldとVPCセキュリティグループの関係をやさしく解説!DDoS対策とアクセス制御の基本

AWS ShieldとVPCセキュリティグループの関係
AWS ShieldとVPCセキュリティグループの関係

先生と生徒の会話形式で理解しよう

生徒

「先生、AWSのDDoS対策って、AWS Shieldを使うって聞いたんですけど、セキュリティグループとはどう違うんですか?」

先生

「いい質問ですね。AWS Shield(エーダブリューエス シールド)は、DDoS攻撃から守るための仕組みで、VPCのセキュリティグループとは少し役割が違うんですよ。」

生徒

「一緒に使うものなんですか?それともどっちかを選べばいいんですか?」

先生

「それじゃあ、AWS ShieldとVPCのセキュリティグループの関係や違いをわかりやすく説明していきましょう!」

1. AWS Shieldとは?読み方と基本の役割

1. AWS Shieldとは?読み方と基本の役割
1. AWS Shieldとは?読み方と基本の役割

AWS Shield(エーダブリューエス シールド)は、インターネット上の悪意ある攻撃者が仕掛けるDDoS(ディードス)攻撃から、あなたのシステムを守るためのマネージド型セキュリティサービスです。

DDoS攻撃とは、一度に大量のデータを送りつけてサーバーをパンクさせる攻撃のこと。AWS Shieldは、特にネットワークの深い層(レイヤー3・4)での攻撃を24時間体制で監視し、異常な通信を自動的に検知・緩和(遮断)してくれる、いわば「24時間稼働の全自動防波堤」です。

2つのプランの違い
  • AWS Shield Standard(スタンダード):追加料金なしで、すべてのAWSユーザーに自動適用されます。一般的な攻撃を勝手に防いでくれる、初心者にも安心の基本機能です。
  • AWS Shield Advanced(アドバンスド):月額費用が発生する上位版です。より大規模な攻撃への対応や、24時間体制の専門チーム(SRT)による直接サポート、攻撃によるコスト増の補填などが受けられます。

たとえば、攻撃者がサーバーをダウンさせようとして、以下のような大量の「ゴミデータ」を送りつけてきたとします。


【DDoS攻撃のイメージ】
[攻撃者A] --- 大量の偽データ ---> [AWS Shield] --- 正常な通信のみ通す ---> [あなたのシステム]
[攻撃者B] --- 大量の偽データ ---↗ (ここで自動ブロック)
[一般客]  --- 買い物リクエスト ----------------------------------------→ (快適に動作!)

このように、私たちが特別な設定(プログラミングや複雑なルール作成)をしなくても、「標準で勝手に守ってくれている」のがShieldの大きな強みです。まずは「外からの大きな波を防ぐための壁」だと覚えておきましょう。

2. VPCセキュリティグループとは?読み方と意味

2. VPCセキュリティグループとは?読み方と意味
2. VPCセキュリティグループとは?読み方と意味

VPC(ブイピーシー)は「Virtual Private Cloud(バーチャル プライベート クラウド)」の略で、AWS上に作るプライベートなネットワークのことです。 その中で「セキュリティグループ」は、インスタンスに対する通信を制御するファイアウォールのようなものです。

セキュリティグループでは、たとえば「TCPのポート80だけを許可する」「特定のIPアドレスだけからのアクセスを許す」といった細かい設定ができます。

3. AWS Shieldとセキュリティグループの違いと関係

3. AWS Shieldとセキュリティグループの違いと関係
3. AWS Shieldとセキュリティグループの違いと関係

AWS ShieldとVPCセキュリティグループは同じセキュリティ目的で使われますが、役割が異なります

  • AWS Shield:主にDDoS攻撃のような大量トラフィック攻撃を防ぐ
  • セキュリティグループ:個々の通信のアクセス制御を行う

つまり、Shieldは外からの「波」を自動で受け止める防波堤、セキュリティグループは誰を中に入れるか決める門番のようなイメージです。 この2つは組み合わせて使うことで、強固なセキュリティが実現できます。

4. なぜ両方必要なの?初心者にもわかる考え方

4. なぜ両方必要なの?初心者にもわかる考え方
4. なぜ両方必要なの?初心者にもわかる考え方

セキュリティグループだけでは、攻撃者が短時間に何百万回もアクセスしてくるようなDDoS攻撃を防ぐのは難しいです。 一方、AWS Shieldだけでは「特定のIPだけ許可したい」「このポートだけ開けたい」といった細かい制御はできません。

だからこそ、Shieldで攻撃の波を食い止めセキュリティグループで細かくアクセスを管理することで、安心してシステムを運用できます。

5. 実際の使い方:Shieldとセキュリティグループの連携例

5. 実際の使い方:Shieldとセキュリティグループの連携例
5. 実際の使い方:Shieldとセキュリティグループの連携例

たとえば、WebアプリケーションをEC2(イーシーツー)上で運用している場合、次のような構成になります。

  • Shield Standard:インターネットからの異常なトラフィックを自動で検出
  • VPCセキュリティグループ:80番(HTTP)と443番(HTTPS)だけを開放、それ以外はブロック

このようにして、DDoS攻撃の入口はShieldで抑え通信の中身はセキュリティグループで制御するという分担ができています。

6. AWS Shieldが守る範囲とセキュリティグループの設定範囲

6. AWS Shieldが守る範囲とセキュリティグループの設定範囲
6. AWS Shieldが守る範囲とセキュリティグループの設定範囲

Shieldは、AWSの外から来る大量トラフィックを対象とした自動防御が主な役割です。 特に、CloudFront(クラウドフロント)やElastic Load Balancing、Route 53などのサービスと連携して効果を発揮します。

一方、セキュリティグループは、VPC内のインスタンス(EC2など)に対して入出力の通信制御を行います。 これにより、特定のIPアドレスのみ接続を許可するなどの細かいルール設定が可能です。

7. AWS初心者が覚えておきたいセキュリティ設計の考え方

7. AWS初心者が覚えておきたいセキュリティ設計の考え方
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のコンソールを開いて、今の設定がどうなっているか確認してみます!」

先生

「その意気です。理論を学んだら、次は実際に動かしてみることが一番の近道です。頑張ってくださいね!」

カテゴリの一覧へ
新着記事
New1
AWS PrivateLink
AWS PrivateLinkのユースケースと業界別活用事例|セキュアな通信の決定版
New2
AWS PrivateLink
AWS PrivateLinkのログ取得とトラブル対応手順を完全ガイド!初心者でもわかるセキュアな接続確認方法
New3
ファイル・ディレクトリ構造
Linuxの/etcディレクトリとは?設定ファイルの役割を初心者向けに徹底解説
New4
AWS Lambda
AWS Lambdaでログを確認する方法を完全解説!CloudWatch Logsで初心者でも安心運用
人気記事
No.1
Java&Spring記事人気No1
S3(オブジェクトストレージ)
AWS S3の料金体系をわかりやすく解説
No.2
Java&Spring記事人気No2
Linux ディストリビューション
Linuxディストリビューションとは?OSとの関係や初心者におすすめの種類を徹底解説!
No.3
Java&Spring記事人気No3
ELB(ロードバランサー)
AWS ELBでターゲットグループを設定する方法を初心者向けに解説!
No.4
Java&Spring記事人気No4
シェルとターミナル基礎
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.5
Java&Spring記事人気No5
Linux ディストリビューション
Ubuntuとは何か?特徴と向いている用途を初心者向けに徹底解説!
No.6
Java&Spring記事人気No6
AWS 基本
AWSのサービスのステータス確認方法(AWS Health Dashboard)
No.7
Java&Spring記事人気No7
RDS(データベース)
AWS RDSのセキュリティグループ設定方法を解説!初心者でも安心のクラウドデータベース対策
No.8
Java&Spring記事人気No8
ELB(ロードバランサー)
AWSのNetwork Load Balancer(NLB)の特徴と使い方を解説!初心者向けロードバランサー入門