帮助改进此页面
要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。
在 AWS 管理控制台中查看 Kubernetes 资源
您可以使用 AWS 管理控制台 查看部署到您的集群的 Kubernetes 资源。您无法使用 AWS CLI 或 eksctl
-
打开 Amazon EKS 控制台
。 -
在 Clusters(集群)列表中,选择包含要查看的 Kubernetes 资源的集群。
-
选择资源选项卡。
-
选择您要查看其资源的 Resource type(资源类型)组,例如 Workloads(工作负载)。您可以看到该组中的资源类型列表。
-
选择资源类型,例如 Workloads(工作负载)组中的 Deployments(部署)。您可以看到资源类型的描述、Kubernetes 文档的链接以获取有关资源类型的更多信息,以及在集群上部署的该类型资源的列表。如果列表为空,则表示您的集群中没有部署此类型的资源。
-
选择一种资源以查看关于该资源的更多信息。请尝试以下示例:
-
依次选择 Workloads(工作负载)组、Deployments(部署)资源类型和 coredns 资源。当您选择资源时,您默认情况下处于 Structured view(结构化视图)中。对于某些资源类型,您会在 Structured view(结构化视图)中看到 Pods(容器组(pod))部分。本节列出了由工作负载管理的容器组(pod)。您可以选择列出的任何容器组(pod),查看有关容器组(pod)的信息。并非所有资源类型都在结构化视图中显示信息。如果您在该资源的页面的右上角选择 Raw view(原始视图),您可以看到来自 Kubernetes API 对该资源的完整 JSON 响应。
-
选择 Cluster(集群)组,然后选择 Nodes(节点)资源类型。您可以看到集群中所有节点的列表。节点可以是任意 Amazon EKS 节点类型。这与您在为集群选择 Compute(计算)选项时在 Nodes(节点)部分中看到的列表相同。从列表中选择节点资源。在结构化视图中,您还会看到 Pods(容器组(pod))部分。此部分会显示在节点上运行的所有容器组(pod)。
-
所需的权限
要在 AWS 管理控制台中查看资源选项卡和计算选项卡上的节点部分,您使用的 IAM 主体必须具有特定的最低 IAM 和 Kubernetes 权限。您必须确保已正确配置 IAM 和 Kubernetes RBAC 权限。完成以下步骤以将所需的权限分配给您的 IAM 主体。
-
确保向您正在使用的 IAM 主体分配
eks:AccessKubernetesApi以及查看 Kubernetes 资源所需的其他 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 角色应能够模拟集群中的主体。这让 Amazon EKS Connector 将主体映射到 Kubernetes 用户。
-
使用 EKS 访问条目配置 Kubernetes RBAC 权限。
什么是 EKS 访问条目?
EKS 访问条目是授予 IAM 主体(用户和角色)访问您的 Kubernetes 集群的简化方法。无需手动管理 Kubernetes RBAC 资源和
aws-authConfigMap,访问条目会自动利用 AWS 提供的管理策略来处理 IAM 和 Kubernetes 权限之间的映射关系。有关访问条目的详细信息,请参阅 使用 EKS 访问条目向 IAM 用户授予 Kubernetes 访问权限。有关可用访问策略及其权限的信息,请参阅访问策略权限。您可以通过两种方式将 Kubernetes 权限附加到访问条目:
-
使用访问策略:访问策略是由 AWS 维护的预定义 Kubernetes 权限模板。它们为常见使用案例提供了标准化权限集。
-
参考 Kubernetes 组:如果您将某个 IAM 身份与某个 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 权限。