

• Le AWS Systems Manager CloudWatch tableau de bord ne sera plus disponible après le 30 avril 2026. Les clients peuvent continuer à utiliser CloudWatch la console Amazon pour consulter, créer et gérer leurs CloudWatch tableaux de bord Amazon, comme ils le font aujourd'hui. Pour plus d'informations, consultez la [documentation Amazon CloudWatch Dashboard](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html). 

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.

# Intégration à d'autres produits et services
<a name="integrations-partners"></a>

AWS Systems Manager dispose d'une intégration intégrée pour les produits et services présentés dans le tableau suivant.


|  |  | 
| --- |--- |
|  Ansible  |  [https://www.ansible.com/](https://www.ansible.com/) est une plateforme d’automatisation informatique qui facilite le déploiement de vos applications et de vos systèmes. Systems Manager fournit le document Systems Manager (document SSM) `AWS-ApplyAnsiblePlaybooks` qui vous permet de créer des associations State Manager exécutant des playbooks Ansible.  En savoir plus [Création d’associations exécutant des playbooks Ansible](systems-manager-state-manager-ansible.md)   | 
|  Chef  |  [https://www.chef.io/](https://www.chef.io/) est un outil d’automatisation informatique qui facilite le déploiement de vos applications et de vos systèmes. Systems Manager fournit le document SSM `AWS-ApplyChefRecipes`, qui vous permet de créer des associations dans State Manager, un outil d’ AWS Systems Manager, exécutant des recettes Chef.  En savoir plus [Création d’associations qui exécutent des recettes Chef](systems-manager-state-manager-chef.md)  Systems Manager s’intègre également à des profils [https://www.chef.io/products/chef-inspec/](https://www.chef.io/products/chef-inspec/), ce qui vous permet d’exécuter des analyses de conformité et d’afficher les nœuds conformes et non conformes.  En savoir plus [Utilisation des profils Chef InSpec avec la conformité de Systems Manager](integration-chef-inspec.md)   | 
|  GitHub  |  [https://github.com/](https://github.com/) fournit un hébergement pour le contrôle de version de développement logiciel et la collaboration. Systems Manager fournit le document SSM `AWS-RunDocument`, qui vous permet d’exécuter d’autres documents SSM stockés dans GitHub, ainsi que le document SSM GitHub, qui vous permet d’exécuter des scripts stockés dans `AWS-RunRemoteScript`. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/systems-manager/latest/userguide/integrations-partners.html)  | 
|  Jenkins  |  [https://www.jenkins.io/](https://www.jenkins.io/) est un serveur d’automatisation open source qui permet aux développeurs de créer, tester et déployer leurs logiciels de manière fiable. Automation, un outil de Systems Manager, peut être utilisé comme une étape post-création pour préinstaller des versions d’applications dans Amazon Machine Images (AMIs).  En savoir plus [Mise à jour des AMIs à l’aide d’Automation et de Jenkins](automation-tutorial-update-patch-ami-jenkins-integration.md)   | 
|  ServiceNow  |  [https://www.servicenow.com/](https://www.servicenow.com/) est un système de gestion des services d’entreprise qui vous permet de gérer vos services et opérations informatiques. L’automatisation, Change Manager, Incident Manager, et OpsCenter, tous les outils de Systems Manager, s’intègrent au ServiceNow en utilisant AWS Service Management Connector. Grâce à cette intégration, vous pouvez consulter, créer, mettre à jour, ajouter de la correspondance et résoudre des AWS Support cas à partir deServiceNow.  En savoir plus [Intégration avec ServiceNow](integrations-partners-servicenow.md)    | 
| Terraform |  HashiCorp [Terraform](https://registry.terraform.io/) est un outil logiciel open source d’*infrastructure en tant que code* (IaC) qui fournit un flux de travail d’interface de ligne de commande (CLI) pour gérer divers services cloud. Pour Systems Manager, vous pouvez utiliser Terraform pour gérer ou allouer ce qui suit : **Ressources** [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/systems-manager/latest/userguide/integrations-partners.html) **Sources de données** [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/systems-manager/latest/userguide/integrations-partners.html)  | 

**Topics**
+ [Exécution de scripts depuis GitHub](integration-remote-scripts.md)
+ [Utilisation des profils Chef InSpec avec la conformité de Systems Manager](integration-chef-inspec.md)
+ [Intégration avec ServiceNow](integrations-partners-servicenow.md)

# Exécution de scripts depuis GitHub
<a name="integration-remote-scripts"></a>

Cette rubrique explique comment utiliser le document prédéfini Systems Manager (document SSM) `AWS-RunRemoteScript` pour télécharger des scriptsGitHub, notamment depuis Ansible Playbooks, Python, Ruby et des scripts. PowerShell En utilisant ce document SSM, vous n'avez plus besoin de porter manuellement des scripts vers Amazon Elastic Compute Cloud (Amazon EC2) ou de les encapsuler dans des documents SSM. AWS Systems Manager l'intégration avec GitHub promeut *l'infrastructure sous forme de code*, ce qui réduit le temps nécessaire à la gestion des nœuds tout en normalisant les configurations au sein de votre flotte. 

Vous pouvez également créer des documents SSM personnalisés qui vous permettent de télécharger et d'exécuter des scripts ou d'autres documents SSM à partir d'emplacements distants. Pour de plus amples informations, veuillez consulter [Création de documents composites](documents-creating-content.md#documents-creating-composite).

Vous pouvez également télécharger un répertoire contenant plusieurs scripts. Lorsque vous exécutez le script principal du répertoire, Systems Manager exécute également les scripts référencés qui sont inclus dans le répertoire. 

Notez les informations importantes suivantes relatives à l'exécution de scripts à partir de GitHub.
+ Systems Manager ne vérifie pas que le script est à même de s'exécuter sur un nœud. Avant de télécharger et d'exécuter le script, vérifiez que le logiciel requis est installé sur le nœud. Vous pouvez également créer un document composite qui installe le logiciel à l'aide de l'un Run Command ou l'autre des outils State Manager AWS Systems Manager, puis télécharge et exécute le script.
+ Vous devez vous assurer que toutes les conditions prérequises GitHub sont remplies. Cela inclut l'actualisation de votre jeton d'accès, si nécessaire. Vous devez également vous assurer que vous ne dépassez pas le nombre de requêtes authentifiées ou non authentifiées. Pour plus d’informations, consultez la documentation GitHub.
+ Les référentiels GitHub Enterprise ne sont pas pris en charge.

**Topics**
+ [Exécuter des playbooks Ansible depuis GitHub](integration-github-ansible.md)
+ [Exécuter des scripts Python depuis GitHub](integration-github-python.md)

# Exécuter des playbooks Ansible depuis GitHub
<a name="integration-github-ansible"></a>

Cette section présente les procédures vous permettant d’exécuter des manuels stratégiques Ansible à partir de GitHub à l’aide de la console ou de l’ AWS Command Line Interface (AWS CLI).

**Avant de commencer**  
Si vous envisagez d'exécuter un script stocké dans un GitHub dépôt privé, créez un AWS Systems Manager `SecureString` paramètre pour votre jeton d'accès GitHub sécurisé. Vous ne pouvez pas accéder à un script stocké dans un référentiel GitHub privé en transmettant manuellement votre jeton via SSH. Le jeton d'accès doit être transmis en tant que paramètre Systems Manager `SecureString`. Pour plus d'informations sur la création d'un paramètre `SecureString`, consultez [Création de paramètres Parameter Store dans Systems Manager](sysman-paramstore-su-create.md).

## Exécuter un playbook Ansible depuis GitHub (console)
<a name="integration-github-ansible-console"></a>

**Exécuter un playbook Ansible depuis GitHub**

1. Ouvrez la AWS Systems Manager console à l'adresse [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Dans le panneau de navigation, sélectionnez **Run Command**.

1. Sélectionnez **Run Command (Exécuter la commande)**.

1. In the **Command document (Document de commande)**, sélectionnez **`AWS-RunRemoteScript`**.

1. Dans **Paramètres de la commande**, procédez comme suit :
   + Dans **Type de source**, sélectionnez **GitHub**. 
   + Dans la zone **Source Info (Infos sur la source)**, saisissez les informations requises pour accéder à la source en respectant le format suivant.

     ```
     {
       "owner": "owner_name",
       "repository": "repository_name", 
       "getOptions": "branch:branch_name",
       "path": "path_to_scripts_or_directory",
       "tokenInfo": "{{ssm-secure:SecureString_parameter_name}}" 
     }
     ```

     Cet exemple télécharge un fichier nommé `webserver.yml`. 

     ```
     {
         "owner": "TestUser1",
         "repository": "GitHubPrivateTest",
         "getOptions": "branch:myBranch",
         "path": "scripts/webserver.yml",
         "tokenInfo": "{{ssm-secure:mySecureStringParameter}}"
     }
     ```
**Note**  
`"branch"` n'est requis que si votre document SSM est stocké dans une branche autre que `master`.  
Pour utiliser la version de vos scripts qui se trouvent dans un *commit* particulier de votre référentiel, utilisez `commitID` avec `getOptions` au lieu de `branch`. Par exemple :  
`"getOptions": "commitID:bbc1ddb94...b76d3bEXAMPLE",`
   + Dans le champ **Command Line (Ligne de commande)**, saisissez les paramètres d'exécution du script. Voici un exemple.

     **ansible-playbook -i “localhost,” --check -c local webserver.yml**
   + (Facultatif) Dans le champ **Working Directory (Répertoire de travail)**, saisissez le nom d'un répertoire du nœud où vous souhaitez télécharger et exécuter le script.
   + (Facultatif) Dans **Execution Timeout (Délai d'exécution)**, précisez le nombre de secondes durant lesquelles le système doit attendre avant de mettre en échec l'exécution de la commande de script. 

1. 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](fleet-manager-troubleshooting-managed-nodes.md) pour obtenir des conseils de dépannage.

1. Pour **Autres paramètres** :
   + Pour **Comment (Commentaire)**, saisissez des informations à propos de cette commande.
   + Pour **Délai (secondes)**, précisez le nombre de secondes durant lesquelles le système doit attendre avant de mettre en échec l'exécution de la commande globale. 

1. 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.

1. (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 accordent la possibilité d'écrire les données dans un compartiment S3 sont celles du profil d'instance (pour les instances EC2) ou de la fonction du service IAM (pour les machines activées par un système hybride) attribués à l'instance, et non celles de l'utilisateur IAM qui effectue cette tâche. Pour plus d’informations, consultez les sections [Configurer des autorisations d’instance requises pour Systems Manager](setup-instance-permissions.md) et [Créer un rôle de service IAM pour un environnement hybride](hybrid-multicloud-service-role.md). 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.

1. Dans la section **SNS notifications (Notifications SNS)**, si vous souhaitez envoyer des notifications sur le statut d'exécution des commandes, cochez la case **Enable SNS notifications (Activer les notifications SNS)**.

   Pour plus d'informations sur la configuration des notifications Amazon SNS pour Run Command, consultez [Surveillance des changements d'état du Systems Manager à l'aide des notifications Amazon SNS](monitoring-sns-notifications.md).

1. Cliquez sur **Exécuter**.

## Exécutez un Ansible Playbook à partir GitHub de AWS CLI
<a name="integration-github-ansible-cli"></a>

1. 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](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

1. Exécutez la commande suivante pour télécharger et exécuter un script à partir de GitHub.

   ```
   aws ssm send-command \
       --document-name "AWS-RunRemoteScript" \
       --instance-ids "instance-IDs"\
       --parameters '{"sourceType":["GitHub"],"sourceInfo":["{\"owner\":\"owner_name\", \"repository\": \"repository_name\", \"path\": \"path_to_file_or_directory\", \"tokenInfo\":\"{{ssm-secure:name_of_your_SecureString_parameter}}\" }"],"commandLine":["commands_to_run"]}'
   ```

   Voici un exemple de commande à exécuter sur une machine Linux locale.

   ```
   aws ssm send-command \    
       --document-name "AWS-RunRemoteScript" \
       --instance-ids "i-02573cafcfEXAMPLE" \
       --parameters '{"sourceType":["GitHub"],"sourceInfo":["{\"owner\":\"TestUser1\", \"repository\": \"GitHubPrivateTest\", \"path\": \"scripts/webserver.yml\", \"tokenInfo\":\"{{ssm-secure:mySecureStringParameter}}\" }"],"commandLine":["ansible-playbook -i “localhost,” --check -c local webserver.yml"]}'
   ```

# Exécuter des scripts Python depuis GitHub
<a name="integration-github-python"></a>

Cette section inclut des procédures pour vous aider à exécuter des scripts Python GitHub à l'aide de la AWS Systems Manager console ou du AWS Command Line Interface (AWS CLI). 

## Exécuter un script Python à partir de GitHub (console)
<a name="integration-github-python-console"></a>

**Exécuter un script Python à partir de GitHub**

1. Ouvrez la AWS Systems Manager console à l'adresse [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Dans le panneau de navigation, sélectionnez **Run Command**.

1. Sélectionnez **Run Command (Exécuter la commande)**.

1. In the **Command document (Document de commande)**, sélectionnez **`AWS-RunRemoteScript`**.

1. Dans **Command parameters (Paramètres de la commande)**, procédez comme suit :
   + Dans **Type de source**, sélectionnez **GitHub**. 
   + Dans la zone **Source Info (Informations sur la source)**, saisissez les informations requises pour accéder à la source en respectant le format suivant.

     ```
     {
         "owner": "owner_name",
         "repository": "repository_name",
         "getOptions": "branch:branch_name",
         "path": "path_to_document",
         "tokenInfo": "{{ssm-secure:SecureString_parameter_name}}"
     }
     ```

     Par exemple, le répertoire suivant télécharge un répertoire de scripts nommé *complex-script*.

     ```
     {
         "owner": "TestUser1",
         "repository": "SSMTestDocsRepo",
         "getOptions": "branch:myBranch",
         "path": "scripts/python/complex-script",
         "tokenInfo": "{{ssm-secure:myAccessTokenParam}}"
     }
     ```
**Note**  
`"branch"` n'est requis que si vos scripts sont stockés dans une branche autre que `master`.  
Pour utiliser la version de vos scripts qui se trouvent dans un *commit* particulier de votre référentiel, utilisez `commitID` avec `getOptions` au lieu de `branch`. Par exemple :  
`"getOptions": "commitID:bbc1ddb94...b76d3bEXAMPLE",`
   + Dans le champ **Command Line (Ligne de commande)**, saisissez les paramètres pour l'exécution du script. Voici un exemple.

     ```
     mainFile.py argument-1 argument-2
     ```

     Cet exemple exécute `mainFile.py`, qui peut ensuite exécuter d'autres scripts du répertoire `complex-script`.
   + (Facultatif) Dans le champ **Working Directory (Répertoire de travail)**, saisissez le nom d'un répertoire du nœud dans lequel vous souhaitez télécharger et exécuter le script.
   + (Facultatif) Pour **Délai d'exécution**, précisez le nombre de secondes durant lesquelles le système doit attendre avant de mettre en échec l'exécution de la commande de script. 

1. 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](fleet-manager-troubleshooting-managed-nodes.md) pour obtenir des conseils de dépannage.

1. Pour **Autres paramètres** :
   + Pour **Comment (Commentaire)**, saisissez des informations à propos de cette commande.
   + Pour **Délai (secondes)**, précisez le nombre de secondes durant lesquelles le système doit attendre avant de mettre en échec l'exécution de la commande globale. 

1. 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.

1. (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 accordent la possibilité d'écrire les données dans un compartiment S3 sont celles du profil d'instance (pour les instances EC2) ou de la fonction du service IAM (pour les machines activées par un système hybride) attribués à l'instance, et non celles de l'utilisateur IAM qui effectue cette tâche. Pour plus d’informations, consultez les sections [Configurer des autorisations d’instance requises pour Systems Manager](setup-instance-permissions.md) et [Créer un rôle de service IAM pour un environnement hybride](hybrid-multicloud-service-role.md). 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.

1. Dans la section **SNS notifications (Notifications SNS)**, si vous souhaitez envoyer des notifications sur le statut d'exécution des commandes, cochez la case **Enable SNS notifications (Activer les notifications SNS)**.

   Pour plus d'informations sur la configuration des notifications Amazon SNS pour Run Command, consultez [Surveillance des changements d'état du Systems Manager à l'aide des notifications Amazon SNS](monitoring-sns-notifications.md).

1. Cliquez sur **Exécuter**.

## Exécutez un script Python à GitHub l'aide du AWS CLI
<a name="integration-github-python-cli"></a>

1. 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](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

1. Exécutez la commande suivante pour télécharger et exécuter un script à partir de GitHub.

   ```
   aws ssm send-command --document-name "AWS-RunRemoteScript" --instance-ids "instance-IDs" --parameters '{"sourceType":["GitHub"],"sourceInfo":["{\"owner\":\"owner_name\", \"repository\":\"repository_name\", \"path\": \"path_to_script_or_directory"}"],"commandLine":["commands_to_run"]}'
   ```

   Voici un exemple.

   ```
   aws ssm send-command --document-name "AWS-RunRemoteScript" --instance-ids "i-02573cafcfEXAMPLE" --parameters '{"sourceType":["GitHub"],"sourceInfo":["{\"owner\":\"TestUser1\", \"repository\":\"GitHubTestPublic\", \"path\": \"scripts/python/complex-script\"}"],"commandLine":["mainFile.py argument-1 argument-2 "]}'
   ```

   Cet exemple télécharge un répertoire de scripts nommé `complex-script`. L'entrée `commandLine` exécute `mainFile.py`, qui peut ensuite exécuter d'autres scripts du répertoire `complex-script`.

# Utilisation des profils Chef InSpec avec la conformité de Systems Manager
<a name="integration-chef-inspec"></a>

AWS Systems Manager s'intègre à [https://www.chef.io/products/chef-inspec](https://www.chef.io/products/chef-inspec). Chef InSpecest un framework de test open source qui vous permet de créer des profils lisibles par l'homme dans lesquels stocker ou dans GitHub Amazon Simple Storage Service (Amazon S3). Ensuite, vous pouvez utiliser Systems Manager pour exécuter des analyses de conformité et afficher les nœuds conformes et non conformes. Un *profil* est une exigence en termes de sécurité, de conformité ou de politique pour votre environnement informatique. Par exemple, vous pouvez créer des profils qui effectuent les vérifications suivantes lorsque vous analysez vos nœuds à l’aide de Compliance, un outil d’ AWS Systems Manager :
+ 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)](https://docs.chef.io/inspec/7.0/reference/glossary/#dsl) pour écrire ces contrôles en Ruby. Vous pouvez également utiliser des profils créés par une large communauté d' InSpec utilisateurs. Par exemple, le [DevSec chef-os-hardening](https://github.com/dev-sec/chef-os-hardening)projet GitHub inclut des dizaines de profils pour vous aider à sécuriser vos nœuds. Vous pouvez créer et stocker des profils dans GitHub ou Amazon S3. 

## Comment ça marche
<a name="integration-chef-inspec-how"></a>

Voici comment fonctionne le processus d'utilisation des InSpec profils avec Compliance :

1. 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](https://github.com/search?p=1&q=topic%3Ainspec+org%3Adev-sec&type=Repositories) disponibles sur GitHub. Pour plus d'informations sur la création de vos propres InSpec profils, consultez la section [Chef InSpecProfils Chef](https://www.inspec.io/docs/reference/profiles/).

1. Stockez les profils dans un référentiel GitHub public ou privé, ou dans un compartiment S3.

1. Exécutez Compliance avec vos InSpec profils à l'aide du document Systems Manager (document SSM). `AWS-RunInspecChecks` Vous 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.

1. 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 type `Custom:Inspec` à chaque nœud ciblé. Pour attribuer ce type de conformité, le document appelle l'opération [PutComplianceItems](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PutComplianceItems.html)API.

## Exécution d'une analyse InSpec de conformité
<a name="integration-chef-inspec-running"></a>

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)
<a name="integration-chef-inspec-running-console"></a>

**Pour exécuter une analyse InSpec de conformité à State Manager l'aide de la AWS Systems Manager console**

1. Ouvrez la AWS Systems Manager console à l'adresse [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Dans le panneau de navigation, sélectionnez **State Manager**.

1. Sélectionnez **Créer une association**.

1. Dans la section **Fournir les détails de l'association**, entrez un nom.

1. Dans la liste **Document**, sélectionnez **`AWS-RunInspecChecks`**.

1. Dans la liste **Version du document**, sélectionnez **Dernière version lors de l'exécution**.

1. 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](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](integration-remote-scripts.md). 

1. 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](fleet-manager-troubleshooting-managed-nodes.md) pour obtenir des conseils de dépannage.

1. 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é.

1. 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.

1. (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 accordent la possibilité d'écrire les données dans un compartiment S3 sont celles du profil d'instance (pour les instances EC2) ou de la fonction du service IAM (pour les machines activées par un système hybride) attribués à l'instance, et non celles de l'utilisateur IAM qui effectue cette tâche. Pour plus d’informations, consultez les sections [Configurer des autorisations d’instance requises pour Systems Manager](setup-instance-permissions.md) et [Créer un rôle de service IAM pour un environnement hybride](hybrid-multicloud-service-role.md). 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.

1. Sélectionnez **Create Association (Créer une association)**. Le système crée l'association et exécute automatiquement l'analyse de conformité.

1. Patientez quelques minutes pendant que l'analyse s'effectue, puis sélectionnez **Conformité** dans le panneau de navigation.

1. 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**.

1. 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)
<a name="integration-chef-inspec-running-cli"></a>

1. 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](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

1. 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 (\$1.yml) et tous les contrôles associés (\$1.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\"}"]}' 
   ```

1. 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
   ```

1. Exécutez la commande suivante pour afficher le détail d'un nœud non conforme.

   ```
   aws ssm list-compliance-items --resource-ids node_ID --resource-type ManagedInstance --filters Key=DocumentName,Values=AWS-RunInspecChecks
   ```

# Intégration avec ServiceNow
<a name="integrations-partners-servicenow"></a>

ServiceNow est un système de gestion des services basé sur le cloud qui permet la création et la gestion des flux de travail au niveau de l’organisation, notamment pour les services informatiques, les systèmes de billetterie et l’assistance. Le connecteur de gestion des AWS services s'ServiceNowintègre à Systems Manager pour approvisionner, gérer et exploiter les AWS ressources à partir deServiceNow. Vous pouvez utiliser le connecteur de gestion des AWS services pour intégrer ServiceNow AutomationChange Manager, Incident Manager et tous OpsCenter les outils qu'il contient AWS Systems Manager. 

Vous pouvez effectuer les tâches suivantes en utilisant ServiceNow : 
+ Exécutez des playbooks d'automatisation à partir de Systems Manager. 
+ Consultez, mettez à jour et résolvez les incidents à partir de Systems Manager OpsItems. 
+ Consultez et gérez les éléments opérationnels, tels que les incidents, via Systems Manager OpsCenter. 
+ Consultez et exécutez les demandes de modification Systems Manager à partir d'une liste organisée de modèles de modification pré-approuvés. 
+ Gérez et résolvez les incidents impliquant des applications AWS hébergées en intégrant Incident Manager. 

**Note**  
Pour plus d'informations sur la manière d'intégrerServiceNow, consultez la [section Configuration des intégrations AWS de services](https://docs.aws.amazon.com/smc/latest/ag/sn-config-integ.html) dans le *Guide de l'administrateur du connecteur de gestion des AWS services*.