gpt4 book ai didi

amazon-web-services - 如何在 IAM 策略文档中使用 AWS CloudFormation 伪参数

转载 作者:行者123 更新时间:2023-12-02 18:47:06 29 4
gpt4 key购买 nike

我正在使用 AWS CloudFormation(基于 YAML)来部署 IAM 角色。应允许该角色部署其他 CloudFormation 资源,并拥有其作为可信实体部署到的 AWS 账户的根。我尝试使用内置伪参数 AWS::AccountId 提供帐户 ID: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/pseudo-parameter-reference.html#cfn-pseudo-param-accountid .

这是我按照官方文档尝试过的:https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html (仅显示我的 CFN 模板的 resources 部分):

Resources:
IAMRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Statement:
- Action: ["sts:AssumeRole"]
Effect: Allow
Principal:
Service: [cloudformation.amazonaws.com]
AWS: arn:aws:iam::AWS::AccountId:root # <-- ERROR HERE !

由于 CloudFormation 堆栈中的主体无效(在 AWS 管理控制台中的事件下),导致出现 MalformedPolicyDocument 错误:

Invalid principal in policy: "AWS":"arn:aws:iam::AWS::AccountId:root" (Service: AmazonIdentityManagement; Status Code: 400; Error Code: MalformedPolicyDocument

我尝试改变 AWS 主体值的语法:

  • 带引号和不带引号
  • 带方括号和不带方括号

校长的错误在哪里,如何纠正?

最佳答案

我们需要使用Intrinsic functions !Sub对于 AWS::Region、AWS::AccountId、AWS::StackName 等变量

AWS: !Sub arn:aws:iam::${AWS::AccountId}:root

关于amazon-web-services - 如何在 IAM 策略文档中使用 AWS CloudFormation 伪参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67282482/

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