IAM → Policies 에서 Create Policy를 통해 아래 권한을 만들어준다. 혹은 AmazonRoute53FullAccess 사용
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"route53:ChangeResourceRecordSets"
],
"Resource": [
"arn:aws:route53:::hostedzone/*"
]
},
{
"Effect": "Allow",
"Action": [
"route53:ListHostedZones",
"route53:ListResourceRecordSets"
],
"Resource": [
"*"
]
}
]
}
Policy detail 화면으로 가서 ARN을 복사해온다.

eksctl create iamserviceaccount \
--name SERVICE_ACCOUNT_NAME \
--namespace NAMESPACE \
--cluster CLUSTER_NAME
--attach-policy-arn IAM_POLICY_ARN
--approve
helm artifactHUB에 등록되어 있는 external-dns를 설치한다.
External-dns는 EKS에 서비스를 배포하면 자동으로 uuid.<region>.elb.amazonaws.com 이름으로 도메인 명을 만들어준다.
helm repo add external-dns <https://kubernetes-sigs.github.io/external-dns/>
helm upgrade --install external-dns external-dns/external-dns
<aside> 💡 External-dns와 다른 Namespace에서 배포해도 됨
</aside>