如果您的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:
-