TL;DR
L’application de SCPs dans un environnement AWS complexe peut se révéler plus complexe que prévu. En effet, contrairement à Azure, il n’est pas possible d’appliquer en mode Audit ces SCP. Elles sont directement actives et potentiellement sources de blocages. Par conséquent, il est essentiel de bien surveiller leur déploiement, avec l’aide par exemple de Cloudwatch grâce à ce projet OpenSource Safer-scps
Introduction
Les Service Control Policies (SCP) d’AWS sont un outil de gestion des permissions au sein de l’AWS Organizations, permettant aux entreprises de contrôler finement les actions réalisables dans les comptes, sous une organisation. Les SCP agissent comme une couche de restriction supplémentaire qui s’applique aux utilisateurs, rôles et services au sein des comptes AWS, même si ces derniers possèdent des permissions attribuées via IAM (Identity and Access Management). Les SCP permettent aux administrateurs de la plateforme d’imposer des règles de sécurité globales, empêchant, par exemple, des comptes d’utiliser certains services ou de créer des ressources spécifiques, indépendamment des permissions IAM individuelles. Ces SCP peuvent s’appliquer soient à la racine de l’organisation, soient sur une OU soient sur un compte directement. Documentation sur les SCP
Pour surveiller l’action des SCPs en production, le plus simple est de contrôler ce qui se passse dans vos journaux Cloudtrail, afin de détecter l’apparition de potentiel Denied Access. Pour cela, le projet Safer-scps se propose de déployer les règles EventBridge et les Cloudwatch log group et metrics pour faciliter la création de tableau de bord sous Cloudwath. Voyons son déploiement en ligne de commande avec l’aide de AWS CLI.
Déploiement du Cloudformation
Après avoir cloné le repository sur votre ordinateur, utilisez ces commandes:
aws cloudformation create-stack --stack-name safer-scps --template-body file://bus.yml --parameters ParameterKey=OrgId,ParameterValue=VOTREORGIDICI
Pour retrouver la valeur du paramètre en sortie EventBusArn, utilisez cette commande:
aws cloudformation describe-stacks --stack-name safer-scps
Enfin il ne vous reste qu’à lancer la deuxième stack:
aws cloudformation create-stack --stack-name rules
--template-body file://rules.yml
--parameters ParameterKey=EventBusArn,
ParameterValue=arn:aws:events:ca-central-1:VOTRECOMPTEID:event-bus/scp-errors-event-bus
--capabilities CAPABILITY_NAMED_IAM
```
Utilisation de Cloudwatch
Vous avez désormais 2 possibilités sous Cloudwatch. Soit surveillez directement vos logs, en consultant le Log Group /aws/events/scp-error-events
soit de créer un dashboard utilisant le Log Group.