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

标签 amazon-web-services aws-cloudformation amazon-iam

在 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/

相关文章:

amazon-web-services - boto3如何使用元数据创建对象?

amazon-web-services - 如何获取使用 step 函数运行的 AWS lambda 函数的结果

javascript - 在上传到 AWS S3 时计算 Node.js 中本地文件的 ETag

amazon-web-services - AWS ElastiCache 集群和 AWS ElastiCache 复制组有什么区别?

python - Athena 查询失败并显示 : "Insufficient permissions to execute the query"

amazon-web-services - 如何在没有提示的情况下在没有交互的情况下自动在 Amazon AWS EC2 上运行 aws configure?

amazon-web-services - 我们可以在 AWS::CloudFormation::Init 中收集实例元数据吗

amazon-web-services - 通过 CloudWatch Events 检测 EC2 实例是否是 CloudFormation 的一部分

amazon-web-services - 您可以限制可以上传到公共(public) S3 存储桶的最大文件大小吗?

amazon-web-services - AWS S3 存储桶策略 - 仅允许文件夹中的某些文件类型