본문 바로가기

⭐ Kubernetes & EKS/RBAC (Role-Based Access Control)

EKS에 다른 사용자 접근 허용하기

# EKS에 다른 IAM 사용자의 접근을 허용하는 방법

- EKS는 생성자 외에는 내부 자원을 볼 수 없게 되어 있다.

만약 EKS 리소스를 생성한자 외의 사람이 EKS 클러스터에 접근을 하기 위해서는 aws-auth.yml 파일에 접근 하려는 사용자를 추가해 줘야 한다.

1. AWS 권한 Configmap을 확인 및 저장해보자.

kubectl get -n kube-system configmap/aws-auth

- AWS 권한 Configmap을 수정

kubectl edit -n kube-system configmap/aws-auth

- AWS Cloud9 에서는 복사 붙여넣기가 잘 안되므로 파일로 저장하여 수정하는 방법을 써보자.

- 파일로 저장하기

kubectl get configmaps aws-auth -n kube-system -o yaml > aws-auth.yaml

- 저장한 파일을 열어서 수정하기, vi나 vim으로 열어서 복/붙을하면 깨지므로 nano를 사용하여 편집하자.

nano aws-auth.yaml

2. 파일을 아래내용을 참조하여 수정

- 전체 파일 내용중 아래의 내용을 확인하여 user를 추가해준다.

     mapUsers: |
     - userarn: arn:aws:iam::123456789010:user/user-01
       username: user-01
       groups:
       - system:masters
     - userarn: arn:aws:iam::123456789010:user/user-02
       username: user-02
       groups:
       - system:masters
     - userarn: arn:aws:iam::123456789010:user/user-03
       username: user-03
       groups:
       - system:masters

- 파일 내용 편집 후 저장 및 적용하기

저장된 aws-auth.yaml 파일을 아래의 명령어를 통해 적용을 한다.

configmap/aws-auth configured 라는 확인 메세지가 뜨면 정상적으로 적용이 된 것이다.

kubectl apply -f aws-auth.yaml

configmap/aws-auth configured

3. 추가

- 위에서 설정한 iam 사용자가 eks를 컨트롤 할 iam 권한이 없을경우 아래 코드를 참조하여 최소한의 권한을 부여한다.

- "eks:DescribeCluster" 권한은 클러스터를 볼 수 있는 권한만 있고, 수정할 권한은 없다. 해당 권한설정을 통해 변경 할 수 있는 권한 및 관리자 권한의 부여도 가능하다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "eks:DescribeCluster"
            ],
            "Resource": "arn:aws:eks:<region_name>:<account_id>:cluster/<eks_cluster_name>",
            "Effect": "Allow"
        }
    ]
}