使用阿里云操作审计(ActionTrail)自动继承父资源标签

本文涉及的产品
函数计算FC,每月15万CU 3个月
操作审计,不限时长
简介: # 使用阿里云操作审计(ActionTrail)自动继承父资源标签## 背景标签被广泛应用于许多云上管理场景,比如资源管理、财务管理、自动化运维和权限管理。有了标签,资源就容易被聚类或者被索引,然而,对于许多用户而言,管理大量标签始终是一个挑战。特别是,当用户需要给一系列关联资源统一打标时。云资源管理过程中,有很多场景需要创建一个功能模块,这个模块包含一个父资源和多个子资源。比如说,当

使用阿里云操作审计(ActionTrail)自动继承父资源标签

背景

标签被广泛应用于许多云上管理场景,比如资源管理、财务管理、自动化运维和权限管理。有了标签,资源就容易被聚类或者被索引,然而,对于许多用户而言,管理大量标签始终是一个挑战。特别是,当用户需要给一系列关联资源统一打标时。

云资源管理过程中,有很多场景需要创建一个功能模块,这个模块包含一个父资源和多个子资源。比如说,当用户创建一个ECS时,他一定需要创建一个磁盘,有时也会创建一个镜像,同时,磁盘也可能存在快照。因为这些资源属于同一个父资源,用户希望,当给父资源打标签时,其所包含的子资源也要继承同样的标签,或者当用户在父资源下添加新的子资源时,用户希望子资源自动继承父资源已经有的标签。我们再举一个例子,专有网络(VPC)包含交换机、路由表、NAT网关和VPN网关作为子资源,弹性公网IP可以关联到NAT网关。我们时常听到用户反馈,当在VPC下创建新的子资源时,希望子资源能够自动继承VPC的标签。

在这篇文章中,我们将介绍子资源如何自动从父资源继承标签。我们将使用以上VPC的场景来讲解这个解决方案,但是这个方案并不局限于VPC,可以被应用在任何类似的场景。

目标

下图展示了VPC和子资源之间的关系

VPCTag_drawio

这篇文章中的解决方案将实现以下两个目标

  1. 当在VPC下创建子资源时,子资源自动继承父资源的标签
  2. 当给VPC添加新标签时,所有子资源自动继承新标签

解决方案概览

此解决方中使用到的云产品

这些云产品将按照下图的关系进行集成

arch_drawio

操作审计持续记录VPC和其子资源的操作,其中每一条记录都会被路由到事件总线(EventBridge),然后我们通过事件总线中的规则过滤出我们感兴趣的事件。我们会创建2条规则,规则一过滤出所有给VPC打标的操作(TagResources),规则二过滤出创建VPC子资源的操作。最后我们把两个规则分别连接到相应的函数,以实现自动打标的目标

解决方实施

接下来我们逐步描述该方案的实施过程

为了成功实施该方案,以下条件必须首先满足

  • 一个阿里云账号
  • 对于NodeJS有基本了解
  • 确保一下步骤都在同一个区域进行

操作审计(ActionTrail)

操作审计默认自动开启,此处无需额外操作和配置

创建一个阿里云服务

为了在函数中给资源打标,我们必须赋予函数VPC和Tag相应权限

  1. 打开访问控制→ 角色 → 创建角色
  2. 选择阿里云服务

  1. 角色命名为TagVPCRole
  2. 选择受信服务函数计算

  1. 点击完成
  2. 我们需要给这个角色赋予三个角色, AliyunVPCReadOnlyAccess, AliyunLogFullAccess and AliyunTagAdministratorAccess:

创建一个函数服务

接下来我们创建执行打标操作的函数

1.  打开 函数计算

2.  点击 服务及函数

3.  创建一个名为 VPCTagService 的服务

4.  在服务表中找到上面创建的服务

5.  点击 配置

6.  在角色配置部分, 选择 TagVPCRole

7.  保存

创建函数func01

当VPC增加新标签时,这个函数会自动给子资源打上同样的标签

1.  打开函数 函数计算 → 服务 → 函数

2.  点击 创建函数, 创建一个名为func01的函数

3.  创建完成后,你会被重定向到函数编辑页面. 点击 上传代码,选择 上传Zip文件


4.  Zip文件可以从这里获取 here

5.  上传成功后确保点击 保存和部署,使代码生效

_2021_10_28_11_50_58

创建函数func02

当VPC增加新的子资源时,这个函数会自动给子资源打上同样的标签

1.  打开函数 函数计算 → 服务 → 函数

2.  点击 创建函数, 创建一个名为func02的函数


3.  创建完成后,你会被重定向到函数编辑页面. 点击 上传代码,选择 上传Zip文件

4.  Zip文件可以从这里获取 here

5.  上传成功后确保点击 保存和部署,使代码生效

_2021_10_28_11_50_58

事件总线(EventBridge)

默认事件总线会监听有操作审计的事件,但是我们并不想因为任意事件触发一次函数执行。我们只关心两类事件,第一类,VPC打标事件,第二类创建VPC子资源事件。因此,我们创建两个规则,分别过滤这两类事件。

创建规则1

第一个规则命名为 TagVPC. 这个规则将用来过滤VPC上的 TagResources 事件。
1.  打开 事件总线->default->事件规则->创建规则
2.  定义事件模式

{
    "data": {
        "eventName": [
            "TagResources"
        ],
        "serviceName": [
            "Vpc"
        ]
    },
    "source": [
        "acs.vpc"
    ],
    "type": [
        "vpc:ActionTrail:AliyunServiceEvent",
        "vpc:ActionTrail:ApiCall",
        "vpc:ActionTrail:ConsoleOperation"
    ]
}

