上次更新时间:2021 年 4 月 8 日
我为 AWS Config 设置了 Amazon Simple Notification Service (Amazon SNS) 通知,但我没有收到任何通知。
简短描述请尝试以下问题排除解决方案:
验证您的 Amazon SNS 主题订阅的状态 授予您的 AWS 账户发布 SNS 主题的权限 授予 AWS 跨账户发布 Amazon SNS 主题的权限 确认 AWS Config 可以访问加密 Amazon SNS 主题 修复您的 Amazon CloudWatch Events 和 SNS 权限配置 解决方法 验证您的 Amazon SNS 主题订阅的状态1.打开 Amazon SNS 控制台。
2.在导航窗格上,选择 Subscriptions(订阅)。
3.从订阅列表中,确认您的订阅 Status(状态)设置为 Confirmed(已确认)。如果 Status(状态)为 PendingConfirmation(等待确认),则按照确认订阅的说明操作。
授予您的 AWS 账户发布 SNS 主题的权限您必须选择服务相关角色或自定义角色作为记录器角色。记录器角色是可供您记录配置信息的 AWS Identity and Access Management (IAM) 角色。
重要事项:作为安全最佳实践,使用自定义配置服务角色作为记录器角色。避免使用服务相关角色作为跨账户主题策略的记录器角色。这是因为服务相关角色要求您在 Amazon SNS 主题策略中将 “config.amazonaws.com” 设置为 Service(服务)属性。
要将服务相关角色的 Amazon 资源名称 (ARN) 替换为自定义服务角色 ARN,请向角色权限策略中添加以下权限:
{
"Effect": "Allow",
"Action": "sns:Publish",
"Resource": "arn:aws:sns:Region:AccountId:Topic-Name"
}
有关自定义角色的更多信息,请参阅分配给 AWS Config 的 IAM 角色的权限。
授予 AWS 跨账户发布 Amazon SNS 主题的权限如果您从另一个账户中选择了 SNS 主题,请设置以下配置以获取跨账户访问权限:
1.向附加到您的 SNS 主题的访问策略中添加以下语句:
{
"Sid": "__console_pub_0",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::config-AccountId:root" OR "arn:aws:iam::config-AccountId:role/Custom_Service_role_name"
},
"Action": "sns:Publish",
"Resource": "arn:aws:sns:Region:SNS-topic-AccountId:Topic-Name"
}
2.将以下语句附加到 AWS Config 担任的 IAM 角色:
{
"Version": "2012-10-17",
"Statement":
}
确认 AWS Config 可以访问加密 Amazon SNS 主题
如果您的 SNS 主题使用 AWS Key Management Service (AWS KMS) 密钥进行加密,请完成以下步骤:
1.确认 AWS Config 担任的 IAM 角色可以访问解密 SNS 主题所需的密钥。例如:
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::config-AccountId:role/ConfigRoleName"
},
"Action": ,
"Resource": "*"
}
2.在角色的访问策略中添加 AWS KMS 权限:
{
"Effect": "Allow",
"Action": ,
"Resource": "*"
}
修复您的 Amazon CloudWatch Events 和 SNS 权限配置
1.确认您选择了正确的 SNS 主题作为 CloudWatch Events 规则的目标。
2.如果您使用 Amazon CloudWatch 监控 AWS Config API 并使用 Amazon SNS 发送通知,请确认 CloudWatch 拥有 SNS 主题的发布权限。例如,在主题的资源策略中包含以下语句:
{
"Sid": "Allow_Publish_Events",
"Effect": "Allow",
"Principal": {
"Service": "events.amazonaws.com"
},
"Action": "sns:Publish",
"Resource": "arn:aws:sns:Region:AccountId:Topic-Name"
}
3.对 CloudWatch Events 规则进行故障排查。