如果您的Kubernetes客户端连接到AWS EKS时提示401 Unauthorized错误,说明客户端缺少必要的权限。为了解决这个问题,您需要将以下IAM策略附加到您的Worker节点所属的IAM角色。
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "eks:Describe*",
                "ssm:GetParameters",
                "ec2:Describe*",
                "logs:GetLogEvents",
                "logs:DescribeLogStreams"
            ],
            "Resource": "*"
        }
    ]
}
以上IAM策略会授予您的Worker节点访问AWS EKS API所需的所有权限。您需要使用管理员账户或根用户来附加上述IAM策略。
如果您不希望使用具有如此广泛权限的IAM策略,那么您也可以为Worker节点创建自己的IAM角色,然后将以下IAM策略附加到该角色上:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "eks:DescribeCluster"
            ],
            "Resource": "arn:aws:eks:::cluster/"
        },
        {
            "Effect": "Allow",
            "Action": [
                "eks:ListUpdates",
                "eks:DescribeUpdate"
            ],
            "Resource": "*"
        }
    ]
}
   
以上IAM策略仅授予Worker节点访问它们所属的EKS集群及其更新的权限。然后您可以将该IAM角色分配给Worker节点。
如果您使用的是kubeconfig文件,请确保该文件包含正确的AWS访问密钥和IAM角色。例如:
apiVersion: v1
clusters:
-