为什么 AWS CloudWatch 警报无法向加密的 SNS 主题发送通知?

Nis*_*man 5 amazon-cloudwatch aws-kms cloudwatch-alarms

如果我的 lambda 函数内存使用量超过 lambda 内存大小的 80%,我设置了警报以通知我。我正在使用自定义指标捕获数据点,并且当内存使用量超过阈值时,我能够在 cloudwatch 控制台中看到警报。但是当警报采取行动向相应的 SNS 主题发送通知时失败并显示以下消息:

{
 "actionState": "Failed",
 "stateUpdateTimestamp": 1558142246126,
 "notificationResource": "arn:aws:sns:us-east-1:5847563209:<myTopic>",
 "publishedMessage": null,
 "error": "null (Service: AWSKMS; Status Code: 400; Error Code: AccessDeniedException; Request ID: 6b7806a6-2c16-4582-9ecd-05100161746e)"
Run Code Online (Sandbox Code Playgroud)

}

SNS 主题使用 KMS 密钥加密,我允许 cloudwatch 访问密钥策略中的密钥:

{
  "Sid": "Allow CloudWatch to use the key",
  "Effect": "Allow",
  "Principal": {
      "Service": "cloudwatch.amazonaws.com"
  },
  "Action": [
      "kms:GenerateDataKey",
      "kms:Decrypt"
  ],
  "Resource": "*"
}
Run Code Online (Sandbox Code Playgroud)

但行动仍然失败。我也试过events.amazonaws.com当校长,但没有运气。我很感激这方面的任何帮助。

Unk*_*nts 4

看起来还不支持。从这里: https: //aws.amazon.com/blogs/compute/encrypting-messages-published-to-amazon-sns-with-aws-kms/

\n\n
\n

截至 2018 年 11 月,Amazon CloudWatch 警报尚不能与 Amazon SNS 加密主题配合使用。

\n
\n

  • 截至 2019 年 11 月,现已支持 CloudWatch Alarms:https://aws.amazon.com/blogs/compute/encrypting-messages-published-to-amazon-sns-with-aws-kms/ 但是,似乎并不支持在 AWS GovCloud 工作 (4认同)