190
云计算
负载均衡
产品简介
产品价格
快速入门
用户指南
实践操作
常见问题
购买指南
云服务器
产品简介
计费规则
购买指导
控制台使用指南
常见问题
云数据库
产品简介
计费规则
购买指导
快速入门
连接实例
控制台使用指南
对象存储
产品简介
控制台使用指南
程序员百科
Python
天翼云对象存储(融合版)数据安全教程-STS角色管理

产品推荐:

1、安全稳定的云服务器租用,2核/2G/5M仅37元,点击抢购>>>

2、高防物理服务器20核/16G/50M/500G防御仅350元,点击抢购>>>

3、百度智能建站(五合一网站)仅880元/年,点击抢购>>> 模板建站(PC+手机站)仅480元/年,点击抢购>>>

4、阿里云服务器2核2G3M仅99元/年、2核4G5M仅199元/年,新老同享,点击抢购>>> 

5、腾讯云服务器2核2G4M仅99元/年、新老同享,点击抢购>>>   



点击这里注册天翼云特邀VIP帐号,立即体验天翼云对象存储>>>


天翼云对象存储(融合版)数据安全教程-STS角色管理


介绍配置STS角色管理的具体步骤。

对象存储(融合版)提供STS角色管理功能,无需向临时用户透露您的长期密钥,您可以为临时用户颁发一个自定义时效和权限的访问凭证,使您的资源访问更加安全。

温馨提示:使用STS授权访问时,请务必按照业务情况,以最细粒度的权限原则进行授权,避免放大临时用户的权限,保证资源访问安全。

目前开放本功能的区域:天津资源池1区,江西资源池1区,陕西资源池1区,贵州资源池1区,河北资源池1区,内蒙古资源池1区,广东资源池1区,山西资源池1区,云南资源池1区,吉林资源池1区。

通过控制台创建STS角色

  1. 进入对象存储控制台,进入【角色管理】 菜单,点击【添加角色】,进行角色添加。

    image.png

  2. 在添加角色弹窗,填写角色名称、选择受信实体、存储区域、授权资源后,完成创建。

    image.png

获取角色ARN信息

  1. 进入对象存储控制台,进入【角色管理】 菜单。

    image.png

  2. 找到对应的角色,点击操作列的【查看角色】按钮。

    image.png

  3. 进入角色详情页面,可获取对应的arn信息,用以获取STS临时密钥。

    image.png

获取STS临时密钥

获取STS临时密钥,具体可参照如下java示例:

// STS endPoint

String endPoint = "";

// 在对象存储控制台访问密钥AccessKey和SecretKey。

String accessKey = "";

String secretKey = "";

// 填写步骤一获取的角色ARN。

String roleArn = "";

// 设置临时访问凭证的名称.

String roleSessionName = "";

// 设置 Policy 允许上传对象

String policy = "{"Version":"2012-10-17"," + ""Statement":[" + "{"Effect":"Allow","

            + "\"Action\":[\"s3:PutObject\"],"

            + "\"Resource\":[\"arn:aws:s3:::<bucket-name>/*\"]}" + "]}";

// 创建STS Client

BasicAWSCredentials basicAWSCredentials = new BasicAWSCredentials(accessKey, secretKey);

AwsClientBuilder.EndpointConfiguration endpointConfiguration = new AwsClientBuilder.EndpointConfiguration(endPoint, "");

AWSSecurityTokenService stsClient = AWSSecurityTokenServiceClientBuilder.standard()

    .withCredentials(new AWSStaticCredentialsProvider(basicAWSCredentials))

    .withEndpointConfiguration(endpointConfiguration)

    .build();

AssumeRoleRequest assumeRoleRequest = new AssumeRoleRequest();

assumeRoleRequest.setRoleArn(roleArn);

assumeRoleRequest.setRoleSessionName(roleSessionName);

assumeRoleRequest.setPolicy(policy);

AssumeRoleResult assumeRoleRes = stsClient.assumeRole(assumeRoleRequest);

Credentials stsCredentials = assumeRoleRes.getCredentials();

System.out.println("Expiration: " + stsCredentials.getExpiration());

System.out.println("Access Key Id: " + stsCredentials.getAccessKeyId());

System.out.println("Access Key Secret: " + stsCredentials.getSecretAccessKey());

System.out.println("Security Token: " + stsCredentials.getSessionToken());

步骤三:通过临时密钥访问对象存储资源

// 从AssumeRole获取AccessKeyId,SecretAccessKey与SessionToken,创建S3 Client

BasicSessionCredentials basicSessionCredentials = new BasicSessionCredentials(stsCredentials.getAccessKeyId(),

	stsCredentials.getSecretAccessKey(), stsCredentials.getSessionToken());

AmazonS3 s3 = AmazonS3ClientBuilder.standard()

	.withCredentials(new AWSStaticCredentialsProvider(basicSessionCredentials))

	.withEndpointConfiguration(endpointConfiguration).withChunkedEncodingDisabled(true).build();

// 上传对象至桶

PutObjectResult result = s3.putObject("", "", new File("/path/to/file"));

System.out.println(result);


这条帮助是否解决了您的问题? 已解决 未解决

提交成功!非常感谢您的反馈,我们会继续努力做到更好! 很抱歉未能解决您的疑问。我们已收到您的反馈意见,同时会及时作出反馈处理!