in hq/app/logic/IamUnrecognisedUsers.scala [99:121]
def disableAccountAccessKeys(
accountUnrecognisedKeys: AccountUnrecognisedAccessKeys,
iamClients: AwsClients[IamAsyncClient]
)(implicit ec: ExecutionContext): Attempt[List[UpdateAccessKeyResponse]] = {
val AccountUnrecognisedAccessKeys(account, accessKeys) = accountUnrecognisedKeys
val activeAccessKeys = accessKeys.filter(_.status == CredentialActive)
val disableKeysAttempt = Attempt.traverse(activeAccessKeys)(key =>
disableAccessKey(account, key.username, key.accessKeyId, iamClients)
)
disableKeysAttempt.tap(_.fold(
{ failure =>
logger.error(s"Failed to disable access key: ${failure.logMessage}")
Cloudwatch.putIamDisableAccessKeyMetric(ReaperExecutionStatus.failure)
},
{ updateAccessKeyResults =>
logger.info(s"Attempt to disable access keys was successful. ${updateAccessKeyResults.length} key(s) were disabled in ${account.name}.")
if(updateAccessKeyResults.nonEmpty) {
Cloudwatch.putIamDisableAccessKeyMetric(ReaperExecutionStatus.success)
}
}
))
}