티스토리 뷰

 

원인

ConfigMap aws-auth에 현재 사용자 또는 역할이 등록되어 있지 않기 때문입니다.

 

해결방법

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

 

mapRoles 또는 mapUsers에 현재 사용자 정보를 추가하고 저장합니다.

groups에 system:masters를 추가해야 AWS콘솔에서 EKS를 올바르게 확인할 수 있습니다.

data:
  mapRoles: |
    - rolearn: arn:aws:iam::111122223333:role/eksctl-my-cluster-nodegroup-standard-wo-NodeInstanceRole-1WP3NUE3O6UCF
      username: system:node:{{EC2PrivateDNSName}}
      groups:
        - system:bootstrappers
        - system:nodes
  mapUsers: |
    - userarn: arn:aws:iam::111122223333:user/admin
      username: admin
      groups:
        - system:masters
    - userarn: arn:aws:iam::111122223333:user/ops-user
      username: ops-user
      groups:
        - system:masters

 

자세한 내용은 아래를 참고하십시오.

https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/add-user-role.html

 

클러스터의 사용자 또는 IAM 역할 관리 - Amazon EKS

"Error from server (NotFound): configmaps "aws-auth" not found"와 같은 오류가 발생할 경우, 앞의 절차를 통해 재고 ConfigMap을 적용합니다.

docs.aws.amazon.com

 

 

커스텀 그룹 생성

system:masters만으로 문제는 해결되지만 상세한 권한설정을 하고 싶을 경우 ClusterRole을 생성할 수 있습니다.

 

vi custom-clusterrole.yaml
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: eks-console-dashboard-full-access-clusterrole
rules:
- apiGroups:
  - ""
  resources:
  - nodes
  - namespaces
  - pods
  verbs:
  - get
  - list
- apiGroups:
  - apps
  resources:
  - deployments
  - daemonsets
  - statefulsets
  - replicasets
  verbs:
  - get
  - list
- apiGroups:
  - batch
  resources:
  - jobs
  verbs:
  - get
  - list
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: eks-console-dashboard-full-access-binding
subjects:
- kind: Group
  name: eks-console-dashboard-full-access-group # 이것이 추가할 그룹명입니다.
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: ClusterRole
  name: eks-console-dashboard-full-access-clusterrole
  apiGroup: rbac.authorization.k8s.io

cluster role에 원하는 권한을 설정하고 저장합니다.

 

ClusterRole과 ClusterRoleBinding을 생성합니다.

kubectl apply -f custom-clusterrole.yaml

 

다시 aws-auth 설정에 들어갑니다.

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

 

groups에 생성한 그룹을 추가하여 권한을 부여할 수 있습니다.

mapUsers: |
  - userarn: arn:aws:iam::XXXXXXXXXXXX:user/testuser
    username: testuser
    groups:
    - system:bootstrappers
    - system:nodes
    - eks-console-dashboard-full-access-group

https://aws.amazon.com/ko/premiumsupport/knowledge-center/eks-kubernetes-object-access-error/

 

Amazon EKS의 Kubernetes 객체 액세스 오류 해결

2.    ARN이 클러스터를 구성할 기본 액세스 권한이 있는 클러스터 생성자 또는 관리자와 일치하는지 확인합니다. ARN이 클러스터 생성자 또는 관리자와 일치하지 않으면 클러스터 생성자 또는

aws.amazon.com

 

 

역할 전환한 경우 EKS 콘솔권한

역할 전환한 유저의 경우 aws-auth에 mapUsers가 아닌 mapRoles에 추가해야 합니다.

역할 전환 후 권한은 유저가 아닌 역할이기 때문입니다.

(IAM > 역할) 에서 해당 역할을 확인할 수 있습니다.

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함