跳转到主要内容

Cloud Custodian - 从CloudTrail创建具有追溯标签的资源

项目描述

c7n-trailcreator:追溯资源创建标签

此脚本将处理云跟踪记录,创建一个包含资源和其创建者的sqlite数据库,然后使用该sqlite数据库对资源进行标记,标记其创建者的姓名。

在处理云跟踪时,可以使用Athena或S3 Select。需要一个配置文件,其中包含感兴趣的事件和资源。

安装

$ pip install c7n-trailcreator

$ c7n-trailcreator --help

配置文件

这里的配置文件格式类似于custodian在云跟踪API事件上对lambda策略所要求的格式,作为事件选择器。

对于每个资源,必须指定保管资源的类型,然后对于每个事件,我们需要知道服务名称、事件名称以及获取资源ID的jmespath表达式。

以下是一些示例,包括iam-user、iam-role和一个s3存储桶。

{
  "resources": [
    {
      "resource": "iam-role",
      "events": [
        {
          "event": "CreateRole",
          "ids": "requestParameters.roleName",
          "service": "iam.amazonaws.com"
        }
      ]
    },
    {
      "resource": "s3",
      "events": [
        {
          "ids": "requestParameters.bucketName",
          "event": "CreateBucket",
          "service": "s3.amazonaws.com"
        }
      ]
    },
    {
      "resource": "iam-user",
      "events": [
        {
          "event": "CreateUser",
          "ids": "requestParameters.userName",
          "service": "iam.amazonaws.com"
        }
      ]
    }]
}

Athena使用情况

跟踪创建者支持使用s3 select或使用Athena从cloudtrail s3加载数据。

注意您必须根据https://docs.aws.amazon.com/athena/latest/ug/cloudtrail-logs.html预先创建cloudtrail的Athena表。

让我们使用示例配置文件来加载2019年创建的所有角色、存储桶和用户的示例数据。

c7n-trailcreator load-athena \
    --region us-east-1 \
	--resource-map resource_map.json \
	--table cloudtrail_logs_custodian_skunk_trails \
	--db "creators.db" \
	--year 2019

默认情况下,我们将使用控制台使用的默认s3 athena输出,以及默认数据库和主工作组,您可以在命令行上传递所有这些以更加明确。

您也可以指定仅处理一个月,使用--month 2019/11,或使用--day 2019/02/01指定单个日期。

INFO:c7n_trailowner:Athena query:569712dc-d1e9-4474-b86f-6579c53b5b46
INFO:c7n_trailowner:Polling athena query progress scanned:489.24 Mb qexec:28.62s
INFO:c7n_trailowner:Polling athena query progress scanned:1.29 Gb qexec:88.96s
INFO:c7n_trailowner:Polling athena query progress scanned:2.17 Gb qexec:141.16s
INFO:c7n_trailowner:processing athena result page 78 records
INFO:c7n_trailowner:Athena Processed 78 records

请注意,您可以通过在命令行上传递--query-id来重新处理已完成查询的结果。

标记

它支持Custodian支持的所有资源。

$ c7n-trailcreator tag \
	--db creators.db \
	--creator-tag Owner \
	--region us-east-1
INFO:c7n_trailowner:account:644160558196 region:us-east-1 tag 13 iam-role resources users:5 population:97 not-found:84 records:124
INFO:c7n_trailowner:account:644160558196 region:us-east-1 tag 5 iam-user resources users:4 population:6 not-found:1 records:18
INFO:c7n_trailowner:account:644160558196 region:us-east-1 tag 9 s3 resources users:4 population:14 not-found:5 records:20
INFO:c7n_trailowner:auto tag summary account:644160558196 region:us-east-1
 iam-role-not-found: 84
 iam-role: 13
 iam-user-not-found: 1
 iam-user: 5
 s3-not-found: 5
 s3: 9
INFO:c7n_trailowner:Total resources tagged: 27

让我们分解这些日志消息中的一个

INFO:c7n_trailowner:account:644160558196 region:us-east-1 tag 13 iam-role resources users:5 population:97 not-found:84 records:124
  • 记录:我们为该资源类型拥有的数据库创建事件的计数。
  • 用户:我们拥有创建事件的独特用户数量。
  • 未找到:我们没有创建事件(即创建在跟踪分析期之前或之后)的资源数量。
  • 总体:账户区域中所有资源的总数。

多账户/多区域

c7n-trailcreator支持使用与c7n-org相同的文件格式标记执行多账户和区域操作。请参阅tag-org子命令。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

此版本没有提供源分布文件。请参阅生成分布存档的教程

构建分布

c7n_trailcreator-0.2.40-py3-none-any.whl (11.9 kB 查看哈希值)

上传于 Python 3

由...

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误记录StatusPageStatusPage状态页面