IAM权限配置概述
IAM权限简介
默认情况下,管理员创建的IAM用户没有任何权限,需要将其加入用户组,并给用户组授予策略和角色,才能使得用户组中的用户获得策略定义的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。
对于OBS,IAM权限作用于OBS所有的桶和对象。如果要授予IAM用户操作OBS资源的权限,则需要向IAM用户所属的用户组授予一个或多个OBS权限。
如果您通过IAM授权时,没有指定具体的桶和对象,那么使用IAM授予的权限对所有桶生效。
目前IAM支持两类授权,一类是角色与策略授权,另一类为身份策略授权。
两者有如下的区别和关系:
|
名称 |
核心关系 |
涉及的权限 |
授权方式 |
适用场景 |
|---|---|---|---|---|
|
用户-权限-授权范围 |
|
为主体授予角色或策略 |
核心关系为“用户-权限-授权范围”,每个用户根据所需权限和所需授权范围进行授权,无法直接给用户授权,需要维护更多的用户组,且支持的条件键较少,难以满足细粒度精确权限控制需求,更适用于对细粒度权限管控要求较低的中小企业用户。 |
|
|
用户-策略 |
|
|
核心关系为“用户-策略”,管理员可根据业务需求定制不同的访问控制策略,能够做到更细粒度更灵活的权限控制,新增资源时,对比角色与策略授权,基于身份策略的授权模型可以更快速地直接给用户授权,灵活性更强,更方便,但相对应的,整体权限管控模型构建更加复杂,对相关人员专业能力要求更高,因此更适用于中大型企业。 |
例如:如果需要对IAM用户授予可以创建华北-北京四区域的ECS和华南-广州区域的OBS的权限,基于角色与策略授权的场景中,由于涉及到两个需要授权的区域,所以管理员需要创建两个自定义策略,并且为IAM用户同时授予这两个自定义策略才可以实现权限控制。在基于身份策略授权的场景中,管理员仅需要创建一个自定义身份策略,在策略中通过条件键“g:RequestedRegion”的配置即可达到策略对于授权区域的控制。将身份策略附加主体或为主体授予该身份策略即可获得相应权限,权限配置方式更细粒度更灵活。
两种授权场景下的策略/身份策略、授权项等并不互通,推荐使用身份策略进行授权。
关于IAM的详细介绍,请参见IAM产品介绍。
IAM权限应用场景
IAM主要面向对同账号下IAM用户授权的场景:
- 控制账号下整个云资源的权限时,使用IAM权限授权。
- 控制账号下OBS所有的桶和对象的权限时,使用IAM权限授权。
- 控制账号下OBS指定资源的权限时,使用IAM权限授权。
- 授予IAM用户创建桶和列举桶的权限。
策略结构&语法
策略结构包括:Version(策略版本号)和Statement(策略权限语句),其中Statement可以有多个,表示不同的授权项。
策略语法,示例:
{
"Version": "5.0",
"Statement": [
{
"Effect": "Allow",
"Action": [
"obs:bucket:headBucket",
"obs:bucket:listBucket",
"obs:bucket:getBucketLocation"
],
"Resource": [
"obs:*:*:bucket:*"
],
"Condition": {
"StringEquals": {
"g:UserName": ["specialCharacter"]
},
"Bool": {
"g:MFAPresent": ["true"]
}
}
}
]
}
|
参数 |
说明 |
|---|---|
|
Version |
|
|
Statement |
策略授权语句,描述策略的详细信息,包含Sid(语句ID)、Effect(效果)、Action(动作)、Resource(资源)和Condition(条件)。其中Resource和Condition为可选。
|
- Resource(资源)级别细粒度授权特性会逐步在各个区域上线,需要使用该特性时请确保桶所在区域已经支持。
- 使用Resource(资源)级别细粒度授权特性前,请提交工单到OBS,申请开通Resource(资源)级别细粒度授权特性白名单。