多用户访问控制
概述
多用户访问控制,主要用于帮助用户管理云账户下资源的访问权限,适用于企业内的不同角色,可以对不同的工作人员赋予使用产品的不同权限,当您的企业存在多用户协同操作资源时,推荐您使用多用户访问控制。
使用场景
- 中大型企业客户:对公司内多个员工授权管理;
- 偏技术型vendor或SAAS的平台商:对代理客户进行资源和权限管理;
- 中小开发者或小企业:添加项目成员或协作者,进行资源管理。
创建用户
-
主账号用户登录后在控制台选择“多用户访问控制”进入用户管理页面。
- 在左侧导航栏点击“用户管理”,在“子用户管理列表”页,点击“新建用户”。
- 在弹出的“新建用户”对话框中,完成填写“用户名”和确认,返回“子用户管理列表”区可以查看到刚刚创建的子用户。
配置策略
CDN支持系统策略和用户自定义策略两种,分别实现CDN的产品级权限和域名级权限控制。
- 系统策略:百度智能云系统为管理资源而预定义的权限集,这类策略可直接为子用户授权,用户只能使用而不能修改。
- 自定义策略:由用户自己创建,更细化的管理资源的权限集,可以针对单个域名配置权限,更加灵活的满足账户对不同用户的差异化权限管理。
系统策略
CDN有CdnReadAccessPolicy、CdnOperateAccessPolicy和CdnFullAccessPolicy三种系统策略,三种系统策略的权限范围说明如下:
策略名称 | 说明 | 备注 |
---|---|---|
CdnReadAccessPolicy | 只读访问百度智能云内容分发网络(CDN)的权限 | CDN 只读策略: - 查看CDN域名 - 查看域名配置 - 查看缓存刷新的操作记录 - 统计分析中数据(除了“WAF防护”“服务月报”功能) |
CdnOperateAccessPolicy | 运维操作百度智能云内容分发网络(CDN)的权限,运维权限包含只读权限。 | CDN运维策略: - CDN修改域名配置 - 刷新缓存 - 日志转储和下载 - IP检测等操作 |
CdnFullAccessPolicy | 管理百度智能云内容分发网络(CDN)的权限,管理权限包含只读和运维权限。 | CDN管理策略: - CDN所有操作权限 - 计费变更 - 添加域名 - 停止域名加速 - 删除域名 |
注:子账户所支持功能的操作步骤均与对应主账户功能的操作步骤相同。
自定义策略
在策略管理 -> 自定义策略中,你可以为你的账户定义业务相关的自定义策略,以实现细粒度地权限管控。
您也可以基于标签为相同类型的资源(加了相同标签的资源)快速构建一条自定义策略,常适用于解决大量不同产品或服务组合授权的问题。
自定义策略的添加有"按策略生成器创建"、"按标签创建"和"按策略语法创建"三种方式,用户可以根据具体的权限设置修改策略内容。具体配置方法可以参见创建自定义策略。
API使用鉴权
子用户使用API有更为细粒度的鉴权控制,需要创建策略语法分配给子用户。以下列出的为需要鉴权的API。下面有策略语法示例(domain/* 表示所有域名,domain/{domainName} 表示某个域名)。
接口名称 | API | 策略语法 permission | 策略语法 resource |
---|---|---|---|
域名列表查询 | GET /v2/domain | QueryDomainList | domain/* |
查询用户名下所有域名 | GET /v2/user/domains | QueryDomainList | domain/* |
创建加速域名 | PUT /v2/domain/{domain} | CreateDomain | domain/* |
启用加速域名 | POST /v2/domain/{domain}?enable | StartDomain | domain/{domainName} |
停用加速域名 | POST /v2/domain/{domain}?disable | StopDomain | domain/{domainName} |
删除加速域名 | DELETE /v2/domain/{domain} | DeleteDomain | domain/{domainName} |
查询加速域名详情 | GET /v2/domain/{domain}/config | QueryDomainConfig | domain/{domainName} |
域名配置设置变更 | PUT /v2/domain/{domain}/config?xxx | UpdateDomain | domain/{domainName} |
增加&修改域名证书 | PUT /v2/{domain}/certificates | UpsertDomainCerts | domain/{domainName} |
查询域名证书 | GET /v2/{domain}/certificates | QueryDomainCerts | domain/{domainName} |
删除域名证书 | DELETE /v2/{domain}/certificates | DeleteDomainCerts | domain/{domainName} |
统计接口 | POST /v2/stat/query | QueryStat | domain/* |
刷新缓存 | POST /v2/cache/purge | PurgeCache | domain/* |
预加载缓存 | POST /v2/cache/prefetch | PrefetchCache | domain/* |
查询刷新状态 | GET /v2/cache/purge | QueryCacheTasks | domain/* |
查询预加载状态 | GET /v2/cache/prefetch | QueryCacheTasks | domain/* |
查询操作记录 | GET /v2/cache/records | QueryCacheTasks | domain/* |
查询限额 | GET /v2/cache/quota | QueryQuota | domain/* |
配置开关动态加速服务 | PUT /v2/dsa/ | OpenDSA | domain/* |
查询动态加速域名列表 | GET /v2/dsa/domain | QueryDomainList | domain/* |
配置域名动态加速规则 | PUT /v2/domain/{domain}/config?dsa | UpdateDomain | domain/{domainName} |
获取单个域名日志 | GET /v2/log/{domain}/log | QueryDomainLogs | domain/{domainName} |
获取多个域名日志 | POST /v2/log/list | QueryDomainsLogs | domain/* |
回源IP地址段查询 | GET /v2/nodes/list | QueryNodeList | domain/* |
API授权策略语法举例
- 给某子用户授权域名 a.mydomain.com,b.mydomain.com 配置变更
{
"accessControlList":[
{
"service":"bce:cdn",
"region":"*",
"resource":[
"domain/a.mydomain.com",
"domain/b.mydomain.com"
],
"effect":"Allow",
"permission":[
"UpdateDomain"
]
}
]
}
- 给某子用户授权缓存刷新预热
{
"accessControlList":[
{
"service":"bce:cdn",
"region":"*",
"resource":[
"domain/*"
],
"effect":"Allow",
"permission":[
"PrefetchCache",
"PurgeCache",
"QueryCacheTasks",
"QueryQuota"
]
}
]
}
用户授权
在“用户管理->子用户管理列表页”的对应子用户的“操作”列选择“添加权限”,并为用户选择系统权限或自定义策略进行授权。
说明:如果在不修改已有策略规则的情况下修改某子用户的权限,只能通过删除已有的策略并添加新的策略来实现,不能取消勾选已经添加过的策略权限。
子用户登录
主账号完成对子用户的授权后,可以将链接发送给子用户;子用户可以通过IAM用户登录链接登录主账号的管理控制台,根据被授权的策略对主账户资源进行操作和查看。
基于标签创建自定义策略的典型应用
主用户为子用户A授予可添加域名且自动获得该域名的管理权限
- 主用户规划标签,比如给用户A规划标签 Key: department/Value: 123,并在标签管理中建立对应标签;
-
主用户进入IAM多用户访问控制 -> 策略管理,点击创建策略,选择创建策略的方式为基于标签创建;
- 主用户 填写策略的基本信息,如命名策略为 policy_for_user_A_with_tag123,在权限配置内选择标签 Key: department/Value: 123,选择服务 “内容分发网络 CDN”,选择操作“管理权限”,资源范围默认展示拥有该标签属性的所有资源,点击完成保存;
- 主用户创建子用户A,如UserA,并为UserA授予策略 policy_for_user_A_with_tag123 的权限;
- 子用户UserA 登录控制台,进入CDN,选择域名管理 > 新添加域名,如添加域名为“cloud.test.com”, 在添加“标签”处,默认绑定标签 Key: department/Value: 123,点击完成即完成域名创建,并且子用户UserA 拥有了管理域名 cloud.test.com 权限,且子用户UserA 无其他域名任何权限,如需给子用户UserA 其他域名的访问权限,需要主用户在IAM中额外授权。
主用户为子用户A授予某一类域名的管理权限,且授予另一类域名的查看权限
- 主用户规划标签,比如给用户A规划标签 Key: department/Value: 123,并在标签管理中建立对应标签;
-
主用户进入IAM多用户访问控制 -> 策略管理,点击创建策略,选择创建策略的方式为基于标签创建;
- 主用户 填写策略的基本信息,如命名策略为 policy_for_user_A_with_tag123,在权限配置内选择标签 Key: department/Value: 123,选择服务 “内容分发网络 CDN”,选择操作“管理权限”,资源范围默认展示拥有该标签属性的所有资源,点击完成保存;
- 主用户 创建策略 ReadOnlyPolicy_with_tag456, 在权限配置内选择标签 Key: department/Value: 456,选择服务 “内容分发网络 CDN”,选择操作“只读权限”,资源范围默认展示拥有该标签属性的所有资源,点击完成保存;
- 主用户 创建子用户A,如UserA,并为UserA授予策略 policy_for_user_A_with_tag123 和 ReadOnlyPolicy_with_tag456的权限;
- 子用户UserA 在域名管理列表中,即可看到绑定了标签 Key:department/value:123的域名,也可以看到绑定了标签 Key:department/value:456的域名,但只能修改绑定了标签Key:department/value:123的域名,不能修改绑定了标签 Key:department/value:456的域名。
相关文档
其他操作请参考多用户访问控制。