AWS は基盤となるインフラストラクチャに対してセキュリティ対策を実装しており、DDoS攻撃に対してもワークロードを自動的に保護しているが、より高いセキュリティ状態を保つためにはアプリケーションの設計やセキュリティサービスの実装を行う必要がある。
ベストプラクティス
攻撃対象の範囲を縮小
Amazon API Gatewayを利用する
- アプリケーションとインターネットの間にAPI Gatewayを置くことで、DDoS攻撃のような悪意のあるトラフィックはAPI Gateway の段階でブロックされ、アプリケーションは攻撃から保護される。
- API GatewayはAWS WAFと連携でき、さまざまな種類の攻撃に対する防御も強化可能。
Elastic Load Blancing (ELB)の後段にEC2 などのコンピューティングリソースを配置する
- リソースを外部からアクセスできないようにし、ELBからのみアクセス可能なプライベートサブネットに配置することで、インターネットから隔離し保護する。
- NACLとセキュリティグループの設定が必要。
Web、DNS サーバーへの不正な通信の遮断、通信料の減少
Amazon CloudFront によるエッジロケーションを利用する
- キャッシュによってオリジンサーバーへの通信量を減少させ、アクセス集中を緩和できる
- 他にも、さまざまな攻撃をエッジロケーションで吸収可能
AWS Web Application Firewall (AWS WAF) でアプリケーションレイヤーを保護する
- AWS WAFで、様々な脆弱性を悪用する攻撃からアプリケーションの保護が可能
- 保護対象リソースはAmazon CloudFront・Amazon API Gateway・Application Load Balancer など。
Web、DNS サーバーの冗長化による負荷分散
Amazon Route 53 で DNS を保護する
- Amazon Route 53 は AWS グローバルエッジロケーションでホストされており、大量のトラフィックを処理できる。
- Route 53がDNSクエリを監視し、正常なリクエストと疑わしいリクエストを区別し、DDoS攻撃の一部だと判断されたトラフィックの優先度を下げ、正常なユーザーからのリクエストが処理されるようにできる。
Elastic Load Balancing (ELB)とEC2 Auto Scalingで負荷分散する
- Elastic Load Balancing の後段に Amazon EC2 Auto Scaling を配置する。
- 大規模にコンピューティングリソースを運用し、アクセスが集中した際に自動的にスケーリングし、負荷分散を行うことで、DDoS 攻撃が発生した場合でもシステムの可用性に直ちに影響が出ないようにすることが可能。