首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在信任关系中实现ImportValue

如何在信任关系中实现ImportValue
EN

Stack Overflow用户
提问于 2022-03-14 17:33:47
回答 1查看 61关注 0票数 0

我已经从另一个堆栈导出了一个值,并试图导入cloudformation角色中的"AssumeRolePolicyDocument“,尝试了许多方法,但得到了以下错误

位置语法错误(服务: AmazonIdentityManagement;状态代码: 400;错误代码: MalformedPolicyDocument;请求ID: b1b4b5ef-88ef-8a7-0548ce0002a6;代理:null)

代码语言:javascript
复制
  EksAutoscalerRole: 
    Type: AWS::IAM::Role
    Properties:
      RoleName: Eks-Autoscaler-Role
      Path: "/"
      AssumeRolePolicyDocument: 
        Version: '2012-10-17'
        Statement:
        - Effect: Allow
          Principal:
            Federated: 
              'Fn::Sub':
              - 'arn:aws:iam::1122334455:oidc-provider/oidc.eks.us-east-1.amazonaws.com/id/${oidc}'
              - oidc: 
                  "Fn::ImportValue": EksOidc
          Action: 'sts:AssumeRoleWithWebIdentity'
          Condition:
            StringEquals:   
              'Fn::Sub': 
              - 'oidc.eks.us-east-1.amazonaws.com/id/${oidc}:sub: system:serviceaccount:kube-system:cluster-autoscaler'
              - oidc: 
                  "Fn::ImportValue": EksOidc
      ManagedPolicyArns:
      - !Ref EksAutoscalerPolicy

也尝试了以下方法:插入类似于如何插入参数的CloudFormation ImportValue?

更新后的尝试了下面的代码现在有效了。

代码语言:javascript
复制
  EksAutoscalerRole: 
    Type: AWS::IAM::Role
    Properties:
      RoleName: Eks-Autoscaler-Role
      Path: /
      AssumeRolePolicyDocument: 
        "Fn::Sub":
        - '{
            "Version": "2012-10-17",
            "Statement": [
                {
                    "Effect": "Allow",
                    "Principal": {
                        "Federated": "${EksAutoscalerProvider}"
                    },
                    "Action": "sts:AssumeRoleWithWebIdentity",
                    "Condition": {
                        "StringEquals": {
                            "oidc.eks.${AWS::Region}.amazonaws.com/id/${oidcNo}:sub": "system:serviceaccount:kube-system:cluster-autoscaler"
                        }
                    }
                }
            ]
          }'
        - oidcNo: !Select [0, !Split [".", !Select [1, !Split ["//", !GetAtt EksCluster.Endpoint]]]]
      ManagedPolicyArns:
      - !Ref EksAutoscalerPolicy
EN

回答 1

Stack Overflow用户

发布于 2022-03-14 23:15:05

检查你的压痕。根据文档,子函数应该缩进如下

代码语言:javascript
复制
Fn::Sub:
  - String
  - Var1Name: Var1Value
    Var2Name: Var2Value
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71471921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档