iam主子用户访问控制 -奇异果体育app竞彩官网下载
概述
在您的百度智能云账号下面,通过 iam 可以创建具有自己 accesskey 的子用户。您的百度智能云账号被称为主账号,创建出来的账号被称为子用户,使用子用户的 accesskey 只能使用主账号授权的操作和资源,bos已经接入iam子用户系统,通过控制台多用户访问控制创建iam子用户,您可以实现:
- 同账号授权:您可以授权自己账号下的子用户去管理自己账号下的云资源(bucket和object)。
- 跨账号授权:您可以授权自己账号下的子用户去管理他人账号下的云资源(bucket和object)。
当您在授权的时候,建议严格遵循最小权限原则,限定用户执行受限的操作(如仅授权读操作)并设置访问指定前缀的资源,避免授予过大的权限,导致预期外的越权操作,造成数据安全风险。
应用场景
-
企业子账号管理与分权
企业a使用百度智能云账号购买了多种云资源(如bcc实例/rds实例/blb实例/bos存储/...),a的员工需要操作这些云资源包括购买、运维、线上应用等。不同岗位员工的工作职责不一样,需要的权限也不一样。出于安全考虑,a不希望将主账号的密钥直接公布给员工,而希望能给不同岗位员工创建相应的用户子账号。用户子账号只能在授权的前提下操作资源,不需要进行独立的计量计费,所有资源费用都归属主账号。a主账号随时可以撤销子账号的权限,也可以随时删除其创建的子账号。
-
企业之间的资源操作与授权管理
a和b代表不同的企业。a购买了多种云资源(如bcc实例/rds实例/blb实例/bos存储/...)来开展业务。a希望能专注于业务系统,而将云资源运维监控管理等任务委托或授权给企业b。企业b也可以进一步将代运维任务分配给b的员工,即b为其员工创建相应的用户子账号供其使用。b可以精细控制其员工对a的云资源操作权限。如果a和b的这种代运维合同终止,a随时可以撤销对b的授权。
策略文件说明
iam主用户授权给子用户通过关联策略实现,策略文件本质上是一个json文件,文件中permission和resource用来定义权限和资源。策略文件对应的空白模版如下:
{
"accesscontrollist": [
{
"service": "bce:bos",
"region": "*",
"effect": "allow",
"permission": [],
"resource": [],
}
]
}
策略文件中各字段的含义如下:
字段 | 数据类型 | 说明 | 是否必须 | 父节点 |
---|---|---|---|---|
accesscontrollist | list | 标识acl主体的开始,由一或多组acl配置项组成,其中acl配置项由service region effect permission resource组合而成。 | 是 | 无 |
service | string | acl配置项影响的服务组件。 | 是 | accesscontrollist |
region | string | acl配置项影响的区域,取值范围为bj、gz和 * 。其中bj代表北京region,gz代表广州region,*代表示所有区域。 | 是 | accesscontrollist |
effect | string | 指定与该条acl配置项匹配的request能否执行,取值为allow或deny。allow表示可以执行deny表示拒绝执行。 | 是 | accesscontrollist |
permission | list | acl配置项所影响的权限,取值范围为read、list、write、full_control和listbuckets,不支持配置通配符*。每个permission的具体含义见下表。 | 是 | accesscontrollist |
resource | list | acl配置项所影响的资源,支持通配符。如:*, |
否 | accesscontrollist |
每种permission所对应的bos api如下:
permission | 对应的bos api |
---|---|
listbuckets | getservice(listbuckets) |
putbucket | putbucket |
read | getbucketlocation, headbucket, getobject, getobjectmeta, listparts |
deleteobject | deleteobject |
list | listobjects, listmultipartuploads |
write | putobject, initiatemultipartupload, uploadpart, completemultipartupload, abortmultipartupload, deleteobject, deletemultipleobjects, appendobject, postobject |
full_control | read、write、list对应的api, 还包含putbucketacl, getbucketacl, putbucketcors, getbucketcors, deletebucketcors, putbucketlogging, getbucketlogging, deletebucketlogging |
系统策略配置说明
为了方便用户使用,百度智能云内置了两个常用策略作为系统策略:bosfullaccess和boslistandreadaccess。
- bosfullaccess:管理百度智能云对象存储服务(bos)的权限。
- boslistandreadaccess:只读访问百度智能云对象存储服务(bos)的权限。
说明:
- 系统策略无法修改且不能删除。
在“策略管理”页面点击策略名称对应操作列的“查看”按钮,可以查看两个系统策略对应的json文件。
自定义策略配置说明
如果您需要定制更精细的权限控制,可以创建一个自定义策略。自定义策略即用户通过策略文件定义子账号的资源和权限,通过自定义策略用户可以更精准的控制权限和资源。策略本质上为json文件,您可以参考策略文件说明,也可以参考以下典型场景示例。 您也可以使用获取策略模板及自定义策略配置。 示例中假设bucket名为mybucket。
授权子用户某个bucket的完全管理权限(使用控制台管理)
{
"accesscontrollist": [
{
"service": "bce:bos",
"region": "*",
"effect": "allow",
"permission": [
"full_control"
],
"resource": [
"mybucket",
"mybucket/*"
]
},
{
"service": "bce:bos",
"region": "*",
"effect": "allow",
"permission": [
"listbuckets"
],
"resource": [
"*"
]
}
]
}
注意:
- resource字段需要同时写mybucket和mybucket/*。
- 如果您希望通过控制台管理某个bucket,那还需要有listbuckets的权限,不然bucket列表是打不开的。
- 子用户支持实现跨账号资源授权。比如这里的mybucket可以是其他账号下的资源。假设这里有两个账号,账号a下有mybucket,账号b下有个子用户。账号a可以首先通过更新bucket权限来把mybucket授权给账号b来使用。然后账号b可以创建一个自定义策略来进一步把管理mybucket的权限授予子用户。
授权子用户某个bucket的完全管理权限(不使用控制台管理和bos桌面)
{
"accesscontrollist": [
{
"service": "bce:bos",
"region": "*",
"effect": "allow",
"permission": [
"full_control"
],
"resource": [
"mybucket",
"mybucket/*"
]
}
]
}
注意:
- resource字段需要同时写mybucket和mybucket/*。
- 如果不通过控制台来管理bucket,则无需开放listbuckets权限。您可以直接通过bos周边工具、sdk来使用bos服务。
授权子用户对某个prefix(目录)的只读权限
假设某bucket用于存放照片,照片按照拍摄地点存放,每个拍摄地点下有年份子目录。现在需要授予子用户读取mybucket/shanghai/2013/目录的只读权限。目录结构如下:
mybucket //bucket
|-- beijing
| |--2010
| |--2011
|-- shanghai
| |--2012
| |--2013 //授予此目录的只读权限
|--shenzhen
|--2014
|--2015
假设子用户已经知道所有文件的路径,不需要列出文件的权限:
{
"accesscontrollist": [
{
"service": "bce:bos",
"region": "*",
"effect": "allow",
"permission": [
"read"
],
"resource": [
"mybucket/shanghai/2013/*"
]
}
]
}
其他说明:
- 若子用户需使用bos控制台上传文件,您不仅需要完成对应操作授权,还需设置子用户访问方式为【编程访问】与【控制台密码访问】,否则将导致文件上传失败。