개요
Terraform Enterprise로 EKS 배포 중 발생한 에러입니다. ETCD Secret을 교차 계정의 KMS 키로 암호화 하는 도중에 발생하였습니다.
해당 에러는 KMS 키에 대한 CreateGrant 권한이 없어 발생한 것으로 확인됩니다.
module.eks["???-cluster-01"].aws_eks_cluster.this["???-cluster-01"]: Creating...
╷
│ Error: creating EKS Cluster (???-cluster-01): operation error EKS: CreateCluster, https response error StatusCode: 400, RequestID: [KMS Key ID], api error InvalidRequestException: User not authorized to perform kms:CreateGrant operation
│
│ with module.eks["???-cluster-01"].aws_eks_cluster.this["???-cluster-01"],
│ on ..\module\terraform-aws-eks\main.tf line 13, in resource "aws_eks_cluster" "this":
│ 13: resource "aws_eks_cluster" "this" {
해결
교차 계정의 KMS 키 정책 중, Action 부분에 kms:CreateGrant 가 있는 위치에 Terraform Enterprise가 배포하는데 사용하는 역할(Assume Role)을 넣어주었습니다.
정책 수정 후, Terraform Enterprise으로 재배포 하여 클러스터를 정상적으로 배포할 수 있었습니다.
참고
Troubleshoot IAM and KMS permission issues for starting EC2 instances