in src/main/java/com/amazon/inspector/jenkins/amazoninspectorbuildstep/models/requests/SdkRequests.java [90:122]
private AwsCredentialsProvider getCredentialProvider(String workingProfileName, String workingOidc,
AmazonWebServicesCredentials workingCredential) {
StsClient stsClient = StsClient.builder().region(Region.of(region)).build();
if (workingCredential != null) {
AmazonInspectorBuilder.logger.println("Using explicitly provided AWS credentials to authenticate.");
return StaticCredentialsProvider.create(createRawCredentialProvider(workingCredential).resolveCredentials());
} else if (roleArn != null && !roleArn.isEmpty() && workingOidc != null && !workingOidc.isEmpty()) {
AmazonInspectorBuilder.logger.println("Using OAuth token and role to authenticate.");
stsClient = StsClient.builder().credentialsProvider(createRawCredentialProvider(workingCredential))
.region(Region.of(region)).build();
AssumeRoleWithWebIdentityRequest webIdentityRequest = AssumeRoleWithWebIdentityRequest.builder()
.roleArn(roleArn)
.roleSessionName("inspectorscan")
.webIdentityToken(workingOidc)
.build();
stsClient.assumeRoleWithWebIdentity(webIdentityRequest);
return StsAssumeRoleWithWebIdentityCredentialsProvider.builder().stsClient(stsClient).refreshRequest(webIdentityRequest).build();
} else if (roleArn != null && !roleArn.isEmpty()) {
AmazonInspectorBuilder.logger.println("Authenticating to STS via a role and default credential provider chain.");
return StsAssumeRoleCredentialsProvider.builder().stsClient(stsClient).refreshRequest(AssumeRoleRequest.builder()
.roleArn(roleArn).roleSessionName("inspectorscan").build()).build();
} else if (workingProfileName != null && !workingProfileName.isEmpty()) {
AmazonInspectorBuilder.logger.println(
String.format("AWS Credential and role not provided, authenticating using \"%s\" as profile name.",
workingProfileName)
);
return ProfileCredentialsProvider.builder().profileName(workingProfileName).build();
} else {
AmazonInspectorBuilder.logger.println("Using default credential provider chain to authenticate.");
return DefaultCredentialsProvider.create();
}
}