Подписаться на события S3 в очереди SQS, не подвергая SQS миру? - PullRequest
3 голосов
/ 03 мая 2019

Я борюсь с тем, что мне кажется простым делом.

Я хочу настроить свою очередь SQS так, чтобы ящики S3 в моей учетной записи могли отправлять сообщения, но не разрешали посторонним посылать сообщения. (Внешние лица означают любого участника, который не является членом моей учетной записи AWS)

Единственная конфигурация разрешений SQS, которую я могу получить, - Effect=Allow, Principals=*, Actions=SQS:SendMessage, Conditions=None

Любое другое разрешение заставляет меня увидеть эту ошибку при создании [S3 event -> SQS]: Unable to validate the following destination configurations. Permissions on the destination queue do not allow S3 to publish notifications from this bucket.

Principals=* касается меня. Из документации, которую я могу найти, это означает, что очередь SQS доступна любому человеку в мире. Это правда? Это явно очень плохо.

Как я могу разрешить моим корзинам S3 отправлять сообщения в мою очередь SQS, а не анонимным пользователям отправлять сообщения?

Для меня приемлемо разрешить любому ресурсу в моей учетной записи AWS отправлять SendMessage в SQS. Мне просто нужно заблокировать доступ анонимным пользователям AWS. Это очень основное требование, и я очень удивлен, что не могу найти простой способ сделать это.

1 Ответ

2 голосов
/ 03 мая 2019

Вы можете найти безопасную конфигурацию прямо в документе

   "Condition": {
      "ArnLike": { "aws:SourceArn": "arn:aws:s3:*:*:bucket-name" }
   }

Обратите внимание, что для политик Amazon SNS и IAM Amazon SQS вы можете указать в политике условие StringLike вместо условия ArnLike.

"Condition": {         
  "StringLike": { "aws:SourceArn": "arn:aws:s3:*:*:bucket-name" }
  }  

Полный пример взят из Документ

{
   "Sid": "example-statement-ID",
   "Effect": "Allow",
   "Principal": {
     "AWS": "*"  
   },
   "Action": [
    "SQS:SendMessage"
   ],
   "Resource": "SQS-ARN",
   "Condition": {
      "ArnLike": { "aws:SourceArn": "arn:aws:s3:*:*:bucket-name" }
   }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...