【问题标题】:Can AWS CloudFormation templates for AWS Inspector add an SNS TopicAWS Inspector 的 AWS CloudFormation 模板能否添加 SNS 主题
【发布时间】:2018-09-06 07:19:06
【问题描述】:

我创建了一些 CloudFormation 模板来部署 Inspector 模板/目标和相关的 Lambda 函数,这些函数解析输出并将结果传递给 Slack。是否可以像在 Inspector 门户中创建模板时那样在 Inspector 的 CF 模板中包含 SNS 主题关联?

它不是 AWS::Inspector::AssessmentTemplate 的可用参数。这是我必须通过门户手动添加的内容吗?

【问题讨论】:

    标签: amazon-web-services amazon-cloudformation


    【解决方案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 等)。
      猜你喜欢
      • 2021-07-20
      • 2017-12-14
      • 1970-01-01
      • 1970-01-01
      • 2018-11-01
      • 2022-10-13
      • 2023-03-19
      • 1970-01-01
      • 2020-09-18
      相关资源
      最近更新 更多