- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 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/
我是一名优秀的程序员,十分优秀!