in magenta-lib/src/main/scala/magenta/tasks/AWS.scala [1095:1132]
def provider(
keyRing: KeyRing,
resources: DeploymentResources
): AwsCredentialsProviderChain =
provider(keyRing, StsDeploymentResources.fromDeploymentResources(resources))
def provider(
keyRing: KeyRing,
resources: StsDeploymentResources
): AwsCredentialsProviderChain = {
val roleProvider: Option[AwsCredentialsProvider] =
keyRing.apiCredentials.get("aws-role").collect {
case credentials: ApiRoleCredentials =>
getRoleCredentialsProvider(credentials.id, resources)
}
val staticProvider: Option[AwsCredentialsProvider] =
keyRing.apiCredentials.get("aws").collect {
case credentials: ApiStaticCredentials =>
StaticCredentialsProvider.create(
AwsBasicCredentials.create(credentials.id, credentials.secret)
)
}
(roleProvider, staticProvider) match {
case (Some(rp), _) =>
logger.info(s"using role provider for deploy id: ${resources.deployId}")
AwsCredentialsProviderChain.builder().credentialsProviders(rp).build()
case (_, Some(sp)) =>
logger.info(
s"using static credentials provider for deploy id: ${resources.deployId}"
)
AwsCredentialsProviderChain.builder().credentialsProviders(sp).build()
case _ =>
throw new IllegalArgumentException(
s"Could not find credentials provider"
)
}
}