Analyses de conformité dans AWS OpsWorks for Chef Automate - AWS OpsWorks

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.

Analyses de conformité dans AWS OpsWorks for Chef Automate

Important

AWS OpsWorks for Chef Automate a atteint sa fin de vie le 5 mai 2024 et a été désactivé pour les nouveaux clients et les clients existants. Nous recommandons aux clients existants de migrer vers Chef SaaS ou vers une solution alternative. Si vous avez des questions, vous pouvez contacter l' AWS Support équipe sur AWS Re:Post ou via le AWS Support Premium.

Les analyses de conformité vous permettent de suivre la conformité des nœuds gérés de votre infrastructure en fonction de stratégies prédéfinies, également appelées règles. Grâce aux vues de conformité, vous pouvez auditer régulièrement vos applications pour repérer des vulnérabilités et des configurations non conformes. Chef propose plus de 100 profils de conformité prédéfinis (c'est-à-dire des ensembles de règles qui s'appliquent à des configurations de nœud spécifiques) que vous pouvez utiliser dans vos analyses de conformité. Vous pouvez également utiliser le InSpec langage Chef pour créer vos propres profils personnalisés.

Si votre serveur n'exécute pas encore Chef Automate 2.0, vous pouvez configurer Chef Compliance manuellement, en installant le livre de recettes Audit.

Note

La version minimale prise en charge du logiciel d'agent client Chef Infra (chef-client) sur les nœuds associés à un AWS OpsWorks for Chef Automate serveur est de 13. x. Nous vous recommandons d'utiliser la chef-client version stable la plus récente, ou au moins 14.10.9.

Conformité dans Chef Automate 2.0

Si votre AWS OpsWorks for Chef Automate serveur exécute Chef Automate 2.0, configurez Chef Compliance en utilisant les procédures décrites dans cette section.

Exécution de tâches d'analyse de conformité avec Chef Automate 2.0

Chef Automate 2.0 inclut la fonctionnalité InSpec d'analyse de conformité de Chef qui nécessitait auparavant une configuration manuelle et une configuration de livre de recettes. Vous pouvez exécuter des tâches de numérisation sur un AWS OpsWorks for Chef Automate serveur qui exécute Chef Automate 2.0. Les tâches peuvent être exécutées immédiatement (une fois), planifiées à une date ultérieure ou planifiées pour s'exécuter à intervalles définis, par exemple quotidiennement ou toutes les deux heures. Les résultats d'une tâche d'analyse sont envoyés dans un rapport de conformité. Vous pouvez afficher les résultats de l'analyse de conformité et effectuer des actions en conséquence dans le tableau de bord Chef Automate. Pour ouvrir l'onglet Compliance (Conformité) et afficher les rapports, sous l'onglet Scan Jobs (Tâches d'analyse) du tableau de bord Chef Automate, choisissez Report (Rapport) à droite de la ligne d'un nœud géré.

Pour exécuter des tâches d'analyse sur des nœuds gérés, vous devez disposer des éléments suivants.

  • Au moins un profil de conformité installé dans votre espace de noms.

  • Au moins un nœud cible, soit ajouté manuellement, soit une instance EC2 ajoutée automatiquement.

Dans AWS OpsWorks for Chef Automate, les tâches de numérisation sont prises en charge sur les cibles suivantes.

  • Nœuds ajoutés manuellement

  • Instances aws-ec2

  • Régions AWS

Pour obtenir des instructions détaillées sur l'exécution des tâches d'analyse, consultez Tâches d'analyse Chef Automate dans la documentation Chef.

(Facultatif, Chef Automate 2.0) Configuration de la conformité avec le livre de recettes Audit

Vous pouvez configurer la conformité sur n'importe quel AWS OpsWorks for Chef Automate serveur. Après avoir lancé un serveur AWS OpsWorks for Chef Automate , vous pouvez installer les profils à partir du tableau de bord Chef Automate ou ajouter les profils souhaités aux attributs du livre de recettes Audit dans le fichier de stratégie Policyfile.rb. Un fichier Policyfile.rb prérempli est inclus dans le kit de démarrage.

