AuthorizationError при публикации сообщения sns - PullRequest
0 голосов
/ 16 марта 2020

Сводка Пользователь не может опубликовать sh в sns даже после предоставления всех разрешений.

Описание: Используя облачную информацию, я создал SNS topi c и SNS topi c policy

 TopicNameSNS:
   Type: 'AWS::SNS::Topic'
   Properties:
     KmsMasterKeyId: 'alias/aws/sns'
     TopicName: TopicNameSNS
TopicNameSNSTopicPolicy:
   Type: 'AWS::SNS::TopicPolicy'
   Properties:
     Topics:
       - {Ref: TopicNameSNS}
     PolicyDocument:
       Version: '2012-10-17'
       Statement:
         - Sid: 'Allow publishing to the topic'
           Action:
             - sns:Publish
           Effect: Allow
           Resource: {Ref: TopicNameSNS}
           Principal:
             AWS:
               - 'arn:aws:iam::<account_1_id>:user/<account_1_user_name>'

Этот шаблон облачной информации используется для создания этих ресурсов в account_2

На моем терминале с использованием учетных данных для account_1 i я пытаюсь опубликовать sh сообщение для sns topi c, но получаю ошибку авторизации.

Команда:

aws sns publish \
    --topic-arn "arn:aws:sns:us-west-2:<account_2>:TopicNameSNS" \
    --message file://sns_message.txt

результат:

An error occurred (AuthorizationError) when calling the Publish operation: User: arn:aws:iam::<account_1>:user/<account_1_user_name> 
is not authorized to perform: SNS:Publish on resource: arn:aws:sns:us-west-2:<account_2>:TopicNameSNS

Похоже, политика topi c просто не работает. Я также добавил новую политику для пользователя

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "sns:Publish",
            "Resource": "arn:aws:sns:us-west-2:<account_2>:TopicNameSNS"
        }
    ]
}

Но я все еще получаю ту же ошибку.

Вопрос:

Как разрешить пользователю публиковать sh сообщений в sns topi c? Я бы предпочел использовать политику topi c, но я также могу изменить политику пользователя iam, если политика topi c невозможна.

...