有奖捉虫:行业应用 & 管理与支持文档专题 HOT
CASB 访问控制使用基于角色的访问控制(RBAC)来控制代理账号的访问权限,可以根据客户端 IP、访问的库、表、字段、命令、时间等维度控制不同的角色的访问权限。
CASB 的访问控制独立于数据库的权限系统,CASB 访问控制基于 CASB 代理账号,数据库权限管理适用于元数据账号,互相独立、互为补充。

接入场景

本示例使用 CASB 访问控制功能配置不同角色的应用访问代理的权限。示例:
doc数据库中表userinfo内存在两个敏感字段namephone
只允许来自172.16.32.33机器的访问。
存在四个角色的应用:
admin:管理员角色,能读写namephone
reader:只读角色,只能读namephone
nameadmin:姓名校验角色,可以读写name字段。
cronjob:定时任务角色,只允许每天10:00~10:30时间段内读name字段。

步骤一:接入准备和数据库绑定

参考 从0开始接入 CASB 步骤1、步骤2, 绑定数据库到 CASB 代理。
说明:
本示例中,代理的地址是 172.16.0.30:10100,数据库的地址是 172.16.32.4:3306

步骤二:创建代理账号

CASB 的访问控制角色和代理账号相关联,因此,参考 代理账号管理 为四个不同角色的应用分别创建四个不同的代理账号:user1user2user3user4
?
?

步骤三:创建和绑定访问控制角色

1. 创建adminreadernameadmincronjob的角色。 参考 访问控制角色管理,新增 adminreadernameadmincronjob四个角色。
?
?
2. 绑定代理账号和角色。 参考 添加代理账号,分别将代理账号绑定到角色。
代理账号 user1 绑定角色 admin
代理账号 user2 绑定角色 reader
代理账号 user3 绑定角色 nameadmin
代理账号 user4 绑定角色 cronjob
说明
一个代理账号只能绑定一个角色。
?

步骤四:创建和绑定访问控制规则

1. 创建访问控制规则

参考 访问控制规则管理,创建访问控制规则。
?
rule_deny_all:阻断所有访问语句。
?
rule_deny_phone: 阻断访问phone字段的语句。
?
rule_allow_client: 放行来自172.16.32.33机器的语句。
?
rule_allow_client_rd: 放行来自172.16.32.33机器的SELECT语句。
?
rule_allow_client_name_rw: 放行来自172.16.32.33机器、name字段的SELECTUPDATE语句。
?
rule_allow_client_name_cron_rd: 放行来自172.16.32.33机器、20:00~21:00时间段内、name字段的SELECT语句。
?

2. 配置角色的访问控制规则

注意:
CASB 访问控制规则采用顺序匹配的方式,匹配到任意一条规则时结束匹配(放行或阻断)。因此,对于部分允许的需求,应先设置相反的禁止访问规则,即本例中若只允许访问name字段,应先配置禁止访问phone的规则,此时先匹配到阻断规则后可立即阻断。
若需要限制部分访问,角色规则中包含放行规则时,应在最后加上阻断所有请求的规则,阻断所有放行规则外的请求。
参考 角色规则管理,为每种角色配置规则。
规则名称
说明
admin角色规则
admin角色按如下顺序配置两条规则。
rule_allow_client: 放行来自172.16.32.33机器的语句。
rule_deny_all: 阻断所有访问语句。
reader角色规则
reader角色按如下顺序配置两条规则。
rule_allow_client_rd: 放行来自172.16.32.33机器的SELECT语句。
rule_deny_all: 阻断所有访问语句。
nameadmin角色规则
nameadmin角色按如下顺序配置三条规则。
rule_deny_phone: 阻断访问phone字段的语句。
rule_allow_client_name_rw: 放行来自172.16.32.33机器、name字段的SELECTUPDATE语句。
rule_deny_all: 阻断所有访问语句。
cronjob角色规则
cronjob角色按如下顺序配置三条规则。
rule_deny_phone: 阻断访问phone字段的语句。
rule_allow_client_name_cron_rd: 放行来自172.16.32.33机器、20:00~21:00时间段内、name字段的SELECT语句。
rule_deny_all: 阻断所有访问语句。

3. 效果验证

1. 绑定admin角色的代理账号user1: 可以读写所有字段。
?
?
2. 绑定reader角色的代理账号user2: 可以读所有字段,不能写字段值。
?
?
3. 绑定nameadmin角色的代理账号user3: 可以读写name字段,不能读写phone字段。
?
?
4. 绑定cronjob角色的代理账号user4: 仅可以在规定的时间内读name字段,不能写字段。
?
?

步骤五:访问控制和安全组限制来源 IP 区别

访问控制限制来源IP在代理的应用层内实现,代理在收到客户端数据库查询语句时,检查客户端连接的来源 IP,并进行规则匹配,会占用代理的计算资源。
安全组限制来源 IP 在 VPC 网络层实现,不符合安全组规则的来源 IP 无法建立到代理的连接,不会占用代理的计算资源。
说明:
如需从全局限制访问 CASB 代理的客户端应用连接代理,建议通过 配置 CASB 安全组 的方式,在网络入口侧进行拦截。
?


http://www.vxiaotou.com