首页 > 解决方案 > 未能创建服务相关角色:AWSServiceRoleForAmazonEKSNodegroup 由于缺少 'iam:CreateServiceLinkedRole 的权限

问题描述

我在 AWS 中创建了 EKS 集群,我想为相应创建的集群创建节点组(工作节点),但出现错误“无法创建服务链接角色:AWSServiceRoleForAmazonEKSNodegroup 由于缺少 'iam:CreateServiceLinkedRole 的权限”。请帮忙。

我正在遵循 AWS 文档中的说明(https://docs.aws.amazon.com/eks/latest/userguide/getting-started-console.html

标签: amazon-web-servicesamazon-eks

解决方案


您可以参考eksctl文档页面:https ://eksctl.io/usage/minimum-iam-policies/

该页面显示了需要分配给 AWS 用户以便在 AWS 中管理 kubernetes 集群的所有策略,但在继续之前阅读我的完整答案

重要的

创建EksAllAccessIamLimitedAccess记住替换<account_id>为您的 AWS 账户 ID。

AWS 中已命名AmazonEC2FullAccessAWSCloudFormationFullAccess已存在的策略。不要使用内置策略。创建您自己的(您可以使用相同的名称)。

AmazonEC2FullAccess策略与内置版本略有不同。而且,上述页面上的版本仍然缺少一个条目:"eks-nodegroup.amazonaws.com",.

策略定义的最后一部分AmazonEC2FullAccess应该是这样的:

{
    "Effect": "Allow",
    "Action": "iam:CreateServiceLinkedRole",
    "Resource": "*",
    "Condition": {
        "StringEquals": {
            "iam:AWSServiceName": [
                "autoscaling.amazonaws.com",
                "ec2scheduled.amazonaws.com",
                "elasticloadbalancing.amazonaws.com",
                "eks.amazonaws.com",
                "eks-fargate-pods.amazonaws.com",
                "eks-nodegroup.amazonaws.com",
                "spot.amazonaws.com",
                "spotfleet.amazonaws.com",
                "transitgateway.amazonaws.com"
            ]
        }
    }
}

您可以参考 AWS 文档了解更多详细信息:https ://docs.aws.amazon.com/eks/latest/userguide/using-service-linked-roles-eks-nodegroups.html


推荐阅读