RAM STS 创建和使用-阿里云开发者社区

开发者社区> 张医博> 正文

RAM STS 创建和使用

简介: 第一步:创建空的 RAM 子账号 testaliyun 第二步:创建角色 xueba 第三步:创建一个访问 OSS 策略,xuebajun 策略请改成您自己的,我这个策略的效果就是,能够上传、下载、list 分片、中断分片上传,其他策略请参考我的 RAM 合集文章 { "Vers.
+关注继续查看

第一步:创建空的 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);
    }
}

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Framework的创建与合并
由于.a不能单独使用,必须要配合.h头文件,而且没有包含资源文件,所以用.framework就是更好的选择了。 iOS 8有了新的方式创建Framework,不过创建的framework是embedded framework,不能兼容iOS 8以下的版本,所以在现阶段要兼容iOS 7和iOS 8的话,还是只能用以前的方式来创建。
654 0
iOS中 Framework静态库的创建和使用遇到的那些坑 韩俊强的博客
前言 网上关于Framework制作的教程数不胜数,然而都过于陈旧,最新的也是使用Xcode7的教程,而且有些设置也只给出步骤,并没有给出原因,而且按照有些教程制作出的framework还有些问题,所以我把自己制作framework的过程记录下来,并且使用的是最新的Xcode8环境。
1147 0
EntityFramework之数据库以及表基本创建(一)
前言 之前有学过EF一段时间那时EF才4.0似乎还不太稳定,而现在EF都已7.0版本,同时AspNet Identity都与此大有关联,看来是大势所趋于是开始学习EF,在学EF过程中也遇到一些小问题,特此录下,以备忘! 数据库和表基本创建 为了更好的循序渐进稍微概括下典型创建EF Code F...
998 0
codeblocks创建和使用静态库(C语言)
静态库  (扩展名为 .a 或 .lib) 是包含函数的文件,用于在link阶段整合执行程序,动态链接库(扩展名  .dll)是不在link阶段整合进执行程序中的。 DLL文件在执行阶段动态调用 下面我们将用免费的开发工具CodeBocks开发静态库 创建静态库 启动Codeblocks并创建一个类型为 "Static Library" (File/New/Project/Static Library/Go)的项目。
943 0
Frame - 快速创建高品质的 Web 应用原型
  Frame 是一个让你够能够快速创建高品质的网站或应用程序产品原型的工具。你上传的图片将被包裹在真实的设备环境中。它是一个用于创建宣传资料的专业工具。Frame 完全免费供给商业和个人使用。他们也正探索一种可能性,增加额外的功能给那些正在寻找特色功能的用户,但没有计划立即开始收费。
576 0
+关注
张医博
喜欢钻研新的语言,动手实践自己想要学会的知识。
115
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载