创建修正配置
操作场景
当您通过系统预设策略或自定义策略创建合规规则后,您可以为合规规则创建修正配置,按照您自定义的修正逻辑对规则检测出的不合规资源进行快速修正。
合规规则的修正配置功能基于RFS服务的私有模板或FunctionGraph的函数进行资源修正,因此您需要预先创建RFS服务的私有模板或FunctionGraph的函数。本章节包含如下内容:
创建RFS私有模板
Config目前仅默认支持使用北京四(cn-north-4)区域的RFS私有模板。
- 登录管理控制台。
- 单击页面左上角的图标,在弹出的服务列表中,选择“管理与监管”下的“资源编排服务 RFS”。
- 在左侧的导航栏选择“模板库 > 私有模板”。
- 单击右上方的“创建模板”,进入“创建模板”页面。
图1 创建私有模板
- 根据需要选择任意的创建方式、模板来源等,根据界面提示以及您需要的资源修正逻辑,完成模板文件的编写。
模板内容的示例可参考RFS私有模板内容示例。
- 模板配置完成后单击“立即创建”。
创建FunctionGraph函数
- 登录管理控制台。
- 单击页面左上角的图标,在弹出的服务列表中,选择“计算”下的“函数工作流 FunctionGraph”。
- 在左侧的导航栏选择“函数 > 函数列表”。
- 单击右上方的“创建函数”,进入“创建函数”页面。
- 选择“创建空白函数”,“函数类型”选择“事件函数”,并配置函数名称、IAM委托等其他参数。
IAM委托授权给函数工作流(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 修正配置信息
- RFS模板:选择资源编排服务(RFS)的私有模板作为修正操作的模板,模板中定义不合规资源的具体修正逻辑。
- 配置资源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参数
- 配置完成后,单击页面右下角的“保存”。
当合规规则的修正方式选择“自动修正”时,您必须重新触发规则评估以更新评估结果,然后才会自动对不合规资源执行修正。