AWS Management Console에서 Kubernetes 리소스 보기
AWS Management Console을 사용하면 클러스터에 배포된 Kubernetes 리소스를 볼 수 있습니다. AWS CLI 또는 eksctl
참고
-
Amazon EKS 콘솔
을 엽니다. -
클러스터(Clusters) 목록에서 보려는 Kubernetes 리소스를 포함하는 클러스터를 선택합니다.
-
리소스(Resources) 탭을 선택합니다.
-
보려는 리소스에 대한 리소스 유형(Resource type) 그룹을 선택합니다(예: 워크로드(Workloads). 해당 그룹의 리소스 유형 목록이 표시됩니다.
-
워크로드(Workloads) 그룹에서 리소스 유형을 선택합니다(예: 배포(Deployments)). 리소스 유형 설명, 리소스 유형의 자세한 내용이 있는 Kubernetes 설명서에 대한 링크, 클러스터에 배포된 해당 유형의 리소스 목록이 표시됩니다. 목록이 비어 있는 경우 클러스터에 배포된 해당 유형의 리소스가 없습니다.
-
이에 대한 자세한 내용을 확인하려면 리소스를 선택합니다. 다음 예를 시도해 보세요.
-
워크로드(Workloads) 그룹을 선택하고, 배포(Deployments) 리소스 유형을 선택한 다음 coredns 리소스를 선택합니다. 리소스를 선택하면 기본적으로 구조적 뷰(Structured view)에 있습니다. 일부 리소스 유형의 경우 구조적 뷰(Structured view)의 포드(Pod) 섹션이 표시됩니다. 이 섹션에서는 워크로드에 의해 관리되는 Pods가 나열됩니다. Pod에 대한 정보를 보려면 나열된 모든 Pod를 선택할 수 있습니다. 일부 리소스 유형의 정보가 구조적 뷰(Structured View)에 표시됩니다. 리소스 페이지의 오른쪽 상단 모서리에서 원시 보기(Raw view)를 선택하는 경우 리소스에 대한 Kubernetes API의 전체 JSON 응답이 표시됩니다.
-
클러스터(Cluster) 그룹을 선택한 다음 노드(Nodes) 리소스 유형을 선택합니다. 클러스터에 모든 노드 목록이 표시됩니다. 노드는 모든 Amazon EKS 노드 유형일 수 있습니다. 이 목록은 클러스터의 컴퓨팅(Compute) 탭을 선택하는 경우 노드(Nodes) 섹션에 표시되는 것과 동일한 목록입니다. 목록에서 노드 리소스를 선택합니다. 구조적 뷰(Structured view)에 포드(Pod) 섹션도 표시됩니다. 이 섹션에서는 노드에서 실행되는 모든 Pods를 보여줍니다.
-
필수 권한
AWS Management Console의 컴퓨팅 탭에서 리소스 탭과 노드 섹션을 보려면 사용 중인 IAM 보안 주체에 최소한 특정 IAM 및 Kubernetes 권한이 있어야 합니다. IAM 보안 주체에 필요한 권한을 할당하려면 다음 단계를 완료하세요.
-
eks:AccessKubernetesApi
및 Kubernetes 리소스를 보는 데 필요한 기타 IAM 권한이 사용 중인 IAM 보안 주체에 할당되었는지 확인하십시오. IAM 보안 주체의 권한을 편집하는 방법에 대한 자세한 내용은 IAM 사용 설명서의 보안 주체에 대한 액세스 제어 섹션을 참조하세요. 역할의 권한을 편집하는 방법에 대한 자세한 내용을 알아보려면 IAM 사용 설명서의 역할 권한 정책(콘솔) 수정을 참조하세요.다음 정책 예에는 계정의 모든 클러스터에 대한 Kubernetes 리소스를 보는 데 필요한 보안 주체의 권한이 포함되어 있습니다.
111122223333
을 AWS 계정 ID로 바꿉니다.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "eks:ListFargateProfiles", "eks:DescribeNodegroup", "eks:ListNodegroups", "eks:ListUpdates", "eks:AccessKubernetesApi", "eks:ListAddons", "eks:DescribeCluster", "eks:DescribeAddonVersions", "eks:ListClusters", "eks:ListIdentityProviderConfigs", "iam:ListRoles" ], "Resource": "*" }, { "Effect": "Allow", "Action": "ssm:GetParameter", "Resource": "arn:aws:ssm:*:111122223333:parameter/*" } ] }
연결된 클러스터에서 노드를 보려면 Amazon EKS 커넥터 IAM 역할이 클러스터에서 보안 주체를 가장할 수 있어야 합니다. 이렇게하면 Kubernetes 클러스터를 Amazon EKS Connector를 사용하여 Amazon EKS 관리 콘솔에 연결하여 보안 주체를 Kubernetes 사용자에게 매핑할 수 있습니다.
-
Kubernetes 리소스를 보는 데 필요한 권한이 있는 Kubernetes
role
또는clusterrole
에 바인딩된 Kubernetesrolebinding
또는clusterrolebinding
을 만듭니다. Kubernetes 역할 및 역할 바인딩에 대한 자세한 내용을 알아보려면 Kubernetes 설명서의 RBAC 권한 부여 사용을 참조하세요. 필요한 Kubernetes 권한을 사용하여 role
및rolebinding
또는clusterrole
및clusterrolebinding
을 생성하는 클러스터에 다음 매니페스트 중 하나를 적용할 수 있습니다.- 모든 네임스페이스의 Kubernetes 리소스 보기
-
-
파일의 그룹 이름은
eks-console-dashboard-full-access-group
입니다. 다음 명령을 사용하여 클러스터에 매니페스트를 적용합니다.kubectl apply -f https://s3.us-west-2.amazonaws.com/amazon-eks/docs/eks-console-full-access.yaml
-
- 특정 네임스페이스의 Kubernetes 리소스 보기
-
-
이 파일의 네임스페이스는
default
입니다. 파일의 그룹 이름은eks-console-dashboard-restricted-access-group
입니다. 다음 명령을 사용하여 클러스터에 매니페스트를 적용합니다.kubectl apply -f https://s3.us-west-2.amazonaws.com/amazon-eks/docs/eks-console-restricted-access.yaml
Kubernetes 그룹 이름, 네임스페이스, 권한 또는 파일의 다른 모든 구성을 변경해야 하는 경우 파일을 다운로드하여 편집한 후 클러스터에 적용합니다.
-
다음 명령 중 하나를 사용하여 파일을 다운로드합니다.
curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/docs/eks-console-full-access.yaml
curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/docs/eks-console-restricted-access.yaml
-
필요에 따라 파일을 편집합니다.
-
다음 명령 중 하나를 사용하여 클러스터에 매니페스트를 적용합니다.
kubectl apply -f eks-console-full-access.yaml
kubectl apply -f eks-console-restricted-access.yaml
-
-
-
IAM 보안 주체를
aws-auth
ConfigMap
의 Kubernetes 사용자 또는 그룹에 매핑합니다.eksctl
과 같은 도구를 사용하여ConfigMap
을 업데이트하거나 편집하여 수동으로 업데이트할 수 있습니다.중요
eksctl
또는 다른 도구를 사용하여ConfigMap
을 편집하는 것이 좋습니다. 사용할 수 있는 다른 도구에 대한 자세한 내용을 알아보려면 Amazon EKS 모범 사례 가이드의 도구를 사용하여 aws-authConfigMap을 변경을 참조하세요. 부적절하게 형식이 지정된 aws-auth
ConfigMap
으로 인해 클러스터에 대한 액세스 권한을 상실할 수 있습니다.
eksctl로 편집
-
장치에 설치된
eksctl
명령줄 도구의 버전0.194.0
이상 또는 AWS CloudShell이 필요합니다.eksctl
을 설치 또는 업그레이드하려면eksctl
설명서에서 Installation을 참조하세요. -
ConfigMap
에서 현재 매핑을 확인합니다.my-cluster
를 해당 클러스터의 이름으로 바꿉니다.region-code
를 클러스터가 있는 AWS 리전으로 바꿉니다.eksctl get iamidentitymapping --cluster my-cluster --region=region-code
예제 출력은 다음과 같습니다.
ARN USERNAME GROUPS ACCOUNT arn:aws:iam::111122223333:role/eksctl-my-cluster-my-nodegroup-NodeInstanceRole-1XLS7754U3ZPA system:node:{{EC2PrivateDNSName}} system:bootstrappers,system:nodes
-
역할에 대한 매핑을 추가합니다. 이 예에서는 첫 번째 단계의 IAM 권한을
my-console-viewer-role
이라는 역할에 연결했다고 가정합니다.111122223333
을 계정 ID로 바꿉니다.eksctl create iamidentitymapping \ --cluster my-cluster \ --region=region-code \ --arn arn:aws:iam::111122223333:role/my-console-viewer-role \ --group eks-console-dashboard-full-access-group \ --no-duplicate-arns
중요
역할 ARN에는
role/my-team/developers/my-role
과 같은 경로가 포함될 수 없습니다. ARN 형식은arn:aws:iam::
이어야 합니다. 이 예에서는111122223333
:role/my-role
my-team/developers/
를 제거해야 합니다.예제 출력은 다음과 같습니다.
[...] 2022-05-09 14:51:20 [ℹ] adding identity "arn:aws:iam::111122223333:role/my-console-viewer-role" to auth ConfigMap
-
사용자에 대한 매핑을 추가합니다. IAM 모범 사례에서는 되도록 사용자 대신 역할에 권한을 부여하세요. 이 예에서는 첫 번째 단계의 IAM 권한을
my-user
라는 사용자에 연결했다고 가정합니다.111122223333
을 계정 ID로 바꿉니다.eksctl create iamidentitymapping \ --cluster my-cluster \ --region=region-code \ --arn arn:aws:iam::111122223333:user/my-user \ --group eks-console-dashboard-restricted-access-group \ --no-duplicate-arns
예제 출력은 다음과 같습니다.
[...] 2022-05-09 14:53:48 [ℹ] adding identity "arn:aws:iam::111122223333:user/my-user" to auth ConfigMap
-
ConfigMap
에서 매핑을 다시 확인합니다.eksctl get iamidentitymapping --cluster my-cluster --region=region-code
예제 출력은 다음과 같습니다.
ARN USERNAME GROUPS ACCOUNT arn:aws:iam::111122223333:role/eksctl-my-cluster-my-nodegroup-NodeInstanceRole-1XLS7754U3ZPA system:node:{{EC2PrivateDNSName}} system:bootstrappers,system:nodes arn:aws:iam::111122223333:role/my-console-viewer-role eks-console-dashboard-full-access-group arn:aws:iam::111122223333:user/my-user eks-console-dashboard-restricted-access-group
ConfigMap 수동 편집
aws-auth
ConfigMap
에 사용자 또는 역할을 추가하는 방법에 대한 자세한 내용은 Amazon EKS 클러스터에 IAM 보안 주체 추가 섹션을 참조하세요.
-
편집을 위해
aws-auth
ConfigMap
을 엽니다.kubectl edit -n kube-system configmap/aws-auth
-
aws-auth
ConfigMap
에 매핑을 추가하지만 모든 기존 매핑을 대체하지는 마세요. 다음 예에서는 첫 번째 단계에서 추가된 권한과 이전 단계에서 생성된 Kubernetes 그룹을 사용하여 IAM 보안 주체 간에 매핑을 추가합니다.-
my-console-viewer-role
역할 및eks-console-dashboard-full-access-group
. -
my-user
사용자 및eks-console-dashboard-restricted-access-group
.이 예에서는 첫 번째 단계의 IAM 권한을
my-console-viewer-role
이라는 역할 및my-user
라는 사용자에 연결했다고 가정합니다.111122223333
을 AWS 계정 ID로 바꿉니다.apiVersion: v1 data: mapRoles: | - groups: - eks-console-dashboard-full-access-group rolearn: arn:aws:iam::111122223333:role/my-console-viewer-role username: my-console-viewer-role mapUsers: | - groups: - eks-console-dashboard-restricted-access-group userarn: arn:aws:iam::111122223333:user/my-user username: my-user
중요
역할 ARN에는
role/my-team/developers/my-console-viewer-role
과 같은 경로가 포함될 수 없습니다. ARN 형식은arn:aws:iam::
이어야 합니다. 이 예에서는111122223333
:role/my-console-viewer-role
my-team/developers/
를 제거해야 합니다.
-
-
파일을 저장하고 텍스트 편집기를 종료합니다.