7장. 튜토리얼: AWS WAF 및 AWS ALB를 사용하여 ROSA 워크로드를 보호


AWS WAF는 보호된 웹 애플리케이션 리소스로 전달되는 HTTP 및 HTTPS 요청을 모니터링할 수 있는 웹 애플리케이션 방화벽입니다.

AWS Application Load Balancer(ALB)를 사용하여 AWS(ROSA) 워크로드의 Red Hat OpenShift Service에WAF(Web Application Firewall)를 추가할 수 있습니다. 외부 솔루션을 사용하면 ROSA 리소스가 WAF 처리로 인해 서비스 거부가 발생하지 않도록 보호합니다.

중요

ALB 기반 솔루션을 사용해야 하는 경우를 제외하고 더 유연한 CloudFront 방법을 사용하는 것이 좋습니다.

7.1. 사전 요구 사항

  • AZ(여러 가용성 영역) ROSA(HCP 또는 Classic) 클러스터.

    참고

    AWS ALB에는 AWS 문서에 따라 AZ에 두 개 이상의 퍼블릭 서브넷이 필요합니다. 이러한 이유로 ALB와 함께 여러 AZ ROSA 클러스터만 사용할 수 있습니다.

  • OpenShift CLI(oc)에 액세스할 수 있습니다.
  • AWS CLI(aws)에 액세스할 수 있습니다.

7.1.1. 환경 설정

  • 환경 변수를 준비합니다.

    $ export AWS_PAGER=""
    $ export CLUSTER=$(oc get infrastructure cluster -o=jsonpath="{.status.infrastructureName}")
    $ export REGION=$(oc get infrastructure cluster -o=jsonpath="{.status.platformStatus.aws.region}")
    $ export OIDC_ENDPOINT=$(oc get authentication.config.openshift.io cluster -o jsonpath='{.spec.serviceAccountIssuer}' | sed  's|^https://||')
    $ export AWS_ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
    $ export SCRATCH="/tmp/${CLUSTER}/alb-waf"
    $ mkdir -p ${SCRATCH}
    $ echo "Cluster: $(echo ${CLUSTER} | sed 's/-[a-z0-9]\{5\}$//'), Region: ${REGION}, OIDC Endpoint: ${OIDC_ENDPOINT}, AWS Account ID: ${AWS_ACCOUNT_ID}"

7.1.2. AWS VPC 및 서브넷

참고

이 섹션은 기존 VPC에 배포된 클러스터에만 적용됩니다. 클러스터를 기존 VPC에 배포하지 않은 경우 이 섹션을 건너뛰고 아래의 설치 섹션을 진행합니다.

  1. 다음 변수를 ROSA 배포의 적절한 값으로 설정합니다.

    $ export VPC_ID=<vpc-id> 1
    $ export PUBLIC_SUBNET_IDS=(<space-separated-list-of-ids>) 2
    $ export PRIVATE_SUBNET_IDS=(<space-separated-list-of-ids>) 3
    1
    클러스터의 VPC ID로 바꿉니다(예: export VPC_ID=vpc-04c429b7dbc4680ba ).
    2
    을 클러스터의 프라이빗 서브넷 ID로 공백으로 구분된 목록으로 교체하여 () 를 유지해야 합니다. 예: PUBLIC_SUBNET_IDS=(subnet-056fd6861ad332ba2 subnet-08ce3b4ec753fe74c subnet-071a28228664972f).
    3
    을 클러스터의 프라이빗 서브넷 ID로 공백으로 구분된 목록으로 교체하여 () 를 유지해야 합니다. 예: PRIVATE_SUBNET_IDS=(subnet-0b933d72a8d72c36a subnet-0817eb72070f1d3c2 subnet-0806e64159b66665a).
  2. 클러스터 ID가 있는 클러스터의 VPC에 태그를 추가합니다.

    $ aws ec2 create-tags --resources ${VPC_ID} \
      --tags Key=kubernetes.io/cluster/${CLUSTER},Value=shared --region ${REGION}
  3. 퍼블릭 서브넷에 태그를 추가합니다.

    $ aws ec2 create-tags \
      --resources ${PUBLIC_SUBNET_IDS} \
      --tags Key=kubernetes.io/role/elb,Value='1' \
            Key=kubernetes.io/cluster/${CLUSTER},Value=shared \
      --region ${REGION}
  4. 프라이빗 서브넷에 태그를 추가합니다.

    $ aws ec2 create-tags \
      --resources ${PRIVATE_SUBNET_IDS} \
      --tags Key=kubernetes.io/role/internal-elb,Value='1' \
            Key=kubernetes.io/cluster/${CLUSTER},Value=shared \
      --region ${REGION}
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

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

© 2024 Red Hat, Inc.