ADC

NetScaler Web App Firewall を使用して AWS API ゲートウェイを保護

NetScaler アプライアンスをAWS API Gateway の前にデプロイし、API ゲートウェイを外部の脅威から保護できます。NetScaler Web App Firewall(WAF)は、OWASPの上位10件の脅威とゼロデイ攻撃からAPIを保護できます。NetScaler Web App Firewallは、すべてのADCフォームファクターで単一のコードベースを使用します。そのため、あらゆる環境にわたってセキュリティポリシーを一貫して適用し、適用することができます。NetScaler Web App Firewallは導入が簡単で、単一のライセンスとして利用できます。NetScaler Web App Firewall には次の機能があります。

  • 構成の簡素化
  • ボットの管理
  • 総合的な可視性
  • 複数のソースからのデータを照合し、統一された画面にデータを表示する

APIゲートウェイ保護に加えて、他のCitrix ADC機能も使用できます。詳しくは、 NetScaler のドキュメントを参照してください。データセンターのフェイルオーバーを回避し、シャットダウン時間を最小限に抑えるだけでなく、アベイラビリティーゾーン内またはアベイラビリティーゾーン間で ADC を高可用性に設定できます。Autoscale 機能でクラスタリングを使用または構成することもできます。

以前、AWS API Gateway は、その背後にあるアプリケーションを保護するために必要な保護をサポートしていませんでした。Web アプリケーションファイアウォール (WAF) 保護がなければ、API はセキュリティ上の脅威にさらされがちでした。

AWS API ゲートウェイの前にCitrix ADC アプライアンスをデプロイする

次の例では、NetScaler アプライアンスがAWS APIゲートウェイの前にデプロイされています。

AWS API ゲートウェイの前に ADC をデプロイする

AWS Lambda サービスに対する本物の API リクエストがあるとします。このリクエストは、 Amazon API Gateway のドキュメントに記載されているどの APIサービスにも適用できます。上の図に示すように、トラフィックフローは次のようになります。

  1. クライアントが AWS Lambda 関数 (XYZ) にリクエストを送信します。このクライアント要求は、Citrix ADC仮想サーバー(192.168.1.1)に送信されます。
  2. 仮想サーバはパケットを検査し、悪意のあるコンテンツがないかチェックします。
  3. Citrix ADCアプライアンスは、書き換えポリシーをトリガーして、クライアント要求のホスト名とURLを変更します。たとえば、 https://restapi.citrix.com/default/LamdaFunctionXYZhttps://citrix.execute-api.<region>.amazonaws.com/default/LambdaFunctionXYZに変更するとします。
  4. NetScaler アプライアンスは、このリクエストを AWS API ゲートウェイに転送します。
  5. AWS API Gateway はさらに Lambda サービスにリクエストを送信し、Lambda 関数「XYZ」を呼び出します。
  6. 同時に、攻撃者が悪意のあるコンテンツを含むAPIリクエストを送信すると、その悪意のあるリクエストはCitrix ADCアプライアンスに到達します。
  7. Citrix ADCアプライアンスはパケットを検査し、構成されたアクションに基づいてパケットをドロップします。

WAFを有効にしてCitrix ADCアプライアンスを構成する

Citrix ADCアプライアンスでWAFを有効にするには、次の手順を実行します。

  1. コンテンツスイッチまたは負荷分散仮想サーバーを追加します。仮想サーバーの IP アドレスが 192.168.1.1 で、ドメイン名(restapi.citrix.com)に解決されるとします。
  2. NetScaler 仮想サーバーでWAFポリシーを有効にします。詳細については、「 Web App Firewall の構成」を参照してください。
  3. 書き換えポリシーを有効にして、ドメイン名を変更します。たとえば、「restapi.citrix.com」ドメイン名のロードバランサーへの受信リクエストを、「citrix.execute-api」のバックエンド AWS API ゲートウェイに書き換えるように変更するとします。<region>.amazonaws”ドメイン名。
  4. Citrix ADCアプライアンスでL3モードを有効にして、プロキシとして機能させます。次のコマンドを使用します:

    enable ns mode L3
    <!--NeedCopy-->
    

