📘

2. インフラストラクチャー的セキュリティ

2023/06/19に公開

対象サービス

  • AWS Firewall Manager
  • AWS Network Firewall
  • AWS WAF
  • AWS Shield
  • Amazon VPC (VPCe, SG, NACL, Access Analyzer)
  • AWS Site-to-Site VPN*
  • AWS Client VPN*
  • AWS Certificate Manager (ACM)
  • (Amazon CloudFront)*
  • (Load Balancing)*

*試験ガイド内の"AWSのサービスと機能"には記載なし

AWS Firewall Manager

*Orgとの連携は覚えておいた方がいいかも

管理対象

  • AWS WAF
  • AWS Shield Advanced
  • VPC Security Groups
  • AWS Network Firewall
  • Route 53 Resolver DNS Firewall
  • Third-party services

*Security Hubに通知可能

マルチアカウントでの管理

https://pages.awscloud.com/rs/112-TZM-766/images/202206_AWS_Black_Belt_AWS_FirewallManager_For_AWS_WAF.pdf

設定方法

1: AWS Organizations に参加して設定する
2: AWS Firewall Manager のデフォルト管理者アカウントを作成する
3: AWS Config を有効にする
4: サードパーティのポリシーについては、AWS Marketplace でサブスクライブし、サードパーティーの設定を行う
5: Network Firewall ポリシーと DNS Firewall ポリシー用にリソース共有を有効にする
https://docs.aws.amazon.com/ja_jp/waf/latest/developerguide/fms-prereq.html

*Firewall Managerはグローバルサービス、ルールセットはリージョンごとに定義し配布

AWS WAF のログ集約

各ポリシーの配布方法

https://docs.aws.amazon.com/ja_jp/waf/latest/developerguide/getting-started-fms-intro.html

AWS Network Firewall

基本はThirdParty IPS と同じ
https://d1.awsstatic.com/webinars/jp/pdf/services/BlackBelt202106_AWS_Network_Firewall_Basic.pdf
https://blog.serverworks.co.jp/all-about-aws-network-firewall

検査方法

既存 Network Firewall の吸収

https://dev.classmethod.jp/articles/aws-firewall-manager-import-existing-aws-network-firewall-resources/

RAM との連携

Network Firewall は RAM での連携も可能
https://docs.aws.amazon.com/ja_jp/waf/latest/developerguide/enable-ram.html

Route 53 Resolver Firewall

AWS WAF

L7 Firewall
https://d1.awsstatic.com/webinars/jp/pdf/services/20200324_AWS_BlackBelt_AWS_WAF_Update.pdf

連携対象

  • Amazon CloudFront
  • Application Load Balancer
  • Amazon API Gateway
  • (AWS AppSync GraphQL API)
  • (Amazon Cognito ユーザープール)
  • (AWS App Runner のサービス)
  • (AWS Verified Access インスタンス)

ロギング

  • CloudWatch Logs log group
  • Kinesis Data Firehose stream
  • S3 bucket

AWS Shield

DDoS対策
*DDoSのテストをする場合カスタマーアグリーメントを結ぶ必要がある

AWS Shield Standard

デフォルト有効

AWS Shield Advanced

有償での24/7対応

Amazon VPC (VPCe, SG, NACL, Access Analyzer)

Webアプリのセキュアアクセス

*Web3層のSG/NACL構成
SGの送信元をSGに出来ることの理解

VPCエンドポイント

AWSの管理ネットワークを通す
Gatewayタイプ:S3、DynamoDB
 →ルートテーブルでルーティング
Interfaceタイプ:その他+S3
 →プライベートDNSでアクセス
https://dev.classmethod.jp/articles/aws-vpcendpoint-privatelink-beginner/

Access Analyzer

https://dev.classmethod.jp/articles/new-amazon-vpc-network-access-analyzer/
意図していないアクセス先を検出することが可能
ネットワークアクセス要件のチェック

AWS Site-to-Site VPN

BlackBelt

https://d1.awsstatic.com/webinars/jp/pdf/services/202110_AWS_Black_Belt_Site-to-Site_VPN.pdf

作成方法

ステップ 1: カスタマーゲートウェイを作成する
ステップ 2: ターゲットゲートウェイを作成する
ステップ 3: ルーティングを設定する
ステップ 4: セキュリティグループを更新する
ステップ 5: VPN 接続を作成する
ステップ 6: 設定ファイルをダウンロードする
ステップ 7: カスタマーゲートウェイデバイスを設定する
*Dirrect Connect と併せて使うことでインターネットを通さずに帯域保障とセキュリティを担保可能

https://docs.aws.amazon.com/ja_jp/vpn/latest/s2svpn/SetUpVPNConnections.html

Site-to-Site VPNで使用するポート

→UDP500、IP50
https://docs.aws.amazon.com/ja_jp/vpn/latest/s2svpn/your-cgw.html#FirewallRules

DPD

→Dead Peer Detection
IPSecで通信断を検出する機能
http://www.rtpro.yamaha.co.jp/RT/docs/ipsec/dpd.html

ジャンボフレーム

→AWSは "Don't Fragment "フラグが設定されている場合、MTUが1500以上のデータをドロップする
※VPG IPsec VPN 接続ではサポートされていない
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/network_mtu.html

最大帯域

1.25Gbps
※ECMPを使用してVPNを集約することが可能

AWS Client VPN

https://docs.aws.amazon.com/ja_jp/vpn/latest/clientvpn-admin/what-is.html
https://dev.classmethod.jp/articles/aws-client-vpn-perfect-understand/
承認ルールの部分は大事かも?
https://docs.aws.amazon.com/ja_jp/vpn/latest/clientvpn-admin/troubleshooting.html

AWS Certificate Manager (ACM)

https://d1.awsstatic.com/webinars/jp/pdf/services/20160713_AWS-BlackBelt-ACM.pdf

(Amazon CloudFront)

※セキュリティ関連のみ

ビュアーの設定

HTTP での着信

HTTP → CloudFront/*LB HTTPS → Origin (HTTP to HTTPS)

CloudFrontでの502エラー

→以下が考えられる

CloudFrontで証明書を使用する場合

→複数の制限あり

Amazon発行の証明書
  • 米国東部 (バージニア北部) リージョンで証明書をリクエストする
  • ACM 証明書を使用してリクエストするには、権限が必要
インポートした証明書

https://dev.classmethod.jp/articles/setalb_access_to_be_allowed_only_from_cloudfront/

ALBへのアクセス制限

CloudFront側でカスタムHTTPヘッダーを追加し、ALBではこのカスタムHTTPヘッダーを含む場合のみ転送するように設定する
https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/restrict-access-to-load-balancer.html
https://zenn.dev/mn87/articles/0c713fa29225d1

(Load Balancing)

※セキュリティ関連のみ
https://blog.serverworks.co.jp/2022/07/01/090030

TLS終端

ターゲットグループでプロトコルをHTTPにすると ALBで終端
HTTPSにするとE2EでHTTPS通信
https://dev.classmethod.jp/articles/alb-backend-https/

TLS 透過

注意:昔はできなかった(2019年以前)からターゲット側で行う必要があった
https://dev.classmethod.jp/articles/nlb-support-tls-termination-and-access-log/
https://aws.amazon.com/jp/blogs/news/new-tls-termination-for-network-load-balancers/

Discussion