Après avoir modifié le fichier Policyfile.rb avec les profils à utiliser comme attributs du livre de recettes Audit, exécutez les commandes chef push pour charger le livre de recettes Audit et les autres livres de recettes spécifiés dans Policyfile.rb sur votre serveur Chef Automate. L'installation du livre de recettes Audit permet également d'installer la gemme de Chef InSpec, un framework de test et d'audit open source produit par Chef. Pour Chef Automate 2.0, choisissez la version 7.1.0 ou ultérieure du livre de recettes Audit. La InSpec gemme doit être de version 2.2.102 ou ultérieure.

Les instructions de cette section vous montrent comment implémenter le livre de recettes opsworks-audit. Le livre de recettes Audit télécharge les profils spécifiés depuis le serveur Chef Automate, évalue les nœuds par rapport au profil de base DevSec SSH et rapporte le résultat des analyses de conformité à chaque exécution. chef-client

Pour installer les profils de conformité
  1. Si vous ne l'avez pas déjà fait, connectez-vous au tableau de bord web Chef Automate. Utilisez les informations d'identification que vous avez reçues lorsque vous avez téléchargé le Starter Kit lors de la création de votre serveur AWS OpsWorks for Chef Automate .

  2. Dans le tableau de bord Chef Automate, choisissez l'onglet Asset Store (Magasin de ressources).

    Profils de conformité
  3. Choisissez l'onglet Available (Disponibles) pour afficher les profils prédéfinis.

  4. Parcourez la liste des profils. Choisissez un profil correspondant au système d'exploitation et à la configuration d'au moins un de vos nœuds gérés. Pour afficher des détails sur le profil, dont une description des violations ciblées et le code des règles sous-jacentes, choisissez > à droite de l'entrée du profil. Vous pouvez choisir plusieurs profils. Si vous configurez l'exemple dans le kit de démarrage, choisissez DevSec SSH Baseline.

    Vue détaillée des profils de conformité Chef
  5. Pour installer les profils sélectionnés sur votre serveur Chef Automate, choisissez Get (Obtenir).

  6. Une fois que vous avez installé les profils, ils s'affichent dans l'onglet Profiles (Profils) du tableau de bord Chef Automate.

Pour installer des livres de recettes avec Policyfile.rb
  1. Affichez le fichier Policyfile.rb de votre Starter Kit pour voir que les attributs du livre de recettes Audit spécifient le profil ssh-baseline dans ['profiles'].

    # Define audit cookbook attributes default["opsworks-demo"]["audit"]["reporter"] = "chef-server-automate" default["opsworks-demo"]["audit"]["profiles"] = [ { "name": "DevSec SSH Baseline", "compliance": "admin/ssh-baseline" } ]
  2. Téléchargez et installez les livres de recettes définis dans Policyfile.rb.

    chef install

    Tous les livres de recettes sont versionnés dans le fichier metadata.rb du livre de recettes. Chaque fois que vous modifiez un livre de recettes, vous devez modifier la version du livre de recettes se trouvant dans son fichier metadata.rb.

  3. Transférez la stratégie opsworks-demo, définie dans Policyfile.rb, à votre serveur.

    chef push opsworks-demo
  4. Vérifiez l'installation de votre stratégie. Exécutez la commande suivante.

    chef show-policy

    Les résultats doivent ressembler à ce qui suit :

    opsworks-demo-webserver ======================= * opsworks-demo: ec0fe46314
  5. Ajoutez des nœuds à votre serveur pour les gérer, si vous ne l'avez pas déjà fait. Pour connecter votre premier nœud au AWS OpsWorks for Chef Automate serveur, utilisez le userdata.sh script inclus dans ce kit de démarrage. Il utilise l' AWS OpsWorks AssociateNodeAPI pour connecter un nœud à votre serveur.

    Vous pouvez automatiser l'association des nœuds en suivant les étapes décrites dans Ajouter des nœuds automatiquement AWS OpsWorks for Chef Automate ou ajouter des nœuds l'un après l'autre en suivant les étapes indiquées dans Ajouter des nœuds individuellement.

  6. Une fois que vous avez mis à jour la liste d'exécution de vos nœuds, l'agent chef-client exécute les recettes spécifiées lors de son exécution suivante. Par défaut, cela se produit toutes les 1 800 secondes (30 minutes). Après l'exécution, vous pouvez afficher les résultats de conformité et effectuer des actions en conséquence à partir de l'onglet Compliance (Conformité) du tableau de bord Chef Automate.

    Résultats d'analyse de conformité Chef

