static AWSCredentialsProvider createCredentials()

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();
    }