文档首页 > > 用户指南> 权限> 策略

策略

分享
更新时间: 2020/07/13 GMT+08:00

“统一身份认证”页面的左侧导航树单击“权限”,可以查看系统权限和自定义策略。

策略内容

给用户组选择策略时,单击策略前面的,可以查看策略的详细内容,以“IAM ReadOnlyAccess”为例。

作用范围:给用户组授予该策略时,选择的授权区域。
  • 全局服务:服务部署时不区分物理区域,为全局级服务。在全局项目中进行授权,访问该服务时,不需要切换区域。包括对象存储服务(OBS)、内容分发网络(CDN)、标签管理服务(TMS)等。
  • 区域级项目:服务部署时通过物理区域划分,为项目级服务。在除全局区域外的其他区域中授权,并且只在授权区域生效,如果需要所有区域都生效,则所有区域都需要进行授权操作,,例如弹性云服务器(ECS)。IAM用户访问该服务时,需要先切换到授权区域。
  • 全局级服务/区域级项目:服务部署在所有区域,在所有区域中都可以授权,例如SSL证书管理(SCM)。

策略结构

策略结构包括:Version(策略版本号)和Statement(策略权限语句),其中Statement可以有多个,表示不同的授权项。

图1 策略结构

策略语法

以OBS的自定义策略为例,说明策略的语法。
{
        "Version": "1.1",
        "Statement": [
                {
                        "Effect": "Allow",
                        "Action": [
                                "obs:bucket:ListAllMybuckets",
                                "obs:bucket:HeadBucket",
                                "obs:bucket:ListBucket",
                                "obs:bucket:GetBucketLocation",
                        ],
                        "Condition": {
                                "StringEndWithIfExsits": {
                                       "g:UserName": [
                                               "specialCharactor"
                                       ]
                                },
                                "Bool": {
                                       "g:MFAPresent": [
                                               "true"
                                       ]
                                }
                        },
                        "Resource": [
                                "obs:*:*:bucket:*"
                        ]
                }
        ]
}
表1 参数说明

参数

含义

Version

策略的版本

1.1:策略

Statement:

策略的授权语句

  

  

Action:授权项

操作权限

格式为:服务名:资源类型:操作,支持通配符号*,通配符号*表示所有。

示例:

  • "obs:bucket:ListAllMybuckets":表示查看OBS桶列表权限,其中obs为服务名,bucket为资源类型,ListAllMybuckets为操作。

Effect:作用

定义Action中的操作权限是否允许执行。

  • Allow:允许执行。
  • Deny:不允许执行。
说明:

当同一个Action的Effect既有Allow又有Deny时,遵循Deny优先的原则。

Resource: 资源类型

策略所作用的资源

格式为:服务名:region:domainId:资源类型:资源路径, 通配符号*表示所有。

示例:

  • "obs:*:*:bucket:*": 表示所有的OBS桶。
  • "obs:*:*:object:my-bucket/my-object/*": 表示my-bucket桶my-object目录下的所有对象。

Condition: 条件

使策略生效的特定条件,包括条件键和运算符。条件键表示策略语句的 Condition 元素中的键值,分为全局级条件键和服务级条件键(由云服务定义,请参见云服务帮助中心)。全局级条件键(前缀为g:)适用于所有操作,服务级条件键(前缀为服务缩写,如obs:)仅适用于对应服务的操作。运算符与条件键一起使用,构成完整的条件判断语句。

格式为:条件运算符: {条件名:[条件值1, 条件值2]}。

示例:

  • "StringEndWithIfExists":{"g:UserName":["specialCharactor"]}:表示当用户输入的用户名以"specialCharactor"结尾时该条statement生效。

全局条件键参考如下:

表2 全局级请求条件

全局条件键

条件类型

说明

g:CurrentTime

时间

接收到鉴权请求的时间。以 ISO 8601 格式表示,例如:2012-11-11T23:59:59Z。

g:DomainName

字符串

华为云账号名称

g:MFAPresent

布尔值

是否使用MFA多因素认证方式获取Token

g:MFAAge

数值

通过MFA多因素认证方式获取的Token的生效时间。该条件需要和g:MFAPresent一起使用。

g:ProjectName

字符串

项目名称

g:ServiceName

字符串

服务名称

g:UserId

字符串

IAM用户ID

g:UserName

字符串

IAM用户名

检查规则

用户在发起访问请求时,系统根据用户被授予的访问策略中的action进行鉴权判断。检查规则如下:

图2 系统鉴权逻辑图

  

  1. 用户发起访问请求。
  2. 系统在用户被授予的策略中寻找请求对应的action,优先寻找Deny指令。如果找到一个适用的Deny指令,系统将返回Deny决定。
  3. 如果没有找到Deny指令,系统将寻找适用于请求的任何Allow指令。如果找到一个Allow指令,系统将返回Allow决定。
  4. 如果找不到Allow指令,最终决定为Deny,鉴权结束。
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问