in aws-core-common/src/main/java/jetbrains/buildServer/util/amazon/AWSCommonParams.java [338:370]
private static AwsCredentialsProvider createSessionCredentialsProvider(Map<String, String> params) throws AWSException {
final String iamRoleARN = getIamRoleArnParam(params);
final String externalID = getExternalId(params);
final String sessionName = getStringOrDefault(params.get(TEMP_CREDENTIALS_SESSION_NAME_PARAM), TEMP_CREDENTIALS_SESSION_NAME_DEFAULT_PREFIX + new Date().getTime());
final int sessionDuration = getIntegerOrDefault(params.get(TEMP_CREDENTIALS_DURATION_SEC_PARAM), TEMP_CREDENTIALS_DURATION_SEC_DEFAULT);
try {
if (StringUtil.isEmptyOrSpaces(iamRoleARN)){
return StsGetSessionTokenCredentialsProvider.builder()
.stsClient(createSecurityTokenService(params))
.build();
} else {
AssumeRoleRequest.Builder reqBuilder = AssumeRoleRequest.builder()
.roleArn(iamRoleARN)
.roleSessionName(sessionName)
.durationSeconds(sessionDuration);
if (StringUtil.isNotEmpty(externalID)) {
reqBuilder.externalId(externalID);
}
AssumeRoleRequest assumeRoleRequest = reqBuilder.build();
StsAssumeRoleCredentialsProvider.Builder builder = StsAssumeRoleCredentialsProvider.builder()
.refreshRequest(assumeRoleRequest)
.stsClient(createSecurityTokenService(params));
return builder.build();
}
} catch (Exception e) {
throw new AWSException(e);
}
}