sts临时授权访问oss的使用场景比较多,例如我们的app需要访问oss信息,oss中的内容又比较隐私,就只能通过AccessKey密钥进行连接,但是单独的访问oss连接的密钥是一个长期密钥,一旦被不怀好意的获取就可以对oss随意操作,这样太不安全了。所以,出现了sts,sts可以给客户端生成一个短期的密钥,时间一过就会自动失效,这样就能保证oss的密钥在客户端也不是一个长期的密钥,相对比较安全。下面看看如何使用。
创建oss
首先,我们需要创建一个oss的bucket,权限可以设置只读或者隐私,因为所有的连接都需要通过cdn访问。
创建好oss,并设置一些冗余和读写权限,如果你的资料比较隐私也可以设置一下加密,创建oss后可以针对oss进行授权一个子账号。
在oss中找到刚刚创建的bucket,然后在权限管理中给创建的bucket进行授权,在Bucket授权策略中的设置中,添加授权的子帐户。这样oss的授权就做好了,下面设置sts授权。
STS授权
在授权sts之前,我们需要在创建一个权限策略管理,位置在企业--人员权限管理--授权管理--权限策略管理,创建一个权限策略,如下图:
使用脚本进行授权,脚本内容可以删除,替换成下面的。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "oss:ListParts", "oss:AbortMultipartUpload", "oss:PutObject", "oss:GetObject", "oss:listObjects", "oss:GetBucketReferer", "oss:SetBucketReferer", "oss:DeleteBucket", "oss:CreateBucket", "oss:GetBucketAcl" ], "Resource": [ "acs:oss:*:*:wulaoer", "acs:oss:*:*:wulaoer/*", "acs:oss:*:*:wolf27w", "acs:oss:*:*:wolf27w/*", "acs:oss:*:*:www.wulaoer.org", "acs:oss:*:*:www.wulaoer.org/*" ] } ] }
注意格式,如果有多个Bucket,可以在Resource中继续添加,注意最后一个Bucket后面没有",",而且每个Bucket都做了两个一个是Bucket,一个是针对Bucket下的文件,这里可以写多个,也可以只写一个,不过建议写多个,上面的权限就是sts生成的子账号的一些权限。
RAM角色创建
RAM角色创建是为了使用sts生成一些短期密钥,便于客户端连接,我这里写一个wulaoer的bucket的设置,其它的一样即可。sts权限是子账号添加的,sts授权的临时密钥权限是有权限策略管理中定义的
在RAM角色管理--阿里云帐户---输入角色名称---选择当前帐户--完成,这样RAM角色创建完成,下面针对RAM角色进行授权。
添加权限中添加的是上面创建的权限策略,添加后可以使用子账号生成sts子账号,然后创建密钥。给子账号赋予给上面授权的子帐户添加一下AliyunSTSAssumeRoleAccess、权限策略中的权限,AliyunOSSFullAccess等然后可以测试一下。 https://help.aliyun.com/document_detail/100624.html?spm=a2c4g.11186623.2.10.6195412fCvaWit#concept-xzh-nzk-2gb
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