Gouvernez vos ressources AWS avec Config Service

Le 03/06/2020
AWS
Cloud
S3
5 minutes de lecture
Partage
copier
partager par email

Gouvernez vos ressources AWS avec Config Service

On connait tous les avantages qu’offre l’adoption du Cloud AWS, on peut rapidement et facilement concevoir une architecture et commencer à l’exploiter, mais rapidement on se retrouve avec une multitude de services activés et ressources créées, sans pour autant maîtriser leurs cycles de vie ni leurs rôles exacts. AWS Config vient répondre à cette problématique en offrant plusieurs possibilités :
  • Fournir l’inventaire complet de services et ressources par compte et par région. Il y a la possibilité de faire des agrégations, et en plus, l’inventaire affiche les relations entre les ressources, ce qui est très utile pour la détection des dépendances et pour faire du re-engineering.
  • Détecter les changements effectués aux configurations des ressources et les enregistrer. Du coup, on peut connaitre même les ressources supprimées.
  • Définir des règles de conformité et auditer les ressources selon ces règles.
  • Déclencher des notifications ou des actions si une règle n’est pas respectée.
Dans cet article, on va faire des actions simples comme l'activation du service et l'exploration des données.  

Configuration et activation du service

Configuration de AWS Cli

Pour activer le service, on peut utiliser la console comme AWS Cli, pour le reste de l'article on utilisera les commandes awscli. Ci-dessous deux articles intéressants pour configurer AWS Cli sous Windows et Linux: Configurer son AWS Cli sous Linux Windows Subsystem Linux et SDK Cloud  

Configuration d'un bucket S3 pour le stockage des historiques

Ci-dessous la commande pour créer un bucket S3 pour l’enregistrement des actions, il peut agréger plusieurs comptes et plusieurs régions : aws s3api create-bucket --bucket "config-recording-easyteam-123" --region us-east-1 Le service a besoin des droits pour écrire dans le nouveau bucket S3, ci-dessous les actions pour le faire. Ajout d’une policy pour lire et écrire depuis le service Config : aws s3api put-bucket-policy --bucket "config-recording-easyteam-123" --policy file://bucket-policy.json --region us-east-1 Voici le contenu de bucket-policy.json, config-recording-easyteam-123 est le nom du bucket S3 et 826065621341est l'accound ID : { "Version":"2012-10-17", "Statement":[ { "Sid":"AWSConfigBucketPermissionsCheck", "Effect":"Allow", "Principal":{ "Service":"config.amazonaws.com" }, "Action":"s3:GetBucketAcl", "Resource":"arn:aws:s3:::config-recording-easyteam-123" }, { "Sid":"AWSConfigBucketDelivery", "Effect":"Allow", "Principal":{ "Service":"config.amazonaws.com" }, "Action":"s3:PutObject", "Resource":"arn:aws:s3:::config-recording-easyteam-123/AWSLogs/826065621341/*", "Condition":{ "StringEquals":{ "s3:x-amz-acl":"bucket-owner-full-control" }}}]}  

Création du rôle adossé au service

Si le rôle attaché au service configservice n'existe pas encore, on peut le créer avec cette commande : aws iam create-service-linked-role --aws-service-name config.amazonaws.com  

Création d'une notification

Le service qui gère les notification chez AWS est SNS (Simple Notification Service), on peut facilement créer un topic avec la commande suivante, qui envoie un mail vers l'adresse email renseignée : aws sns subscribe --topic-arn arn:aws:sns:us-east-2:826065621341:config-easyteam-blog --protocol email --notification-endpoint tonmail@provider.com Il faut ensuite accéder à la boite de réception du mail et accepter la souscription aux notifications.  

Activation de config service

La commande suivante activera le service avec les paramètres par défaut pour la région en cours, avec les dépendances qu'on a créé plus tôt : aws configservice subscribe --s3-bucket config-recording-easyteam-123 --iam-role arn:aws:iam::826065621341:role/aws-service-role/config.amazonaws.com/AWSServiceRoleForConfig --sns-topic config-easyteam-blog   C’est tout pour la partie configuration, à présent toutes les actions effectuées sur toutes les ressources seront détectées, enregistrées et historisées, en plus une notification mail sera envoyée.  

Utilisation de Config Service

On peut accéder au service via la console via le lien https://console.aws.amazon.com/config, comme on peux utiliser AWS Cli.  

Dashboard

Dans le tableau de bord, on retrouve l’inventaire des ressources :  

Historique de configuration

Ici, un exemple de l’historique complet d’une instance EC2 créée, modifiée, redémarrée puis supprimée. Chaque case correspond à une nouvelle configuration, les événements associés sont récupérés depuis CloudTrail : En cliquant sur "Changes" on retrouve tout ce qui changé durant cette action, on découvre aussi les autres ressources en relation avec celle-ci :  

Inventaire et audit via ligne de commande

Pour récupérer la liste des ressources en ligne de commande : aws configservice list-discovered-resources --resource-type AWS::EC2::SecurityGroup --include-deleted-resources Il faut renseigner le type de ressources à lister. En plus, si on veut récupérer les ressources supprimées, il suffit d'ajouter --include-deleted-resources Pour récupérer le détail de configuration de plusieurs ressources en mode batch : aws configservice  batch-get-resource-config --resource-keys resourceType=AWS::EC2::SecurityGroup,resourceId=sg-0590af2068b01b542 resourceType=AWS::EC2::SecurityGroup,resourceId=sg-0663570520a0c9b58 resourceType=AWS::EC2::SecurityGroup,resourceId=sg-b7b8a3df Maintenant, pour récupérer l’historique des configurations d’une ressource, même après l’avoir supprimée : aws configservice get-resource-config-history --resource-type AWS::EC2::Instance --resource-id i-0f797d447ba187e13   Et si vous souhaitez vous former sur Amazon Web Services, découvrez notre offre de formations AWS.
Partage
copier
partager par email