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
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)
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
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