이 페이지 개선에 도움 주기
이 사용자 설명서에 기여하고 싶으신가요? 이 페이지 하단으로 스크롤하여 GitHub에서 이 페이지 편집을 선택하세요. 여러분의 기여는 모두를 위한 더 나은 사용자 설명서를 만드는 데 도움이 됩니다.
Amazon EKS 기반 RBAC 역할 및 사용자 이해
Kubernetes 클러스터를 생성하면 Kubernetes 클러스터가 제대로 작동하도록 해당 클러스터에 여러 개의 기본 Kubernetes 자격 증명이 생성됩니다. Amazon EKS는 각 기본 구성 요소에 대한Kubernetes ID를 생성합니다. 자격 증명에서는 클러스터 구성 요소에 대한 Kubernetes RBAC(역할 기반 권한 부여 제어)가 제공됩니다. 자세한 내용은 Kubernetes 설명서의 RBAC 승인 사용
클러스터에 선택적 추가 기능을 설치하면 클러스터에 추가 Kubernetes 자격 증명이 추가될 수도 있습니다. 이 주제에서 다루지 않는 자격 증명에 대한 자세한 내용은 추가 기능에 대한 설명서를 참조하세요.
Amazon EKS에서 클러스터에 생성한 Kubernetes 자격 증명 목록은 AWS Management Console 또는 kubectl
명령줄 도구를 사용하여 볼 수 있습니다. 모든 사용자 자격 증명은 Amazon CloudWatch를 통해 사용할 수 있는 kube
감사 로그에 표시됩니다.
- AWS Management Console
-
전제 조건
필수 권한에서 설명한 권한이 사용하는 IAM 보안 주체에 있어야 합니다.
AWS Management Console을 사용하여 Amazon EKS에서 생성한 자격 증명을 보는 방법
https://console.aws.amazon.com/eks/home#/clusters
에서 Amazon EKS 콘솔을 엽니다. -
보려는 자격 증명이 포함된 클러스터를 Clusters(클러스터) 목록에서 선택합니다.
-
리소스 탭을 선택합니다.
-
Resource types(리소스 유형)에서 Authorization(권한 부여)을 선택합니다.
-
ClusterRoles, ClusterRoleBindings, Roles 또는 RoleBindings를 선택합니다. 앞에 eks로 시작하는 모든 리소스는 Amazon EKS에서 생성합니다. Amazon EKS에서 생성한 추가 자격 증명 리소스는 다음과 같습니다.
ClusterRole 및 aws-node라는 ClusterRoleBinding. aws-node 리소스에서는 Amazon EKS에서 모든 클러스터에 설치하는 Amazon VPC CNI plugin for Kubernetes을 지원합니다.
-
vpc-resource-controller-role이라는 ClusterRole 및 vpc-resource-controller-rolebinding이라는 ClusterRoleBinding. 이러한 리소스에서는 Amazon EKS에서 모든 클러스터에 설치하는 Amazon VPC 리소스 컨트롤러
를 지원합니다.
콘솔에 표시되는 리소스 외에 다음과 같은 특별한 사용자 자격 증명이 클러스터에 있지만, 클러스터의 구성에는 표시되지 않습니다.
-
eks:cluster-bootstrap
– 클러스터 부트스트랩 중kubectl
작업에 사용됩니다. -
eks:support-engineer
– 클러스터 관리 작업에 사용됩니다.
-
특정 리소스를 선택하면 해당 세부 정보를 볼 수 있습니다. 기본적으로 Structured view(구조적 뷰)에 정보가 표시됩니다. 세부 정보 페이지의 오른쪽 상단에서 Raw view(원시 뷰)를 선택하여 리소스에 대한 모든 정보를 볼 수 있습니다.
- Kubectl
-
전제 조건
클러스터의 Kubernetes 리소스를 나열하는 데 사용하는 엔터티(AWS Identity and Access Management(IAM) 또는 OpenID Connect(OIDC))는 IAM 또는 OIDC 자격 증명 제공업체에서 인증해야 합니다. 엔터티를 연동하려는 클러스터의
Role
,ClusterRole
,RoleBinding
및ClusterRoleBinding
리소스에 Kubernetesget
및list
동사를 사용하는 권한이 엔터티에 부여되어야 합니다. IAM 엔터티에 클러스터 액세스 권한을 부여하는 자세한 내용은 IAM 사용자 및 역할에 Kubernetes APIs에 대한 액세스 권한 부여 섹션을 참조하세요. 자체 OIDC 제공업체에서 인증한 엔터티에 클러스터 액세스 권한을 부여하는 것에 대한 자세한 내용은 외부 OIDC 공급자를 통해 사용자에게 Kubernetes에 대한 액세스 권한 부여 섹션을 참조하세요.kubectl
을 사용하여 Amazon EKS에서 생성한 자격 증명을 보는 방법표시하려는 리소스 유형에 대한 명령을 실행합니다. eks로 시작하는 반환된 모든 리소스는 Amazon EKS에서 생성합니다. 출력에서 반환되는 리소스 외에 다음과 같은 특별한 사용자 자격 증명이 클러스터에 있지만, 클러스터의 구성에는 표시되지 않습니다.
-
eks:cluster-bootstrap
– 클러스터 부트스트랩 중kubectl
작업에 사용됩니다. -
eks:support-engineer
– 클러스터 관리 작업에 사용됩니다.
ClusterRoles –
ClusterRoles
의 범위가 클러스터로 지정되므로 역할에 부여된 모든 권한이 클러스터의 모든 Kubernetes 네임스페이스에 있는 리소스에 적용됩니다.다음과 같은 명령에서는 Amazon EKS에서 생성한 클러스터의 Kubernetes
ClusterRoles
를 모두 반환합니다.kubectl get clusterroles | grep eks
출력에서 반환되어 앞에 붙는
ClusterRoles
외에 다음과 같은ClusterRoles
가 있습니다.-
aws-node
– 이ClusterRole
에서는 Amazon EKS에서 모든 클러스터에 설치하는 Amazon VPC CNI plugin for Kubernetes를 지원합니다. -
vpc-resource-controller-role
– 이ClusterRole
에서는 Amazon EKS에서 모든 클러스터에 설치하는 Amazon VPC 리소스 컨트롤러를 지원합니다.
ClusterRole
의 사양을 표시하려면 다음과 같은 명령의eks:k8s-metrics
를 이전 명령의 출력에서 반환된ClusterRole
로 바꿉니다. 다음 예시에서는eks:k8s-metrics
ClusterRole
에 대한 사양을 반환합니다.kubectl describe clusterrole
eks:k8s-metrics
예제 출력은 다음과 같습니다.
Name: eks:k8s-metrics Labels: <none> Annotations: <none> PolicyRule: Resources Non-Resource URLs Resource Names Verbs --------- ----------------- -------------- ----- [/metrics] [] [get] endpoints [] [] [list] nodes [] [] [list] pods [] [] [list] deployments.apps [] [] [list]
ClusterRoleBindings –
ClusterRoleBindings
의 범위가 클러스터로 지정됩니다.다음과 같은 명령에서는 Amazon EKS에서 생성한 클러스터의 Kubernetes
ClusterRoleBindings
를 모두 반환합니다.kubectl get clusterrolebindings | grep eks
출력에서 반환된
ClusterRoleBindings
외에 다음과 같은ClusterRoleBindings
가 있습니다.-
aws-node
– 이ClusterRoleBinding
에서는 Amazon EKS에서 모든 클러스터에 설치하는 Amazon VPC CNI plugin for Kubernetes를 지원합니다. -
vpc-resource-controller-rolebinding
– 이ClusterRoleBinding
에서는 Amazon EKS에서 모든 클러스터에 설치하는 Amazon VPC 리소스 컨트롤러를 지원합니다.
ClusterRoleBinding
의 사양을 표시하려면 다음과 같은 명령의eks:k8s-metrics
를 이전 명령의 출력에서 반환된ClusterRoleBinding
로 바꿉니다. 다음 예시에서는eks:k8s-metrics
ClusterRoleBinding
에 대한 사양을 반환합니다.kubectl describe clusterrolebinding
eks:k8s-metrics
예제 출력은 다음과 같습니다.
Name: eks:k8s-metrics Labels: <none> Annotations: <none> Role: Kind: ClusterRole Name: eks:k8s-metrics Subjects: Kind Name Namespace ---- ---- --------- User eks:k8s-metrics
Roles –
Roles
의 범위가 Kubernetes 네임스페이스로 지정됩니다. Amazon EKS에서 생성한 모든Roles
의 범위가kube-system
네임스페이스로 지정됩니다.다음과 같은 명령에서는 Amazon EKS에서 생성한 클러스터의 Kubernetes
Roles
를 모두 반환합니다.kubectl get roles -n kube-system | grep eks
Role
의 사양을 표시하려면 다음과 같은 명령의eks:k8s-metrics
를 이전 명령의 출력에서 반환된Role
의 이름으로 변경합니다. 다음 예시에서는eks:k8s-metrics
Role
에 대한 사양을 반환합니다.kubectl describe role
eks:k8s-metrics
-n kube-system예제 출력은 다음과 같습니다.
Name: eks:k8s-metrics Labels: <none> Annotations: <none> PolicyRule: Resources Non-Resource URLs Resource Names Verbs --------- ----------------- -------------- ----- daemonsets.apps [] [aws-node] [get] deployments.apps [] [vpc-resource-controller] [get]
RoleBindings –
RoleBindings
의 범위가 Kubernetes 네임스페이스로 지정됩니다. Amazon EKS에서 생성한 모든RoleBindings
의 범위가kube-system
네임스페이스로 지정됩니다.다음과 같은 명령에서는 Amazon EKS에서 생성한 클러스터의 Kubernetes
RoleBindings
를 모두 반환합니다.kubectl get rolebindings -n kube-system | grep eks
RoleBinding
의 사양을 표시하려면 다음과 같은 명령의eks:k8s-metrics
를 이전 명령의 출력에서 반환된RoleBinding
으로 바꿉니다. 다음 예시에서는eks:k8s-metrics
RoleBinding
에 대한 사양을 반환합니다.kubectl describe rolebinding
-n kube-systemeks:k8s-metrics
예제 출력은 다음과 같습니다.
Name: eks:k8s-metrics Labels: <none> Annotations: <none> Role: Kind: Role Name: eks:k8s-metrics Subjects: Kind Name Namespace ---- ---- --------- User eks:k8s-metrics
-