gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 13:44:30 25 4
gpt4 key购买 nike

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

为了在角色的 AssumeRolePolicyDocument 中指定用户的 ARN,我想从实际的 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"

关于amazon-web-services - 如何在cloudformation策略文档中引用资源ARN? (yaml),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59096970/

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