in src/main/java/com/amazon/kinesis/kafka/IAMUtility.java [47:64]
static AWSCredentialsProvider createCredentials(String regionName, String roleARN, String roleExternalID, String roleSessionName, int roleDurationSeconds) {
if (StringUtils.isNullOrEmpty(roleARN))
return new DefaultAWSCredentialsProviderChain();
// Use STS to assume a role if one was given
final AWSSecurityTokenService stsClient = AWSSecurityTokenServiceClientBuilder.standard()
.withCredentials(new DefaultAWSCredentialsProviderChain())
.withRegion(regionName)
.build();
STSAssumeRoleSessionCredentialsProvider.Builder providerBuilder = new STSAssumeRoleSessionCredentialsProvider.Builder(roleARN, roleSessionName).withStsClient(stsClient);
if (!StringUtils.isNullOrEmpty(roleExternalID))
providerBuilder = providerBuilder.withExternalId(roleExternalID);
if (roleDurationSeconds > 0)
providerBuilder = providerBuilder.withRoleSessionDurationSeconds(roleDurationSeconds);
return providerBuilder.build();
}