在 AWS 管理控制台中查看 Kubernetes 资源 - Amazon EKS

帮助改进此页面

要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。

在 AWS 管理控制台中查看 Kubernetes 资源

您可以使用 AWS 管理控制台 查看部署到您的集群的 Kubernetes 资源。您无法使用 AWS CLI 或 eksctl 查看 Kubernetes 资源。要使用命令行工具查看 Kubernetes 资源,请使用 kubectl

注意

要在 AWS 管理控制台中查看资源选项卡和计算选项卡上的节点部分,您使用的 IAM 主体必须具有特定的 IAM 和 Kubernetes 权限。有关更多信息,请参阅 所需的权限

  1. 打开 Amazon EKS 控制台

  2. Clusters(集群)列表中,选择包含要查看的 Kubernetes 资源的集群。

  3. 选择资源选项卡。

  4. 选择您要查看其资源的 Resource type(资源类型)组,例如 Workloads(工作负载)。您可以看到该组中的资源类型列表。

  5. 选择资源类型,例如 Workloads(工作负载)组中的 Deployments(部署)。您可以看到资源类型的描述、Kubernetes 文档的链接以获取有关资源类型的更多信息,以及在集群上部署的该类型资源的列表。如果列表为空,则表示您的集群中没有部署此类型的资源。

  6. 选择一种资源以查看关于该资源的更多信息。请尝试以下示例:

    • 依次选择 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 主体。

  1. 确保向您正在使用的 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 用户。

  2. 使用 EKS 访问条目配置 Kubernetes RBAC 权限。

    什么是 EKS 访问条目?

    EKS 访问条目是授予 IAM 主体(用户和角色)访问您的 Kubernetes 集群的简化方法。无需手动管理 Kubernetes RBAC 资源和 aws-auth ConfigMap,访问条目会自动利用 AWS 提供的管理策略来处理 IAM 和 Kubernetes 权限之间的映射关系。有关访问条目的详细信息,请参阅 使用 EKS 访问条目向 IAM 用户授予 Kubernetes 访问权限。有关可用访问策略及其权限的信息,请参阅访问策略权限

    您可以通过两种方式将 Kubernetes 权限附加到访问条目:

    • 使用访问策略:访问策略是由 AWS 维护的预定义 Kubernetes 权限模板。它们为常见使用案例提供了标准化权限集。

    • 参考 Kubernetes 组:如果您将某个 IAM 身份与某个 Kubernetes 组关联,则可以创建向该组授予权限的 Kubernetes 资源。有关更多信息,请参阅 Kubernetes 文档中的使用 RBAC 授权

      1. 使用 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" } }
      2. 将策略与访问条目关联。要查看 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
      3. 验证是否已成功创建访问条目:

        aws eks describe-access-entry \ --cluster-name my-cluster \ --principal-arn arn:aws:iam::111122223333:role/my-console-viewer-role
      4. 列出关联的策略以确认策略关联:

        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 权限。