前の例のステップ3で、Webサイト管理者がCitrix ADCアプライアンスで「restapi.citrix.com」ドメイン名を「citrix.execute-api」に置き換えることを望んでいるとします。<region>.amazonaws.com”と入力し、URL に「デフォルト/ラムダ/XYZ」を付けます。

次の手順では、書き換え機能を使用してクライアント要求のホスト名と URL を変更する方法について説明します。

  1. SSHを使用してCitrix ADCアプライアンスにログオンします。
  2. 書き換えアクションを追加する。

    add rewrite action rewrite_host_hdr_act replace "HTTP.REQ.HEADER("Host")" ""citrix.execute-api.<region>.amazonaws.com""
    
    add rewrite action rewrite_url_act replace HTTP.REQ.URL.PATH_AND_QUERY ""/default/lambda/XYZ""
    <!--NeedCopy-->
    
  3. 書き換えアクションの書き換えポリシーを追加します。

    add rewrite policy rewrite_host_hdr_pol "HTTP.REQ.HEADER("Host").CONTAINS("restapi.citrix.com") "rewrite_host_hdr_act
    
    add rewrite policy rewrite_url_pol "HTTP.REQ.HEADER("Host").CONTAINS("restapi.citrix.com") "rewrite_url_act
    <!--NeedCopy-->
    
  4. 書き換えポリシーを仮想サーバにバインドします。

    bind lb vserver LB_API_Gateway -policyName rewrite_host_hdr_pol -priority 10 -gotoPriorityExpression 20 -type REQUEST
    
    bind lb vserver LB_API_Gateway -policyName rewrite_url_pol -priority 20 -gotoPriorityExpression END -type REQUEST
    <!--NeedCopy-->
    

詳しくは、「 Citrix ADCアプライアンスのクライアント要求でホスト名とURLを変更するように書き換えを構成する」を参照してください。

NetScaler の機能と機能

Citrix ADCアプライアンスは、展開を保護するだけでなく、ユーザーの要件に基づいて要求を強化することもできます。Citrix ADCアプライアンスには、次の主要な機能があります。

  • APIゲートウェイの負荷分散: 複数のAPIゲートウェイがある場合は、Citrix ADCアプライアンスを使用して複数のAPIゲートウェイを負荷分散し、APIリクエストの動作を定義できます。

    • さまざまな負荷分散方式を使用できます。たとえば、Least 接続メソッドは API Gateway 制限のオーバーロードを回避し、Custom load メソッドは特定の API ゲートウェイの特定の負荷を維持するなどです。詳細については、「 負荷分散アルゴリズム」を参照してください。

    • SSL オフロードは、トラフィックを中断することなく設定されます。
    • [送信元 IP (USIP) を使用] モードを有効にすると、クライアント IP アドレスが保持されます。
    • ユーザー定義の SSL 設定:独自の署名証明書とアルゴリズムを使用して、独自の SSL 仮想サーバーを作成できます。
    • バックアップ仮想サーバー:API ゲートウェイにアクセスできない場合は、追加のアクションのためにリクエストをバックアップ仮想サーバーに送信できます。
    • 他にも多くの負荷分散機能を使用できます。詳しくは、「 Citrix ADCアプライアンスのトラフィックの負荷分散」を参照してください。
  • 認証、承認、監査: LDAP、SAML、RADIUS などの独自の認証方法を定義し、API リクエストの承認と監査を行うことができます。

  • レスポンダー: シャットダウン時に API リクエストを他の API Gateway にリダイレクトできます。

  • レート制限: レート制限機能を設定して、API ゲートウェイの過負荷を回避できます。

  • 可用性の向上: NetScaler アプライアンスを高可用性セットアップまたはクラスターセットアップで構成して、AWS API トラフィックの可用性を高めることができます。

  • REST API: REST API をサポートします。REST API は、クラウド本番環境での作業の自動化に使用できます。

  • データの監視: 参照用にデータを監視し、ログに記録します。

NetScaler アプライアンスにはさらに多くの機能があり、AWS API ゲートウェイと統合できます。詳しくは、 NetScaler のドキュメントを参照してください

NetScaler Web App Firewall を使用して AWS API ゲートウェイを保護