1. 创建RAM用户与角色
通过阿里云控制台访问RAM控制台,在用户管理页面创建新RAM用户。需勾选「编程访问」选项生成AccessKey,并为该用户添加AliyunSTSAssumeRoleAccess
策略。随后在角色管理中创建新角色,选择可信实体类型为「阿里云账号」,并绑定需要授权的OSS存储桶策略。
2. 配置STS权限策略
创建自定义策略控制临时令牌的细粒度权限,推荐使用JSON策略文档格式。示例策略包含以下核心要素:
{
Version": "1",
Statement": [{
Effect": "Allow",
Action": ["oss:PutObject"],
Resource": "acs:oss:*:*:bucket-name/*
}]
}
将该策略绑定到RAM角色,确保临时凭证只能执行指定操作。
3. 生成临时安全令牌
通过阿里云SDK调用STS服务生成临时凭证,Java示例代码如下:
DefaultProfile profile = DefaultProfile.getProfile(
cn-hangzhou",
accessKeyId,
accessKeySecret);
IAcsClient client = new DefaultAcsClient(profile);
AssumeRoleRequest request = new AssumeRoleRequest;
request.setRoleArn("acs:ram::1234567890:role/oss-test");
request.setRoleSessionName("client-01");
request.setDurationSeconds(3600L);
AssumeRoleResponse response = client.getAcsResponse(request);
执行后将获得包含AccessKeyId
、AccessKeySecret
和SecurityToken
的响应对象。
4. 集成到应用程序
在客户端应用中集成临时凭证时,建议采用以下方案:
- 服务端生成临时令牌并返回给客户端
- 客户端使用OSS JavaScript SDK初始化客户端:
const client = new OSS({ region: 'oss-cn-hangzhou', accessKeyId: '临时AccessKey', accessKeySecret: '临时Secret', stsToken: 'SecurityToken', bucket: 'bucket-name' });
- 设置客户端有效期应短于令牌有效期
5. 安全配置建议
- 令牌有效期建议设置为15分钟至1小时
- 为不同客户端创建独立角色会话名称
- 定期轮换主账号AccessKey
- 启用OSS服务端日志审计功能
通过STS服务实现临时授权访问机制,既能保障主账号安全,又可精确控制客户端操作权限。开发过程中需注意权限策略的最小化原则和令牌的生命周期管理,建议结合RAM角色与访问控制策略实现多层防护。
本文由阿里云优惠网发布。发布者:编辑员。禁止采集与转载行为,违者必究。出处:https://aliyunyh.com/615952.html
其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。