Amazon ANS-C01: ネットワークセキュリティとコンプライアンス — 学習ガイド
こちらの一部です: AWS Advanced Networking Specialty ANS-C01 — 学習ガイド. 検証済みの解答で練習: Amazon試験ハブ, または時間制限付き模擬試験に挑戦: ExamRoll.io.
コアコンセプト
AWSのネットワークセキュリティは階層化されています。ペリメターコントロール、VPCレベルのコントロール、ホストおよびアプリケーションレベルのコントロール、そしてモニタリング/検査です。VPCの境界では、セキュリティグループ(ステートフルで、ENIに適用されるホスト中心の仮想ファイアウォール)とネットワークACL(ステートレスで、ルール番号によって評価されるサブネットレベルのフィルタリング)を使用して、大まかなアクセスコントロールを強制します。セキュリティグループは接続状態を追跡するため、確立されたリプライフローは自動的に許可されます。これにより、クライアントから開始されたポッドやインスタンスへの接続を許可するのに理想的です。NACLは、双方向の明示的な許可エントリ、またはリターントラフィックのための補完的なルールを必要とします。ルール番号の昇順で評価されるため、CIDRレンジ全体を排除したり、緊急ブロックリストのための一時的なエスケープハッチを適用したりするなど、広範なサブネットレベルの強化に適しています。
検査と一元的なポリシー適用は、マネージドサービスおよびセルフマネージドサービスによって提供されます。AWS Network Firewallは、VPCペリメターで、明示的なファイアウォールポリシーとルールグループを使用して、ステートフルなSuricataライクな保護、ドメインリストフィルタリング、侵入防止スタイルのシグネチャを実装できます。Web Application Firewall (AWS WAF)は、HTTP(S)レイヤーの保護に特化したアプリケーション中心のサービスで、Application Load Balancer、Amazon CloudFront、API Gatewayと統合して、OWASPの保護、レートベースのルール、カスタムヘッダーチェックを強制します。DDoS保護はAWS Shieldによって提供されます(Standardは自動かつ無料で、Shield Advancedはトラフィックエンジニアリング、コスト保護、およびアプリケーションレイヤーの緩和策のためのWAFとの統合を提供します)。Amazon GuardDutyなどの検出サービスは、VPC Flow Logs、DNSログ、CloudTrailを分析して、偵察行為、ポートスキャン、侵害されたインスタンスの振る舞いを明らかにします。
可視性とパケットキャプチャがこのモデルを完成させます。VPC Flow LogsはENIごとのフローメタデータを記録し、Athenaでの分析のためにCloudWatch Logs、Amazon S3、またはKinesis Data Firehoseに配信できます。フルパケットキャプチャやより詳細な検査のためには、Traffic Mirroringを使用して、ENIのトラフィックをIDS/パケットキャプチャアプライアンス(ミラーリングされたENIを持つEC2センサーまたはNetwork Load Balancerターゲット)にミラーリングできます。そこではSuricataやZeekのようなツールが実行されます。これらのコントロールを組み合わせることで、防御、検出、フォレンジックがすべて存在する多層防御の態勢を可能にします。
主要なサービスと設定
ネットワークセキュリティの中心となるいくつかのAWSサービスがあり、それぞれに知っておくべき特定の設定パターンとAPIがあります。
- Security Groups
- Network ACLs (NACLs)
- AWS Network Firewall
- AWS WAF
- AWS Shield (Standard and Advanced)
- Amazon GuardDuty
- VPC Flow Logs
- Traffic Mirroring
セキュリティグループは、EC2 APIまたはコンソールを介してENIごとに設定されます。イングレスルールを追加するには、「aws ec2 authorize-security-group-ingress –group-id sg-123 –protocol tcp –port 443 –cidr 0.0.0.0/0」を使用します。最小権限のCIDRを使用し、過度に広範なルールを避けるために、ロードバランサーとバックエンドポッドに別々のSGをアタッチすることを忘れないでください。NACLは「aws ec2 create-network-acl」で作成し、「aws ec2 create-network-acl-entry」でルール番号、ルールアクション、プロトコル、ポート範囲、egressフラグを指定して番号付きエントリを追加します。
AWS Network Firewallは、VPCサブネットに作成されたファイアウォールリソースにバインドされたルールグループとファイアウォールポリシーを使用します。ステートレスまたはステートフルなルールを定義するには「aws network-firewall create-rule-group」を、それらを構成するには「aws network-firewall create-firewall-policy」を、デプロイするには「aws network-firewall create-firewall」を使用します。プロトコルを意識した検査やSuricata互換のシグネチャルールにはステートフルルールグループを選択し、非常に高いスループットの一次フィルタリングにはステートレスルールを使用します。
AWS WAFはWeb ACLをALBにアタッチし、IPセットの一致、ヘッダーの文字列一致、またはレートベースのルールを強制できます。「aws wafv2 create-web-acl」を使用し、ヘッダーをチェックするルールを指定します(例えば、信頼できるフロントドアで注入したカスタムヘッダーを含まないリクエストをブロックするなど)。AWS Shield Advancedはアカウントごとに有効化され、DDoSレスポンスチームへのアクセスと、Shield Advancedに登録されたリソースに対する追加の保護を提供します。
「aws guardduty create-detector」を介してGuardDutyを有効にし、検出結果をCloudWatch EventsまたはEventBridgeと統合して自動化します。テレメトリのためには、「aws ec2 create-flow-logs –resource-type VPC –resource-id vpc-123 –traffic-type ALL –log-destination-type cloud-watch-logs –log-group-name /aws/vpc/flowlogs」を介してVPC Flow Logsを作成します。パケットキャプチャのためには、「aws ec2 create-traffic-mirror-target」、「aws ec2 create-traffic-mirror-filter」、および「aws ec2 create-traffic-mirror-session」を使用して、ミラーリングされたトラフィックをアプライアンスのENIまたはNLBに送ります。
設計パターンとトレードオフ
ロードバランサーがTLSを終端してはならない相互TLSによるエンドツーエンド暗号化には、レイヤー4パススルーパターンが必要です。バックエンドのPodの前にNetwork Load Balancer (NLB) を使用し、TLSセッションがサービスエンドポイントと直接ネゴシエートされるようにします。EKS上のKubernetesでは、NLBをバックエンドとするLoadBalancerタイプのServiceをデプロイし、PodをIPでターゲットとして登録します。AWS Load Balancer Controllerまたは従来のServiceアノテーションにより、ターゲットタイプがIPであり、ターゲットグループのプロトコルがTCPであることが保証されます。gRPCや多くの長寿命なHTTP/2接続に特徴的な高い同時実行性に対して、NLBは送信元IPを保持し、L7プロキシよりも接続ごとのオーバーヘッドが低くなります。ALBでのTLS終端が必要な場合(例:URLベースのルーティング)、ACM証明書を使用してALBでTLSを終端し、バックエンドに転送する必要があります。クライアントIPを保持するには、X-Forwarded-For (ALB) に依存するか、L4で元の送信元IPが必要なバックエンドに対してProxy Protocol v2対応のNLBを使用します。
中央集権的なサービスが必要なマルチアカウント、マルチVPCのスケーラブルなアーキテクチャでは、PrivateLink (AWS VPC Endpoint Services) が最も安全でスケーラブルな選択肢です。共有サービスVPCから中央集権的なサービスをAWS PrivateLinkエンドポイントサービスとして公開します。各コンシューマーアカウントは、そのサービスへのインターフェースVPCエンドポイントを作成します。サービスオーナーはエンドポイントの承認を要求し、エンドポイントENIにセキュリティグループベースの制御を適用できます。このモデルは、トラフィックをAWSネットワーク内に留め、ピアリングのスケーリング制限を回避し、コンシューマーごとのきめ細かなセキュリティを提供します。セグメンテーションを伴うTransit GatewayとNetwork Firewallは、ネットワークレベルのトランジットと中央集権的な検査に使用できますが、サービスごとの分離よりも、複雑なルーティングポリシーを伴う完全なルーティング接続が必要な場合に適しています。
Direct Connect上の複数のVIFにまたがる帯域幅使用量を診断する際は、まずメタデータを優先します。S3またはCloudWatchに集約されたVPC Flow Logsを有効化してクエリを実行し、Athena経由で分析して、大量のIPフローを特定のVPCやサブネットにマッピングします。フローログをDirect Connectの仮想インターフェースに関するCloudWatchメトリクスで補完し、ペイロードレベルの検査や異種プロトコルが必要な場合は、Traffic MirroringをデプロイしてEC2ベースのIDSにパケットをキャプチャします。Traffic Mirroringは負荷が高くコストがかかるため、フローログやGuardDutyの検出結果では不十分なセッションや期間に限定して使用します。
よくある落とし穴と判断基準
よくある間違いは、広範な境界防御をセキュリティグループだけに依存し、サブネットレベルまたはステートフルインスペクションが必要な場合にNACLやNetwork Firewallを使用しないことです。セキュリティグループはENIごとであり管理が容易ですが、異なるアカウントにある多くのVPCに対する一元的なコントロールプレーンとしてはうまくスケールしません。アカウントをまたいでWAFとNetwork Firewallのルールを一元管理するには、AWS Firewall Managerを使用します。もう一つの落とし穴は、クライアントIPの保持を考慮せずにロードバランサーでTLSを終端することです。ALBはX-Forwarded-Forヘッダーを挿入しますが、アプリケーションのロギングでそのヘッダーを明示的に読み取り、信頼関係を確立する必要があります(例:ALBのみがそれを送信するようにする)。Global AcceleratorのみがALBに到達できるという厳密な保証のためには、DNSのみに依存することを避け、代わりにセキュリティグループを介してALBリスナーをアクセラレータの公開IPレンジに制限する(ip-ranges.jsonまたはマネージドプレフィックスリストで更新を自動化する)か、可能であれば内部専用ALBを使用してアクセラレータのエンドポイントをその前面に配置します。
PrivateLinkとTransit Gatewayのどちらを選択するかは、サービスの粒度とフルメッシュルーティングを比較検討して決定します。PrivateLinkは、セキュリティグループレベルのフィルタリングによるサービスごとのアクセス制御を提供し、ルーティングテーブルを肥大化させることなくスケールします。Transit Gatewayは、多くのVPCとオンプレミスネットワーク間のルートベースの接続が必要な場合や、AWS Network Firewallによる一元的なパケットインスペクションが必要な場合に必須です。高スループットのためには、境界にステートレスなNetwork Firewallルールを使用し、重要なフローにはターゲットを絞ったステートフルグループを組み合わせることを推奨します。ステートレス処理はスケールしますが、プロトコルの認識能力を失います。
実践的な問題:ユースケースシナリオ
企業名: Meridian Payments — 課題: EKS上でgRPCベースの決済APIを有効化する。要件は、エンドツーエンドの相互TLS(経路上でのTLS終端なし)、数千の同時長寿命接続のサポート、Podのオートスケーリング、およびロギングと不正検知のための送信元クライアントIPの特定。
アプローチ: EKS Serviceの前面にAmazon Network Load Balancerをデプロイし、ターゲットタイプをIPに設定して、PodのENIがNLBのターゲットグループに直接登録されるように構成します。AWS Load Balancer Controllerを使用して、アノテーション付きでNLBをバックエンドに持つServiceを作成し、ターゲットグループのプロトコルがTCP 443であり、ヘルスチェックがTCPを使用することを保証します。バックエンドのPodでmTLSを終端します。標準化された証明書ローテーションが必要な場合は、IstioまたはサイドカーのTLSライブラリを設定し、AWS Certificate Manager Private Certificate AuthorityまたはAWS Secrets Managerから投入されたKubernetes Secretsを使用します。NLBは送信元IPを保持するため、クライアントIPが維持されます。バックエンドPodのnetworkPolicyとセキュリティグループのルールで、NLB/クライアントからの送信元レンジを許可するようにします。HPAとCluster Autoscalerを使用してPodをスケールさせます。ターゲットグループの登録解除の遅延を調整して、グレースフルなコネクションドレイニングを可能にします。
可観測性とフォレンジックのアプローチ: EKS VPCのVPC Flow Logsを有効にしてCloudWatch Logsに送信し、Kinesis Firehose経由でS3に集約して保持し、Athenaクエリで高帯域幅のフローをマッピングします。VPCフローとDNSの異常検知のためにGuardDutyを有効にします。不正が疑われる期間に、より詳細なパケットインスペクションが必要な場合は、問題のあるENIでTraffic Mirrorセッションを作成し、Suricataを実行しているEC2センサーに送信します。コストを抑えるために、ミラーフィルターを管理して関連するトラフィックのみをキャプチャします。
AWSの論理的根拠: NLBはL4パススルーを提供するため、TLSとmTLSはエンドツーエンドでネゴシエートされ、バックエンドは真のクライアントIPを認識できます。これにより、トラフィックが中間プロキシによって復号されず、ロギング/不正分析で元の送信元が確認できるという要件が満たされます。PodをIPで登録し、AWS Load Balancer Controllerを使用することで、EKSのオートスケーリングと統合されます。VPC Flow Logs、GuardDuty、Traffic Mirroringは、メタデータからフルパケットキャプチャまで段階的な可視性を提供し、スケーラブルでコスト効率の高いコンプライアンスとインシデント対応を実現します。
← ロードバランシングとトラフィック管理 · すべてのドメイン · コンテンツ配信とエッジネットワーキング →
これらの問題を練習する → · ExamRoll.ioで時間制限付き練習 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
試験に合格する →