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
на самом деле существует для вас.