Amazon cloudformation API:sqs:CreateQueue始终拒绝访问
我正在尝试使用cloudformation创建一个sqs队列,但我在控制台中不断遇到这个错误Amazon cloudformation API:sqs:CreateQueue始终拒绝访问,amazon-cloudformation,Amazon Cloudformation,我正在尝试使用cloudformation创建一个sqs队列,但我在控制台中不断遇到这个错误 API: sqs:CreateQueue Access to the resource https://sqs.us-east-1.amazonaws.com/ is denied. 很明显我错过了某种许可。这并没有具体说明如何解决这个问题 以下是我编写的代码: AWSTemplateFormatVersion: "2010-09-09" Resources: MyQueue: Typ
API: sqs:CreateQueue Access to the resource https://sqs.us-east-1.amazonaws.com/ is denied.
很明显我错过了某种许可。这并没有具体说明如何解决这个问题
以下是我编写的代码:
AWSTemplateFormatVersion: "2010-09-09"
Resources:
MyQueue:
Type: AWS::SQS::Queue
Properties:
FifoQueue: false
QueueName: sqs-test
ReceiveMessageWaitTimeSeconds: 20
RedrivePolicy:
deadLetterTargetArn:
Fn::GetAtt:
- "MyDLQ"
- "Arn"
maxReceiveCount: 4
Tags:
-
Key: "ProjectName"
Value: "project-x"
MyDLQ:
Type: AWS::SQS::Queue
Properties:
FifoQueue: false
QueueName: sqs-dlq-test
我正在努力理解这一点。但我不确定如何附加允许创建队列的策略。有人请给我一个完整的例子。蒂龙对你的问题的评论是正确的。检查执行CloudFormation的用户的权限。如果您直接运行命令,这通常很容易检查。在某些情况下,您可能正在使用更复杂的自动化环境 我发现在自动化世界中解决权限问题的最佳方法是通过CloudTrail。在任何API调用失败后,无论是从CLI、CloudFormation还是其他源,都可以在CloudTrail中查找该调用 在这种情况下,在故障时间范围内搜索“Event Name”=“CreateQueue”将显示一个结果,其详细信息如下:
- 源IP地址;此字段可能会显示类似于cloudformation.amazonaws.com的内容,或您的计算机/办公室的IP。当您需要根据源筛选事件时,此功能非常有用
- 用户名;在我的例子中,这是运行CFN模板的代理的EC2实例ID
- 访问密钥ID;对于EC2实例,这可能是一组临时访问凭据,但对于真正的用户,它将向您显示使用了什么密钥
- 实际事件数据;对于非权限错误尤其有用,实际事件可能会显示请求本身中的错误
在我的例子中,运行自动化的特定EC2实例已过时,需要更新以使用正确的IAM角色/实例配置文件。CloudTrail帮助我找到了这一点。我假设您是以自己的IAM用户身份运行它的。该用户的IAM策略是什么?运行CloudFormation模板的用户需要具有创建相同资源的权限。