6.2. 보조 수신 컨트롤러 설정


외부 WAF로 보호된 트래픽을 표준(및 기본) 클러스터 인그레스 컨트롤러에서 분할하도록 보조 수신 컨트롤러를 구성해야 합니다.

사전 요구 사항

  • CN=*.apps.example.com과 같이 사용자 지정 도메인에 대해 공개적으로 신뢰할 수 있는 SAN 또는 와일드카드 인증서

    중요

    Amazon CloudFront는 HTTPS를 사용하여 클러스터의 보조 수신 컨트롤러와 통신합니다. 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 컨트롤러에서 서비스를 제공하는 경로 세트를 필터링합니다. 이 튜토리얼에서는 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 서비스는 ROSA와 같이 보호된 웹 애플리케이션 리소스로 전달되는 HTTP 및 HTTPS 요청을 모니터링, 보호 및 제어할 수 있는 웹 애플리케이션 방화벽입니다.

  1. 웹 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

    그러면 코어(Common) 및 SQL AWS 관리 규칙 세트가 활성화됩니다.

  2. 위에서 지정한 규칙을 사용하여 AWS WAF 웹 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은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.