我有一个AWS账户(id:111111
),并且创建了ARN角色(aws id:arn:aws:iam::222222:role/developenv
)。
在AWS CLI中,我可以使用222222
访问在id --profile
中创建的资源。但是我不确定如何在Java中实现访问S3的功能。
我知道一种方法是使用临时凭证:
AssumeRoleRequest roleRequest = new AssumeRoleRequest()
.withRoleArn(roleARN)
.withRoleSessionName(roleSessionName);
stsClient.assumeRole(roleRequest);
GetSessionTokenRequest getSessionTokenRequest = new GetSessionTokenRequest();
getSessionTokenRequest.setDurationSeconds(7200);
我的问题是:是否有一种方法可以在不要求临时凭证的情况下访问帐户222222
中创建的存储桶?
答案 0 :(得分:1)
您使用的是正确的方法。
IAM角色本身没有凭据。相反,IAM用户可以假定 IAM角色,该角色将提供具有与该角色关联的权限的临时凭据。
在AWS CLI配置文件中指定角色时,CLI实际上代表您调用AssumeRole
。这些凭据最多可以保持 12小时的有效期。
答案 1 :(得分:0)
特定于S3,可以绕过临时凭据机制,并永久允许另一个帐户中的另一个角色访问存储桶。请按照https://aws.amazon.com/premiumsupport/knowledge-center/cross-account-access-s3/启用此功能。