Zero Trust Cloud · AWS

IAM (moindre privilège)

Borner chaque identité, humaine ou machine, à son strict besoin.

Dans le cloud, l'identité est le vrai périmètre. Le CTF se terminait par l'abus d'une autorisation excessive permettant à un compte d'en créer un autre, administrateur. On ferme cette classe d'erreurs.

Utilisateur analyst : read-only + boundary

L'utilisateur fyc-analyst n'a que des droits de lecture. À cela s'ajoute une permissions boundary, un plafond de droits infranchissable : même si on lui attachait par erreur une policy trop large, la boundary l'empêche de dépasser la lecture seule.

# extrait de la boundary : deny explicite sur toute écriture IAM
statement {
  sid       = "DenyAnyIAMWrite"
  effect    = "Deny"
  actions   = ["iam:*"]
  resources = ["*"]
}

Rôle machine à permission unique

Le rôle attaché à l'EC2 (fyc-ec2-secretsreader) ne peut lire que les secrets dont le nom commence par fyc/, rien d'autre. Si une faille permettait d'en voler les identifiants (ce que l'IMDSv2 empêche déjà), l'attaquant n'hériterait que de ce périmètre minuscule.

actions   = ["secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret"]
resources = ["arn:aws:secretsmanager:eu-west-3:<account>:secret:fyc/*"]

Resource policies restrictives

Les ressources critiques (clés KMS, buckets de logs) portent des politiques de ressources qui n'autorisent que le strict nécessaire, par exemple un refus de toute connexion non chiffrée (aws:SecureTransport = false).

Lien avec le CTF

La combinaison moindre privilège + permissions boundary + rôles dédiés rend impossible l'escalade finale du challenge.

On this page