0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWSサービスとプロトコルの対応

0
Last updated at Posted at 2026-02-21

AWSサービスとプロトコルの対応

以下記事後半のAWSに関する実用的部分だけ再掲して記事にしました。


入口(イングレス):プロトコルと対応サービス

入口サービスはプロトコルを「理解して処理」する必要があるため、対応プロトコルが限定される。
どの入口を選ぶかが、受け付けられるプロトコルを決める。

プロトコル分類 対応する入口サービス 備考
REST / GraphQL(A-1-①) CloudFront・API GW・ALB 最も一般的な構成
非同期メッセージング(A-1-②)
SQS / SNS / EventBridge
直接エンドポイント(AWS署名V4)
API GW(REST API)経由も可
CloudFrontのオリジンにはできない
直接エンドポイントはカスタムドメイン不可だが、API GW経由ならカスタムドメイン割り当て可能
SSE(A-1-③) CloudFront・API GW・ALB HTTP接続を維持するだけなので特別な対応不要
WebSocket(A-2) ALB・API GW(REST API) NLBも素通し可(L4透過)
gRPC(A-2) ALB(HTTP/2モード)・NLB・CloudFront 2024年11月にCloudFront対応
HTTP / HTTPS(A-1-a, A-1-c) Verified Access(HTTPモード) VPNなしのゼロトラストアクセス。L7専用(HTTP/HTTPS のみ)。WAF付与可。ID・デバイス検証を入口で実施
TCP(B-1系統) Verified Access(TCPモード) VPNなしのゼロトラストアクセス。WAF付与不可。ID・デバイス検証を入口で実施
MQTT(B-1) NLB・AWS IoT Core(専用) ALB・API GWは非対応。IoTデバイス向けにはIoT Coreが専用入口
独自TCP / UDP(B-1) NLB L4透過のためプロトコル不問
SSH / RDP(B-1) NLB 同上
WebRTC(B-1) NLB(シグナリング部分のみ) P2P部分はAWSを経由しない。シグナリングサーバーをEC2/ECS上に置く構成

Route53はDNSレイヤーのため「入口」ではなく「入口への誘導」。
CloudFront・API GW・ALB・NLBにはAliasレコードで向けられる。
SQS・SNS・EventBridgeの直接エンドポイントにはカスタムドメインを割り当てられない。

gRPCとCloudFront
2024年11月に接続対応したが、HTTP/2とHTTP POSTを有効化した上でgRPCチェックボックスをオンにする必要あり
ただし制約もあって、Origin Failoverをサポートせず、Lambda@EdgeやOrigin Shieldもバイパスされ、WAFのリクエストボディ検査ルールも無視される。

https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-using-grpc.html

Verified Accessの補足:HTTPモードとTCPモード

モード 対応プロトコル WAF ポリシー評価タイミング
HTTP/HTTPS REST・GraphQL・SSE(A-1系) 付与可 リクエストごと
TCP WebSocket・SSH・RDP・DB接続(A-2・B-1系) 付与不可 接続確立時のみ
※ TCPモードはNLBと同様にL7の中身を見ないため、
  アプリケーション側でのバリデーションが重要になる。

入口のセキュリティ

入口のセキュリティは「どのレイヤーまで見るか」で担当サービスが分かれる。
レイヤーが上がるほど細かく見えるが、設定の複雑さも増す。

インターネット
    ↓
Shield(L3/L4:DDoS検知・緩和)
    ↓
Route53(DNS層:ルーティング操作の制御)
    ↓
CloudFront / ALB / API GW / NLB(入口サービス)
    ↓
WAF(L7:HTTPリクエスト内容の検査)← CloudFront・ALB・API GWにのみ付けられる
    ↓
バックエンド(EC2・Lambda等)

NLBにはWAFを付けられない点に注意。
NLB経由でWebSocket・gRPC・独自プロトコルを受け付ける構成では、
L7のリクエスト検査ができないため、アプリケーション側でのバリデーションが重要になる。


出口(イグレス):基本的にプロトコル不問

出口インフラ(NAT GW・IGW・Egress-Only IGW)はIPパケットを転送するだけのため、
その中身のプロトコルを問わない。EC2・Lambda・ECSのコード内でHTTPだろうがMQTTだろうがgRPCだろうが、アウトバウンドは自由に使える。

プロトコルを制限したい場合は、以下でポート・ドメイン単位で制御する。

  • Security Group / NACL:ポート番号で制御
  • AWS Network Firewall:ドメイン・プロトコルレベルで制御(許可リスト方式)

出口のセキュリティ

プロトコル制限の手段

サービス 制御レベル 内容
Security Group / NACL L4(ポート番号) 許可するポート・IPを指定。HTTPSなら443のみ開放するなど
Network Firewall L4〜L7 ドメイン名・プロトコル・シグネチャでフィルタ。ステートフルなルールが書ける

例外:SES(送信メール)

SESは「外部SMTPサーバーにメールを送信する」出口を自身が持つため、プロトコルが決まっている。

用途 プロトコル ポート
SESからの外部メール送信 SMTP 25 / 465(SMTPS)/ 587(STARTTLS)
アプリ→SESへの送信依頼 HTTPS(AWS API) 443

アプリがSESを呼ぶのはHTTPS(API)。
SESが外部メールサーバーに届けるのはSMTP。
この2つのプロトコルが混在する点に注意。


IP以外の出口:IoTデバイスとの通信

AWSからIPを使わないデバイス(センサー・組み込み機器・車載ECU等)と通信する場合、
AWS IoT Greengrassがゲートウェイとして機能し、IP世界とIP以外の世界を橋渡しする。

AWS IoT Core(クラウド側)
    ↕ MQTT over TLS(IPネットワーク)
AWS IoT Greengrass(エッジゲートウェイ)
    ↕ 各種IP以外のプロトコル(ローカル)
デバイス

Firewall Manager:入口・出口どちらでもない(管理プレーン)

Firewall Manager自身はトラフィックを通さない。
WAF(入口)・Network Firewall(入口+出口)・Shield・Security Groupのポリシーを、
複数アカウント・複数リージョンにわたって一元管理するための管理ツール。

Firewall Manager(管理プレーン)
    ├─ WAFポリシー         → CloudFront・ALB・API GW に適用(入口)
    ├─ Network Firewallポリシー → 各VPCに適用(入口+出口)
    ├─ Shield Advancedポリシー  → 保護対象リソースを一括登録
    └─ Security Groupポリシー   → EC2・ENIに適用

AWS Organizationsと連携し、新しいアカウントが作成されたときに
自動でポリシーを適用する「強制適用」ができる点が主な利点。


入口の選び方まとめ

やりたいこと 入口の選択
REST APIを公開、Lambdaを呼ぶだけ HTTP API(API GW)
REST APIを公開、SQSやSNSに直接転送したい REST API(API GW)
WebSocketを使いたい ALB または REST API(API GW)
独自プロトコル・TCP/UDP直接 NLB
CDN・キャッシュ・WAFも使いたい CloudFront + API GW or ALB
カスタムドメインにしたい Route53 → CloudFront or API GW or ALB
AWSサービスに外部から直接繋ぎたい 直接エンドポイント(AWS署名V4)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?