検索

6.2. セカンダリー Ingress Controller の設定

download PDF

標準 (およびデフォルト) クラスター Ingress Controller からの WAF 保護対象の外部トラフィックをセグメント化するために、セカンダリー Ingress Controller を設定する必要があります。

前提条件

  • カスタムドメイン用の公的に信頼された SAN 証明書またはワイルドカード証明書 (例: CN=*.apps.example.com)

    重要

    Amazon CloudFront は HTTPS を使用してクラスターのセカンダリー Ingress Controller と通信します。Amazon CloudFront のドキュメント で説明されているように、CloudFront とクラスター間の HTTPS 通信には自己署名証明書を使用できません。Amazon CloudFront は、証明書が信頼できる認証局によって発行されたことを確認します。

手順

  1. 秘密鍵と公開証明書から新しい TLS シークレットを作成します。fullchain.pem は完全なワイルドカード証明書チェーン (中間証明書を含む)、privkey.pem はワイルドカード証明書の秘密鍵です。

    $ oc -n openshift-ingress create secret tls waf-tls --cert=fullchain.pem --key=privkey.pem

  2. 新規の IngressController リソースを作成します。

    waf-Ingress-controller.yaml の例

    apiVersion: operator.openshift.io/v1
    kind: IngressController
    metadata:
      name: cloudfront-waf
      namespace: openshift-ingress-operator
    spec:
      domain: apps.example.com 1
      defaultCertificate:
        name: waf-tls
      endpointPublishingStrategy:
        loadBalancer:
          dnsManagementPolicy: Unmanaged
          providerParameters:
            aws:
              type: NLB
            type: AWS
          scope: External
        type: LoadBalancerService
      routeSelector: 2
        matchLabels:
         route: waf

    1
    IngressController に使用するカスタムドメインに置き換えます。
    2
    Ingress Controller によって提供されるルートのセットをフィルタリングします。このチュートリアルでは waf ルートセレクターを使用しますが、値を指定しないと、フィルター処理は行われません。
  3. IngressController を適用します。

    $ oc apply -f waf-ingress-controller.yaml

  4. IngressController が外部ロードバランサーを正常に作成したことを確認します。

    $ oc -n openshift-ingress get service/router-cloudfront-waf

    出力例

    NAME                    TYPE           CLUSTER-IP      EXTERNAL-IP                                                                     PORT(S)                      AGE
    router-cloudfront-waf   LoadBalancer   172.30.16.141   a68a838a7f26440bf8647809b61c4bc8-4225395f488830bd.elb.us-east-1.amazonaws.com   80:30606/TCP,443:31065/TCP   2m19s

6.2.1. AWS WAF の設定

AWS WAF サービスは Web アプリケーションファイアウォールです。ROSA などの保護対象の Web アプリケーションリソースに転送される HTTP および HTTPS 要求を監視、保護、制御できます。

  1. Web ACL に適用する AWS WAF ルールファイルを作成します。

    $ cat << EOF > ${SCRATCH}/waf-rules.json
    [
        {
          "Name": "AWS-AWSManagedRulesCommonRuleSet",
          "Priority": 0,
          "Statement": {
            "ManagedRuleGroupStatement": {
              "VendorName": "AWS",
              "Name": "AWSManagedRulesCommonRuleSet"
            }
          },
          "OverrideAction": {
            "None": {}
          },
          "VisibilityConfig": {
            "SampledRequestsEnabled": true,
            "CloudWatchMetricsEnabled": true,
            "MetricName": "AWS-AWSManagedRulesCommonRuleSet"
          }
        },
        {
          "Name": "AWS-AWSManagedRulesSQLiRuleSet",
          "Priority": 1,
          "Statement": {
            "ManagedRuleGroupStatement": {
              "VendorName": "AWS",
              "Name": "AWSManagedRulesSQLiRuleSet"
            }
          },
          "OverrideAction": {
            "None": {}
          },
          "VisibilityConfig": {
            "SampledRequestsEnabled": true,
            "CloudWatchMetricsEnabled": true,
            "MetricName": "AWS-AWSManagedRulesSQLiRuleSet"
          }
        }
    ]
    EOF

    これにより、コア (共通) および SQL AWS マネージドルールセットが有効になります。

  2. 上記で指定したルールを使用して、AWS WAF の Web ACL を作成します。

    $ WAF_WACL=$(aws wafv2 create-web-acl \
      --name cloudfront-waf \
      --region ${REGION} \
      --default-action Allow={} \
      --scope CLOUDFRONT \
      --visibility-config SampledRequestsEnabled=true,CloudWatchMetricsEnabled=true,MetricName=${CLUSTER}-waf-metrics \
      --rules file://${SCRATCH}/waf-rules.json \
      --query 'Summary.Name' \
      --output text)
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.