AWS: Как настроить управляемый клиентом ключ для публикации событий из конфигурации AWS в зашифрованной теме SNS?

Начинающий вопрос здесь. Хочу публиковать события из сервиса AWS Config в тему SNS - зашифровано. Я уже публикую в SNS из различных сервисов, но в этом случае можно использовать принципала сервиса в моем операторе Customer Managed Key. Итак, мой раздел CMK yml выглядит так

            Statement:
              - Effect: Allow
                Principal:
                    Service:
                      - sns.amazonaws.com
                      - cloudtrail.amazonaws.com
                      - cloudwatch.amazonaws.com
                Action:
                  - kms:Encrypt
                  - kms:Decrypt
                  - kms:ReEncrypt*
                  - kms:GenerateDataKey*
                Resource: "*"

Я знаю, что для публикации из AWS Config я не могу использовать субъект-службу. В документации я прочитал

Другие источники событий Amazon SNS требуют, чтобы вы указали роль IAM, а не их принципала службы, в ключевой политике KMS.

Но нет примера, как должна быть предоставлена ​​эта роль IAM. Это что-то вроде этого?

               Principal:
                    Service:
                      - sns.amazonaws.com
                      - cloudtrail.amazonaws.com
                      - cloudwatch.amazonaws.com
                    AWS:
                      - Role IAM

Также я не уверен, как будет выглядеть эта роль. Я могу создать роль, которую можно публиковать в SNS, и добавить в CMK, но как связать ее с AWS Config и убедиться, что эта роль используется для публикации событий? Может ли кто-нибудь посоветовать, что должна содержать эта роль? большое спасибо

1 ответ

Из docsL:

Если вы создаете или обновляете роль с помощью консоли, AWS Config присоединяет за вас AWSConfigRole.

В моем случае, когда я проверил, что у меня есть, полный артикул роли:

arn:aws:iam::xxxxx:role/aws-service-role/config.amazonaws.com/AWSServiceRoleForConfig

Следовательно, в вашем CFN можно попробовать следующее:

Principal:
    Service:
      - sns.amazonaws.com
      - cloudtrail.amazonaws.com
      - cloudwatch.amazonaws.com
    AWS:
      - !Sub "arn:aws:iam::${AWS::AccountId}:role/aws-service-role/config.amazonaws.com/AWSServiceRoleForConfig"

Перед этим вы можете проверить, AWSServiceRoleForConfig на самом деле существует для вас.

Другие вопросы по тегам