AWS Systems ManagerChange Managern'est plus ouvert aux nouveaux clients. Les clients existants peuvent continuer à utiliser le service normalement. Pour plus d'informations, consultez AWS Systems ManagerChange Managerla section Modification de la disponibilité.
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Utilisation des profils Chef InSpec avec la conformité de Systems Manager
AWS Systems Manager s'intègre à Chef InSpec
-
Vérifier si des ports spécifiques sont ouverts ou fermés.
-
Vérifier si des applications spécifiques sont en cours d'exécution.
-
Vérifier si certains packages sont installés.
-
Vérifier les clés de registre Windows pour des propriétés spécifiques.
Vous pouvez créer des InSpec profils uniquement pour les instances Amazon Elastic Compute Cloud (Amazon EC2) que vous gérez avec Systems Manager. Les serveurs locaux ou les machines virtuelles (VMs) ne sont pas pris en charge. L’exemple de profil Chef InSpec suivant vérifie si le port 22 est ouvert.
control 'Scan Port' do impact 10.0 title 'Server: Configure the service port' desc 'Always specify which port the SSH server should listen to. Prevent unexpected settings.' describe sshd_config do its('Port') { should eq('22') } end end
InSpec inclut un ensemble de ressources qui vous aident à rédiger rapidement des chèques et des contrôles d'audit. InSpec utilise le langage DSL (InSpecDomain-Specific Language)
Comment ça marche
Voici comment fonctionne le processus d'utilisation des InSpec profils avec Compliance :
-
Identifiez les InSpec profils prédéfinis que vous souhaitez utiliser ou créez les vôtres. Pour commencer, vous pouvez utiliser les profils prédéfinis
disponibles sur GitHub. Pour plus d'informations sur la création de vos propres InSpec profils, consultez la section Chef InSpecProfils Chef . -
Stockez les profils dans un référentiel GitHub public ou privé, ou dans un compartiment S3.
-
Exécutez Compliance avec vos InSpec profils à l'aide du document Systems Manager (document SSM).
AWS-RunInspecChecksVous pouvez démarrer une analyse de conformité en utilisant Run Command un outil dans AWS Systems Manager, pour les analyses à la demande, ou vous pouvez planifier des analyses de conformité régulières en utilisant State Manager un outil dans AWS Systems Manager. -
Identifiez les nœuds non conformes à l'aide de l'API Compliance ou de la console de la fonctionnalité Compliance.
Note
Notez les informations suivantes.
-
Chef utilise un client de vos nœuds pour traiter le profil. Vous n'avez pas besoin d'installer le client. Lorsque Systems Manager exécute le document SSM
AWS-RunInspecChecks, le système vérifie si le client est installé. Si ce n’est pas le cas, Systems Manager installe le client Chef lors de l’analyse, puis le désinstalle une fois l’analyse terminée. -
L'exécution du document SSM
AWS-RunInspecChecks, comme décrit dans cette rubrique, affecte une entrée de conformité de typeCustom:Inspecà chaque nœud ciblé. Pour attribuer ce type de conformité, le document appelle l'opération PutComplianceItemsAPI.
Exécution d'une analyse InSpec de conformité
Cette section contient des informations sur la manière d'exécuter une analyse de InSpec conformité à l'aide de la console Systems Manager et du AWS Command Line Interface (AWS CLI). La procédure pour la console vous montre comment configurer State Manager pour exécuter l'analyse. La AWS CLI procédure indique comment configurer Run Command pour exécuter le scan.
Exécution d'une analyse de InSpec conformité avec State Manager (console)
Pour exécuter une analyse InSpec de conformité à State Manager l'aide de la AWS Systems Manager console
Ouvrez la AWS Systems Manager console à l'adresse https://console.aws.amazon.com/systems-manager/
. Dans le panneau de navigation, sélectionnez State Manager.
-
Sélectionnez Créer une association.
-
Dans la section Fournir les détails de l'association, entrez un nom.
-
Dans la liste Document, sélectionnez
AWS-RunInspecChecks. -
Dans la liste Version du document, sélectionnez Dernière version lors de l'exécution.
-
Dans la section Paramètres, dans la liste Type de source, sélectionnez GitHub ou S3.
Si vous le souhaitez GitHub, entrez le chemin d'accès à un InSpec profil dans un GitHub référentiel public ou privé dans le champ Source Info. Voici un exemple de chemin vers un profil public fourni par l'équipe de Systems Manager à partir de l'emplacement suivant : https://github.com/awslabs/amazon- ssm/tree/master/Compliance/InSpec/PortCheck
. {"owner":"awslabs","repository":"amazon-ssm","path":"Compliance/InSpec/PortCheck","getOptions":"branch:master"}Si vous choisissez S3, entrez une URL valide vers un InSpec profil d'un compartiment S3 dans le champ Source Info.
Pour plus d’informations sur l’intégration de Systems Manager avec GitHub et Amazon S3, consultez Exécution de scripts depuis GitHub.
Dans la section Targets (Cibles), sélectionnez les nœuds gérés sur lesquels vous souhaitez exécuter cette opération en spécifiant des balises, en sélectionnant des instances ou des appareils de périphérie manuellement ou en spécifiant un groupe de ressources.
Astuce
Si, contrairement à vos attentes, un nœud géré ne figure pas dans la liste, consultez Résolution des problèmes de disponibilité des nœuds gérés pour obtenir des conseils de dépannage.
-
Dans la section Spécifier le programme, utilisez les options de générateur de planification pour créer un calendrier d'exécution des analyses de conformité.
Pour Rate control (Contrôle de débit) :
-
Dans Concurrency (Simultanéité), spécifiez un nombre ou un pourcentage de nœuds gérés sur lesquels exécuter simultanément la commande.
Note
Si vous avez sélectionné des cibles en spécifiant des balises appliquées aux nœuds gérés ou en spécifiant AWS des groupes de ressources, et que vous n'êtes pas certain du nombre de nœuds gérés ciblés, limitez le nombre de cibles pouvant exécuter le document en même temps en spécifiant un pourcentage.
-
Dans Error threshold (Seuil d'erreur), indiquez quand arrêter l'exécution de la commande sur les autres nœuds gérés après l'échec de celle-ci sur un certain nombre ou un certain pourcentage de nœuds. Si, par exemple, vous spécifiez trois erreurs, Systems Manager cesse d'envoyer la commande à la réception de la quatrième erreur. Les nœuds gérés sur lesquels la commande est toujours en cours de traitement peuvent également envoyer des erreurs.
-
(Facultatif) Pour Output options (Options de sortie), pour enregistrer la sortie de la commande dans un fichier, cochez la case Write command output to an S3 bucket (Écrire la sortie de commande vers un compartiment S3). Saisissez les noms de compartiment et de préfixe (dossier) dans les zones.
Note
Les autorisations S3 qui permettent d'écrire les données dans un compartiment S3 sont celles du profil d'instance (pour les EC2 instances) ou du rôle de service IAM (machines activées de manière hybride) attribué à l'instance, et non celles de l'utilisateur IAM effectuant cette tâche. Pour plus d’informations, consultez les sections Configurer des autorisations d’instance requises pour Systems Manager et Créer un rôle de service IAM pour un environnement hybride. En outre, si le compartiment S3 spécifié se trouve sur un autre Compte AWS, assurez-vous que le profil d'instance ou la fonction de service IAM associé au nœud géré dispose des autorisations nécessaires pour écrire dans ce compartiment.
-
Sélectionnez Create Association (Créer une association). Le système crée l'association et exécute automatiquement l'analyse de conformité.
-
Patientez quelques minutes pendant que l'analyse s'effectue, puis sélectionnez Conformité dans le panneau de navigation.
-
Dans Corresponding managed instances (Instances gérées correspondantes), recherchez les nœuds pour lesquels la colonne Compliance Type (Type de conformité) contient la valeur Custom:Inspec.
-
Sélectionnez un ID de nœud pour afficher le détail des états non conformes.
Exécution d'une analyse de InSpec conformité avec Run Command (AWS CLI)
Installez et configurez le AWS Command Line Interface (AWS CLI), si ce n'est pas déjà fait.
Pour de plus amples informations, consultez Installation ou mise à jour de la version la plus récente de l' AWS CLI.
-
Exécutez l'une des commandes suivantes pour exécuter un InSpec profil depuis Amazon S3 GitHub ou depuis Amazon S3.
La commande d' utilise les paramètres suivants :
-
sourceType : GitHub ou Amazon S3
-
SourceInfo : URL du dossier de InSpec profil situé dans un compartiment S3 GitHub ou dans un compartiment S3. Le dossier doit contenir le InSpec fichier de base (*.yml) et tous les contrôles associés (*.rb).
GitHub
aws ssm send-command --document-name "AWS-RunInspecChecks" --targets '[{"Key":"tag:tag_name","Values":["tag_value"]}]' --parameters '{"sourceType":["GitHub"],"sourceInfo":["{\"owner\":\"owner_name\", \"repository\":\"repository_name\", \"path\": \"Inspec.yml_file"}"]}'Voici un exemple.
aws ssm send-command --document-name "AWS-RunInspecChecks" --targets '[{"Key":"tag:testEnvironment","Values":["webServers"]}]' --parameters '{"sourceType":["GitHub"],"getOptions":"branch:master","sourceInfo":["{\"owner\":\"awslabs\", \"repository\":\"amazon-ssm\", \"path\": \"Compliance/InSpec/PortCheck\"}"]}'Amazon S3
aws ssm send-command --document-name "AWS-RunInspecChecks" --targets '[{"Key":"tag:tag_name","Values":["tag_value"]}]' --parameters'{"sourceType":["S3"],"sourceInfo":["{\"path\":\"https://s3.aws-api-domain/amzn-s3-demo-bucket/Inspec.yml_file\"}"]}'Voici un exemple.
aws ssm send-command --document-name "AWS-RunInspecChecks" --targets '[{"Key":"tag:testEnvironment","Values":["webServers"]}]' --parameters'{"sourceType":["S3"],"sourceInfo":["{\"path\":\"https://s3.aws-api-domain/amzn-s3-demo-bucket/InSpec/PortCheck.yml\"}"]}' -
-
Exécutez la commande suivante pour afficher un récapitulatif de l'analyse de conformité.
aws ssm list-resource-compliance-summaries --filters Key=ComplianceType,Values=Custom:Inspec -
Exécutez la commande suivante pour afficher le détail d'un nœud non conforme.
aws ssm list-compliance-items --resource-idsnode_ID--resource-type ManagedInstance --filters Key=DocumentName,Values=AWS-RunInspecChecks