private AwsCredentialsProvider getCredentialProvider()

in amazon-inspector-image-scanner/amazon-inspector-image-scanner-agent/src/main/java/com/amazon/inspector/teamcity/requests/SdkRequests.java [80:100]


    private AwsCredentialsProvider getCredentialProvider(String workingProfileName,
                                                         AmazonWebServicesCredentials workingCredential) {
        if (workingCredential != null) {
            publicProgressLogger.message("Using explicitly provided AWS credentials to authenticate.");
            return StaticCredentialsProvider.create(createRawCredentialProvider(workingCredential).resolveCredentials());
        } else if (roleArn != null && !roleArn.isEmpty()) {
            publicProgressLogger.message("Authenticating to STS via a role and default credential provider chain.");
            StsClient stsClient = StsClient.builder().region(Region.of(region)).build();
            return StsAssumeRoleCredentialsProvider.builder().stsClient(stsClient).refreshRequest(AssumeRoleRequest.builder()
                    .roleArn(roleArn).roleSessionName("inspectorscan").build()).build();
        } else if (workingProfileName != null && !workingProfileName.isEmpty()) {
            publicProgressLogger.message(
                    String.format("AWS Credential and role not provided, authenticating using \"%s\" as profile name.",
                            workingProfileName)
            );
            return ProfileCredentialsProvider.builder().profileName(workingProfileName).build();
        } else {
            publicProgressLogger.message("Using default credential provider chain to authenticate.");
            return DefaultCredentialsProvider.create();
        }
    }