Невозможно настроить уведомление очереди SQS в S3 - PullRequest
0 голосов
/ 20 февраля 2019

Я создал очередь SQS и добавил политику на вкладке разрешений, позволяя только пользователям моей учетной записи настраивать уведомление о настройке

Документ политики

{
  "Version": "2012-10-17",
  "Id": "arn:aws:sqs:us-east-1:111111111111:sqsqueue/SQSDefaultPolicy",
  "Statement": [
    {
      "Sid": "Sid111111111111",
      "Effect": "Allow",
      "Principal": {
        "AWS": "111111111111"
      },
      "Action": [
        "sqs:SendMessage",
        "sqs:ReceiveMessage"
      ],
      "Resource": "arn:aws:sqs:us-east-1:111111111111:queue"
    }
  ]

Перейдите к S3 и попытайтесь настроить событиеуведомление для указанной выше очереди выдает ошибку

Невозможно проверить следующие конфигурации назначения.Разрешения в очереди назначения не позволяют S3 публиковать уведомления из этого сегмента.(arn: aws: sqs: us-east-1: 111111111111: очередь) *

я что-то не так делаю?Может кто-нибудь помочь мне, пожалуйста

1 Ответ

0 голосов
/ 12 мая 2019

Этот файл шаблона создает корзину, очередь SQS и политику для их соединения:

AWSTemplateFormatVersion: 2010-09-09
Parameters:
  IncomingBucketName:
    Type: 'String'
    Description: 'Incoming Bucket Name'
    Default: 'some-bucket-name-here'
Resources:
  IncomingFileQueue:
    Type: 'AWS::SQS::Queue'
    Properties: {}
  SQSQueuePolicy:
    Type: 'AWS::SQS::QueuePolicy'
    Properties:
      PolicyDocument:
        Id: 'MyQueuePolicy'
        Version: '2012-10-17'
        Statement:
          - Sid: 'Statement-id'
            Effect: 'Allow'
            Principal:
              AWS: "*"
            Action: 'sqs:SendMessage'
            Resource:
              Fn::GetAtt: [ IncomingFileQueue, Arn ]
      Queues:
        - Ref: IncomingFileQueue
  IncomingFileBucket:
    Type: 'AWS::S3::Bucket'
    DependsOn:
      - SQSQueuePolicy
      - IncomingFileQueue
    Properties:
      AccessControl: BucketOwnerFullControl
      BucketName:
        Ref: IncomingBucketName
      NotificationConfiguration:
        QueueConfigurations:
          - Event:
              s3:ObjectCreated:Put
            Queue:
              Fn::GetAtt: [ IncomingFileQueue, Arn ]

У меня возникла та же проблема, но я использовал эту страницу, чтобы выяснить, как соединить три ресурса по порядку.для успешного развертывания стека: https://aws.amazon.com/premiumsupport/knowledge-center/unable-validate-destination-s3/

Я все еще работаю над условием политики, поскольку форма, рекомендованная в приведенной выше ссылке, не работает для SQS.В этом случае приведенный выше шаблон небезопасен и не должен использоваться в рабочей среде, поскольку он позволяет любому добавлять сообщения в очередь.

Я обновлю этот ответ, как только выясню, что получилось...

...