TaurusDB自定义策略
如果系统预置的TaurusDB权限,不满足您的授权要求,可以创建自定义策略。
目前华为云支持以下两种方式创建自定义策略:
- 可视化视图创建自定义策略:无需了解策略语法,按可视化视图导航栏选择云服务、操作、资源、条件等策略内容,可自动生成策略。
- JSON视图创建自定义策略:可以在选择策略模板后,根据具体需求编辑策略内容;也可以直接在编辑框内编写JSON格式的策略内容。
具体创建步骤请参见:创建自定义策略。本章为您介绍常用的TaurusDB自定义策略样例。
TaurusDB自定义策略样例
- 示例1:授权用户创建TaurusDB实例
{ "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "gaussdb:instance:create" ] } ] }
- 示例2:拒绝用户删除TaurusDB实例
拒绝策略需要同时配合其他策略使用,否则没有实际作用。用户被授予的策略中,一个授权项的作用如果同时存在Allow和Deny,则遵循Deny优先原则。
如果您给用户授予GaussDB FullAccess的系统策略,但不希望用户拥有GaussDB FullAccess中定义的删除TaurusDB实例权限,您可以创建一条拒绝删除TaurusDB实例的自定义策略,然后同时将GaussDB FullAccess和拒绝策略授予用户,根据Deny优先原则,则用户可以对TaurusDB执行除了删除TaurusDB实例外的所有操作。拒绝策略示例如下:
{ "Version": "1.1", "Statement": [ { "Effect": "Deny" "Action": [ "gaussdb:instance:delete" ], } ] }
- 示例3:多个授权项策略
一个自定义策略中可以包含多个授权项,且除了可以包含本服务的授权项外,还可以包含其他服务的授权项,可以包含的其他服务必须跟本服务同属性,即都是项目级服务或都是全局级服务。多个授权语句策略描述如下:
{ "Version": "1.1", "Statement": [ { "Action": [ "gaussdb:instance:create", "gaussdb:instance:modify", "gaussdb:instance:delete", "vpc:publicIps:list", "vpc:publicIps:update" ], "Effect": "Allow" } ] }
- 示例4 对目标用户授权管理指定的实例和实例的部分功能
假设您的账号下有多个实例,但是作为管理员。您希望授权TaurusDB实例中的部分实例给目标用户,并授予部分功能给目标用户,那么您可以创建如下权限策略:
{ "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "gaussdb:instance:restart", "gaussdb:instance:modify" ], "Resource": [ "GAUSSDB:*:*:instance:test*" ] }, { "Effect": "Allow", "Action": [ "gaussdb:param:list", "gaussdb:tag:list", "gaussdb:backup:list", "gaussdb:instance:create", "gaussdb:instance:list" ] } ] }
- 被授予该权限策略的目标用户号可以查看所有的实例,但只能管理已被授权的实例。同时作为管理员,您仍然可以使用API直接管理上述实例。被授予该权限策略的目标用户仅可以对账号下所有的TaurusDB实例进行重启和修改实例操作,但不允许进行其他任何操作。
- test*是对实例名称的模糊匹配,在权限策略中是必须的,否则被授权的用户无法在控制台看到任何实例。
- TaurusDB支持通过用户进行API级别的访问控制,您可以通过相关API对TaurusDB进行细粒度的权限访问控制,详情请参见API概览。