Infra/DevOps

[eks] An error occurred (AccessDeniedException) when calling the DescribeCluster operation

하우아유두잉 2023. 3. 22. 18:43

요즘 aws eks 인프라 구축을 하고있다.

 

local에서 kubectl을 통해 직접 node/pod에 접근하지 않고, 퍼블릭 영역에 중개 서버를 두고 통해서 접근을 하고자 한다.

그래서

private subnet 영역에 eks cluster를 세팅하고, 

public subnet에 중개 서버(ec2 instance)를 두었다.

 

그 과정에서, 중개서버에서 eks-cluster를 연결하려고 하는데 아래와 같은 에러가 발생 했다.

명령어: $ aws eks update-kubeconfig --name <클러스터명> --region <리전명>

에러 코드:

An error occurred (AccessDeniedException) when calling the DescribeCluster operation: User: arn:aws:sts::0000:assumed-role/test-iam-role-ec2-instance/...

 

한마디로 클러스터 접근 거부를 당했고, IAM role 수정이 필요했다.

그래서 아래와 같이 AmazonEKSWorkerNodePolicy 정책을 추가했다.

...

{
  "Statement": [
    {
      "Action": "sts:AssumeRole",
      "Effect": "Allow",
      "Principal": {
        "Service": "ec2.amazonaws.com"
      }
    }
  ],
  "Version": "2012-10-17"
}

...

# 추가
resource "aws_iam_role_policy_attachment" "test-iam-role" {
  policy_arn = "arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy" # <--
  role       = aws_iam_role.test-iam-role-ec2-instance-bastion.name
}

 

업데이트 후 다시 테스트 해보니 정상 동작한다.

 

Added new context arn:aws:eks:...