临时授权访问OBS
场景介绍
本案例介绍如何使用临时访问密钥(临时AK/SK和securitytoken),通过临时授权的方式访问OBS。
假设您希望IAM用户(用户名:APPServer)可以访问桶hi-company的APPClient文件夹,并希望申请到两个不同的临时访问密钥分发给终端APP:APP-1和APP-2,其中APP-1仅能访问APPClient/APP-1下的文件,APP-2仅能访问APPClient/APP-2下的文件。
配置步骤
- 使用账号登录华为云,在右上角单击“控制台”。
- 在控制台页面,鼠标移动至右上方的用户名,在下拉列表中选择“统一身份认证”。
- 创建一个IAM用户:APPServer。创建步骤请参见创建IAM用户。
- 创建允许访问桶hi-company中APPClient文件夹的自定义策略。
- 在左侧导航窗格中,单击“权限管理”>“权限”>“创建自定义策略”。
- 配置自定义策略参数。
在使用IAM权限之前需明确用户所需要的权限集合,IAM用户只拥有配置的策略所对应的权限。在本案例中APPServer只拥有APPClient文件夹下对象的所有操作权限。
图1 配置自定义策略
表1 自定义策略参数配置说明 参数
说明
策略名称
输入自定义策略的名称
策略配置方式
根据使用习惯进行选择,此处以“JSON视图”为例
策略内容
{ "Version": "1.1", "Statement": [ { "Action": [ "obs:object:*" ], "Resource": [ "obs:*:*:object:hi-company/APPClient/*" ], "Effect": "Allow" } ] }
作用范围
默认为“全局级服务”
- 单击“确定”,完成自定义策略创建。
- 创建用户组并授权。
按照IAM文档指导,将前面步骤创建的自定义策略添加到用户组中。
- 将需要授权的IAM用户(APPServer)加入到创建的用户组中,授权完成。
由于缓存的存在,授予OBS相关的策略后,大概需要等待10~15分钟策略才能生效。
- IAM用户(APPServer)为终端APP-1和APP-2获取临时访问密钥(临时AK/SK和securitytoken)。
为获取具有不同权限的临时访问密钥,需设置临时策略,设置方式为添加请求体中的policy参数,可参考获取临时AK/SK和securitytoken。
下面将给出获取临时访问密钥的请求样例,其中临时策略加粗表示。
为终端APP-1获取临时访问密钥的请求示例如下:
{ "auth": { "identity": { "policy": { "Version": "1.1", "Statement": [ { "Action": [ "obs:object:*" ], "Resource": [ "obs:*:*:object:hi-company/APPClient/APP-1/*" ], "Effect": "Allow" } ] }, "token": { "duration-seconds": 900 }, "methods": [ "token" ] } } }
为终端APP-2获取临时访问密钥的请求示例如下:
{ "auth": { "identity": { "policy": { "Version": "1.1", "Statement": [ { "Action": [ "obs:object:*" ], "Resource": [ "obs:*:*:object:hi-company/APPClient/APP-2/*" ], "Effect": "Allow" } ] }, "token": { "duration-seconds": 900 }, "methods": [ "token" ] } } }
验证
终端APP-1和APP-2获取对应的临时访问密钥后,可使用OBS API或SDK来访问OBS,APP-1只能访问APPClient/APP-1下的文件,APP-2只能访问APPClient/APP-2下的文件。