Rexact
Cheatsheet

Regex identifiant de clé d'accès AWS (AKIA…)

L'identifiant d'une clé d'accès AWS commence par un préfixe de 4 lettres qui indique le type de ressource : AKIA pour une clé d'accès, ASIA pour une clé temporaire STS, ABIA pour un jeton porteur STS, ACCA pour un identifiant propre à un contexte (guide IAM). Les exemples de la documentation (AKIAIOSFODNN7EXAMPLE) comptent 20 caractères majuscules ou chiffres. La référence d'API IAM, elle, ne fixe que 16 à 128 caractères de type [\w]+ : le suffixe de 16 caractères vient des exemples et des outils de détection. Les quatre outils relus divergent : l'un restreint le suffixe à A-Z et 2-7 et rejette deux exemples officiels (« AKIAI44QH8DHBEXAMPLE »), l'autre oublie ASIA, un troisième accepte les identifiants IAM (AIDA, AGPA…) qui ne sont pas des clés. Voici un motif ancré sur les quatre préfixes documentés, comparé à ces outils. Il s'agit de l'identifiant de la clé, pas de la clé secrète associée.

/^(?:AKIA|ASIA|ABIA|ACCA)[A-Z0-9]{16}$/
passe 23/23 cas

Comparatif des patterns existants

Implémentation

const re = new RegExp("^(?:AKIA|ASIA|ABIA|ACCA)[A-Z0-9]{16}$", "");
re.test(input);

Limites

  • Valide seulement la FORME : ne prouve pas que la clé existe, qu'elle est active ni à quel compte elle appartient. La clé secrète associée (40 caractères en base64) est un autre secret, non couvert ici.
  • AWS ne documente que le préfixe et une longueur de 16 à 128 caractères ([\w]+) : le suffixe de 16 caractères A-Z0-9 est une convention observée dans les exemples de la documentation et les outils de détection, pas une règle publiée. Des clés plus longues, si elles existent, sont rejetées.
  • Le préfixe A3T (accepté par gitleaks, detect-secrets et git-secrets) n'apparaît pas dans le guide IAM : il est rejeté ici. Les identifiants IAM (AIDA, AROA, AGPA, ANPA…) sont des identifiants de ressources, pas des clés d'accès : ils sont rejetés aussi.
  • Motif de validation d'une chaîne isolée (ancré). Pour détecter des clés dans du texte ou du code, retirez les ancres et entourez de \b ; une clé d'exemple de la documentation (…EXAMPLE) est une clé factice, jamais un secret.

Pages liées