in app/conf/Config.scala [19:41]
def roleArn(awsAccountAuthConfigKey: String, config: Configuration): String =
requiredString(config, s"federation.$awsAccountAuthConfigKey.aws.roleArn")
// extract aws account ID from Role ARN
private val AwsAccountId = """arn:aws:iam::(\d+):role/.+""".r
def accountNumber(
awsAccountAuthConfigKey: String,
config: Configuration
): Try[String] = {
for {
role <- Try(roleArn(awsAccountAuthConfigKey, config))
accountNumber <- role match {
case AwsAccountId(accountId) => Success(accountId)
case _ =>
Failure(
new JanusConfigurationException(
s"Could not extract account number from role ARN $role",
s"federation.$awsAccountAuthConfigKey.aws.roleArn"
)
)
}
} yield accountNumber
}