如何在cloudformation策略文档中引用资源ARN?(yaml)

詹姆斯·威洛

我正在尝试在cloudformation(yaml)中的角色和用户之间定义信任关系策略文档。

为了在角色中指定用户的ARN AssumeRolePolicyDocument,我想从实际的cloudformation资源中引用ARN,而不必构造ARN字符串。

但是,它不起作用。使用时!Ref rUser,在创建cloudformation堆栈“策略中的无效主体”时出现错误。

当我仅将ARN字符串粘贴为值时,它就可以工作。是否因为!Ref rUser返回用户对象类型而不求值成字符串?如果是这样,如何从资源中引用ARN?

码:

  rUser:
    Type: "AWS::IAM::User"
    Properties:
      UserName: "my_user"

  rRole:
    DependsOn: rRole
    Type: "AWS::IAM::Role"
    Properties:
      RoleName: "my_role"
      AssumeRolePolicyDocument:
        Version: "2012-10-17"
        Statement:
          -
            Effect: "Allow"
            Principal:
              AWS:
                # this does not work, gives error "Invalid Principal in policy"
                - !Ref rUser
                # this does work (just hard coding the ARN string):
                # - "arn:aws:iam::111111111111:user/my_user"
            Action:
              - "sts:AssumeRole"
詹姆斯·威洛

刚弄清楚...使用GetAtt函数非常简单

  rRole:
    DependsOn: rRole
    Type: "AWS::IAM::Role"
    Properties:
      RoleName: "my_role"
      AssumeRolePolicyDocument:
        Version: "2012-10-17"
        Statement:
          -
            Effect: "Allow"
            Principal:
              AWS:
                - !GetAtt rExternalUser.Arn  # use the GetAtt function
            Action:
              - "sts:AssumeRole"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Java中引用资源?

访问单独的ARN资源问题的角色策略

YAML Cloudformation模板中UserData的引用角色

如何在cloudformation yaml中配置路由规则?

如何在WildFly中覆盖资源引用

如何使用CloudFormation定义CloudWatch Logs的资源策略?

如何在AWS CloudFormation YAML模板中转义策略变量

AWS Cloudformation IAM策略与资源

在CloudFormation模板中添加API的资源策略?

如何在cloudformation中自引用SourceSecurityGroup?

如何使用CloudFormation基于现有ARN创建AWS资源?

如何创建在Python CDK中引用自身的API网关资源策略?

如何在CloudFormation中获取SSM文档的ARN?

如何在Terraform中引用for_each创建的资源

如何在Lambda中引用通过SAM创建的AWS资源?

如何在新的CloudFormation模板中引用现有角色?

如何在Terraform中引用用for_each创建的资源

如何在cloudformation中的ImportValue中引用变量?

如何在新的Cloudformation模板中引用Cloudformation资源?

如何在eclipse中引用android框架资源?

如何在WPF资源中创建对公共类的引用?

如何引用在其中创建的 cloudformation 中的资源

JSON 文档中的 JSON 指针:如何在 YAML 中表达?

如何在文档内的数组中获取文档引用

如何在python boto3中获取iam用户的aws托管策略的策略文档?

如何在 AWS IAM 策略中引用 StringOutput

如何在cloudformation中过滤aws资源

如何在 Terraform 中引用资源中模块的值

如何在aws terraform中的step函数内动态引用lambda函数arn?