Как проверить правильность шаблона CloudFormation?

#amazon-web-services #amazon-cloudformation #amazon-sqs

Вопрос:

Я хочу развернуть очередь SQS из шаблона CloudFormation. Есть ли какие-либо проблемы с моим шаблоном?

 configurationQueue:
    Type: 'AWS::SQS::Queue'
    Properties:
      QueueName: configuration-queue
      VisibilityTimeout: 60
      MessageRetentionPeriod: 86400

SQSQueuePolicy:
      Type: 'AWS::SQS::QueuePolicy'
      Properties:
        PolicyDocument:
          Version: 2012-10-17
          Statement:
            - Effect: Allow
              Principal:
                AWS: '*'
              Action:
                - 'sqs:CreateQueue'
                - 'sqs:DeleteMessage'
                - 'sqs:GetQueueAttributes'
                - 'sqs:GetQueueUrl'
                - 'sqs:ListQueueTags'
                - 'sqs:ListQueues'
                - 'sqs:ReceiveMessage'
                - 'sqs:SendMessage
              Resource: "arn:aws:sqs:us-west-2:****configuration-queue"
        Queues:
          - !Ref configurationQueue
 

Это команда, которую я использовал

 cfn-lint sqs-resources.yaml

 

и в этом заключается ошибка

введите описание изображения здесь

Комментарии:

1. Вы можете довольно легко проверить синтаксис шаблона с помощью awscli, но мы не можем проверить семантику вашего шаблона, потому что вы не указали, каковы требования.

2. Привет, @jarmod Я просто хочу создать простой sqs ctf, есть ли какая-либо ошибка c в моем коде?

3. Нет, это почти наверняка неправильно, но мы не знаем, что такое «правильно», потому что мы не знаем, чего вы хотите достичь. Тем не менее, очевидные ошибки являются основными — вы почти никогда не должны использовать AWS:*, но вместо этого ограничивайте его минимальным набором учетных записей AWS (например, номером вашей учетной записи). Действия обычно должны включать только sqs:SendMessage и/или sqs:ReceiveMessage — похоже, вы путаете политику ресурсов SQS с политикой IAM. Вот несколько примеров .

4. @WCY Вы можете использовать cfn-lint, cfn-nag для проверки шаблона CFN. dev.to/namuny/…

5. @deechris27 Я устанавливаю cfn-lint и тестирую его , но получаю такую ошибку, потому что он может использоваться только в vscode?

Ответ №1:

sqs:SendMessage отсутствует конечная цитата

Рекомендуем попробовать линтер CloudFormation в VSCode, чтобы увидеть некоторые из этих ошибок встраиваемыми при создании шаблонов вместе со ссылками на автозаполнение и документацию

Комментарии:

1. Я устанавливаю cfn-lint и тестирую его , но получаю такую ошибку, потому что он может использоваться только в vscode

2. cfn-lint также может использоваться вне VSCode