飘易博客(作者:Flymorn)
订阅《飘易博客》RSS,第一时间查看最新文章!
飘易首页 | 留言本 | 关于我 | 订阅Feed

阿里云OSS对象存储STS授权流程及CDN配置

Author:飘易 Source:飘易
Category:网络技术 PostTime:2026/4/10 19:35:57
正 文:

阿里云的OSS对象存储有很多的应用场景,比起自建文件存储服务器,功能更强大,使用更方便。一般使用OSS建议用STS授权的方式去最小化授权,为了用户的使用体验,客户端一般需要直传OSS服务器,尽量要避免先上传到自身的服务器,然后再服务器上再上传到OSS服务器的中转方式。

一、先创建RAM子用户

阿里云后台身份管理-用户,创建一个用户(需要短信验证)https://ram.console.aliyun.com/ 

下面勾选使用永久 AccessKey 访问:


创建用户后,获取该用户对应的AccessKey ID和AccessKey Secret,记录保存 。

二、创建角色

创建角色,STS需要扮演角色。角色名称:role-sts

记录该角色的ARN,比如:acs:ram::188000217311:role/role-sts

三、权限管理-权限策略

权限策略需要创建2个策略:

一个叫 policy-sts,策略内容为(即允许oss的所有操作):

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "oss:*",
            "Resource": "*"
        }
    ]
}

另一个权限策略叫 policy-oss-对应的bucket名(如policy-oss-myai),策略内容为(仅允许对指定的bucket操作):

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "oss:*",
            "Resource": [
                "acs:oss:*:1908326626:myai",
                "acs:oss:*:1908326626:myai/*"
            ]
        }
    ]
}

上面倒数第2个一长串数字 1908326626 ,其实是阿里云账号的数字ID,上面创建用户之后的登录账号:audi@144397217311.onaliyun.com,@符号之后的就是这串数字ID了。

四、授权

1、用户授权

回到用户列表,点击创建的用户后面的操作按钮:“新增授权”

添加2个权限:

  • policy-oss-myai:自定义策略(仅允许对指定的bucket操作

  • AliyunSTSAssumeRoleAccess:系统策略-调用STS服务AssumeRole接口的权限


提醒:千万别忘记这个系统策略 AliyunSTSAssumeRoleAccess ,它是用于STS 角色扮演的,否则前后端分离代码无权限调用STS方式哦!


2、角色授权

回到角色列表,点击角色 role-sts 后面的操作按钮:“新增授权”

添加1个权限:

  • policy-sts:自定义策略(允许操作所有OSS)

因为扮演的这个角色,也需要有操作OSS的权限。


五、OSS跨域设置

1、跨域设置

来源、允许headers均设置:*,暴露headers:ETag,勾选methods:GET\POST\PUT\DELETE\HEAD,缓存时间:1800秒或更长,如下图:

2、OSS设为公共读。

设为公共读,写还是私有的,这样方便客户端读取。


六、程序对接

程序对接,一般客户端先去服务器拉取STS token,然后用STS token去直传到OSS,提高用户体验。

对于Laravel、Lumen程序来说,composer安装:

composer require aliyuncs/oss-sdk-php:~2.0
composer require alibabacloud/sts
composer require alibabacloud/client:^1.5


依赖:

安装:composer require aliyuncs/oss-sdk-php:~2.0
  - Installing aliyuncs/oss-sdk-php (v2.7.2): Extracting archive

安装:composer require alibabacloud/client:^1.5
  - Installing mtdowling/jmespath.php (2.7.0): Extracting archive
  - Installing psr/http-message (2.0): Extracting archive
  - Installing psr/http-client (1.0.3): Extracting archive
  - Installing ralouphie/getallheaders (3.0.3): Extracting archive
  - Installing psr/http-factory (1.0.2): Extracting archive
  - Installing guzzlehttp/psr7 (2.8.0): Extracting archive
  - Installing guzzlehttp/promises (2.3.0): Extracting archive
  - Installing guzzlehttp/guzzle (7.10.0): Extracting archive
  - Installing clagiordano/weblibs-configmanager (v1.2.0): Extracting archive
  - Installing adbario/php-dot-notation (2.5.0): Extracting archive
  - Installing alibabacloud/client (1.5.32): Extracting archive

安装:composer require alibabacloud/sts
  - Installing alibabacloud/sts (1.8.2294): Extracting archive

剩下的事,就是和程序去对接了。


作者:飘易
来源:飘易
版权所有。转载时必须以链接形式注明作者和原始出处及本声明。
上一篇:没有了
下一篇:PHP加密混淆方案对比选型 & YAK Pro Php Obfuscator介绍
0条评论 “阿里云OSS对象存储STS授权流程及CDN配置”
No Comment .
发表评论
名称(*必填)
邮件(选填)
网站(选填)

记住我,下次回复时不用重新输入个人信息
目 录
飘易搜索
最新文章
相关文章
随机文章
© 2007-2030 飘易博客 Www.Piaoyi.Org 版权所有 Sitemap