Clément Schanen

Sécurité, identité et conformitéService global

IAM

Identity and Access Management

Permet de créer des utilisateurs et de leur assigner des permissions afin d’accéder aux ressources AWS

Policy Documents

Document JSON permettant de définir les permissions :

  • version (obligatoire)
  • tableau de statements
    • Effet (Allow/Deny)
    • Action - liste des actions possibles
    • Ressource - ARN de la ressource à laquelle l’action est liée

Il est possible d’utiliser des wildcards (*) dans les champs Action et Ressource

Types de policies :

  • Identity-based: attachées à une identité IAM donc un utilisateur (mauvaise pratique), groupe ou rôle
  • Ressource-based: attachées directement à une ressource AWS (bucket S3 par exemple)

Dans un Policy Document, un Deny explicite est prioritaire par rapport à un Allow global

Trust Policies

Un rôle IAM comporte une trust policy, qui détermine qui a le droit d’assumer ce rôle. Elle est définie via le champ Principal.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": { "Service": "lambda.amazonaws.com" },
      "Action": "sts:AssumeRole"
    }
  ]
}

Identifiants permanents

Les identifiants sont permanents car il n’y a pas de mécanisme automatique pour changer le mot de passe et des clés

Users: personne physique (pas de partage de compte)

Groups: fonction (contient des utilisateurs)

Roles: utilisation interne de AWS

Les utilisateurs héritent des permissions de leurs groupes

Les nouveaux utilisateurs n’ont pas de permission par défaut

Access key id et Secret access key permettent une connexion via le CLI

Bonnes pratiques

  • Appliquer le principe du moindre privilège : ajouter le minimum de permissions possibles
  • Sécuriser le compte root en activant le MFA
  • Activer les logs CloudTrail
  • Utiliser les policies managées autant que possible