STS临时授权访问OSS

avatar 2020年5月20日18:09:18 评论 1,489 次浏览

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   

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: