自定义权限策略
如果系统预置的权限策略,不满足用户授权需求,CodeArts IDE Online支持自定义权限策略。
本章为您介绍CodeArts IDE Online常用的自定义权限策略代码样例。
自定义策略样例
- 授权用户创建、启动、停止、访问和查看权限。
{ "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "cloudIDE:instance:create", "cloudIDE:instance:start", "cloudIDE:instance:stop", "cloudIDE:instance:access", "cloudIDE:instance:get" ] } ] }
- 授权用户使用CodeArts IDE Online所有权限。
{ "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "cloudIDE:*:*" ] } ] }
- 禁止用户删除CodeArts IDE Online实例。
用户被授予的策略中,一个授权项的作用如果同时存在Allow和Deny,则遵循Deny优先原则。因此禁止策略需要同时配合其他策略使用,否则没有实际作用。
例如:如果授予用户CloudIDE FullAccess的系统策略,但不希望用户拥有CloudIDE FullAccess中定义的删除CodeArts IDE Online实例权限,可以创建一条禁止删除CodeArts IDE Online实例的自定义策略,同时将CloudIDE FullAccess和禁止策略授予用户,根据Deny优先原则,则用户可以对CodeArts IDE Online执行除了CodeArts IDE Online实例外的所有操作。禁止策略示例如下:
{ "Version": "1.1", "Statement": [ { "Effect": "Deny", "Action": [ "cloudIDE:instance:delete" ] } ] }
- 仅允许用户启动、停止自己拥有的实例或被分发给自己的实例。
可以在自定义策略中为启动和停止实例的授权项添加条件,使该授权项仅对用户自己的实例生效。CodeArts IDE Online通过IAM预置了两组条件键,其与授权项的关联关系详见CodeArts IDE Online权限表4授权项与对应条件键,您可以使用条件键检查请求者的id,然后再允许执行操作。为了保证数据安全,CodeArts IDE Online只允许实例的访问者访问实例,如果用户不是实例的访问者,即使配置权限也无法访问该实例。条件策略示例如下:
{ "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "cloudIDE:instance:start", "cloudIDE:instance:stop" ], "Condition": { "StringEquals": { "cloudIDE:instanceUser": ["${g:UserId}"] } } },{ "Effect": "Allow", "Action": [ "cloudIDE:instance:start", "cloudIDE:instance:stop" ], "Condition": { "StringEquals": { "cloudIDE:instanceVisitor": ["${g:UserId}"] } } } ] }