博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RAM STS 创建和使用
阅读量:5966 次
发布时间:2019-06-19

本文共 2463 字,大约阅读时间需要 8 分钟。

第一步:创建空的 RAM 子账号 testaliyun

1

第二步:创建角色 xueba

2

3

4

第三步:创建一个访问 OSS 策略,xuebajun

5

策略请改成您自己的,我这个策略的效果就是,能够上传、下载、list 分片、中断分片上传,其他策略请参考我的 RAM 合集文章{  "Version": "1",  "Statement": [    {      "Effect": "Allow",      "Action": [        "oss:ListParts",        "oss:AbortMultipartUpload",        "oss:PutObject",        "oss:GetObject"      ],      "Resource": [        "acs:oss:*:*:testbucket"      ],      {        "Effect": "Allow",        "Action": [          "oss:ListParts",          "oss:AbortMultipartUpload",          "oss:PutObject",          "oss:GetObject"        ],        "Resource": [          "acs:oss:*:*:testbucket/*"        ]      }    }  ]}

第四步:最后给 RAM 账号 testaliyun 授权一个调用角色的权限,就可以调用角色 xueba 了。

image

生成 STS 代码

提供一段 java 请求 STS 的方法可以参考

package oss;import com.aliyun.oss.ClientConfiguration;import com.aliyuncs.DefaultAcsClient;import com.aliyuncs.exceptions.ClientException;import com.aliyuncs.http.MethodType;import com.aliyuncs.http.ProtocolType;import com.aliyuncs.profile.DefaultProfile;import com.aliyuncs.profile.IClientProfile;import com.aliyuncs.sts.model.v20150401.AssumeRoleRequest;import com.aliyuncs.sts.model.v20150401.AssumeRoleResponse;public class AssumeRole {    /*     * 描述:生成 STS 的方式上传     *      */    public void MakeSTSToken(String accessKeyId, String accessKeySecret, String roleArn,String roleName) throws ClientException {        ClientConfiguration conf = new ClientConfiguration();        conf.setMaxConnections(200);        IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);        DefaultAcsClient client = new DefaultAcsClient(profile);        AssumeRoleResponse response = assumeRole(client, roleArn,roleName);        AssumeRoleResponse.Credentials credentials = response.getCredentials();        System.out.println(credentials.getAccessKeyId() + "\n" + credentials.getAccessKeySecret() + "\n"                + credentials.getSecurityToken() + "\n" + credentials.getExpiration());    }    private static AssumeRoleResponse assumeRole(DefaultAcsClient client, String roleArn,String roleName) throws ClientException {        final AssumeRoleRequest request = new AssumeRoleRequest();        request.setVersion("2015-04-01");        request.setMethod(MethodType.POST);        request.setProtocol(ProtocolType.HTTPS);        request.setDurationSeconds(3600L);        request.setRoleArn(roleArn);        request.setRoleSessionName(roleName);        return client.getAcsResponse(request);    }}

转载地址:http://shtax.baihongyu.com/

你可能感兴趣的文章
Shell编程基础
查看>>
Shell之Sed常用用法
查看>>
3.1
查看>>
校验表单如何摆脱 if else ?
查看>>
<气场>读书笔记
查看>>
Centos下基于Hadoop安装Spark(分布式)
查看>>
3D地图的定时高亮和点击事件(基于echarts)
查看>>
mysql开启binlog
查看>>
设置Eclipse编码方式
查看>>
分布式系统唯一ID生成方案汇总【转】
查看>>
并查集hdu1232
查看>>
Mysql 监视工具
查看>>
从前后端分离到GraphQL,携程如何用Node实现?\n
查看>>
Linux Namespace系列(09):利用Namespace创建一个简单可用的容器
查看>>
博客搬家了
查看>>
Python中使用ElementTree解析xml
查看>>
jquery 操作iframe、frameset
查看>>
解决vim中不能使用小键盘
查看>>
jenkins权限管理,实现不同用户组显示对应视图views中不同的jobs
查看>>
我的友情链接
查看>>