gpt4 book ai didi

aws-cloudformation - EKS 工作人员可以承担先前存在的 IAM 角色吗?

转载 作者:行者123 更新时间:2023-12-03 07:36:26 25 4
gpt4 key购买 nike

我们运行一个 EKS 集群,该集群是根据以编程方式构建的 Cloudformation 模板构建的。目前worker模板接近https://github.com/awslabs/amazon-eks-ami/blob/master/amazon-eks-nodegroup.yaml ,但是我们的 Resources.NodeInstanceRole.ManagedPolicyArns 有一些额外的用户制定的策略。

我们不想将托管策略添加到此列表,而是希望创建一个附加任何策略的 IAM 角色,然后让 EKS 工作人员承担此角色。问题是我们无法在 Cloudformation 模板中找到执行此操作的方法。

我认为模板的相关部分如下:

  NodeInstanceProfile:
Type: AWS::IAM::InstanceProfile
Properties:
Path: "/"
Roles:
- !Ref NodeInstanceRole

NodeInstanceRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Principal:
Service: ec2.amazonaws.com
Action: sts:AssumeRole
Path: "/"
ManagedPolicyArns:
- arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy
- arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy
- arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly

我想应该有一种方法可以在 NodeInstanceProfile 中引用现有角色的 ARN,而不是构建新的 IAM::Role (NodeInstanceRole)。尝试按以下方式更改 NodeInstanceProfile 会导致以下错误:

  NodeInstanceProfile:
Type: AWS::IAM::InstanceProfile
Properties:
Path: "/"
Roles:
- "arn:aws:iam::xxx:role/yyy"
The specified value for roleName is invalid. It must contain only alphanumeric characters and/or the following: +=,.@_- (Service: AmazonIdentityManagement; Status Code: 400; Error Code: ValidationError; Request ID: xxx)

最佳答案

事实证明,解决方案非常简单:NodeInstanceProfile 需要角色名称,而不是 ARN。因此,在 Cloudformation 模板的最终版本中,我引用的代码块减少为:

NodeInstanceProfile:
Type: AWS::IAM::InstanceProfile
Properties:
Path: "/"
Roles:
- yyy

关于aws-cloudformation - EKS 工作人员可以承担先前存在的 IAM 角色吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55480927/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com