云服务器内容精选

  • 基于FunctionGraph函数执行修正 使用预设策略“VPC启用流日志(vpc-flow-logs-enabled)”添加预定义合规规则。 由于当前账号存在未开启流日志的VPC资源,该合规规则的合规评估结果为“不合规”。 图5 合规评估结果 创建FunctionGraph函数,并填入以下函数代码。 该函数代码表示为指定的VPC资源开启流日志。 使用以下函数示例时,您需要手动添加依赖包huaweicloudsdkvpc,该依赖包并非在所有区域都可选,如果依赖包缺失,则需要手动导入依赖包,详见配置依赖包。 # -*- coding:utf-8 -*- import time import requests import random, string import http.client from huaweicloudsdkcore.exceptions.exceptions import ConnectionException from huaweicloudsdkcore.exceptions.exceptions import RequestTimeoutException from huaweicloudsdkcore.exceptions.exceptions import ServiceResponseException from huaweicloudsdkvpc.v2.region.vpc_region import VpcRegion from huaweicloudsdkvpc.v2.vpc_client import VpcClient from huaweicloudsdkvpc.v2.model import CreateFlowLogReq from huaweicloudsdkvpc.v2.model import CreateFlowLogReqBody from huaweicloudsdkvpc.v2.model import CreateFlowLogRequest from huaweicloudsdkcore.auth.credentials import BasicCredentials requests.packages.urllib3.disable_warnings() def get_random_string(length=6): letters_and_digits = string.ascii_letters + string.digits return ''.join(random.choice(letters_and_digits) for _ in range(length)) def createFlowLog(context, project_id, request): auth = BasicCredentials(ak=context.getAccessKey(), sk=context.getSecretKey())\ .with_project_id(project_id) client = VpcClient.new_builder() \ .with_credentials(credentials=auth) \ .with_region(region=VpcRegion.value_of(region_id="cn-north-4")) \ .build() try: response = client.create_flow_log(request) return 200 except ConnectionException as e: print("A connect timeout exception occurs while the vpc performs some operations, exception: ", e.error_msg) return e.status_code except RequestTimeoutException as e: print("A request timeout exception occurs while the vpc performs some operations, exception: ", e.error_msg) return e.status_code except ServiceResponseException as e: print("There is service error, exception: ", e.status_code, e.error_msg) return e.status_code def handler(event, context): project_id = event.get("project_id") request_body = CreateFlowLogRequest(CreateFlowLogReqBody( CreateFlowLogReq( name="auto" + get_random_string(4), description="to remediate vpc", resource_type="vpc", resource_id=event.get("noncompliant_resource_id", {}), traffic_type="all", log_group_id=event.get("log_group_id", {}), log_topic_id=event.get("log_topic_id", {}), index_enabled=False ) )) for retry in range(5): status_code = createFlowLog(context, project_id, request_body) if status_code == http.client.TOO_MANY_REQUESTS: time.sleep(1) else: break 创建该合规规则的修正配置,具体如下图所示。 部分示例参数的说明: 修正方法选择“自动修正”。 修正模板选择上一步中创建的FunctionGraph函数。 配置资源ID参数,Config会将该参数赋值为不合规资源的ID。在当前场景下“noncompliant_resource_id”将会被赋值为不合规资源的ID,FunctionGraph函数中使用resource_id=event.get("noncompliant_resource_id", {})语句获取不合规资源ID,每个不合规资源均会传递一次资源ID。 参数,指定您期望由Config传递给FunctionGraph函数的静态参数,该参数为不合规资源修正的具体规则参数值。例如在当前场景下此处配置日志组的ID(键:log_group_id;值:具体日志组ID值),在FGS函数中使用log_group_id=event.get("log_group_id", {})语句获取日志组ID,执行修正时为不合规的VPC资源创建的流日志均将在此日志组内。 当前示例中的参数说明如下: project_id:项目ID,如何获取请参见获取项目ID。 log_group_id:日志组ID,如何获取请参见管理日志组。 log_topic_id:日志流ID,如何获取请参见管理日志流。 图6 创建修正配置 修正配置创建完成后,重新触发规则评估。 当该合规规则评估完成且合规评估结果仍然为不合规时,Config将自动执行修正,调用FunctionGraph函数为每个不合规的VPC资源创建流日志。 如下图所示,不合规的VPC资源在修正成功后已全部创建流日志。 图7 VPC资源已创建流日志
  • 基于 RFS 私有模板执行修正 使用预设策略“创建并启用 CTS 追踪器(cts-tracker-exists)”添加预定义合规规则。 由于当前账号的CTS追踪器已停用,该合规规则的合规评估结果为“不合规”。 图1 CTS追踪器已停用 图2 合规评估结果 创建RFS私有模板,并填入以下模板内容。 该模板内容表示开启已关闭的CTS追踪器。 { "resource": { "huaweicloud_cts_tracker": { "tracker": { "bucket_name": "${var.bucket_name}", "file_prefix": "${var.file_prefix}", "lts_enabled": "true" } } }, "variable": { "bucket_name": { "description": "Specifies the OBS bucket to which traces will be transferred.", "type": "string", "default": "" }, "file_prefix": { "description": "Specifies the file name prefix to mark trace files that need to be stored in an OBS bucket. The value contains 0 to 64 characters. Only letters, numbers, hyphens (-), underscores (_), and periods (.) are allowed.", "type": "string", "default": "" } }, "terraform": { "required_providers": { "huaweicloud": { "source": "huawei.com/provider/huaweicloud", "version": "1.58.0" } } } } 创建该合规规则的修正配置,具体如下图所示。 部分示例参数的说明: 修正方法选择“自动修正”。 修正模板选择上一步中创建的RFS私有模板,当修正方法选择“自动修正”时还需指定 IAM 权限委托,例如当前场景下RFS私有模板将创建CTS追踪器,则该委托的授权云服务为RFS,委托权限为创建CTS追踪器的权限(例如CTS FullAccess)。如何创建委托请参见委托其他云服务管理资源。 配置资源ID参数,Config会将该参数赋值为不合规资源的ID。在当前场景下“file_prefix”将会被赋值为账号ID,该值会传递给RFS服务用于创建资源栈执行RF语句。 参数,指定您期望由Config传递给RFS私有模板的静态参数,Config会将这些参数原样传递给RFS服务用于创建资源栈执行RF语句。 图3 创建修正配置 修正配置创建完成后,重新触发规则评估。 当该合规规则评估完成且合规评估结果仍然为不合规时,Config将自动执行修正,调用RFS私有模板为当前账号开启CTS追踪器。 如下图所示,不合规资源自动修正成功,当前账号的CTS追踪器已启用。 图4 CTS追踪器已启用
  • 操作场景 当您通过系统预设策略或自定义策略创建合规规则后,您可以为合规规则创建修正配置,按照您自定义的修正逻辑对规则检测出的不合规资源进行快速修正。 合规规则的修正配置功能基于RFS服务的私有模板或FunctionGraph的函数进行资源修正,因此您需要预先创建RFS服务的私有模板或FunctionGraph的函数。本章节包含如下内容: 创建RFS私有模板 创建FunctionGraph函数 创建修正配置
  • 创建修正配置 当前仅用户自行创建的预定义或自定义合规规则支持修正配置,通过组织合规规则或合规规则包创建的托管合规规则不支持修正配置。 登录管理控制台。 单击页面左上角的图标,在弹出的服务列表中,选择“管理与监管”下的“配置审计 Config”,进入“资源清单”页面。 单击左侧的“资源合规”,进入“资源合规”页面。 在“规则”页签下的合规规则列表中,单击合规规则的规则名称,进入规则详情页。 图2 进入规则详情页 在左上方选择“修正管理”页签。 单击界面中部或右上方的“修正配置”按钮,进入修正配置信息页面。 图3 创建修正配置 选择修正方法。 自动修正:当合规规则评估出不合规资源后,将自动对不合规资源执行修正操作。 手动修正:由用户手动选择执行不合规资源的修正操作。具体请参见手动执行修正。 由于自动修正会根据您的预设参数自动修改不合规资源的配置信息,可能会影响业务的连续性,因此推荐您使用手动修正方式。 当您确保本次修正不会对业务造成影响时,可以选择修正方法为自动修正,当合规规则检测到不合规资源时,会自动执行修正。 配置修正执行的重试时间和重试次数。 当不合规资源在执行修正后仍不合规时,“自动修正”方式会循环执行修正,或您自行多次手动执行修正,这将可能产生不必要的费用和影响业务连续性。 为避免循环执行修正产生的影响,您必须设置修正执行的重试时间和重试次数,Config会检测单个资源在该重试时间内执行的修正次数,若达到设置的重试次数,该资源会自动被设置为修正例外,后续执行规则修正时将不会再对此资源进行修正。 重试时间默认为3600秒,输入值需在60到43200之间。 重试次数默认为5次,输入值需在1到25之间。 选择修正模板。 RFS模板:选择 资源编排 服务(RFS)的私有模板作为修正操作的模板,模板中定义不合规资源的具体修正逻辑。 IAM权限委托:当选择RFS模板且修正方法为“自动修正”时需指定IAM权限委托,该委托为云服务委托,用于授予RFS服务部署资源栈执行资源配置修改时所需的权限,授权的云服务为RFS,委托权限为RFS模板中调用其他服务所需的权限,如何创建委托请参见委托其他云服务管理资源。若委托的权限不足或配置错误,会导致修正失败,您可以自行创建资源栈验证委托可用性,具体请参见创建资源栈。 RFS修正模板目前仅默认支持使用北京四(cn-north-4)区域的私有模板。 FGS模板:选择 函数工作流 (FunctionGraph)的函数实例作为修正操作的模板,函数中定义不合规资源的具体修正逻辑。 图4 修正配置信息 配置资源ID参数。 资源ID参数:指定不合规资源ID的变量名,需要与修正模板中定义的获取资源ID的变量名一致。执行修正时Config会将该变量赋值为要修正的不合规资源的具体ID值,并将其传递给修正模板获取资源ID。例如在FGS函数中使用resource_id=event.get("noncompliant_resource_id", {})语句获取不合规资源ID,则此处的资源ID参数也需配置为“noncompliant_resource_id”,执行修正时不合规资源的ID将通过变量“noncompliant_resource_id”传递给FSG函数,每个不合规资源均会传递一次资源ID用于修正模板执行修正。 参数:指定您期望由Config传递给修正模板的静态参数,最多可以添加50个参数。该参数为不合规资源修正的具体规则参数值,例如执行修正为不合规的VPC资源创建流日志时,在FGS函数中使用log_group_id=event.get("log_group_id", {})语句获取日志组ID,则此处参数配置日志组的ID(键:log_group_id;值:具体日志组ID值),执行修正时为不合规的VPC资源创建的流日志均将在此日志组内。 图5 资源ID参数 配置完成后,单击页面右下角的“保存”。 当合规规则的修正方式选择“自动修正”时,您必须重新触发规则评估以更新评估结果,然后才会自动对不合规资源执行修正。
  • 使用限制 单账号跟踪的事件可以通过 云审计 控制台查询。多账号的事件只能在账号自己的事件列表页面去查看,或者到组织追踪器配置的OBS桶中查看,也可以到组织追踪器配置的CTS/system日志流下面去查看。 用户通过云审计控制台只能查询最近7天的操作记录。如果需要查询超过7天的操作记录,您必须配置转储到 对象存储服务 (OBS)或 云日志 服务(LTS),才可在OBS桶或LTS日志组里面查看历史事件信息。否则,您将无法追溯7天以前的操作记录。 云上操作后,1分钟内可以通过云审计控制台查询管理类事件操作记录,5分钟后才可通过云审计控制台查询数据类事件操作记录。
  • 操作步骤 以组织管理员账号或者Config服务的委托管理员账号登录管理控制台。 单击页面左上角的图标,在弹出的服务列表中,选择“管理与监管”下的“配置审计 Config”,进入“资源清单”页面。 单击左侧的“资源合规”,进入“资源合规”页面。 选择“组织规则”页签,单击“添加规则”,进入“基础配置”页面,基础配置完成后,单击“下一步”。 图1 基础配置 表1 基础配置参数说明 参数 说明 策略类型 选择“预设策略”。 预设策略即服务已开发的策略,在下方的预设策略列表中直接选择所需预设策略,快速完成规则创建。支持输入策略名称或标签进行搜索。 预设策略详情见系统内置预设策略。 规则名称 规则名称默认复用所选择预设策略的名称,不能与已存在的合规规则名称重复,如有重复需自行修改。 合规规则名称仅支持数字、字母、下划线和中划线。 规则简介 规则简介默认复用所选择预设策略的简介,也可自行修改。 目前对合规规则简介的内容不做限制。 进入“规则参数”页面,规则参数配置完成后,单击“下一步”。 图2 规则参数 表2 合规规则参数说明 参数 说明 触发类型 用于触发资源合规规则。 触发类型有: 配置变更:在指定的云资源发生更改时触发规则评估。 周期执行:按照您设定的频率运行。 过滤器类型 用于指定资源类型参与规则评估。 过滤器类型分为: 指定资源:指定资源类型下的所有资源均参与规则评估。 所有资源:账号下的所有资源均参与规则评估。 仅当“触发类型”选择“配置变更”时需配置此参数。 指定资源范围 过滤器类型选择“指定资源”后,需选择指定资源范围。 服务:选择资源所属的服务; 资源类型:选择对应服务下的资源类型; 区域:选择资源所在的区域。 仅当“触发类型”选择“配置变更”时需配置此参数。 过滤范围 使用过滤范围可指定资源类型下的某个具体资源参与规则评估。 过滤范围开启后您可通过资源ID或标签指定过滤范围。 仅当“触发类型”选择“配置变更”时需配置此参数。 周期频率 设置合规规则周期执行的频率。 仅当“触发类型”选择“周期执行”时需配置此参数。 规则参数 此处的“规则参数”和第一步所选的“预设策略”相对应,是对第一步所选的预设策略进行具体参数设置。 例如:第一步预设策略选择“资源具有指定的标签”,指定一个标签,不具有此标签的资源,视为“不合规”,则这里的规则参数就需要指定具体的标签键和值作为判断是否合规的依据。 有的“预设策略”需要添加规则参数,有的“预设策略”不需要添加规则参数。例如:已挂载的云硬盘开启加密(volumes-encrypted-check)。 目标 目标决定了此组织合规规则配置的部署位置。 组织:将策略部署到您组织内的所有成员账号中。 当前账号:将策略部署到当前登录的账号中。 创建组织类型的资源合规规则时请选择“组织”。 排除账号 输入需要排除的组织内的部分账号ID,使得该组织合规规则不在排除的账号中部署。 仅当“目标”选择“组织”时可配置此参数。 进入“确认规则”页面,确认规则信息无误后,单击“提交”按钮,完成预定义组织合规规则的创建。 图3 确认规则 合规规则创建后会立即自动触发首次评估。
  • 约束与限制 每个账号最多可以添加500个合规规则。 添加、修改组织合规规则和触发规则评估需要开启资源记录器,资源记录器处于关闭状态时,组织合规规则仅支持查看和删除操作。 非组织成员账号无法在Config控制台的“资源合规”页面中看到“组织规则”页签。 仅被资源记录器收集的资源可参与资源评估,为保证资源合规规则的评估结果符合预期,强烈建议您保持资源记录器的开启状态,不同场景的说明如下: 如您未开启资源记录器,则资源合规规则无法评估任何资源数据。历史的合规规则评估结果依然存在。 如您已开启资源记录器,但仅在资源记录器监控范围内勾选部分资源,则资源合规规则仅会评估所选择的资源数据。 关于如何开启并配置资源记录器请参见:配置资源记录器。
  • 操作场景 在使用资源合规时,如果您是组织管理员或Config服务的委托管理员,您可以添加组织类型的资源合规规则,直接作用于您组织内的成员账号中。 当组织资源合规规则部署成功后,会在组织内成员账号的规则列表中显示此组织合规规则。且该组织合规规则的修改和删除操作只能由创建规则的组织账号进行,组织内的其他账号只能触发规则评估和查看规则评估结果以及详情。 您可以选择Config提供的系统内置预设策略或者自定义策略来创建组织类型的资源合规规则,本章节指导您如何使用系统内置的预设策略来快速添加组织合规规则。
  • 操作场景 如果您是组织管理员或Config服务的委托管理员,您可以添加组织类型的合规规则包,直接作用于您组织内的成员账号中。 当组织合规规则包部署成功后,会在组织内成员账号的合规规则包列表中显示此组织合规规则包。且该组织合规规则包的删除操作只能由创建组织规则包的组织账号进行,组织内的其他账号只能触发合规规则包部署规则的评估和查看规则评估结果以及详情。 组织合规规则包创建完成后,所部署的规则默认会执行一次评估,后续将根据规则的触发机制自动触发评估,也可以在资源合规规则列表中手动触发单个合规规则的评估。
  • 约束与限制 当前仅用户自行创建的预定义或自定义合规规则支持修正配置,通过组织合规规则或合规规则包创建的托管合规规则不支持修正配置。 基于RFS服务私有模板执行修正的场景下,Config当前仅默认支持使用北京四(cn-north-4)区域的私有模板创建资源栈,且对应区域的资源栈应至少预留5个配额,否则执行修正可能会因配额不足导致失败。 一个合规规则上只能创建一个修正配置。 当合规规则存在修正配置,则必须删除修正配置并且停用规则后,才可删除此合规规则。 单个合规规则的修正配置最多支持用户手动添加100个修正例外资源,基于设置的修正重试规则被自动添加至修正例外的资源没有配额限制。 由于资源变更数据同步到Config存在延迟,因此通过合规修正功能将不合规资源修正后,立即重新触发规则评估,不合规资源的的合规评估结果可能依然为不合规。对于已开启资源记录器且在监控范围内的资源,Config会在24小时内校正资源数据,也就是说最多24小时后触发规则评估,才会将已修正资源的合规评估结果更新为合规。 当合规规则执行修正后,不合规资源的修正状态为“修正成功”,则表示此资源已经成功触发RFS服务私有模板或FunctionGraph函数的修正执行,您可以前往该资源对应服务的控制台,查看资源是否已按照预期修正成功。
  • 操作场景 您可以创建账号类型或组织类型的资源聚合器。 账号类型的资源聚合器必须获得源账号的授权才能聚合数据,具体请参见授权资源聚合器账号。 创建组织类型的资源聚合器依赖于组织服务的相关授权项,您需要具有如下权限: organizations:organizations:get organizations:accounts:list organizations:delegatedAdministrators:list organizations:trustedServices:enable organizations:trustedServices:list
  • 操作步骤 登录管理控制台。 单击页面左上角的图标,在弹出的服务列表中,选择“管理与监管”下的“配置审计 Config”,进入“资源清单”页面。 单击页面左侧的“资源聚合器”,在下拉列表中选择“聚合器”,进入“聚合器”页面。 单击页面右上角的“创建聚合器”。 在创建聚合器页面,先勾选“允许数据复制”确认框,然后配置聚合器名称和源账号信息。 如果源类型选择“添加账号”,则输入华为云账号ID,多个账号之间以逗号分隔;如果源类型选择“添加组织”,资源聚合器将直接聚合此组织下所有成员账号的数据,无需输入账号ID。 图1 创建聚合器 账号类型的资源聚合器仅支持聚合华为云账号下的资源,因此源账号ID需输入华为云账号ID(domain_id)。如何获取账号ID请参见获取账号ID。 创建组织类型资源聚合器的账号需开通组织服务,且必须为组织的管理账号或Config服务的委托管理员账号,具体请参见添加、查看和取消委托管理员。如果创建组织类型资源聚合器的账号为组织管理账号,Config服务会调用enableTrustedService接口启用Config与Organizations之间的集成;如果创建组织类型资源聚合器的账号为Config服务的委托管理员账号,Config服务会调用ListDelegatedAdministrators接口用于验证调用者是否为有效的委托管理员。 单击“确定”,完成资源聚合器创建。
  • 基本概念 示例模板: 配置审计 服务提供给用户的合规规则包模板,合规规则包示例模板旨在帮助用户快速创建合规规则包,其中包含适合用户场景的合规规则和输入参数。 预定义合规规则包: 通过“示例模板”创建的合规规则包,用户只需要填入所需的规则参数即可完成合规规则包的部署流程。 自定义合规规则包: 用户根据自身需求编写合规规则包的模板文件,在模板文件中填入适合自身使用场景的预设规则或自定义规则,然后通过“上传模板”或“OBS存储桶”方式完成合规规则包的部署流程。自定义模板文件格式和文件内容格式均为JSON,不支持tf格式和zip格式的文件内容。 合规性数据: 一个合规规则包包含一个或多个合规规则,而每一条合规规则会评估一个或多个资源的合规结果,配置审计服务提供了如下的合规性数据,供您了解合规规则包的评估结果概览: 合规规则包的合规性评估:代表合规规则包中的所有合规规则是否评估到不合规的资源。若存在不合规资源,则合规评估结果为“不合规”;若不存在不合规资源,则合规评估结果为“合规”。 合规规则的合规性评估:代表合规规则包中的单个合规规则是否评估到不合规的资源。若存在不合规资源,则合规评估结果为“不合规”;若不存在不合规资源,则合规评估结果为“合规”。 合规规则包的合规分数:代表合规规则包中所有规则的合规资源数之和与所有规则的评估资源数之和的百分比。若该值为100,则代表合规规则包中所有的合规评估结果均为合规;若该值为0,则代表合规规则包中所有的合规评估结果均为不合规;若该值为“--”,则代表合规规则包未评估到任何资源。 图1 合规分数计算公式 资源栈: 合规规则包下发的合规规则的创建、更新和删除行为最终是通过RFS服务的资源栈来实现的。资源栈是资源编排服务的概念,详见资源栈。 状态: 合规规则包的部署状态。包括以下几种情况: 已部署:合规规则包已部署成功,合规规则均创建成功。 部署中:合规规则包正在部署中,合规规则正在创建中。 部署异常:合规规则包部署失败。 回滚成功:合规规则包下发的合规规则创建失败,触发合规规则的回滚行为,已创建的合规规则删除成功。 回滚中:合规规则包下发的合规规则创建失败,触发合规规则的回滚行为,已创建的合规规则正在删除中。 回滚失败:合规规则包下发的合规规则创建失败,触发合规规则的回滚行为,回滚行为失败,需在RFS服务查看失败原因。 删除中:合规规则包正在删除中,合规规则正在删除中。 删除异常:合规规则包删除失败。 更新成功:合规规则包修改并更新成功。 更新中:合规规则包修改更新中。 更新失败:合规规则包修改更新失败。 合规规则包的授权: 通过资源编排服务(RFS)的资源栈创建和删除合规规则时,需要拥有合规规则的创建和删除的权限。因此,部署合规规则包时,需要提供一个具有相应权限的委托,供配置审计服务的合规规则包下发时使用。 当您不选择进行自定义授权时,Config将通过服务关联委托的方式自动获取RFS的相关权限。如您需要自行控制委托权限的范围,可选择进行自定义授权,提前在 统一身份认证 服务(IAM)中创建委托,并进行自定义授权,但必须包含可以让合规规则包正常工作的权限(授权资源编排服务创建、更新和删除合规规则的权限),创建委托详见创建委托(委托方操作)。
  • 操作场景 当Config提供的系统内置预设策略不能满足检测资源合规性的需求时,您可以通过编写函数代码,添加组织类型的自定义策略来完成复杂场景的资源审计。 自定义策略是一个用户开发并发布在函数工作流(FunctionGraph)上的函数。将合规规则和函数相关联,函数接收Config发布的事件,从事件中接收到规则参数和Config服务收集到的资源属性;函数评估该规则下资源的合规性并通过Config的Open API回传Config服务合规评估结果。合规规则的事件发送因触发类型为配置变更或周期执行而异。添加组织类型的自定义合规规则还需通过 RAM 服务将FunctionGraph函数共享给组织成员账号。 本章节指导您如何通过自定义策略来添加组织类型的合规规则,主要包含如下步骤: 创建FunctionGraph函数; 共享FunctionGraph函数; 添加自定义组织合规规则; 触发规则评估。
  • 约束与限制 每个账号最多可以添加500个合规规则。 添加、修改组织合规规则和触发规则评估需要开启资源记录器,资源记录器处于关闭状态时,组织合规规则仅支持查看和删除操作。 非组织成员账号无法在Config控制台的“资源合规”页面中看到“组织规则”页签。 仅被资源记录器收集的资源可参与资源评估,为保证资源合规规则的评估结果符合预期,强烈建议您保持资源记录器的开启状态,不同场景的说明如下: 如您未开启资源记录器,则资源合规规则无法评估任何资源数据。历史的合规规则评估结果依然存在。 如您已开启资源记录器,但仅在资源记录器监控范围内勾选部分资源,则资源合规规则仅会评估所选择的资源数据。 关于如何开启并配置资源记录器请参见:配置资源记录器。