AWS Management Console에서 Kubernetes 리소스 보기
AWS Management Console에서 Kubernetes 리소스 보기
AWS Management Console로 클러스터에 배포된 Kubernetes 리소스를 보는 방법을 설명합니다.
출처: 문서
본문
AWS Management Console로 클러스터에 배포된 Kubernetes 리소스를 볼 수 있습니다. AWS CLI나 eksctl로는 Kubernetes 리소스를 볼 수 없습니다. 명령줄 도구로 Kubernetes 리소스를 보려면 kubectl을 사용하세요.
참고: AWS Management Console에서 Resources 탭과 Compute 탭의 Nodes 섹션을 보려면 사용 중인 IAM 보안 주체에 특정 IAM 및 Kubernetes 권한이 있어야 합니다. 자세한 내용은 "필요한 권한"을 참고하세요.
- Amazon EKS 콘솔을 엽니다.
- Clusters 목록에서 보고 싶은 Kubernetes 리소스가 있는 클러스터를 선택합니다.
- Resources 탭을 선택합니다.
- Workloads 같은 리소스 유형 그룹을 선택합니다. 해당 그룹의 리소스 유형 목록이 표시됩니다.
- Workloads 그룹에서 Deployments 같은 리소스 유형을 선택합니다. 리소스 유형에 대한 설명, 리소스 유형에 대한 자세한 정보를 볼 수 있는 Kubernetes 문서 링크, 그리고 클러스터에 배포된 해당 유형의 리소스 목록이 표시됩니다. 목록이 비어 있다면 해당 유형의 리소스가 클러스터에 배포되지 않은 것입니다.
- 리소스를 선택해 자세한 정보를 봅니다. 다음 예제를 시도해 보세요.
- Workloads 그룹을 선택하고 Deployments 리소스 유형을 선택한 다음 coredns 리소스를 선택합니다. 리소스를 선택하면 기본적으로 Structured view가 표시됩니다. 일부 리소스 유형에서는 Structured view에 Pods 섹션이 표시됩니다. 이 섹션에는 워크로드가 관리하는 Pod가 나열됩니다. 나열된 Pod를 선택하면 해당 Pod에 대한 정보를 볼 수 있습니다. 모든 리소스 유형이 Structured View에 정보를 표시하는 것은 아닙니다. 페이지 오른쪽 위의 Raw view를 선택하면 해당 리소스에 대한 Kubernetes API의 완전한 JSON 응답이 표시됩니다.
- Cluster 그룹을 선택한 다음 Nodes 리소스 유형을 선택합니다. 클러스터의 모든 노드 목록이 표시됩니다. 노드는 모든 Amazon EKS 노드 유형이 될 수 있습니다. 클러스터의 Compute 탭을 선택했을 때 Nodes 섹션에 표시되는 목록과 동일한 목록입니다. 목록에서 노드 리소스를 선택합니다. Structured view에서도 Pods 섹션이 표시됩니다. 이 섹션에는 노드에서 실행 중인 모든 Pod가 표시됩니다.
필요한 권한
AWS Management Console에서 Resources 탭과 Compute 탭의 Nodes 섹션을 보려면 사용 중인 IAM 보안 주체에 특정 최소 IAM 및 Kubernetes 권한이 있어야 합니다. IAM 권한과 Kubernetes RBAC 권한이 모두 올바르게 구성되어 있어야 합니다. 다음 단계를 완료해 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 역할이 클러스터의 보안 주체를 가장(impersonate)할 수 있어야 합니다. 이렇게 하면 Amazon EKS Connector가 보안 주체를 Kubernetes 사용자에 매핑할 수 있습니다.
- EKS 액세스 항목을 사용해 Kubernetes RBAC 권한을 구성합니다.
EKS 액세스 항목이란 무엇인가요?
EKS 액세스 항목은 IAM 보안 주체(사용자와 역할)에게 Kubernetes 클러스터 액세스 권한을 부여하는 간소화된 방법입니다. Kubernetes RBAC 리소스와 aws-auth ConfigMap을 수동으로 관리하는 대신, 액세스 항목은 AWS가 제공하는 관리형 정책으로 IAM과 Kubernetes 권한 사이의 매핑을 자동으로 처리합니다. 액세스 항목에 대한 자세한 내용은 "EKS 액세스 항목으로 IAM 사용자에게 Kubernetes 액세스 권한 부여"를 참고하세요. 사용 가능한 액세스 정책과 해당 권한은 "액세스 정책 권한"을 참고하세요.
액세스 항목에 Kubernetes 권한을 연결하는 방법은 두 가지입니다.
- 액세스 정책 사용: 액세스 정책은 AWS가 유지 관리하는 미리 정의된 Kubernetes 권한 템플릿입니다. 일반적인 사용 사례에 대한 표준화된 권한 집합을 제공합니다.
- Kubernetes 그룹 참조: IAM ID를 Kubernetes 그룹과 연결하면 그룹에 권한을 부여하는 Kubernetes 리소스를 생성할 수 있습니다. 자세한 내용은 Kubernetes 문서의 "RBAC 인증 사용"을 참고하세요.
AWS CLI로 IAM 보안 주체용 액세스 항목을 생성합니다. my-cluster를 클러스터 이름으로, 111122223333을 계정 ID로 바꾸세요.
aws eks create-access-entry \
--cluster-name my-cluster \
--principal-arn arn:aws:iam::111122223333:role/my-console-viewer-role
예제 출력은 다음과 같습니다.
{
"accessEntry": {
"clusterName": "my-cluster",
"principalArn": "arn:aws:iam::111122223333:role/my-console-viewer-role",
"kubernetesGroups": [],
"accessEntryArn": "arn:aws:eks:region-code:111122223333:access-entry/my-cluster/role/111122223333/my-console-viewer-role/abc12345-1234-1234-1234-123456789012",
"createdAt": "2024-03-15T10:30:45.123000-07:00",
"modifiedAt": "2024-03-15T10:30:45.123000-07:00",
"tags": {},
"username": "arn:aws:iam::111122223333:role/my-console-viewer-role",
"type": "STANDARD"
}
}
액세스 항목에 정책을 연결합니다. Kubernetes 리소스를 보려면 AmazonEKSViewPolicy를 사용하세요.
aws eks associate-access-policy \
--cluster-name my-cluster \
--principal-arn arn:aws:iam::111122223333:role/my-console-viewer-role \
--policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSViewPolicy \
--access-scope type=cluster
예제 출력은 다음과 같습니다.
{
"clusterName": "my-cluster",
"principalArn": "arn:aws:iam::111122223333:role/my-console-viewer-role",
"associatedAt": "2024-03-15T10:31:15.456000-07:00"
}
네임스페이스별 액세스의 경우 정책 범위를 특정 네임스페이스로 지정할 수 있습니다.
aws eks associate-access-policy \
--cluster-name my-cluster \
--principal-arn arn:aws:iam::111122223333:role/my-console-viewer-role \
--policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSViewPolicy \
--access-scope type=namespace,namespaces=default,kube-system
액세스 항목이 성공적으로 생성되었는지 확인합니다.
aws eks describe-access-entry \
--cluster-name my-cluster \
--principal-arn arn:aws:iam::111122223333:role/my-console-viewer-role
연결된 정책을 나열해 정책 연결을 확인합니다.
aws eks list-associated-access-policies \
--cluster-name my-cluster \
--principal-arn arn:aws:iam::111122223333:role/my-console-viewer-role
예제 출력은 다음과 같습니다.
{
"associatedAccessPolicies": [
{
"policyArn": "arn:aws:eks::aws:cluster-access-policy/AmazonEKSViewPolicy",
"accessScope": {
"type": "cluster"
},
"associatedAt": "2024-03-15T10:31:15.456000-07:00",
"modifiedAt": "2024-03-15T10:31:15.456000-07:00"
}
]
}
CloudTrail 가시성
Kubernetes 리소스를 볼 때 CloudTrail 로그에 다음 작업 이름이 표시됩니다.
AccessKubernetesApi- 리소스를 읽거나 볼 때
이 CloudTrail 이벤트는 Kubernetes 리소스에 대한 읽기 액세스의 감사 추적을 제공합니다.
참고: 이 작업 이름은 감사 목적으로만 CloudTrail 로그에 나타납니다. IAM 작업이 아니므로 IAM 정책 문에 사용할 수 없습니다. IAM 정책으로 Kubernetes 리소스에 대한 읽기 액세스를 제어하려면 "필요한 권한" 섹션에 표시된 것처럼
eks:AccessKubernetesApi권한을 사용하세요.