4.5.2. 공유 VPC를 사용하여 다른 AWS 계정에서 DNS 레코드 생성
다른 AWS 계정에서 DNS 레코드를 생성하려면 공유 VPC(Virtual Private Cloud)를 사용하도록 ExternalDNS Operator를 구성합니다. 그런 다음 조직에서 단일 Route 53 인스턴스를 사용하여 여러 계정 및 프로젝트에서 이름을 확인할 수 있습니다.
사전 요구 사항
- VPC와 Route 53 개인 호스팅 영역이 구성된(계정 A) 및 클러스터(계정 B)를 설치하는 데 두 개의 Amazon AWS 계정을 생성했습니다.
- 계정 B에 대한 적절한 권한으로 IAM 정책 및 IAM 역할을 생성하여 계정 A의 Route 53 호스팅 영역에서 DNS 레코드를 생성했습니다.
- 계정 B의 클러스터를 계정 A용 기존 VPC에 설치했습니다.
- 계정 B의 클러스터에 ExternalDNS Operator를 설치했습니다.
프로세스
계정 B가 다음 명령을 실행하여 계정 A의 Route 53 호스팅 영역에 액세스할 수 있도록 만든 IAM 역할의 역할 ARN을 가져옵니다.
$ aws --profile account-a iam get-role --role-name user-rol1 | head -1출력 예
ROLE arn:aws:iam::1234567890123:role/user-rol1 2023-09-14T17:21:54+00:00 3600 / AROA3SGB2ZRKRT5NISNJN user-rol1다음 명령을 실행하여 계정 A의 인증 정보에 사용할 개인 호스팅 영역을 찾습니다.
$ aws --profile account-a route53 list-hosted-zones | grep testextdnsoperator.apacshift.support출력 예
HOSTEDZONES terraform /hostedzone/Z02355203TNN1XXXX1J6O testextdnsoperator.apacshift.support. 5다음 명령을 실행하여
ExternalDNS오브젝트를 생성합니다.$ cat <<EOF | oc create -f - apiVersion: externaldns.olm.openshift.io/v1beta1 kind: ExternalDNS metadata: name: sample-aws spec: domains: - filterType: Include matchType: Exact name: testextdnsoperator.apacshift.support provider: type: AWS aws: assumeRole: arn: arn:aws:iam::12345678901234:role/user-rol1 source: type: OpenShiftRoute openshiftRouteOptions: routerName: default EOF다음과 같습니다.
arn- 계정 A에서 DNS 레코드를 만들도록 역할 ARN을 지정합니다.
다음 명령을 입력하여 OpenShift Container Platform 경로에 대해 생성된 레코드를 확인합니다.
$ aws --profile account-a route53 list-resource-record-sets --hosted-zone-id Z02355203TNN1XXXX1J6O --query "ResourceRecordSets[?Type == 'CNAME']" | grep console-openshift-console