【问题标题】:Failed to create service linked role: AWSServiceRoleForAmazonEKSNodegroup due to missing permissions for 'iam:CreateServiceLinkedRole未能创建服务相关角色:AWSServiceRoleForAmazonEKSNodegroup 由于缺少 'iam:CreateServiceLinkedRole 的权限
【发布时间】:2020-06-03 19:43:18
【问题描述】:

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

我正在按照 AWS 文档 (https://docs.aws.amazon.com/eks/latest/userguide/getting-started-console.html) 中的说明进行操作

【问题讨论】:

  • 您登录 AWS 控制台的用户无权执行您正在尝试的操作。如果您不是帐户所有者,请联系他们了解您需要的权限。
  • 谢谢@jordanm。就像您提到的那样,我无权执行该操作。通过 eksctl 命令行工具创建了 eks 集群和工作节点。

标签: amazon-web-services amazon-eks


【解决方案1】:

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

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

重要

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

名为 AmazonEC2FullAccessAWSCloudFormationFullAccess 的策略已存在于 AWS 中。 请勿使用内置政策。创建您自己的(您可以使用相同的名称)。

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

【讨论】:

    猜你喜欢
    • 2021-03-06
    • 2020-03-05
    • 1970-01-01
    • 1970-01-01
    • 2021-03-19
    • 2019-06-26
    • 1970-01-01
    • 2022-01-03
    • 1970-01-01
    相关资源
    最近更新 更多