Exécution d'une analyse de conformité

Vous devriez voir les résultats de l'analyse de conformité dans le tableau de bord Chef Automate peu après la première exécution de l'agent, qui se produit une fois que vous avez configuré les listes d'exécution des nœuds.

Vue de la page Compliance Reporting (Génération de rapports de conformité) de Chef Automate

Dans le tableau de bord Chef Automate, choisissez l'onglet Compliance (Conformité). Dans le panneau de navigation de gauche, choisissez Reporting (Génération de rapports). Choisissez l'onglet Profiles (Profils), sélectionnez Scan Results (Résultats de l'analyse), puis choisissez un nœud présentant des échecs d'analyse pour en savoir plus sur les règles ayant entraîné l'échec du nœud.

Conformité - Liste des résultats d'échec

Généralement, les résultats d'analyse ne sont pas conformes, car les nouveaux nœuds ne satisfont pas encore à toutes les règles du profil de base DevSec SSH. Le DevSec Hardening Framework, un projet communautaire, propose des livres de recettes pour résoudre les problèmes qui enfreignent les règles du profil de base DevSec SSH.

(Facultatif) Résolution des résultats non conformes

Le kit de démarrage comprend un livre de recettes open source que vous pouvez exécuter pour corriger les résultats non conformes résultant d'exécutions effectuées avec le profil de base DevSec SSH. ssh-hardening

Note

Le ssh-hardening livre de recettes apporte des modifications à vos nœuds pour les mettre en conformité avec les règles de base DevSec SSH. Avant d'exécuter ce livre de recettes sur un nœud de production, consultez les détails du profil de base DevSec SSH dans la console Chef Automate pour comprendre les violations des règles ciblées par le livre de recettes. Consultez les informations sur le livre de recettes open source ssh-hardening avant de l'exécuter sur un nœud de production.

Pour exécuter le livre de recettes ssh-hardening
  1. Dans un éditeur de texte, ajoutez le livre de recettes ssh-hardening à la liste d'exécution de Policyfile.rb. La liste d'exécution de Policyfile.rb doit correspondre à ce qui suit.

    run_list 'chef-client', 'opsworks-webserver', 'audit', 'ssh-hardening'
  2. Mettez à jour le fichier Policyfile.rb et transmettez-le à votre serveur AWS OpsWorks for Chef Automate .

    chef update Policyfile.rb chef push opsworks-demo
  3. Les nœuds qui sont associés à la stratégie opsworks-demo mettent automatiquement à jour la liste d'exécution et appliquent le livre de recettes ssh-hardening lors de l'exécution suivante de chef-client.

    Étant donné que vous utilisez le livre de recettes chef-client, votre nœud effectue des vérifications à intervalles réguliers (par défaut, toutes les 30 minutes). Lors du prochain enregistrement, le ssh-hardening livre de recettes s'exécute et contribue à améliorer la sécurité des nœuds afin de respecter les règles du profil DevSec SSH Baseline.

  4. Une fois l'exécution initiale du livre de recettes ssh-hardening terminée, attendez 30 minutes afin qu'une analyse de conformité s'exécute à nouveau. Affichez les résultats dans le tableau de bord Chef Automate. Les résultats non conformes survenus lors de l'exécution initiale de l'analyse DevSec SSH Baseline doivent être résolus.

Conformité dans Chef Automate 1.x

Si votre AWS OpsWorks for Chef Automate serveur exécute Chef Automate 1. x, configurez Chef Compliance en utilisant les procédures décrites dans cette section.

(Facultatif, Chef Automate 1.x) Configuration de Chef Compliance

Vous pouvez configurer Chef Compliance sur n'importe quel AWS OpsWorks for Chef Automate serveur. Après avoir lancé un serveur AWS OpsWorks for Chef Automate , choisissez les profils que vous souhaitez exécuter parmi ceux du tableau de bord Chef Automate. Après avoir installé les profils, exécutez les commandes berks pour charger le livre de recettes Audit sur votre serveur Chef Automate. L'installation du livre de recettes Audit permet également d'installer le gem for InSpec, un framework de test open source produit par Chef qui vous permet d'intégrer des tests automatisés à n'importe quelle étape de votre pipeline de déploiement. Pour Chef Automate 1.x, choisissez la version 5.0.1 ou ultérieure du livre de recettes Audit. La InSpec gemme doit être de version 1.24.0 ou ultérieure.

Le kit de AWS OpsWorks for Chef Automate démarrage comprend un livre de recettes emballé qui télécharge et installe la version du livre de recettes Chef's Audit qui vous convient. opsworks-audit Le opsworks-audit livre de recettes demande également à l'chef-clientagent d'évaluer les nœuds par rapport au profil de base DevSec SSH que vous installez à partir de la console de conformité de Chef plus loin dans cette rubrique. Vous pouvez configurer la conformité en utilisant le livre de recettes de votre choix. Les instructions de cette section vous montrent comment implémenter le livre de recettes opsworks-audit.

Pour installer les profils de conformité
  1. Si vous ne l'avez pas déjà fait, connectez-vous au tableau de bord web Chef Automate. Utilisez les informations d'identification que vous avez reçues lorsque vous avez téléchargé le kit de démarrage lors de la création de votre AWS OpsWorks for Chef Automate serveur.

  2. Dans le tableau de bord Chef Automate, choisissez l'onglet Compliance (Conformité).

    Profils Chef Compliance
  3. Dans la barre de navigation de gauche, choisissez Profile Store (Stockage de profils), puis ouvrez l'onglet Disponible pour afficher les profils prédéfinis disponibles.

  4. Parcourez la liste des profils. Choisissez un profil correspondant au système d'exploitation et à la configuration d'au moins un de vos nœuds gérés. Pour afficher des détails sur le profil, dont une description des violations ciblées et le code des règles sous-jacentes, choisissez > à droite de l'entrée du profil. Vous pouvez choisir plusieurs profils.

    Vue détaillée des profils Chef Compliance
  5. Pour installer les profils sélectionnés sur votre serveur Chef Automate, choisissez Get (Obtenir).

  6. Lorsque le téléchargement est terminé, passez à la procédure suivante.

Pour installer et configurer le livre de recettes opsworks-audit
  1. Cette étape est facultative, mais elle permet de gagner du temps à l'étape 6, lorsque vous ajoutez des recettes aux listes d'exécution des nœuds. Modifiez le fichier roles/opsworks-example-role.rb qui est inclus dans le kit de démarrage que vous avez téléchargé lors de la création de votre serveur AWS OpsWorks for Chef Automate . Ajoutez les lignes suivantes. La dernière ligne est mise en commentaire, car l'ajout du livre de recettes ssh-hardening et des recettes correspondantes pour résoudre les nœuds non conformes après l'exécution de votre analyse de conformité est facultatif.

    run_list( "recipe[chef-client]", "recipe[apache2]", "recipe[opsworks-audit]" # "recipe[ssh-hardening]" )
  2. Utilisez un éditeur de texte pour spécifier les livres de recettes souhaités dans votre Berksfile. Un exemple de fichier Berksfile est fourni dans le kit de démarrage. Dans cet exemple, nous installons le livre de recettes du client Chef Infra (chef-client), ainsi que les livres de recettes apache2 et opsworks-audit. Votre fichier Berksfile doit ressembler à ce qui suit.

    source 'https://supermarket.chef.io cookbook 'chef-client' cookbook 'apache2', '~> 5.0.1' cookbook 'opsworks-audit', path: 'cookbooks/opsworks-audit', '~> 1.0.0'

    Tous les livres de recettes sont versionnés dans le fichier metadata.rb du livre de recettes. Chaque fois que vous modifiez un livre de recettes, vous devez modifier la version du livre de recettes se trouvant dans son fichier metadata.rb.

  3. Exécutez la commande suivante pour télécharger et installer les livres de recettes dans le dossier cookbooks sur votre ordinateur local ou votre ordinateur de travail.

    berks vendor cookbooks
  4. Exécutez la commande suivante pour télécharger les livres de recettes fournis sur votre serveur AWS OpsWorks for Chef Automate .

    knife upload .
  5. Exécutez la commande suivante pour vérifier l'installation du livre de recettes opsworks-audit en affichant la liste des livres de recettes actuellement disponibles sur le serveur.

    knife cookbook list
  6. Ajoutez des nœuds à votre serveur pour les gérer, si vous ne l'avez pas déjà fait. Vous pouvez automatiser l'association des nœuds en suivant les étapes décrites dans Ajouter des nœuds automatiquement AWS OpsWorks for Chef Automate ou ajouter des nœuds l'un après l'autre en suivant les étapes indiquées dans Ajouter des nœuds individuellement. Modifiez la liste d'exécution de vos nœuds afin d'ajouter le rôle que vous avez spécifié à l'étape 1, opsworks-example-role. Dans cet exemple, nous modifions l'attribut RUN_LIST dans le script userdata que vous utilisez pour automatiser l'association des nœuds.

    RUN_LIST="role[opsworks-example-role]"

    Si vous avez ignoré l'étape 1 et que vous n'avez pas configuré le rôle, ajoutez les noms des recettes individuelles à la liste d'exécution. Enregistrez vos modifications et suivez les étapes ci-dessous Étape 3 : Création d'instances en utilisant un script d'association sans surveillance pour appliquer votre script de données utilisateur aux instances Amazon EC2.

    RUN_LIST="recipe[chef-client],recipe[apache2],recipe[opworks-audit]"
  7. Une fois que vous avez mis à jour la liste d'exécution de vos nœuds, l'agent chef-client exécute les recettes spécifiées lors de son exécution suivante. Par défaut, cela se produit toutes les 1 800 secondes (30 minutes). Après l'exécution, vos résultats de conformité sont visibles dans le tableau de bord Chef Automate.

Exécution d'une analyse de conformité

Vous devriez voir les résultats de l'analyse de conformité dans le tableau de bord Chef Automate peu de temps après la première exécution du programme fantôme de l'agent, qui se produit une fois que vous avez configuré les listes d'exécution des nœuds.

Vue de la page Reporting de Chef Compliance

Dans le tableau de bord Chef Automate, choisissez l'onglet Compliance (Conformité). Dans le panneau de navigation de gauche, choisissez Reporting (Génération de rapports). Choisissez l'onglet Profiles (Profils), sélectionnez Scan Results (Résultats de l'analyse), puis choisissez un nœud présentant des échecs d'analyse pour en savoir plus sur les règles ayant entraîné l'échec du nœud.

Liste de conformité Chef des résultats non conformes

Généralement, les résultats d'analyse ne sont pas conformes, car les nouveaux nœuds ne satisfont pas encore à toutes les règles du profil de base DevSec SSH. Le DevSec Hardening Framework, un projet communautaire, propose des livres de recettes pour résoudre les problèmes qui enfreignent les règles du profil de base DevSec SSH.

(Facultatif) Résolution des résultats non conformes

Le kit de démarrage comprend un livre de recettes open source que vous pouvez exécuter pour corriger les résultats non conformes résultant d'exécutions effectuées avec le profil de base DevSec SSH. ssh-hardening

Note

Le ssh-hardening livre de recettes apporte des modifications à vos nœuds pour les mettre en conformité avec les règles de base DevSec SSH. Avant d'exécuter ce livre de recettes sur un nœud de production, consultez les détails du profil de base DevSec SSH dans la console Chef Automate pour comprendre les violations des règles ciblées par le livre de recettes. Consultez les informations sur le livre de recettes open source ssh-hardening avant de l'exécuter sur un nœud de production.

Pour exécuter le livre de recettes ssh-hardening
  1. Dans un éditeur de texte, ajoutez le ssh-hardeninglivre de recettes à votre fichier Berksfile. Votre fichier Berksfile doit ressembler à ce qui suit.

    source 'https://supermarket.chef.io' cookbook 'chef-client' cookbook 'apache2', '~> 5.0.1' cookbook 'opsworks-audit', path: 'cookbooks/opsworks-audit', '~> 1.0.0' # optional cookbook 'ssh-hardening'
  2. Exécutez les commandes suivantes pour télécharger le livre de recettes ssh-hardening dans votre dossier de livres de recettes local, puis chargez-le sur votre serveur AWS OpsWorks for Chef Automate .

    berks vendor cookbooks knife upload .
  3. Ajoutez la recette ssh-hardening à votre liste d'exécution de nœuds comme décrit dans les étapes 1 et 6 de Pour installer et configurer le livre de recettes opsworks-audit.

    Si vous mettez à jour le fichier opsworks-example-role.rb, chargez vos modifications sur votre serveur en exécutant la commande suivante :

    knife upload .

    Si vous mettez directement à jour la liste d'exécution, chargez vos modifications en exécutant la commande suivante. Le nom de nœud est généralement l'ID de l'instance.

    knife node run_list add <node name> 'recipe[ssh-hardening]'
  4. Étant donné que vous utilisez le livre de recettes chef-client, votre nœud effectue des vérifications à intervalles réguliers (par défaut, toutes les 30 minutes). Lors du prochain enregistrement, le ssh-hardening livre de recettes s'exécute et contribue à améliorer la sécurité des nœuds afin de respecter les règles du profil DevSec SSH Baseline.

  5. Une fois l'exécution initiale du livre de recettes ssh-hardening terminée, attendez 30 minutes afin qu'une analyse de conformité s'exécute à nouveau. Affichez les résultats dans le tableau de bord Chef Automate. Les résultats non conformes survenus lors de l'exécution initiale de l'analyse DevSec SSH Baseline doivent être résolus.

Mises à jour de la conformité

Sur un AWS OpsWorks for Chef Automate serveur, les fonctionnalités de conformité sont mises à jour automatiquement par la maintenance planifiée de votre système. Au fur et à mesure que des versions mises à jour de Chef Automate, Chef Infra Server et Chef InSpec seront disponibles pour votre AWS OpsWorks for Chef Automate serveur, vous devrez peut-être vérifier et mettre à jour les versions prises en charge du livre de recettes Audit et de la InSpec gem Chef qui s'exécutent sur votre serveur. Les profils que vous avez déjà installés sur votre AWS OpsWorks for Chef Automate serveur ne sont pas mis à jour dans le cadre de la maintenance.

Profils de conformité personnalisés et de la communauté

Actuellement, Chef comprend plus de 100 profils d'analyse de conformité. Vous pouvez ajouter des profils personnalisés et créés par la communauté à cette liste, puis télécharger et exécuter des analyses de conformité en fonction de ces profils, comme vous le feriez pour les profils déjà inclus. Des profils de conformité créés par la communauté sont disponibles à partir du site web Chef Supermarket. Les profils personnalisés sont des programmes Ruby qui incluent un dossier de commandes spécifiant vos règles d'analyse.

consultez aussi