3.  下一步我们把规则的目标指向对应的函数
  选择 函数计算 作为服务类型,选择函数func01

创建规则 2

第二条规则命名为 CreateVPCResources. 这条规则用来过滤创建子资源事件

1.  打开 事件总线->default->事件规则->创建规则
2.  定义事件模式

{
    "data": {
        "resourceType": [
            "ACS::VPC::NatGateway",
            "ACS::VPNGateway::VpnGateway",
            "ACS::ECS::Instance;ACS::EIP::EipAddress",
            "ACS::VPC::VSwitch;ACS::VPC::VPC",
            "ACS::VPC::RouteTable;ACS::VPC::VPC",
            "ACS::VPC::VPC"
        ],
        "eventName": [
            "Create",
            "AssociateEipAddress",
            "CreateVSwitch",
            "CreateRouteTable"
        ]
    },
    "source": [
        "acs.vpc"
    ],
    "type": [
        "vpc:ActionTrail:AliyunServiceEvent",
        "vpc:ActionTrail:ApiCall",
        "vpc:ActionTrail:ConsoleOperation"
    ]
}

2. 按照上面的方法,把func02添加为这个规则的目标

总结

这篇文章讲述了如何从VPC向其子资源自动传播标签。此方案适用了ActionTrail, EventBridgeFunction Compute. 虽然我们使用了VPC作为例子,但这个方法同样适用于其他类似场景

相关文章
|
消息中间件 自然语言处理 分布式计算
阿里云大数据操作审计
这里有最全,最新的阿里云大数据产品审计汇总,文档不断更新中。
|
新零售 存储 监控
阿里云操作审计 - 日志安全分析(一)
阿里云操作审计ActionTrail审计日志已经与日志服务打通,提供准实时的审计分析、开箱机用的报表功能。本文介绍背景、配置和功能概览。
4788 0
|
Serverless 对象存储 Python
阿里云函数计算应用:将ActionTrail审计事件从OSS导入到SLS中
ActionTrail会将事件压缩之后保存到OSS中。用户使用和分析OSS中的文件比较麻烦。如果能讲审计事件写入到SLS,会给用户提供很大的便利。阿里云函数计算是实现这个迁移的好办法,成本低,见效快。本文将介绍如何通过函数计算将ActionTrail事件从OSS导入到SLS中。
2708 0
|
6月前
|
SQL 弹性计算 监控
构建多账号云环境的解决方案|多账号云上操作日志统一审计
操作审计(ActionTrail)是阿里云提供的云账号资源操作记录的查询和投递服务,可用于安全分析、资源变更追踪以及合规性审计等场景。企业在阿里云采用多账号的资源结构时,如何满对跨账号跨地域的云上操作日志进行统一归集留存和分析,是企业上云管云过程的必备环节。此次分享为您介绍如何使用操作审计产品进行中心化的审计,提升云上多账号操作的可控可见性,及时发现问题、响应问题,规避潜在风险。
348 0
|
6月前
|
存储 分布式计算 监控
操作审计最佳实践:将阿里云操作日志持续投递到您的 SLS/OSS
操作审计(ActionTrail)帮助您监控并记录阿里云账号的活动,包括通过阿里云控制台、OpenAPI、开发者工具对云上产品和服务的访问和使用行为,记录为操作日志。 操作审计支持所有阿里云账号的免开通服务,默认为所有账号记录并存储近 90 天的日志。但在实际应用中,受法律法规和企业审计标准的要求,...
353 0
|
弹性计算 运维 监控
在 SLS 中分析ActionTrail跟踪投递日志
操作审计(ActionTrail)是阿里云提供的云账号资源操作记录的查询和投递服务,可用于安全分析、资源变更追踪以及合规性审计等场景。阿里云客户在操作审计控制台可以查看近90天的操作日志,但在实际应用中,需要普遍分析基于全Region并且90天以上的操作事件,用于一些复杂的聚合查询分析。
在 SLS 中分析ActionTrail跟踪投递日志
|
SQL 弹性计算 监控
操作审计日志分析实战一:使用 SQL 分析投递到 OSS 中的操作审计日志
操作审计(ActionTrail)是阿里云提供的云账号资源操作记录的查询和投递服务,可用于安全分析、资源变更追踪以及合规性审计等场景。 我们推荐您创建跟踪将操作日志投递到日志服务(SLS)和对象存储(OSS)中:在 SLS 中短期存储日志,用于查询分析、配置监控报警;在更低成本的 OSS 中存储更长周期的历史日志。 当您有需求查询分析历史操作日志时,您可能会苦恼于如何对 OSS 中存储的这些历史操作日志进行高效的查询和分析。本文章将引导您通过简单的配置,借助 DLA(数据湖分析)产品,实现通过 SQL 来查询和分析投递到 OSS Bucket 中的操作审计日志。
操作审计日志分析实战一:使用 SQL 分析投递到 OSS 中的操作审计日志
|
存储 监控 对象存储
操作审计最佳实践-跨账号日志收集
此文档为您介绍,当您有多个阿里云账号需要统一审计时,如何将多个账号的操作日志收集到一个账号的对象存储(OSS)或日志服务(SLS)中。
操作审计最佳实践-跨账号日志收集
|
6月前
|
JSON 数据中心 数据格式
Terraform 系列 - 批量创建资源时如何根据某个字段判断是否创建
Terraform 系列 - 批量创建资源时如何根据某个字段判断是否创建