AWS Inspector 的 AWS CloudFormation 模板能否添加 SNS 主题
Posted
技术标签:
【中文标题】AWS Inspector 的 AWS CloudFormation 模板能否添加 SNS 主题【英文标题】:Can AWS CloudFormation templates for AWS Inspector add an SNS Topic 【发布时间】:2018-09-06 07:19:06 【问题描述】:我创建了一些 CloudFormation 模板来部署 Inspector 模板/目标和相关的 Lambda 函数,这些函数解析输出并将结果传递给 Slack。是否可以像在 Inspector 门户中创建模板时那样在 Inspector 的 CF 模板中包含 SNS 主题关联?
它不是 AWS::Inspector::AssessmentTemplate 的可用参数。这是我必须通过门户手动添加的内容吗?
【问题讨论】:
【参考方案1】:我就是这样做的。我使用成云模板创建了评估目标、评估资源组和评估模板。此外,还包括一个 cloudwatch 事件规则,以每周触发评估运行。
截至目前,尚不支持通过 Inspector Assessment 模板云生成资源添加 SNS Topic,我通过 boto3 API 进行事件订阅。参考这里的 API:https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/inspector.html#Inspector.Client.subscribe_to_event
如果您参考上述 API 文档,您将能够开发一个小型 python lambda 函数来为您的检查员评估模板订阅 SNS 主题。然后在配置或定义评估模板的同一模板中使用自定义资源调用该 lambda 函数,如下所示。
自定义资源如下所示:
SubscribeToEvent:
Type: "Custom::<whatever_name>"
Version: "1.0"
Properties:
ServiceToken: !GetAtt <Lambda function logical name>.Arn
AssessmentTemplateArn: !GetAtt <Assessment template logical name>.Arn
topicArn: !Sub arn:aws:sns:$AWS::Region:$account number:<Nameofthetopic>
如果您尝试引用跨账户主题或存在于另一个账户中的主题,在这种情况下,您需要更新主题策略以向 AWS Inspector 账户授予 publish topic
权限。要查找 AWS 帐号,请参阅此处:https://docs.aws.amazon.com/inspector/latest/userguide/inspector_assessments.html#sns-topic
【讨论】:
【参考方案2】:我看到 SNS 选项仅在 UI 和 CLI/API 中可用,我猜 UI/CLI 在后台为您创建 Cloudwatch Events 规则,您使用 AWS::Events::Rule 创建自己的规则
参考:Event Patterns
EventRule:
Type: "AWS::Events::Rule"
Properties:
Description: "EventRule"
EventPattern:
source:
- "aws.inspector"
detail-type:
- "AWS API Call via CloudTrail"
resources:
- arn:aws:inspector:us-west-2:123456789012:target/0-nvgVhaxX/template/0-7sbz2Kz0
detail:
eventSource:
- "inspector.amazonaws.com"
eventName:
- "ASSESSMENT_RUN_COMPLETED"
State: "ENABLED"
Targets:
- arn:aws:sns:us-west-2:123456789012:exampletopic
【讨论】:
嗨。不幸的是,通过 CloudTrail API 调用(通过查看 CloudTrail 日志)跟踪的事件与评估运行启动事件本身(StartAssessmentRun)相关,而不是评估运行发出的消息(ASSESSMENT_RUN_STARTED、ASSESSMENT_RUN_COMPLETED、FINDING_REPORTED 等)。以上是关于AWS Inspector 的 AWS CloudFormation 模板能否添加 SNS 主题的主要内容,如果未能解决你的问题,请参考以下文章
防止 spring-cloud-aws-messaging 尝试停止队列
AWS 实例配置文件不适用于 Spring Cloud AWS
如何在本地使用 spring-cloud-starter-aws 运行应用程序?