在AWS CLI中,可以通过以下命令获取新的临时凭证:
aws sts assume-role --role-arn --role-session-name
其中,
是要获取临时凭证的角色ARN,
是用于标识会话的名称。
在AWS SDK中,可以使用AssumeRole
操作获取新的临时凭证。例如,在Java中,可以使用以下代码:
AWSSecurityTokenService sts = AWSSecurityTokenServiceClientBuilder.standard()
.withCredentials(DefaultAWSCredentialsProviderChain.getInstance())
.build();
AssumeRoleRequest request = new AssumeRoleRequest()
.withRoleArn("")
.withRoleSessionName("");
AssumeRoleResult response = sts.assumeRole(request);
Credentials credentials = response.getCredentials();
AWSCredentialsProvider credentialsProvider = new AWSStaticCredentialsProvider(
new BasicSessionCredentials(
credentials.getAccessKeyId(),
credentials.getSecretAccessKey(),
credentials.getSessionToken()
)
);
AmazonEventBridge eventBridge = AmazonEventBridgeClientBuilder.standard()
.withCredentials(credentialsProvider)
.build();
// 使用eventBridge操作AWS EventBridge
在这个例子中,
和
的含义与上面相同。assumeRole
操作返回的AssumeRoleResult
包含了新的临时凭证,包括访问密钥ID、秘密访问密钥和会话令牌。使用这些凭证创建一个AWSStaticCredentialsProvider
,然后将其传递给AmazonEventBridgeClientBuilder
。