6.3. Amazon CloudFront 구성
새로 생성된 사용자 정의 수신 컨트롤러의 NLB 호스트 이름을 검색합니다.
$ NLB=$(oc -n openshift-ingress get service router-cloudfront-waf \ -o jsonpath='{.status.loadBalancer.ingress[0].hostname}')
인증서를 Amazon Certificate Manager로 가져옵니다. 여기서
cert.pem
은 와일드카드 인증서인fullchain.pem
은 와일드카드 인증서의 체인이고privkey.pem
은 와일드카드 인증서의 개인 키입니다.참고클러스터가 배포된 리전에 관계없이 Amazon CloudFront가 글로벌 AWS 서비스이므로 이 인증서를
us-east-1
로 가져와야 합니다.예제
$ aws acm import-certificate --certificate file://cert.pem \ --certificate-chain file://fullchain.pem \ --private-key file://privkey.pem \ --region us-east-1
- AWS 콘솔에 로그인하여 CloudFront 배포를 생성합니다.
다음 정보를 사용하여 CloudFront 배포를 구성합니다.
참고아래 표에 옵션을 지정하지 않으면 기본값(빈일 수 있음)을 그대로 둡니다.
옵션 현재의 원본 도메인
이전 명령의 출력 [1]
이름
rosa-waf-ingress [2]
뷰어 프로토콜 정책
HTTP를 HTTPS로 리디렉션
허용되는 HTTP 메서드
GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE
캐시 정책
CachingDisabled
원본 요청 정책
AllViewer
웹 애플리케이션 방화벽(WAF)
보안 보호 활성화
기존 WAF 구성 사용
true
웹 ACL 선택
cloudfront-waf
대체 도메인 이름(CNAME)
*.apps.example.com [3]
사용자 정의 SSL 인증서
위 단계에서 가져온 인증서를 선택합니다 [4]
-
echo ${NLB}
를 실행하여 원본 도메인을 가져옵니다. - 클러스터가 여러 개인 경우 원본 이름이 고유해야 합니다.
- 사용자 정의 수신 컨트롤러를 생성하는 데 사용한 와일드카드 도메인과 일치해야 합니다.
- 이는 위에서 입력한 대체 도메인 이름과 일치해야 합니다.
-
Amazon CloudFront 배포 끝점을 검색합니다.
$ aws cloudfront list-distributions --query "DistributionList.Items[?Origins.Items[?DomainName=='${NLB}']].DomainName" --output text
위의 단계에서 CNAME을 사용하여 사용자 지정 와일드카드 도메인의 DNS를 Amazon CloudFront 배포 엔드포인트로 업데이트합니다.
예제
*.apps.example.com CNAME d1b2c3d4e5f6g7.cloudfront.net