华为云用户手册

  • 规则详情 表1 规则详情 参数 说明 规则名称 codeartsdeploy-host-cluster-resource-status 规则展示名 CodeArts项目下的主机集群为可用状态 规则描述 CodeArts项目下的主机集群,如果状态不可用,则该主机集群视为“不合规”。 标签 codeartsdeploy 规则触发方式 配置变更 规则评估的资源类型 codeartsdeploy.host-cluster 规则参数 无
  • 规则详情 表1 规则详情 参数 说明 规则名称 required-tag-check 规则展示名 资源具有指定的标签 规则描述 指定一个标签,不具有此标签的资源,视为“不合规”。 标签 tag 规则触发方式 配置变更 规则评估的资源类型 支持标签的云服务和资源类型 规则参数 specifiedTagKey:指定的标签键,字符串类型。 specifiedTagValue:指定的标签值列表,如果列表为空,表示允许所有值,数组类型,最多包含10个元素。
  • 由配置变更触发的评估的示例事件 当触发自定义合规规则时,Config服务会发送一个事件来调用该自定义合规规则的函数。 下面的事件演示自定义合规规则被某个ecs.cloudservers的配置变更所触发。 { "domain_id": "domain_id", "policy_assignment_id": "637c6b2e6b647c4d313d9719", "policy_assignment_name": "period-policy-period", "function_urn": "urn:fss:region_1:123456789:function:default:test-custom-policyassignment:latest", "trigger_type": "resource", "evaluation_time": 1669098286719, "evaluation_hash": "3bf8ecaeb0864feb98639080aea5c7d9", "rule_parameter": { "vpcId": { "value": "fake_id" } }, "invoking_event": { "id": "5e0d49c8-7ce0-4c31-9d92-28b05200b838", "name": "default", "provider": "vpc", "type": "securityGroups", "tags": {}, "created": "2022-11-07T12:58:46.000+00:00", "updated": "2022-11-07T12:58:46.000+00:00", "properties": { "description": "Default security group", "security_group_rules": [ { "remote_group_id": "5e0d49c8-7ce0-4c31-9d92-28b05200b838", "ethertype": "IPv6", "security_group_id": "5e0d49c8-7ce0-4c31-9d92-28b05200b838", "port_range_max": 0, "id": "19f581bc-08a7-4037-ae59-9a6838c43709", "direction": "ingress", "port_range_min": 0 }, { "ethertype": "IPv6", "security_group_id": "5e0d49c8-7ce0-4c31-9d92-28b05200b838", "port_range_max": 0, "id": "75dae7b6-0b71-496f-8f11-87fb30300e18", "direction": "egress", "port_range_min": 0 } ] }, "ep_id": "0", "project_id": "vpc", "region_id": "region_1", "provisioning_state": "Succeeded" } }
  • 由周期执行触发的评估的示例事件 Config以您指定的频率(如每24小时)评估您的账号时,它会发布一个事件。 下面的示例事件演示自定义合规规则被周期执行所触发。 { "domain_id": "domain_id", "policy_assignment_id": "637c6b2e6b647c4d313d9719", "policy_assignment_name": "period-policy-assignment", "function_urn": "urn:fss:region_1:123456789:function:default:test-custom-policyassignment:latest", "trigger_type": "period", "evaluation_time": 1669098286719, "evaluation_hash": "3bf8ecaeb0864feb98639080aea5c7d9", "rule_parameter": {}, "invoking_event": { "id": "domain_id", "name": "Account", "provider": null, "type": null, "tags": null, "created": null, "updated": null, "properties": null, "ep_id": null, "project_id": null, "region_id": "global", "provisioning_state": null } }
  • 评估由配置变更触发的示例函数 Config服务检测到自定义合规规则范围内的资源发生更改时,会调用函数的示例如下: import time import http.client from huaweicloudsdkcore.auth.credentials import GlobalCredentials from huaweicloudsdkcore.exceptions.exceptions import ConnectionException from huaweicloudsdkcore.exceptions.exceptions import RequestTimeoutException from huaweicloudsdkcore.exceptions.exceptions import ServiceResponseException from huaweicloudsdkconfig.v1.region.config_region import ConfigRegion from huaweicloudsdkconfig.v1.config_client import ConfigClient from huaweicloudsdkconfig.v1 import PolicyResource, PolicyStateRequestBody from huaweicloudsdkconfig.v1 import UpdatePolicyStateRequest ''' 合规规则评估逻辑: 返回“Compliant” 或 “NonCompliant” 本示例中, 当资源类型为ecs.cloudservers, 且该ecs的vpcId字段不是合规规则参数所指定的vpcId时, 会返回不合规, 否则返回合规。 ''' def evaluate_compliance(resource, parameter): if resource.get("provider") != "ecs" or resource.get("type") != "cloudservers": return "Compliant" vpc_id = resource.get("properties", {}).get("metadata", {}).get("vpcId") return "Compliant" if vpc_id == parameter.get("vpcId").get("value") else "NonCompliant" def update_policy_state(context, domain_id, evaluation): auth = GlobalCredentials( ak=context.getSecurityAccessKey(), sk=context.getSecuritySecretKey(), domain_id=domain_id ).with_security_token(context.getSecurityToken()) client = ConfigClient.new_builder() \ .with_credentials(credentials=auth) \ .with_region(region=ConfigRegion.value_of(region_id="cn-north-4")) \ .build() try: response = client.update_policy_state(evaluation) return 200 except ConnectionException as e: print("A connect timeout exception occurs while the Config performs some operations, exception: ", e.error_msg) return e.status_code except RequestTimeoutException as e: print("A request timeout exception occurs while the Config 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): domain_id = event.get("domain_id") resource = event.get("invoking_event", {}) parameters = event.get("rule_parameter") compliance_state = evaluate_compliance(resource, parameters) request_body = UpdatePolicyStateRequest(PolicyStateRequestBody( policy_resource = PolicyResource( resource_id = resource.get("id"), resource_name = resource.get("name"), resource_provider = resource.get("provider"), resource_type = resource.get("type"), region_id = resource.get("region_id"), domain_id = domain_id ), trigger_type = event.get("trigger_type"), compliance_state = compliance_state, policy_assignment_id = event.get("policy_assignment_id"), policy_assignment_name = event.get("policy_assignment_name"), evaluation_time = event.get("evaluation_time"), evaluation_hash = event.get("evaluation_hash") )) for retry in range(5): status_code = update_policy_state(context, domain_id, request_body) if status_code == http.client.TOO_MANY_REQUESTS: print("TOO_MANY_REQUESTS: retry again") time.sleep(1) elif status_code == http.client.OK: print("Update policyState successfully.") break else: print("Failed to update policyState.") break
  • 操作场景 当Config提供的系统内置预设策略不能满足检测资源合规性的需求时,您可以通过编写FunctionGraph函数代码,添加自定义策略来完成复杂场景的资源审计。 自定义策略是一个用户开发并发布在 函数工作流 (FunctionGraph)上的函数。将合规规则和函数相关联,函数接收Config发布的事件,从事件中接收到规则参数和Config服务收集到的资源属性;函数评估该规则下资源的合规性并通过Config的OpenAPI回传Config服务合规评估结果。合规规则的事件发送因触发类型为配置变更或周期执行而异。 本章节指导您如何通过自定义策略来添加资源合规规则,主要包含如下步骤: 创建FunctionGraph函数; 添加自定义合规规则。
  • 约束与限制 每个账号最多可以添加500个合规规则。 添加、修改、启用合规规则和触发规则评估需要开启资源记录器,资源记录器处于关闭状态时,合规规则仅支持查看、停用和删除操作。 仅被资源记录器收集的资源可参与资源评估,为保证资源合规规则的评估结果符合预期,强烈建议您保持资源记录器的开启状态,不同场景的说明如下: 如您未开启资源记录器,则资源合规规则无法评估任何资源数据。历史的合规规则评估结果依然存在。 如您已开启资源记录器,但仅在资源记录器监控范围内勾选部分资源,则资源合规规则仅会评估所选择的资源数据。 关于如何开启并配置资源记录器请参见:配置资源记录器。
  • 规则评估结果 当触发规则评估后,会生成相应的评估结果(PolicyState)。 使用JSON表达式来表示一个评估结果,如表1所示。 表1 规则评估结果-JSON表达式格式 参数 定义 说明 domain_id 账号ID 用于区分用户。规则评估结果的domain_id不会为空。 resource_id 评估结果所属资源的ID - resource_name 评估结果所属资源的名称 - resource_provider 资源所属的服务 - resource_type 资源类型 - trigger_type 触发类型 包含如下值: resource period compliance_state 合规结果 包含如下值: Compliant:合规 NonCompliant:不合规 policy_assignment_id 评估结果对应合规规则的ID - policy_definition_id 评估结果对应合规策略的ID - evaluation_time 评估时间戳 - 如下JSON表示了一个不合规的评估结果: { "domain_id": "domainidforpolicy", "resource_id": "special-ecs1-with-public-ip-with-tag", "resource_name": "ecs1-with-public-ip-with-tag", "resource_provider": "ecs", "resource_type": "cloudservers", "trigger_type": "resource", "compliance_state": "NonCompliant", "policy_assignment_id": "5fa9f8a2501013093a192b07", "policy_definition_id": "5fa9f8a2501013093a192b06", "evaluation_time": 1604974757084 } 父主题: 合规规则概念详解
  • 合规规则 通过指定合规策略和合规策略所应用的范围(如:在某一区域的某些资源)来构成合规规则。 使用JSON表达式来表示一个合规规则定义,如表1所示。 表1 合规规则的定义-JSON表达式格式 参数 定义 限制 说明 id 合规规则唯一标识符 - - policy_assignment_type 合规规则类型 - 包含以下两种: builtin:预设策略,此时合规规则需要设置参数policy_definition_id。 custom:自定义策略,此时合规规则需要设置参数custom_policy。 如不设置此参数,则默认为预设策略。 name 合规规则的名称 字符串类型,最多64个字符。 规则名称默认复用所选择合规策略的名称,也可自行修改。 name最大长度为64个字符。 description 合规规则的描述 字符串类型,最多512个字符。 指的是规则简介,默认复用所选择合规策略的简介,需自行修改。 description最大长度为512个字符。 period 周期频率 - 包含以下几种: One_Hour: 1小时。 Three_Hours: 3小时。 Six_Hours: 6小时。 Twelve_Hours: 12小时。 TwentyFour_Hours: 24小时。 policy_filter 合规规则过滤器,用于过滤范围内的哪些资源参与此规则的评估。 过滤器的属性主要有以下几个: region_id: 区域ID。 resource_provider: 指定资源服务。 resource_type:指定资源服务下的资源类型。 resource_id:资源ID。 tag_key:资源标签的键。 tag_value:资源标签的值。 policy_filter:Object类型。 region_id:字符串类型,最多128个字符,只能包括字母、数字、中划线(-)。 resource_provider:字符串类型,最多128个字符,只能包括字母、数字。 resource_type:字符串类型,最多128个字符,只能包括字母、数字。 resource_id:字符串类型,最多256个字符。 tag_key:字符串类型,最多128个字符。 tag_value:字符串类型,最多256个字符。 说明: 资源类型(resource_provider)是判断过滤器类型(指定资源/所有资源)的依据,如果policy_filter中资源类型存在,则过滤器类型为“指定资源”;如果policy_filter中资源类型不存在,则过滤器类型为“所有资源”。 因此policy_filter中没有设置单独的过滤器类型属性。 state 合规规则的运行状态 - 包含以下几种: Enabled:运行中,表示此合规规则可用。 Disabled:已停用,表示此合规规则已停用。 Evaluating:评估中,表示正在使用此合规规则进行资源评估。 created 合规规则的创建时间 - 说明: 时间具有固定格式:遵循ISO8601格式,UTC时区(例如:2018-11-14T08:59:14Z)。 updated 合规规则的更新时间 - policy_definition_id 合规策略ID 字符串类型,最多64个字符,只能包括字母、数字、中划线(-)。 policy_definition_id指定此规则绑定的合规策略ID。 custom_policy 自定义策略,包含如下属性: function_urn:函数urn。 auth_type:调用函数的鉴权方式。 auth_value:调用函数的鉴权值。 custom_policy:Object类型 。 function_urn:字符串类型,最多1024个字符。 auth_type:字符串类型,当前只支持 "agency" 。 auth_value:object类型,与auth_type相关,当前只支持如下结构 {"agency_name": value_name},其中value_name为授权给Config服务调用函数的委托的名字。 custom_policy指定此规则绑定的自定义策略的函数URN和调用时的鉴权方式。 parameters 合规策略的规则参数的值 parameters:Object类型 key:字符串类型,只能包括字母、数字,当合规规则为自定义合规规则时,最多1024个字符。 value:Object类型,根据参数具体的类型,有具体的限制。 合规规则绑定的合规策略,会有相应的规则参数,规则参数的个数、类型以及范围取决于所选择的合规策略。 tags 合规规则的标签列表 - 标签键:最大长度为128个unicode字符。 标签值:最大长度为255个unicode字符。 created_by 合规规则的创建者 - 用户创建(custom)或服务关联委托方式创建。 为避免循环评估的行为,合规规则不支持评估配置审计服务的合规规则和合规规则包两种资源类型。 如下JSON表示了一个用于检查在区域1的弹性云服务器是否具有tag(env:production)标签的预设策略: { "id": "5fcd8696dfb78231e6f2f899", "name": "required-tag-check", "description": "指定一个标签,不具有此标签的资源,视为“不合规”", "policy_filter": { "region_id": "regionid_1", "resource_provider": "ecs", "resource_type": "cloudservers", "tag_key": "env", "tag_value": "production" }, "period": null, "state": "Enabled", "created": "2020-12-07T01:34:14.266Z", "updated": "2020-12-07T01:34:14.266Z", "policy_definition_id": "5fa9f89b6eed194ccb2c04db", "parameters": { "specifiedTagKey": { "value": "a" }, "specifiedTagValue": { "value": [] } } "tags": [], "created_by": "custom" } 如下JSON表示了一个用于检查在区域1的弹性云服务器的自定义合规规则: { "id": "719d8696dfb78231e6f2f719", "name": "test_consume_policy", "description": "指定一个标签,不具有此标签的资源,视为“不合规”", "policy_filter": { "region_id": "regionid_1", "resource_provider": "ecs", "resource_type": "cloudservers", "tag_key": null, "tag_value": null }, "period": null, "state": "Enabled", "created": "2022-07-19T01:34:14.266Z", "updated": "2022-07-19T01:34:14.266Z", "policy_definition_id": null, "custom_policy": { "function_urn": "urn:fss:regionid_1:projectidforpolicy:function:default:test_consume_policy:latest", "auth_type": "agency", "auth_value": {"agency_name": "rms_fg_agency"} }, "parameters": { "vpcId": {"value": "allowed-vpc-id"} } } "tags": [], "created_by": "custom" } 父主题: 合规规则概念详解
  • 合规策略 合规策略是一个可以用于评估资源是否合规的逻辑表达式。将合规策略应用到资源上时,可以评估出这个资源是否满足合规策略中的要求。 合规策略本身只是一个静态的逻辑,如果想要让其生效,必须将合规策略指定到一个具体的范围(例如通过设置过滤器来指定具体的资源范围)上,即生成一个具体的合规规则。 使用JSON表达式来表示一个合规策略定义,如表1所示。 表1 合规策略的定义-JSON表达式格式 参数 定义 说明 id 合规策略的唯一标识符 - name 合规策略的名称 name最大长度为64个字符。 display_name 合规策略的展示名 display_name最大长度为64个字符。 description 合规策略的描述 description最大长度为512个字符。 parameters 合规策略的规则参数,即每个合规策略下包含的参数。 具有如下属性: name description type default_value allowed_values minimum maximum min_items max_items min_length max_length pattern 合规策略中包含的参数名称保持不变,您可以根据需要设置不同的值。 name:规则参数的名称。 description:规则参数的描述。 type:规则参数值的类型,包括String,Array,Boolean,Integer,Float。 default_value:规则参数的默认值。如果指定了默认值,用户可以不输入规则参数值,创建合规规则时将使用此默认值。 allowed_values:规则参数值允许的值列表。如果指定了allowed_values,那么参数的值只能够从这些值中选择。 minimum:策略参数的最小值,当参数类型为Integer或Float时生效。 maximum: 策略参数的最大值,当参数类型为Integer或Float时生效。 min_items:策略参数的最小项数,当参数类型为Array时生效。 max_items: 策略参数的最大项数,当参数类型为Array时生效。 min_length:策略参数的最小字符串长度或每项的最小字符串长度,当参数类型为String或Array时生效。 max_length: 策略参数的最大字符串长度或每项的最大字符串长度,当参数类型为String或Array时生效。 pattern:策略参数的字符串正则要求或每项的字符串正则要求,当参数类型为String或Array时生效。 keywords 合规策略关键词 一般为与合规策略相关的产品简称。 policy_type 合规策略的类型。 主要有以下类型: builtin custom builtin:系统内置策略,这些合规策略定义由Config服务提供和维护。详见系统内置预设策略。 custom: 用户自定义策略,用户创建的所有合规策略定义都具有此值。 policy_rule_type 合规策略的语法类型 DSL:一种Config服务提供的合规策略描述语言,用户可以根据此语法,将合规判断逻辑描述为一个具体的合规策略。 trigger_type 触发类型。 有以下类型: resource period resource:在指定的资源发生更改时运行。 period:按照您设定的频率运行。 default_resource_types 合规策略评估的资源类型 大部分合规策略只评估部分的资源类型。创建合规规则时,建议只评估“default_resource_types”中的资源类型。 如下JSON表示了一个用于检查E CS 实例的镜像ID是否在指定范围内的合规策略: { "id": "5fa265c0aa1e6afc05a0ff07", "name": "allowed-images-by-id", "description": "指定允许的镜像ID列表,ECS实例的镜像ID不在指定的范围内,视为“不合规”", "parameters": { "listOfAllowedImages": { "name": "null", "description": "The list of allowed image IDs", "type": "Array" "allowed_values": null, "default_value": null, } }, "keywords": [ "ecs", "ims" ], "policy_type": "builtin", "policy_rule_type": "dsl", "trigger_type": "resource", "policy_rule": { "allOf": [ { "value": "${resource().provider}", "comparator": "equals", "pattern": "ecs" }, { "value": "${resource().type}", "comparator": "equals", "pattern": "cloudservers" }, { "value": "${resource().properties.metadata.meteringImageId}", "comparator": "notIn", "pattern": "${parameters('listOfAllowedImages')}" } ] }, } 更多样例详见自定义合规规则样例。 父主题: 合规规则概念详解
  • 操作场景 资源合规规则添加完成后,您可以随时对其进行修改、停用、启用、删除操作。 您可以在规则列表的操作列或规则详情页中进行这些操作,本章节以规则列表的操作为例进行说明,包含如下内容: 停用合规规则 启用合规规则 修改合规规则 删除合规规则 添加、修改、启用合规规则和触发规则评估需要开启资源记录器,资源记录器处于关闭状态时,合规规则仅支持查看、停用和删除操作。 托管合规规则不支持进行修改、停用、启用、删除操作,托管合规规则是由组织合规规则或合规规则包创建的,由组织合规规则创建的托管规则只能由创建规则的组织账号进行修改和删除操作,由合规规则包创建的托管规则可以通过更新合规规则包进行参数修改,且只能通过删除相应合规规则包来进行删除。具体请参见组织合规规则和合规规则包。
  • 操作场景 触发规则评估的方式包括自动触发和手动触发。 自动触发 新创建一个合规规则时,会触发此规则的评估任务。 合规规则更新时,会触发此规则的评估任务。 合规规则被重新启用时,会触发此规则的评估任务。 当触发类型为“配置变更”时,合规规则范围内的资源发生变更,则会将该规则应用到此资源上,进行评估。 当触发类型为“周期执行”时,系统将按照您设定的频率,触发此规则的评估任务。 手动触发 如果您想立即使用已有合规规则进行规则评估,可随时手动触发规则评估,具体请参见以下操作步骤。
  • 约束与限制 每个账号最多可以添加500个合规规则。 添加、修改、启用合规规则和触发规则评估需要开启资源记录器,资源记录器处于关闭状态时,合规规则仅支持查看、停用和删除操作。 仅被资源记录器收集的资源可参与资源评估,为保证资源合规规则的评估结果符合预期,强烈建议您保持资源记录器的开启状态,不同场景的说明如下: 如您未开启资源记录器,则资源合规规则无法评估任何资源数据。历史的合规规则评估结果依然存在。 如您已开启资源记录器,但仅在资源记录器监控范围内勾选部分资源,则资源合规规则仅会评估所选择的资源数据。 关于如何开启并配置资源记录器请参见:配置资源记录器。
  • 操作步骤 登录管理控制台。 单击页面左上角的图标,在弹出的服务列表中,选择“管理与监管”下的“配置审计 Config”,进入“资源清单”页面。 单击左侧的“资源合规”,进入“资源合规”页面。 在“规则”页签下的合规规则列表中,单击合规规则操作列的“立即评估”。 或者您也可以在规则详情页的右上角单击“立即评估”按钮执行此操作。 在弹出的确认框中,单击“确定”,立即触发此合规规则的规则评估。 图1 手动触发规则评估
  • 操作步骤 登录管理控制台。 单击页面左上角的图标,在弹出的服务列表中,选择“管理与监管”下的“配置审计 Config”,进入“资源清单”页面。 单击左侧的“资源合规”,进入“资源合规”页面。 在“规则”页签下单击“添加规则”,进入“基础配置”页面。 基础配置完成后,单击页面右下角的“下一步”。 图1 基础配置 表1 基础配置参数说明 参数 说明 策略类型 选择“预设策略”。 预设策略即服务已开发的策略,在下方的预设策略列表中直接选择所需预设策略,快速完成规则创建。支持输入策略名称或标签进行搜索。 预设策略详见系统内置预设策略。 规则名称 规则名称默认复用所选择预设策略的名称,不能与已存在的合规规则名称重复,如有重复需自行修改。 合规规则名称仅支持数字、字母、下划线和中划线,最大长度64个字符。 规则简介 规则简介默认复用所选择预设策略的简介,也可自行修改。 目前对规则简介内容的字符类型不做限制,最大长度512个字符。 进入“规则参数”页面,规则参数配置完成后,单击“下一步”。 图2 规则参数 表2 合规规则参数说明 参数 说明 触发类型 用于触发资源合规规则。 触发类型有: 配置变更:在指定的云资源发生更改时触发规则评估。 周期执行:按照您设定的频率运行。 说明: 预设策略的触发类型不支持修改,不同预设策略支持的触发类型不同。 过滤器类型 用于指定资源类型参与规则评估。 过滤器类型分为: 指定资源:指定资源类型下的所有资源均参与规则评估。 所有资源:账号下的所有资源均参与规则评估。 仅当“触发类型”为“配置变更”时需配置此参数。 指定资源范围 过滤器类型选择“指定资源”后,需选择指定资源范围。 服务:选择资源所属的服务; 资源类型:选择对应服务下的资源类型; 区域:选择资源所在的区域。 说明: 仅当“触发类型”为“配置变更”时支持指定服务和资源类型。 当预设策略的“触发类型”为“周期执行”,且规则评估的资源类型非“account”时,支持指定资源所在的“区域”进行过滤。具体请以控制台显示为准或参见预设策略列表。 过滤范围(可选) 使用过滤范围可指定资源类型下的某个具体资源参与规则评估。 过滤范围开启后您可通过资源ID或标签指定过滤范围。 当“触发类型”为“配置变更”时,您可以根据需要选择配置此参数。 周期频率 设置合规规则周期执行的频率。 可选项:1小时、3小时、6小时、12小时、24小时。 仅当“触发类型”为“周期执行”时需配置此参数。 规则参数 此处的“规则参数”和第一步所选的“预设策略”相对应,是对第一步所选的预设策略进行具体参数设置。 例如:第一步预设策略选择“资源具有指定的标签”,指定一个标签,不具有此标签的资源,视为“不合规”,则这里的规则参数就需要指定具体的标签键和值作为判断是否合规的依据。 有的“预设策略”需要添加规则参数,有的“预设策略”不需要添加规则参数。例如:已挂载的云硬盘开启加密(volumes-encrypted-check)。 标签 单击“添加新标签”,输入标签键和标签值,为合规规则添加标签。每个合规规则最多可以添加20个标签。 标签键不能为空,可以包含任意语种的字母、数字和空格,以及_.:=+-@字符,但首尾不能包含空格,且不能以_sys_开头。长度不超过128个字符。 标签值可以为空,可以包含任意语种的字母、数字和空格,以及_.:=+-@字符,但首尾不能包含空格。长度不超过255个字符。 进入“确认规则”页面,确认规则信息无误后,单击“提交”按钮,完成合规规则添加。 图3 添加合规规则-确认规则 合规规则创建后会立即自动触发首次评估。
  • 约束与限制 每个账号最多可以添加500个合规规则。 添加、修改、启用合规规则和触发规则评估需要开启资源记录器,资源记录器处于关闭状态时,合规规则仅支持查看、停用和删除操作。 仅被资源记录器收集的资源可参与资源评估,为保证资源合规规则的评估结果符合预期,强烈建议您保持资源记录器的开启状态,不同场景的说明如下: 如您未开启资源记录器,则资源合规规则无法评估任何资源数据。历史的合规规则评估结果依然存在。 如您已开启资源记录器,但仅在资源记录器监控范围内勾选部分资源,则资源合规规则仅会评估所选择的资源数据。 关于如何开启并配置资源记录器请参见:配置资源记录器。
  • 资源记录器事件监控 事件监控提供事件类型数据上报、查询和告警的功能。方便您将资源的合规性事件收集到 云监控服务 ,并在事件发生时进行告警。 事件监控默认开通,您可以在事件监控中查看系统事件的监控详情,事件监控的相关操作请参见:查看事件监控数据和创建事件监控的告警通知。 当前Config对接 云监控 服务的事件监控能力仅支持华北-北京四区域。 资源记录器目前支持的系统事件如下表所示: 表1 资源记录器事件监控支持的配置审计(Config)事件 事件来源 事件名称 事件级别 事件说明 处理建议 事件影响 SYS. RMS Config快照导出失败 重要 Config资源快照导出到OBS失败 建议排查OBS桶权限 无法记录资源历史变化 SYS.RMS Config快照导出成功 提示 Config资源快照导出到OBS成功 无 无 SYS.RMS Config历史记录导出失败 重要 Config资源历史记录导出到OBS失败 建议排查OBS桶权限 无法记录资源历史变化 SYS.RMS Config历史记录导出成功 提示 Config资源历史记录导出到OBS成功 无 无 SYS.RMS Config资源变化通知失败 重要 Config资源变化通知 SMN 失败 建议排查SMN主题权限 无法通过SMN通知到客户资源历史变化 SYS.RMS Config资源变化通知成功 提示 Config资源变化通知SMN成功 无 无 SYS.RMS Config资源关系变化通知失败 重要 Config资源关系变化通知SMN失败 建议排查SMN主题权限 无法通过SMN通知到客户资源历史变化 SYS.RMS Config资源关系变化通知成功 提示 Config资源关系变化通知SMN成功 无 无 资源合规支持的配置审计(Config)事件请参见:资源合规事件监控。 父主题: 资源记录器
  • 资源快照存储 您在开启资源记录器,并成功配置OBS桶后,资源记录器会定期(24小时)将资源快照文件存储到您配置的OBS桶中。 无论是将资源快照文件存储至您账号的桶还是另一账号的桶,该文件在OBS桶内存放的路径均为:${bucket_name}/${bucket_prefix}/RMSLogs/${account_id}/Snapshot/${year}/${month}/*。此路径中的每个字段在控制台上均表示一个文件夹层级的名称,在OBS控制台进入相关桶的“对象”页面,然后按照上述路径所示查找资源快照存储文件,其中*表示文件名称。 资源快照存储文件的名称由账号ID、存储文件类型、OBS桶所在区域的ID、存储时间、随机生成的字符串、拆分文件的序号组成。每个文件最多存储2000个资源的信息,超出后将拆分为多个文件,此时文件名称中才会出现拆分文件的序号(例如part-1),“.json.gz”表示该文件的存储类型为JSON格式的压缩包。 文件名称示例如下:0926901ef980f2150fbdc001fdd23e80_Snapshot_me-east-1_ResourceSnapshot_2024-07-22T221441Z_90decead-b69b-4522-a090-657d8c299d40_part-1.json.gz。 关于OBS的详细使用说明请参见列举对象。 当前用户的资源有保有中(Normal)和已删除(Deleted)两种状态,资源记录器仅会转储资源状态为保有中(Normal)的资源快照文件,不会转储状态为已删除(Deleted)的资源快照文件。 如果您想了解关于资源快照存储的后台代码示例,请参见资源存储模型。 父主题: 资源记录器
  • 操作场景 当前Config服务的相关功能均依赖于资源记录器收集的资源数据,不开启资源记录器将会影响其他功能的正常使用。 如果您是组织管理员,您可以基于Terraform模板和 RFS 资源栈集批量为组织成员账号开启并配置资源记录器,而无需登录每个账号进行操作。在组织成员账号较多且均需使用Config服务的场景下,使用此功能将有助于您提升配置效率,减少复杂繁琐的操作。 本章节提供基于组织批量开启并配置资源记录器的操作流程和配置示例,帮助您快速了解和使用该功能。
  • 操作流程 操作流程 说明 步骤一:启用RFS可信服务 在Organizations可信服务列表中启用“ 资源编排 资源栈集服务(RF)”为可信服务。 步骤二:配置OBS桶策略 为OBS桶设置桶策略,授权组织内成员账号的资源记录器可将转储文件存放至此OBS桶。 步骤三:配置SMN主题策略 为SMN主题设置主题访问策略,授权组织内成员账号的资源记录器可通过此主题发送消息。 步骤四:创建RFS资源栈集 使用Terraform模板创建RFS资源栈集,向组织成员账号部署资源栈实例,用于启用和配置资源记录器。
  • 步骤二:配置OBS桶策略 当您配置的资源转储OBS桶的桶策略为“公共读写”时,表示任何用户都可以对该OBS桶内对象进行读/写/删除操作,则无需执行此步骤。 开启资源记录器时需配置资源转储OBS桶,用于存储资源变更消息及资源快照。如无OBS桶,则需先创建桶。 在当前场景下,您需要为OBS桶设置桶策略,授权组织内成员账号的资源记录器可将转储文件存放至此OBS桶的指定路径内,具体请参见如下步骤: 用授权账号登录管理控制台,进入OBS管理控制台。 授权账号指OBS桶所属的账号。 参考自定义创建桶策略(JSON视图)对待授权账号授予相关OBS桶的权限。 桶策略的示例如下,配置该桶策略,将允许被授权组织成员账号的资源记录器将转储文件存放至本OBS桶的指定路径内,以下参数需要您根据实际使用场景手动替换: ${account_id}:需要被授权的组织成员账号的账号ID(domain_id),多个账号ID之间以英文逗号分隔; ${agency_name}:被授权的自定义委托的名称。如何创建委托详见委托其他云服务管理资源,授权对象为云服务Config; ${bucket_name}:用于存储文件的OBS桶的桶名; ${folder_name}:用于存储文件的OBS桶内文件夹的名称。如果您未设置OBS桶内文件夹,则需删除“/${folder_name}”。 { "Statement": [ { "Sid": "org-bucket-policy", "Effect": "Allow", "Principal": { "ID": [ "domain/${account_id}:agency/${agency_name}" ] }, "Action": [ "PutObject" ], "Resource": [ "${bucket_name}/${folder_name}/RMSLogs/*/Snapshot/*", "${bucket_name}/${folder_name}/RMSLogs/*/Notification/*" ] } ] } 如果需要将资源变更消息和资源快照存储到“使用KMS方式加密的OBS桶”中时,还需参见资源变更消息和资源快照转储至OBS加密桶设置密钥的跨账号权限,其中待授权账号需输入组织成员账号的账号ID(domain_id)。
  • 步骤四:创建RFS资源栈集 以组织管理员账号登录管理控制台。 单击页面左上角的图标,在弹出的服务列表中,选择“管理与监管”下的“资源编排服务 RFS”。 单击左侧导航栏的“资源栈集”,进入“资源栈集”页面。 单击页面右上角的“创建资源栈集”。 图2 创建资源栈集 进入“选择模板”页面,根据如下示例完成配置后,单击“下一步”。 权限模型:选择“服务管理权限”。 开启并行操作:选择“关闭”或“开启”均可。 推荐选择“开启”,将提高资源栈的运行速度。 选择模板:根据需要选择任意模板来源。模板的内容请参见“Terraform模板内容”。 图3 选择模板 进入“参数配置”页面,根据如下示例完成配置后,单击“下一步”。 图4 参数配置 资源栈集名称:使用系统自动生成的名称或自定义,不可与已有资源栈集名称重复。 配置参数 AllSupported:(必选,Bool类型)指定是否记录Config所有支持的资源类型,可选值为“true”和“false”。 ResourceTypes:(可选,列表类型)指定资源类型列表。当AllSupported设置为“false”时,此处需输入具体的资源类型,例如["vpc.vpcs", "rds.instances"]。 BucketName:(必选,字符串类型)指定用于资源转储的OBS桶的名称。 BucketRegion:(必选,字符串类型)指定该OBS桶所在的区域。 AccountRegion:(必选,字符串类型)指定账号所在的站点,输入cn-north-4表示组织内账号均属于中国站,输入ap-southeast-1表示组织内账号均属于国际站。 TopicUrn:(必选,字符串类型)指定用于发送 消息通知 的SMN主题URN。 TopicRegion:(必选,字符串类型)指定该SMN主题所在的区域。 ConfigAgencyName:(必选,字符串类型)指定自定义 IAM 委托的名称。此委托必须包含可以让资源记录器正常工作的权限(调用SMN发送通知的权限和OBS的写入权限)。 进入“部署设置”页面,根据如下示例完成配置后,单击“下一步”。 图5 部署设置 部署设置 组织单元IDs:输入组织单元(OU)的ID。当指定根组织单元(Root)的ID时,表示资源栈集将部署于整个组织。 筛选条件:根据需要筛选条件,用于筛选部署的账号。 部署区域:选择资源栈集部署的区域。 部署参数 最大并发账户:建议选择“数字”类型,值设置为5。 容错:建议选择“百分比”类型,值设置为100。 Region部署方式和并发模式根据界面提示按需选择。 进入“配置确认”界面,确认资源栈集配置无误后,单击“部署”。 在弹出的确认框中单击“确定”,资源栈集部署成功。 资源栈集会向所选组织成员账号中均部署一个资源栈实例,部署完成后,组织成员账号的资源记录器将会被开启并基于Terraform模板内容进行配置。 图6 部署资源栈集 资源栈集创建并部署成功后,所部署的组织成员账号随时可以修改和关闭自身的资源记录器。您也可以随时更新资源栈集和删除资源栈集,删除资源栈集后,所部署成员账号的资源记录器均将被关闭。
  • 步骤三:配置SMN主题策略 开启资源记录器时需配置SMN主题,当资源发生变更时,消息通知会推送消息到您所配置的SMN主题。如无SMN主题,则需先创建主题。创建SMN主题后,还需执行“添加订阅”和“请求订阅”操作,消息通知才会生效。 在当前场景下,您需要为SMN主题设置主题访问策略,授权组织内成员账号的资源记录器可通过此主题发送消息,具体请参见如下步骤: 用授权账号登录管理控制台,进入对应区域的SMN服务控制台。 授权账号指SMN主题所属的账号。 参考设置主题策略对待授权账号授予相关SMN主题的权限。 其中“可发布消息的用户”选择“仅如下用户”,并依次输入组织成员账号的ID。 如未对某个成员账号进行授权,则该成员账号将无法通过此SMN主题接收资源变更消息通知。
  • 资源变更消息和资源快照转储至OBS加密桶 使用SSE-OBS方式加密的OBS桶 如果您需要将资源变更消息和资源快照存储至使用SSE-OBS方式加密的OBS桶,无需其他操作,只需选择对应OBS桶进行存储即可。 使用SSE-KMS默认密钥方式加密的OBS桶 如果您需要将资源变更消息和资源快照存储至使用SSE-KMS默认密钥方式加密的OBS桶,则需要在对资源记录器的委托中新增KMS的管理员权限(KMS Administrator)。 使用SSE-KMS自定义密钥方式加密的OBS桶 如果您需要将资源变更消息和资源快照存储使用SSE-KMS自定义密钥方式加密的OBS桶,则需要在对资源记录器的委托中新增KMS的管理员权限(KMS Administrator)。 另外,如果您选择将资源变更消息和资源快照存储至其他账号的使用SSE-KMS自定义密钥方式加密的OBS桶,则除了需要在对资源记录器的委托中新增KMS的管理员权限(KMS Administrator),还需要在被存储的OBS桶的密钥中设置密钥的跨账号权限。具体可参考以下步骤: 用授权账号登录管理控制台,进入 数据加密 服务的“密钥管理”界面。 单击目标自定义密钥的别名,进入密钥详细信息的授权页面。 参考创建授权对待授权账号授予其使用相关自定义密钥的权限。 “被授权对象”选择“账号”,并输入待授权账号的账号ID。 “授权操作”勾选“创建数据密钥”、“查询密钥信息”和“解密数据密钥”。
  • 跨账号授权 跨账号授予SMN主题发送通知的权限 用授权账号登录管理控制台,进入对应区域的SMN服务控制台。 参考设置主题策略对待授权账号授予相关SMN主题的权限。 如未对待授权账号进行授权,则该账号将无法通过此SMN主题接收资源变更消息通知。 跨账号授予OBS桶存储文件的权限 用授权账号登录管理控制台,进入OBS管理控制台。 参考自定义创建桶策略(JSON视图)对待授权账号授予相关OBS桶的权限。 桶策略的示例如下,配置该桶策略,将允许被授权账号的资源记录器将转储文件存放至本OBS桶的指定路径内,以下参数需要您根据实际使用场景手动替换: ${account_id}:需要被授权的账号的账号ID(domain_id); ${agency_name}:被授权的委托名称,如果您使用快速授权方式,则该值为“rms_tracker_agency”; ${bucket_name}:用于存储文件的OBS桶的桶名; ${folder_name}:用于存储文件的OBS桶内文件夹的名称。如果您未设置OBS桶内文件夹,则需删除“/${folder_name}”。 { "Statement": [ { "Sid": "org-bucket-policy", "Effect": "Allow", "Principal": { "ID": [ "domain/${account_id}:agency/${agency_name}" ] }, "Action": [ "PutObject" ], "Resource": [ "${bucket_name}/${folder_name}/RMSLogs/*/Snapshot/*", "${bucket_name}/${folder_name}/RMSLogs/*/Notification/*" ] } ] }
  • 开启并配置资源记录器 开启并配置资源记录器的资源转储和主题功能后,当对接服务上报Config的资源变更(被创建、修改、删除等)、资源关系变更时,您均可收到通知,同时还可对您的资源变更消息和资源快照进行定期存储。 登录管理控制台。 单击页面左上角的图标,在弹出的服务列表中,选择“管理与监管”下的“配置审计 Config”,进入“资源清单”页面。 单击左侧导航栏的“资源记录器”,进入“资源记录器”页面。 打开资源记录器开关,在弹出的确认框中单击“确定”,资源记录器开启成功。 图1 开启资源记录器 选择资源的监控范围。 默认情况下,资源记录器的监控范围会覆盖当前Config支持的全部资源。您可以根据需要修改资源记录器的监控范围,选择指定的资源类型进行监控。 资源记录器默认收集Config服务的所有资源数据,不支持取消勾选的操作。 图2 选择监控范围 配置资源转储。 选择OBS桶,用于存储资源变更消息及资源快照。 如果您先配置了SMN主题,则也可以不配置资源转储(OBS桶)。 配置当前账号下OBS桶: 选择“您账号的桶”,然后在下拉列表中选择您账号下的OBS桶,用于存储资源变更消息及资源快照。如果您需要将资源变更消息及资源快照存储在OBS桶内的某个文件夹下,则在选择OBS桶后,还需输入“桶前缀”,该前缀指OBS桶内某个文件夹的名称。如您的账号下无OBS桶,则需先创建OBS桶,详见创建桶。 配置其他账号下OBS桶: 选择“另一账号的桶”,并输入区域ID和桶名称,如果您需要将资源变更消息及资源快照存储在OBS桶内的某个文件夹下,则还需输入“桶前缀”,该前缀指OBS桶内某个文件夹的名称。需先使用其他账号对当前账号授予相关OBS桶的权限,具体操作请参见跨账号授权。 开启资源记录器时,如果指定了当前账号或其他账号下的OBS桶,Config会向目标OBS桶中写入一个名为ConfigWritabilityCheckFile的空文件,此文件仅用于验证资源转储是否能够成功写入OBS桶。当界面出现报错信息时,如何处理请参见为什么开启并配置资源记录器后,将数据转储至当前账号或其他账号的OBS桶时报错?。 图3 配置资源转储 配置数据保留周期。 资源记录器收集到的资源配置信息数据默认保留7年(2557天),您可以将配置信息数据设置自定义保留周期,自定义数据保留周期的可设置范围为最短30天,最长7年(2557天)。 虽然Config使用SMN和OBS发送资源变更消息通知和存储资源变更消息及资源快照,但Config自身也会保存资源的历史变更信息。此处配置的数据保留时间仅针对于Config,不会对SMN和OBS存储的数据产生影响。 当您配置数据保留周期后,Config会在指定周期内保留您的资源历史数据,超出指定周期的数据将会被删除。 如果您后续对数据保留周期进行了修改,此时新生成的资源数据将按照您新设置的保留周期进行存储,历史资源数据还将按照之前设置的数据保留周期进行存储。例如您先将数据保留周期设置为100天,此时生成的资源数据将保留100天,后续又将数据保留周期修改为30天,此时新生成的资源数据将保留30天,但修改数据保留周期之前生成的资源数据还是会保留100天。 图4 配置数据保留周期 (可选)开启并配置消息通知(SMN)主题。 打开主题开关,选择主题所在区域和主题名,用于接收资源变更时产生的消息通知。 配置当前账号下消息通知主题: 选择“您自己的主题”,并选择主题所在区域和主题名,用于接收资源变更时产生的消息通知。如无SMN主题,则需先创建SMN主题,详见创建主题。 配置其他账号下消息通知主题: 选择“另一账号的主题”,并输入主题URN,关于主题URN的详细信息请参见基本概念。需先使用其他账号对当前账号授予相关SMN主题的权限,具体操作请参见跨账号授权。 创建SMN主题后,还需执行“添加订阅”和“请求订阅”操作,消息通知才会生效。 图5 配置SMN主题 进行授权,选择“快速授权”或“自定义授权”。 快速授权:将为您快速创建一个名为“rms_tracker_agency”的委托权限,该权限是可以让资源记录器正常工作的权限,包含调用消息通知服务(SMN)发送通知的权限和 对象存储服务 (OBS)的写入权限(例如SMN Administrator和OBS OperateAccess权限)。由于快速授权的委托中并不包含KMS的相关权限,因此资源记录器无法将资源变更消息和资源快照存储到“使用KMS方式加密的OBS桶”中。如有需要,您可以在委托中添加对应权限(KMS Administrator)或使用自定义授权,具体请参见资源变更消息和资源快照转储至OBS加密桶。 如何为委托添加权限请参见删除或修改委托。 自定义授权:您可自行在 统一身份认证 服务(IAM)中创建委托,并进行自定义授权,授权对象为云服务Config,但必须包含可以让资源记录器正常工作的权限(调用消息通知服务(SMN)发送通知的权限和对象存储服务(OBS)的写入权限至少包含一个)。如果需要将资源变更消息和资源快照存储到“使用KMS方式加密的OBS桶”中,还需要添加KMS的密钥管理员权限(KMS Administrator),具体请参见资源变更消息和资源快照转储至OBS加密桶。创建委托详见委托其他云服务管理资源。 图6 授权 配置完成后,单击“保存”。 在弹出的确认框中单击“确定”,资源记录器配置成功。
  • 约束与限制 开启并配置资源记录器时,“主题”和“资源转储”至少需要配置一个。其中主题是可选配置的,但如果您先配置了SMN主题,则也可以不配置资源转储(OBS桶)。 在配置资源记录器时,配置了“主题”,但只创建了SMN主题,未添加订阅以及执行请求订阅,在资源发生变更时,将无法收到消息通知。具体请参见创建主题、添加订阅和请求订阅。 未在资源记录器监控范围内勾选的资源,不会更新资源的最新数据。 资源记录器收集到的资源配置信息数据默认保留7年(2557天)。 当前每天仅支持最多开启和修改资源记录器10次,每天0点将重置此次数。 已对接Config的服务的资源数据同步到Config存在延迟,不同服务的延迟时间并不相同。对于已开启资源记录器且在监控范围内的资源,Config会在24小时内校正资源数据。如未开启资源记录器,或相关资源不在资源记录器配置的监控范围内,则Config不会校正这些资源的数据。 Config服务的相关功能均依赖于资源记录器收集的资源数据,不开启资源记录器将会影响其他功能的正常使用,例如资源清单页面无法获取资源最新数据、合规规则无法创建、修改、启用和触发规则评估、资源聚合器无法聚合源账号的资源数据等,因此强烈建议您保持资源记录器的开启状态。
  • 概述 资源记录器为您提供面向资源的配置记录监控能力,帮您轻松实现海量资源的自主监管,用来跟踪您在云平台上且Config支持的云服务资源变更情况。 资源记录器可以为您提供以下功能: 当您开启并配置消息通知SMN主题后,在资源被创建、修改或删除时发送通知给您; 当您开启并配置消息通知SMN主题后,在Config支持的资源关系发生变更时发送通知; 当您开启并配置资源转储OBS桶和消息通知SMN主题后,对资源变更消息进行定期(6小时)存储; 当您开启并配置资源转储OBS桶后,对资源快照进行定期(24小时)存储。 资源记录器支持监控的资源请参阅支持的服务和区域。
  • 操作步骤 登录管理控制台。 单击页面左上角的图标,在弹出的服务列表中,选择“管理与监管”下的“配置审计 Config”,进入“资源清单”页面。 在“资源清单”页面的资源列表中,单击需要查看的资源名称,进入资源概览页。 选择“资源合规”页签,规则列表中展示评估当前资源的全部合规规则及其评估结果等信息。 在规则列表上方的搜索框中,可以通过规则名称、规则ID、触发类型、最后一次评估时间和合规评估结果对规则进行筛选。 单击规则列表中的某一规则名称,系统跳转至该合规规则详情页。 图1 查看资源合规信息
  • 操作步骤 登录管理控制台。 单击页面左上角的图标,在弹出的服务列表中,选择“管理与监管”下的“配置审计 Config”,进入“资源清单”页面。 在“资源清单”页面的资源列表中,单击需要查看的资源名称,进入资源概览页。 选择“资源时间线”页签,查看资源变更的历史记录。 在“资源时间线”页签的右上角设置筛选时间。 “资源时间线”页面默认展示过去3个月的资源变更历史记录。 您也可以通过单击“查看JSON”来查看对接服务上报Config的资源属性的当前情况。 图1 查看资源时间线
共100000条