gpt4 book ai didi

amazon-web-services - CloudFormation "You are not authorized to perform this operation"创建 SubnetRouteTableAssociation

转载 作者:行者123 更新时间:2023-12-03 07:19:46 27 4
gpt4 key购买 nike

在 CloudFormation 堆栈上,我在 AWS::EC2::SubnetRouteTableAssociation 类型的操作上收到错误:

确切的错误是:

Resource handler returned message: "You are not authorized to perform this operation.
(Service: Ec2, Status Code: 403, Request ID: XXXXXXXX, Extended Request ID: null)"
(RequestToken: XXXXXXXX, HandlerErrorCode: GeneralServiceException)

令我困扰的是我看不到哪个 API 调用失败了。通常,我认为它将操作名称放在括号中,以便更容易识别发生了什么。无论如何,我正在猜测并假设它是 AssociateRouteTable用户没有的权限。但用户拥有此权限。

问题:如何确定需要向相关 IAM 用户授予的 API 操作类型?

我尝试过的

我尝试在 CLI 中执行相同的操作(我认为是这样):

aws ec2 associate-route-table \
--subnet-id <subnet-id> \
--route-table-id <route-table-id>

(显然与我的 CloudFormation 将使用的值相同)。通过 CLI 执行此操作可以正常工作,并将事件正确放入 AssociateRouteTable 类型的 CloudTrail 事件历史记录中。但是,当我通过 CloudFormation 执行此操作时,我收到上述错误,并且 CloudTrail 事件历史记录中没有任何 AssociateRouteTable 事件的痕迹。

最佳答案

事实证明,这很难弄清楚。最后,我采用了具有 AdministratorAccess 策略的用户来部署 CloudFormation 模板。不出所料,这有效,并为我提供了“调试”信息。通过此操作,我可以查看 CloudTrail 事件历史记录并看到 CloudFormation 将执行多个 API 调用以满足 AWS::EC2::SubnetRouteTableAssociation资源类型。这些是:

  • ec2:描述子网
  • ec2:DescribeRouteTables
  • ec2:AssociateRouteTable

上面列表中的最后一个也就不足为奇了。在我的例子中,用户缺少执行 ec2:DescribeRouteTables 的权限,因此 CloudFormation 部署将失败并显示上述错误消息。向用户添加此权限后,它现在可以工作了。

这也解释了为什么它在我执行 aws ec2 Associate-route-table CLI 命令时起作用,而在 CloudFormation 中不起作用。两者(完全相同)。

想想看!

我真诚地怀疑大多数 AWS 迷是否会采取与我相同的步骤来解决这个问题,所以我想一定是我错过了一些文档。另外,我仍然无法解释为什么失败的 API 调用没有显示在 CloudTrail 事件历史记录中。唉,现在可以了,所以我要收拾行李了。

关于amazon-web-services - CloudFormation "You are not authorized to perform this operation"创建 SubnetRouteTableAssociation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73386657/

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