我必须为 S3 中的文件生成只读和只写令牌。
到目前为止我尝试了什么:
创建一个对引用中的存储桶具有读写访问权限的 IAM 角色
创建 STS 客户端
承担 STS 客户端在步骤 #1 中创建的 IAM 角色
使用 sts 客户端生成凭据
这是做什么的
让用户使用令牌访问 S3 中的文件
但这种访问不限于只读或只写
此外,如果 IAM 角色可以访问更多存储桶,令牌将访问所有存储桶
创建STS客户端
AWSSecurityTokenServiceClient sts_client = (AWSSecurityTokenServiceClient) AWSSecurityTokenServiceClientBuilder.standard() .withRegion(Regions.DEFAULT_REGION).build();
创建代入角色请求
AssumeRoleRequest assumeRoleRequest = new AssumeRoleRequest() .withRoleArn("arn:aws:iam::123456789123:role/iam-role-name") .withDurationSeconds(7200) .withRoleSessionName("session-role-"+System.currentTimeMillis());
生成令牌请求
GetSessionTokenRequest session_token_request = new GetSessionTokenRequest();
生成代币
GetSessionTokenResult session_token_result = sts_client.getSessionToken(session_token_request);
创建凭据
Credentials session_creds = session_token_result.getCredentials();
创建基本凭据
BasicSessionCredentials sessionCredentials = new BasicSessionCredentials( session_creds.getAccessKeyId(), session_creds.getSecretAccessKey(), session_creds.getSessionToken());
期待
能够生成只读和只写令牌
能够生成路径特定的令牌
令牌仅限于引用中的资源,而不是 IAM 角色中附加的所有存储桶
慕标5832272
湖上湖
相关分类