0

初学者问题在这里。我想将事件从 AWS Config 服务发布到 SNS 主题 - 已加密。我已经从各种服务发布到 SNS,但在这种情况下,可以在我的客户托管密钥声明中使用服务主体。所以我的 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 事件源要求您在 KMS 密钥策略中提供 IAM 角色,而不是其服务委托人。

但是没有示例应如何提供此 IAM 角色。是这样的吗?

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

另外,我不确定这个角色会是什么样子。我可以创建一个可以发布到 SNS 的角色并将其添加到 CMK,但我如何将其链接到 AWS Config 并确保该角色用于发布事件?有人可以建议这个角色应该包含什么吗?非常感谢

4

1 回答 1

0

来自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确实存在。

于 2020-07-02T01:11:20.913 回答