配置审计 Config
配置审计 Config
- 最新动态
- 产品介绍
- 快速入门
-
用户指南
- 资源清单
- 资源记录器
-
资源合规
- 资源合规概述
- 资源合规规则
- 组织合规规则
- 查看不合规资源
- 合规规则概念详解
-
系统内置预设策略
- 预设策略列表
- 公共可用预设策略
- API网关 APIG
- 部署 CodeArts Deploy
- MapReduce服务 MRS
- NAT网关 NAT
- VPC终端节点 VPCEP
- Web应用防火墙 WAF
- 弹性负载均衡 ELB
- 弹性公网IP EIP
- 弹性伸缩 AS
- 高性能弹性文件服务 SFS Turbo
- 弹性云服务器 ECS
- 分布式缓存服务 DCS
- 函数工作流 FunctionGraph
- 内容分发网络 CDN
- 配置审计 Config
- 数据仓库服务 DWS
- 数据复制服务 DRS
- 数据加密服务 DEW
-
统一身份认证服务 IAM
- IAM用户的AccessKey在指定时间内轮换
- IAM策略中不授权KMS的禁止的action
- IAM用户组添加了IAM用户
- IAM用户密码策略符合要求
- IAM策略黑名单检查
- IAM策略不具备Admin权限
- IAM自定义策略具备所有权限
- 根用户存在可使用的访问密钥
- IAM用户访问模式
- IAM用户创建时设置AccessKey
- IAM用户归属指定用户组
- IAM用户在指定时间内有登录行为
- IAM用户开启MFA
- IAM用户单访问密钥
- Console侧密码登录的IAM用户开启MFA认证
- 根用户开启MFA认证
- IAM策略使用中
- IAM权限使用中
- IAM用户开启登录保护
- IAM委托绑定策略检查
- IAM用户admin权限检查
- IAM用户不直接附加策略或权限
- 文档数据库服务 DDS
- 消息通知服务 SMN
- 虚拟私有云 VPC
- 虚拟专用网络 VPN
- 云监控服务 CES
- 云容器引擎 CCE
- 云审计服务 CTS
- 云数据库 RDS
- 云数据库 GaussDB
- 云数据库 TaurusDB
- 云数据库 GeminiDB
- 云搜索服务 CSS
- 云硬盘 EVS
- 云证书管理服务 CCM
- 分布式消息服务Kafka版
- 分布式消息服务RabbitMQ版
- 分布式消息服务RocketMQ版
- 组织 Organizations
- 云防火墙 CFW
- 云备份 CBR
- 对象存储服务 OBS
- 镜像服务 IMS
- 裸金属服务器 BMS
- 图引擎服务 GES
- 资源合规事件监控
-
合规规则包
- 合规规则包概述
- 合规规则包
- 组织合规规则包
- 自定义合规规则包
-
合规规则包示例模板
- 示例模板概述
- 等保三级2.0规范检查的标准合规包
- 适用于金融行业的合规实践
- 华为云网络安全合规实践
- 适用于统一身份认证服务(IAM)的最佳实践
- 适用于云监控服务(CES)的最佳实践
- 适用于计算服务的最佳实践
- 适用于弹性云服务器(ECS)的最佳实践
- 适用于弹性负载均衡(ELB)的最佳实践
- 适用于管理与监管服务的最佳实践
- 适用于云数据库(RDS)的最佳实践
- 适用于弹性伸缩(AS)的最佳实践
- 适用于云审计服务(CTS)的最佳实践
- 适用于人工智能与机器学习场景的合规实践
- 适用于自动驾驶场景的合规实践
- 资源开启公网访问最佳实践
- 适用于日志和监控的最佳实践
- 华为云架构可靠性最佳实践
- 适用于中国香港金融管理局的标准合规包
- 适用于中小企业的ENISA的标准合规包
- 适用于SWIFT CSP的标准合规包
- 适用于德国云计算合规标准目录的标准合规包
- 适用于PCI-DSS的标准合规包
- 适用于医疗行业的合规实践
- 网络及数据安全最佳实践
- 适用于Landing Zone基础场景的最佳实践
- 架构安全支柱运营最佳实践
- 网络和内容交付服务运营最佳实践
- 适用于空闲资产管理的最佳实践
- 多可用区架构最佳实践
- 资源稳定性最佳实践
- 适用于API网关(APIG)的最佳实践
- 适用于云容器引擎(CCE)的最佳实践
- 适用于内容分发网络(CDN)的最佳实践
- 适用于函数工作流(FunctionGraph)的最佳实践
- 适用于云数据库(GaussDB)的最佳实践
- 适用于云数据库(GeminiDB)的最佳实践
- 适用于MapReduce服务(MRS)的最佳实践
- NIST审计标准最佳实践
- 新加坡金融行业的最佳实践
- 安全身份和合规性运营最佳实践
- 华为云安全配置基线指南的标准合规包(level 1)
- 华为云安全配置基线指南的标准合规包(level 2)
- 静态数据加密最佳实践
- 数据传输加密最佳实践
- 适用于云备份(CBR)的最佳实践
- 适用于云搜索服务(CSS)的最佳实践
- 适用于分布式缓存服务(DCS)的最佳实践
- 适用于分布式消息服务(DMS)的最佳实践
- 适用于数据仓库服务(DWS)的最佳实践
- 适用于云数据库(TaurusDB)的最佳实践
- 适用于对象存储服务(OBS)的最佳实践
- 适用于VPC安全组的最佳实践
- 适用于Web应用防火墙(WAF)的最佳实践
- 高级查询
- 资源聚合器
- 云审计-记录配置审计
- 附录
- API参考
- SDK参考
- 最佳实践
- 常见问题
- 通用参考
链接复制成功!
通过Config实现资源自动化管理
本文为您介绍如何通过配置审计服务的资源评估和合规修正能力,自动化实现不合规资源的发现和修正。通过该流程,可以确保云上任意用户,无论有意还是无意的行为,造成了资源不合规,都可以在几分钟内被该流程自动修复,从而保证了云上的资源安全。
应用场景
具体场景:用户在云上的OBS桶,应该使用桶策略避免客户端误使用HTTP协议进行OBS业务操作,详见确保您的数据在传输到OBS过程中不被窃取和篡改。
操作流程
创建合规规则:
- 登录配置审计控制台。
- 在左侧导航栏,选择资源合规。
- 在规则页面,单击“添加规则”。
- 选择预设策略“OBS桶策略授权行为使用SSL加密”,单击“下一步”。
- 在规则参数页面,保持默认的资源范围,区域选择“全部”,完成规则创建。
- 返回规则列表页面,查看新建合规规则的评估结果。
配置修正函数:
以python方式为例,为您介绍如何通过FunctionGraph实现资源的自动修正。
- 登录函数工作流控制台。
- 在左侧导航栏,选择函数。
- 在函数列表页面,单击“创建函数”。
- 函数类型选择“事件函数”,运行时选择“Python3.9”,选择一个合适的委托,至少包含如下权限:
{ "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "obs:bucket:PutBucketPolicy", "obs:bucket:GetBucketPolicy", "rms:resources:get" ] } ] }
- 完成函数创建后,为函数添加“huaweicloudsdk_obs”和“huaweicloudsdkconfig”两个依赖包。
- 在“index.py”中贴入如下代码。
import json from obs.client import ObsClient from huaweicloudsdkcore.auth.credentials import GlobalCredentials from huaweicloudsdkconfig.v1.region.config_region import ConfigRegion from huaweicloudsdkconfig.v1.config_client import ConfigClient from huaweicloudsdkconfig.v1 import ShowResourceDetailRequest def get_resource_region(context, domain_id, resource_id): 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() resource = client.show_resource_detail(ShowResourceDetailRequest(resource_id)).to_json_object() return resource.get("region_id") def getBucketPolicy(obsClient, bucket_name): resp = obsClient.getBucketPolicy(bucket_name) if resp.status < 300: print("Get Bucket Policy Succeeded") return resp.body.policyJSON if resp.status == 404 and resp.errorCode == "NoSuchBucketPolicy": print("NoSuchBucketPolicy") return "{\"Statement\": []}" assert False, f"Get Bucket Policy Failed: {resp.errorCode} | {resp.errorMessage}" def ensurePolicySSL(obsClient, bucket_name, policy): policy["Statement"] = policy["Statement"] + [{ "Sid": "ensure_secure_transport", "Effect": "Deny", "Principal": {"ID": ["*"]}, "Action": ["*"], "Resource": [bucket_name, bucket_name + "/*"], "Condition": {"Bool": {"g:SecureTransport": ["false"]}} }] resp = obsClient.setBucketPolicy(bucket_name, policy) if resp.status < 300: print("Set Bucket Policy Succeeded") else: print(policy) assert False, f"Set Bucket Policy Failed: {resp.errorCode} | {resp.errorMessage}" def handler(event, context): domain_id = event.get("domain_id") bucket_name = event.get("bucket_name") print("domain_id", domain_id) print("bucket_name", bucket_name) region_id = get_resource_region(context, domain_id, bucket_name) print("region_id", region_id) server = f"https://obs.{region_id}.myhuaweicloud.com" obsClient = ObsClient( access_key_id=context.getSecurityAccessKey(), secret_access_key=context.getSecuritySecretKey(), server=server, security_token=context.getSecurityToken() ) policy = getBucketPolicy(obsClient, bucket_name) policy = json.loads(policy) ensurePolicySSL(obsClient, bucket_name, policy) obsClient.close()
- (可选)在函数的设置页面适当修改函数的“执行超时时间”和“内存”,并启用日志配置。强烈建议您执行该项操作,否则资源修正的行为有可能会失败,且您无法通过日志记录定位函数执行的错误原因。
配置合规修正:
- 登录配置审计控制台。
- 在左侧导航栏,选择资源合规。
- 在规则页面,单击规则名称。
- 进入规则详情页面,选择“修正管理”,单击“修正配置”。
- 选择“手动修正”或“自动修正”,重试时间和重试次数使用默认值。
- 选择“FGS模版”,选中前一步中所配置的函数。
- 依赖于资源类型设置为“bucket_name”,参数中键和值分别输入domain_id 和 账号ID的值。
- 单击“保存”,完成合规修正的配置。
资源的手动修正:
如果您在上一步的修正方法中选择“手动修正”,则需要进行如下操作。
- 重新进入修正配置的页面。
- 在资源范围页面勾选您需要处理的资源:
- 如果资源属于您认为需要处理的资源,则单击“执行修正”。
- 如果资源属于您认为不需要处理的资源,则单击“加入修正例外”。
- 登录对象存储服务控制台,进入您刚才执行修正的OBS桶的详情页。
- 进入权限控制的桶策略页面,确认桶策略内容已经被更新。
常见问题
手动修正和自动修正的区别?
如果配置为手动修正,则需要用户主动查询不合规资源,并执行修正;如果配置为自动修正,则Config服务会自动为该合规规则下的所有不合规资源执行修正行为。
强烈建议您在第一次配置修正时,选择手动修正。手动修正可以防止资源被修改导致用户业务中断。
在您处理完所有存量的不合规资源后,再将修正配置修改为自动修正,此后所有新增的不合规资源都会被自动修复,而且不需要人为干预。
执行修正后,为什么资源未成功被修正?
这通常是因为您配置在函数工作流服务的代码存在问题,也可能是因为您赋予函数工作流的权限不足。请前往函数工作流的监控页面查询具体的失败日志。
资源修正成功后,为什么资源在合规规则页面还是不合规?
资源修正完成后,资源的变更行为通常会在5分钟之内通知Config服务,规则会自动触发该资源的合规评估并生成最新的资源合规结果。