

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.

# Utilisez des composants pour personnaliser votre image Image Builder
<a name="manage-components"></a>

Image Builder utilise l'application de gestion des composants AWS Task Orchestrator and Executor (AWSTOE) pour orchestrer des flux de travail complexes. Les composants de création et de test qui fonctionnent avec l' AWSTOE application sont basés sur des documents YAML qui définissent les scripts permettant de personnaliser ou de tester votre image. Pour les images AMI, Image Builder installe les composants et l'application de gestion des AWSTOE composants sur ses instances de build et de test Amazon EC2. Pour les images de conteneur, les AWSTOE composants et l'application de gestion des composants sont installés dans le conteneur en cours d'exécution. 

Image Builder permet AWSTOE d'effectuer toutes les activités sur instance. Aucune configuration supplémentaire n'est requise pour interagir AWSTOE lorsque vous exécutez des commandes Image Builder ou utilisez la console Image Builder.

**Note**  
Lorsqu'un composant géré par Amazon atteint la fin de sa durée de support, il n'est plus maintenu. Environ quatre semaines avant que cela ne se produise, tous les comptes utilisant le composant reçoivent une notification et une liste des recettes concernées dans leur compte de la part de leur compte Tableau de bord AWS Health. Pour en savoir plus AWS Health, consultez le [guide de AWS Health l'utilisateur](https://docs.aws.amazon.com/health/latest/ug/).

**Étapes du flux de travail pour créer une nouvelle image**  
Le flux de travail Image Builder pour créer de nouvelles images comprend les deux étapes distinctes suivantes.

1. **Étape de création** (pré-instantané) — Au cours de la phase de génération, vous apportez des modifications à l'instance de génération Amazon EC2 qui exécute votre image de base, afin de créer la base de référence pour votre nouvelle image. Par exemple, votre recette peut inclure des composants qui installent une application ou modifient les paramètres du pare-feu du système d'exploitation.

   Les phases suivantes du document de votre composant s'exécutent au cours de la phase de création :
   + build
   + valider

   Une fois cette étape terminée avec succès, Image Builder crée un instantané ou une image conteneur qu'il utilise pour la phase de test et au-delà.

1. **Phase de test** (post-capture instantanée) — Au cours de la phase de test, il existe certaines différences entre les images qui créent des AMI et les images de conteneur. Pour les flux de travail AMI, Image Builder lance une instance EC2 à partir de l'instantané qu'il a créé comme dernière étape de la phase de création. Des tests sont exécutés sur la nouvelle instance pour valider les paramètres et s'assurer que l'instance fonctionne comme prévu. Pour les flux de travail de conteneurs, les tests s'exécutent sur la même instance que celle utilisée pour la création.

   La phase suivante du document de votre composant s'exécute pour chaque composant inclus dans la recette lors de la phase de test de création de l'image : 
   + test

   Cette phase de composant s'applique à la fois aux types de composants de construction et de test. Une fois cette étape terminée avec succès, Image Builder peut créer et distribuer votre image finale à partir de l'instantané ou de l'image du conteneur.

**Note**  
Bien que le framework d' AWSTOE application vous permette de définir de nombreuses phases dans un document de composant, Image Builder applique des règles strictes concernant les phases à exécuter et au cours desquelles il les exécute. Pour qu'un composant s'exécute pendant la phase de création de l'image, le document du composant doit définir au moins l'une des phases suivantes : `build` ou`validate`. Pour qu'un composant soit exécuté pendant la phase de test de l'image, le document du composant doit définir la `test` phase, et aucune autre phase.  
Image Builder exécute les étapes de manière indépendante, le chaînage des références dans les documents des composants ne peut pas dépasser les limites des étapes. Vous ne pouvez pas enchaîner une valeur d'une phase exécutée dans la phase de génération à une phase exécutée dans la phase de test. Vous pouvez toutefois définir des paramètres d'entrée pour la cible prévue et transmettre des valeurs via la ligne de commande. Pour plus d'informations sur la définition des paramètres des composants dans vos recettes Image Builder, consultez[Tutoriel : Création d'un composant personnalisé avec des paramètres d'entrée](tutorial-component-parameters.md).

Pour faciliter le dépannage de votre instance de build ou de test, AWSTOE créez un dossier journal contenant le document d'entrée et les fichiers journaux pour suivre ce qui se passe à chaque exécution d'un composant. Si vous avez configuré un compartiment Amazon S3 dans la configuration de votre pipeline, les journaux y sont également écrits. Pour plus d'informations sur les documents YAML et les résultats du journal, consultez[Utiliser le cadre de documentation des AWSTOE composants pour les composants personnalisés](toe-use-documents.md).

**Astuce**  
Lorsque vous devez suivre de nombreux composants, le balisage vous aide à identifier un composant ou une version spécifique en fonction des balises que vous lui avez attribuées. Pour plus d'informations sur le balisage de vos ressources à l'aide des commandes Image Builder dans le AWS CLI, consultez la [Balisage des ressources](tag-resources.md) section de ce guide.

Cette section explique comment répertorier, afficher, créer et importer des composants à l'aide de la console Image Builder ou des commandes du AWS CLI.

**Topics**
+ [Répertorier et afficher les détails des composants](component-details.md)
+ [Utilisez AWS Marketplace des composants pour personnaliser votre image](use-marketplace-components.md)
+ [Utilisez des composants gérés pour personnaliser votre image Image Builder](use-managed-components.md)
+ [Développez des composants personnalisés pour votre image Image Builder](create-custom-components.md)
+ [Comment Image Builder utilise l' AWS Task Orchestrator and Executor application pour gérer les composants](toe-component-manager.md)

# Répertorier et afficher les détails des composants
<a name="component-details"></a>

Cette section explique comment trouver des informations et afficher les détails des composants que vous utilisez dans vos recettes EC2 Image Builder.

**Topics**
+ [Lister les composants d'Image Builder](#list-components)
+ [Répertoriez les versions de construction des composants à partir du AWS CLI](#cli-list-component-versions)
+ [Pour obtenir des informations sur les composants, consultez le AWS CLI](#cli-get-component)
+ [Obtenez les détails de la politique relative aux composants auprès du AWS CLI](#cli-get-component-policy)

## Lister les composants d'Image Builder
<a name="list-components"></a>

Vous pouvez utiliser l'une des méthodes suivantes pour répertorier et filtrer les composants d'Image Builder.

------
#### [ AWS Management Console ]

Pour afficher la liste des composants du AWS Management Console, procédez comme suit :

1. Ouvrez la console [https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/)EC2 Image Builder à l'adresse.

1. Sélectionnez **Composants** dans le volet de navigation. Par défaut, Image Builder affiche la liste des composants que possède votre compte.

1. Vous pouvez éventuellement filtrer en fonction de la propriété des composants. Pour voir les composants que vous ne possédez pas, mais auxquels vous avez accès, développez la liste déroulante des types de propriétaires et sélectionnez l'une des valeurs. La liste des types de propriétaires se trouve dans la barre de recherche, à côté de la zone de texte de recherche. Vous pouvez choisir parmi les valeurs suivantes :
   + **AWS Marketplace**— Composants directement associés à un abonnement à un AWS Marketplace produit.
   + **Démarrage rapide (géré par Amazon)** : composants accessibles au public créés et gérés par Amazon.
   + **Possédé par moi** — Composants que vous avez créés. Il s'agit de la sélection par défaut.
   + **Partagé avec moi** : composants que d'autres personnes ont créés et partagés avec vous depuis leur compte.
   + **Géré par un tiers** : composants appartenant à un tiers et auxquels vous vous êtes abonné AWS Marketplace.

------
#### [ AWS CLI ]

L'exemple suivant montre comment utiliser la **[list-components](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/list-components.html)** commande pour renvoyer une liste des composants Image Builder que votre compte possède.

```
aws imagebuilder list-components
```

Vous pouvez éventuellement filtrer en fonction de la propriété des composants. L'attribut owner définit à qui appartiennent les composants que vous souhaitez répertorier. Par défaut, cette demande renvoie une liste des composants que possède votre compte. Pour filtrer les résultats par propriétaire du composant, spécifiez l'une des valeurs suivantes avec le `--owner` paramètre lorsque vous exécutez la **list-components** commande.

**Valeurs du propriétaire du composant**
+ `AWSMarketplace`
+ `Amazon`
+ `Self`
+ `Shared`
+ `ThirdParty`

Les exemples suivants montrent la **list-components** commande avec le `--owner` paramètre permettant de filtrer les résultats.

```
aws imagebuilder list-components --owner Self
{
    "requestId": "012a3456-b789-01cd-e234-fa5678b9012b",
    "componentVersionList": [
        {
            "arn": "arn:aws:imagebuilder:us-west-2:123456789012:component/sample-component01/1.0.0",
            "name": "sample-component01",
            "version": "1.0.0",
            "platform": "Linux",
            "type": "BUILD",
            "owner": "123456789012",
            "dateCreated": "2020-09-24T16:58:24.444Z"
        },
        {
            "arn": "arn:aws:imagebuilder:us-west-2:123456789012:component/sample-component01/1.0.1",
            "name": "sample-component01",
            "version": "1.0.1",
            "platform": "Linux",
            "type": "BUILD",
            "owner": "123456789012",
            "dateCreated": "2021-07-10T03:38:46.091Z"
        }
    ]
}
```

```
aws imagebuilder list-components --owner Amazon
```

```
aws imagebuilder list-components --owner Shared
```

```
aws imagebuilder list-components --owner ThirdParty
```

------

## Répertoriez les versions de construction des composants à partir du AWS CLI
<a name="cli-list-component-versions"></a>

L'exemple suivant montre comment utiliser la **[list-component-build-versions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/list-component-build-versions.html)** commande pour répertorier les versions de construction de composants qui ont une version sémantique spécifique. Pour en savoir plus sur le versionnement sémantique des ressources Image Builder, consultez. [Versionnage sémantique dans Image Builder](ibhow-semantic-versioning.md)

```
aws imagebuilder list-component-build-versions --component-version-arn arn:aws:imagebuilder:us-west-2:123456789012:component/example-component/1.0.1
{
    "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
    "componentSummaryList": [
        {
            "arn": "arn:aws:imagebuilder:us-west-2:123456789012:component/examplecomponent/1.0.1/1",
            "name": "examplecomponent",
            "version": "1.0.1",
            "platform": "Linux",
            "type": "BUILD",
            "owner": "123456789012",
            "description": "An example component that builds, validates and tests an image",
            "changeDescription": "Updated version.",
            "dateCreated": "2020-02-19T18:53:45.940Z",
            "tags": {
                "KeyName": "KeyValue"
            }
        }
    ]
}
```

## Pour obtenir des informations sur les composants, consultez le AWS CLI
<a name="cli-get-component"></a>

L'exemple suivant montre comment utiliser la **[get-component](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/get-component.html)** commande pour obtenir les détails d'un composant lorsque vous spécifiez son Amazon Resource Name (ARN).

```
aws imagebuilder get-component --component-build-version-arn arn:aws:imagebuilder:us-west-2:123456789012:component/example-component/1.0.1/1
			{
    "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11112",
    "component": {
        "arn": "arn:aws:imagebuilder:us-west-2:123456789012:component/examplecomponent/1.0.1/1",
        "name": "examplecomponent",
        "version": "1.0.1",
        "type": "BUILD",
        "platform": "Linux",
        "owner": "123456789012",
        "data": "name: HelloWorldTestingDocument\ndescription: This is hello world testing document... etc.\"\n",
        "encrypted": true,
        "dateCreated": "2020-09-24T16:58:24.444Z",
        "tags": {}
    }
}
```

## Obtenez les détails de la politique relative aux composants auprès du AWS CLI
<a name="cli-get-component-policy"></a>

L'exemple suivant montre comment utiliser la **[get-component-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/get-component-policy.html)** commande pour obtenir les détails d'une politique de composant lorsque vous spécifiez l'ARN du composant.

```
aws imagebuilder get-component-policy --component-arn arn:aws:imagebuilder:us-west-2:123456789012:component/example-component/1.0.1
```

# Utilisez AWS Marketplace des composants pour personnaliser votre image
<a name="use-marketplace-components"></a>

Outre une large sélection d'images créées par des fournisseurs de logiciels indépendants (ISVs), il AWS Marketplace propose des composants que vous pouvez utiliser pour personnaliser vos propres images Image Builder. Vous devez vous abonner à ces AWS Marketplace composants avant de pouvoir les utiliser dans votre recette d'image pour créer une nouvelle image.

Lorsque vous spécifiez un AWS Marketplace composant dans une recette d'image, Image Builder valide l'abonnement et effectue des contrôles de dépendance pour s'assurer que vous disposez des ressources nécessaires pour l'utiliser. Lorsque la validation aboutit, Image Builder crée des téléchargements sécurisés pour le composant et ses artefacts à utiliser par les builds de pipeline d'images.

## Découvrez les AWS Marketplace composants
<a name="use-marketplace-components-discover"></a>

Vous pouvez découvrir les composants AWS Marketplace logiciels à utiliser dans vos recettes sur la page **Découvrir les produits** de la console Image Builder, comme suit.

1. Ouvrez la console [https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/)EC2 Image Builder à l'adresse.

1. Dans le volet de navigation, choisissez **Découvrir les produits** dans la **AWS Marketplace**section.

1. Sélectionnez l'onglet **Components** (Composants). Cet onglet répertorie tous les AWS Marketplace produits qui utilisent l'option de livraison qui inclut les composants associés dans AWS Marketplace.

1. Pour rechercher des produits logiciels spécifiques qui incluent des composants, vous pouvez saisir une partie du nom dans la barre de recherche ou filtrer par `Status``Operating System`,`Publisher`, ou`Categories`. La barre de recherche contient également des commandes de pagination pour vos résultats.

### Résultats
<a name="w2aac13c26b7b7"></a>

Chaque AWS Marketplace produit possède son propre panneau de détails qui inclut les informations suivantes.

**Le nom et le logo du AWS Marketplace produit**  
Le nom du produit logiciel est lié aux détails du produit dans AWS Marketplace. Vous pouvez sélectionner le lien pour en savoir plus sur le produit dans AWS Marketplace. Vous pouvez également consulter un résumé des options d'abonnement et vous abonner directement à partir des résultats de recherche à l'aide du bouton **Afficher les options d'abonnement** si vous avez déjà effectué vos recherches.

**Version**  
Il contient la version principale du composant.

**Système d’exploitation**  
Système d'exploitation sur lequel le composant est conçu pour s'exécuter.

**Editeur**  
L'éditeur du composant. Ceci est lié à la page détaillée de l'éditeur dans AWS Marketplace. La page détaillée de l'éditeur s'ouvre dans un nouvel onglet de votre navigateur.

**Catégories**  
Une ou plusieurs catégories de AWS Marketplace produits qui s'appliquent au composant.

**Statut**  
Indique si vous êtes abonné à ce produit. Si vous n'êtes pas abonné, vous pouvez choisir **Afficher les options d'abonnement** pour voir un résumé des options d'abonnement pour le AWS Marketplace produit, et éventuellement vous abonner directement depuis la console Image Builder.

**Composants associés**  
Si une ou plusieurs versions du AWS Marketplace produit sont incluses dans votre abonnement, elles sont affichées dans la section **Composants associés**. La section est initialement réduite et affiche le nombre de composants associés. Vous pouvez développer la section pour obtenir plus de détails.

**Note**  
Le composant Center for Internet Security (CIS) associé à leur produit AWS Marketplace image n'apparaît pas dans les résultats des **produits Discover**. Si vous vous abonnez à leur produit image, le composant associé est affiché sur la page **Abonnements**, et en tant que composant tiers dans la boîte de dialogue **Créer une recette d'image**. Pour plus d'informations sur le composant, consultez[composants de durcissement CIS](toe-cis.md).

## S'abonner aux AWS Marketplace composants
<a name="use-marketplace-components-subscribe"></a>

Une fois que vous avez trouvé un AWS Marketplace produit contenant des composants que vous souhaitez utiliser dans vos recettes, vous pouvez vous y abonner directement depuis la console Image Builder, comme suit, ou vous pouvez vous abonner depuis la AWS Marketplace console.

1. Ouvrez la console [https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/)EC2 Image Builder à l'adresse.

1. Dans le volet de navigation, choisissez **Découvrir les produits** dans la **AWS Marketplace**section.

1. Sélectionnez l'onglet **Components** (Composants). Cet onglet répertorie tous les AWS Marketplace produits qui utilisent l'option de livraison qui inclut les composants associés dans AWS Marketplace.

1. Pour rechercher un AWS Marketplace produit spécifique, entrez une partie du nom dans la barre de recherche. Si vous connaissez l'éditeur, mais que vous ne connaissez pas le nom exact du produit ou son orthographe, vous pouvez également filtrer `Publisher` pour obtenir une liste des produits disponibles chez l'éditeur.

1. Sélectionnez le produit auquel vous souhaitez vous abonner dans la liste des résultats, puis choisissez **Afficher les options d'abonnement**. Ceci affiche un résumé des options d'abonnement pour le AWS Marketplace produit.

1. Sélectionnez **S'abonner** pour vous abonner au produit sans quitter la console Image Builder. Vous êtes informé que l'abonnement est en cours de traitement. Une fois que vous êtes abonné, le **statut** est mis à jour à`Subscribed`.

Pour plus d'informations sur les AWS Marketplace produits auxquels vous êtes actuellement abonné, consultez les étapes de la console décrites dans[AWS Marketplace abonnements dans Image Builder](integ-marketplace.md#integ-marketplace-subs).

## Utiliser un AWS Marketplace composant dans une recette d'image Image Builder
<a name="use-marketplace-components-recipe"></a>

Vous pouvez utiliser AWS Marketplace des composants dans vos recettes d'images Image Builder de la même manière que vous utilisez d'autres types de composants. Pour la plupart des composants associés à un produit d' AWS Marketplace image, la catégorie de propriété est`AWS Marketplace`. Par exemple, pour utiliser un composant de construction d'un AWS Marketplace produit auquel vous êtes abonné, choisissez **Ajouter des composants `AWS Marketplace` de construction**, puis sélectionnez-le dans la liste. Cela ouvre un panneau de sélection sur le côté droit de l'interface de la console qui répertorie les AWS Marketplace composants.

**Note**  
Si vous recherchez le composant de renforcement CIS, sélectionnez`Third party managed`, dans la liste des propriétaires au lieu de`AWS Marketplace`.

Pour plus d'informations sur la manière de sélectionner, d'organiser et de configurer les paramètres de vos composants, consultez[Création d'une nouvelle version d'une recette d'image](create-image-recipes.md).

# Utilisez des composants gérés pour personnaliser votre image Image Builder
<a name="use-managed-components"></a>

Les composants gérés sont créés AWS, parfois en partenariat avec une organisation tierce, telle que le Center for Internet Security (CIS), par exemple. Lorsque vous utilisez des composants gérés dans votre image ou vos recettes de conteneurs, Amazon fournit les dernières versions de composants auxquelles des correctifs et d'autres mises à jour ont été appliqués. Pour obtenir la liste des composants ou pour obtenir des informations sur les composants, consultez[Répertorier et afficher les détails des composants](component-details.md).

La liste suivante des composants AWS gérés en vedette inclut un composant que vous pouvez utiliser lorsque vous vous abonnez à CIS Hardened AMIs via le AWS Marketplace.

**Topics**
+ [Installation d'une application de composants gérés par le package du distributeur pour les images Windows d'Image Builder](mgdcomponent-distributor-win.md)
+ [composants de durcissement CIS](toe-cis.md)
+ [Amazon a géré les composants de renforcement STIG pour Image Builder](ib-stig.md)

# Installation d'une application de composants gérés par le package du distributeur pour les images Windows d'Image Builder
<a name="mgdcomponent-distributor-win"></a>

AWS Systems Manager Distributor vous aide à empaqueter et à publier des logiciels sur des nœuds AWS Systems Manager gérés. Vous pouvez empaqueter et publier vos propres logiciels ou utiliser le distributeur pour rechercher et publier les packages logiciels AWS fournis par les agents. Pour plus d'informations sur Systems Manager Distributor, consultez la section [AWS Systems Manager Distributor](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor.html) dans le *guide de AWS Systems Manager l'utilisateur*.

**Composants gérés pour le distributeur**  
Les composants gérés par Image Builder suivants utilisent AWS Systems Manager Distributor pour installer des packages d'applications sur des instances Windows.
+ Le composant `distributor-package-windows` géré utilise AWS Systems Manager Distributor pour installer les packages d'applications que vous spécifiez sur votre instance de génération d'image Windows. Pour configurer les paramètres lorsque vous incluez ce composant dans votre recette, consultez[Configuration `distributor-package-windows` en tant que composant autonome](#mgdcomponent-distributor-config-standalone).
+ Le `aws-vss-components-windows` composant utilise AWS Systems Manager Distributor pour installer le `AwsVssComponents` package sur votre instance de génération d'image Windows. Pour configurer les paramètres lorsque vous incluez ce composant dans votre recette, consultez[Configuration `aws-vss-components-windows` en tant que composant autonome](#mgdcomponent-vss-config-standalone).

Pour plus d'informations sur l'utilisation des composants gérés dans votre recette Image Builder, consultez [Création d'une nouvelle version d'une recette d'image](create-image-recipes.md) les recettes d'images ou [Création d'une nouvelle version d'une recette de conteneur](create-container-recipes.md) les recettes de conteneurs. Pour plus d'informations sur le `AwsVssComponents` package, consultez la section [Créer un instantané cohérent avec les applications VSS dans le guide de l'](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/application-consistent-snapshots.html)utilisateur *Amazon* EC2.

## Conditions préalables
<a name="mgdcomponent-distributor-prereq"></a>

Avant d'utiliser les composants Image Builder qui s'appuient sur Systems Manager Distributor pour installer des packages d'applications, vous devez vous assurer que les conditions préalables suivantes sont remplies.
+ Les composants Image Builder qui utilisent Systems Manager Distributor pour installer des packages d'applications sur votre instance doivent être autorisés à appeler l'API Systems Manager. Avant d'utiliser les composants d'une recette Image Builder, vous devez créer la politique et le rôle IAM qui accordent l'autorisation. Pour configurer les autorisations, consultez[Configurer les autorisations du distributeur Systems Manager](#mgdcomponent-distributor-permissions).

**Note**  
Image Builder ne prend actuellement pas en charge les packages Systems Manager Distributor qui redémarrent l'instance. Par exemple, les packages`AWSNVMe`,`AWSPVDrivers`, et `AwsEnaNetworkDriver` Distributor redémarrent l'instance et ne sont donc pas autorisés.

## Configurer les autorisations du distributeur Systems Manager
<a name="mgdcomponent-distributor-permissions"></a>

Le `distributor-package-windows` composant et les autres composants qui l'utilisent, tels que`aws-vss-components-windows`, nécessitent une autorisation supplémentaire sur l'instance de build pour s'exécuter. L'instance de build doit être en mesure d'appeler l'API Systems Manager pour démarrer une installation de Distributor et demander le résultat.

Suivez ces procédures AWS Management Console pour créer une politique et un rôle IAM personnalisés autorisant les composants Image Builder à installer les packages Systems Manager Distributor à partir de l'instance de build.

**Étape 1 : créer une politique**  
Créez une politique IAM pour les autorisations des distributeurs.

1. Ouvrez la console IAM à l’adresse [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Dans le volet de navigation, sélectionnez **Politiques**, puis **Créer une politique**.

1. Sur la page **Créer une politique**, choisissez l'onglet **JSON**, puis remplacez le contenu par défaut par la politique JSON suivante, en remplaçant la partition, la région et l'ID de compte si nécessaire, ou en utilisant des caractères génériques.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowDistributorSendCommand",
               "Effect": "Allow",
               "Action": "ssm:SendCommand",
               "Resource": [
                   "arn:aws:ssm:*::document/AWS-ConfigureAWSPackage",
                   "arn:aws:ec2:*:111122223333:instance/*"
               ]
           },
           {
               "Sid": "AllowGetCommandInvocation",
               "Effect": "Allow",
               "Action": "ssm:GetCommandInvocation",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Choisissez **Examiner une stratégie**.

1. Pour **Nom**, saisissez un nom pour identifier la stratégie, par exemple `InvokeDistributor` ou tout autre nom de votre choix.

1. (Facultatif) Pour **Description**, saisissez une description de l'objectif du rôle.

1. Choisissez **Créer une stratégie**.

**Étape 2 : Création d'un rôle**  
Créez un rôle IAM pour les autorisations de distributeur.

1. Dans le volet de navigation de la console IAM, choisissez **Roles**, puis **Create role**.

1. Sous **Select type of trusted entity** (Sélectionner le type d'entité approuvée), choisissez **Service AWS**.

1. Immédiatement sous **Choisir le service qui utilisera ce rôle**, choisissez **EC2**, puis **Suivant : Autorisations**.

1. Sous **Sélectionner votre cas d'utilisation**, choisissez **EC2**, puis **Suivant : Autorisations**.

1. Dans la liste des politiques, cochez la case à côté d'**Amazon SSMManaged InstanceCore**. (Entrez `SSM` dans la zone de recherche si vous avez besoin d'une liste plus petite.)

1. Dans cette liste de politiques, cochez la case à côté de **EC2InstanceProfileForImageBuilder**. (Entrez `ImageBuilder` dans la zone de recherche si vous avez besoin d'une liste plus petite.)

1. Choisissez **Next: Tags (Suivant : Balises)**.

1. (Facultatif) Ajoutez une ou plusieurs paires clé-valeur de balise pour organiser, suivre ou contrôler l'accès pour ce rôle, puis choisissez **Suivant : Révision**.

1. Pour **Nom du rôle**, entrez un nom pour le rôle, par exemple `InvokeDistributor` ou autre, en fonction de vos préférences.

1. (Facultatif) Pour **Description du rôle**, remplacez le texte par défaut par une description de l'objectif de ce rôle.

1. Sélectionnez **Créer un rôle**. Le système vous renvoie à la page **Rôles**.

**Étape 3 : associer la politique au rôle**  
La dernière étape pour configurer vos autorisations de distributeur consiste à associer la politique IAM au rôle IAM.

1. Sur la page **Rôles** de la console IAM, choisissez le rôle que vous venez de créer. La page **Résumé du rôle** s'ouvre.

1. Choisissez **Attach Policies (Attacher des stratégies)**.

1. Recherchez la politique que vous avez créée dans la procédure précédente et cochez la case à côté du nom.

1. Choisissez **Attach policy** (Attacher la politique).

Utilisez ce rôle dans la ressource de configuration de l'infrastructure Image Builder pour toute image incluant des composants utilisant Systems Manager Distributor. Pour de plus amples informations, veuillez consulter [Créer une configuration d'infrastructure](create-infra-config.md).

## Configuration `distributor-package-windows` en tant que composant autonome
<a name="mgdcomponent-distributor-config-standalone"></a>

Pour utiliser le `distributor-package-windows` composant dans une recette, définissez les paramètres suivants qui configurent le package à installer.

**Note**  
Avant d'utiliser le `distributor-package-windows` composant dans une recette, vous devez vous assurer que toutes les conditions [Conditions préalables](#mgdcomponent-distributor-prereq) sont respectées.
+ **Action** (obligatoire) — Spécifiez si vous souhaitez installer ou désinstaller le package. Les valeurs valides sont `Install` et `Uninstall`. La valeur par défaut est. `Install`
+ **PackageName**(Obligatoire) : nom du package du distributeur à installer ou à désinstaller. Pour obtenir la liste des noms de packages valides, consultez[Trouver des packages pour distributeurs](#mgdcomponent-distributor-find-pkg).
+ **PackageVersion**(Facultatif) — Version du package du distributeur à installer. PackageVersion par défaut, c'est la version recommandée.
+ **AdditionalArguments**(Facultatif) — Chaîne JSON contenant les paramètres supplémentaires à fournir à votre script pour installer, désinstaller ou mettre à jour un package. Pour plus d'informations, consultez **AdditionalArguments** dans la section [AWS:ConfigurePackage Inputs de la page](https://docs.aws.amazon.com/systems-manager/latest/userguide/documents-command-ssm-plugin-reference.html#aws-configurepackage) **de référence** du plug-in du document **Systems Manager Command**.

## Configuration `aws-vss-components-windows` en tant que composant autonome
<a name="mgdcomponent-vss-config-standalone"></a>

Lorsque vous utilisez le `aws-vss-components-windows` composant dans une recette, vous pouvez éventuellement définir le `PackageVersion` paramètre pour utiliser une version spécifique du `AwsVssComponents` package. Lorsque vous omettez ce paramètre, le composant utilise par défaut la version recommandée du `AwsVssComponents` package.

**Note**  
Avant d'utiliser le `aws-vss-components-windows` composant dans une recette, vous devez vous assurer que toutes les conditions [Conditions préalables](#mgdcomponent-distributor-prereq) sont respectées.

## Trouver des packages pour distributeurs
<a name="mgdcomponent-distributor-find-pkg"></a>

Amazon et des tiers fournissent des packages publics que vous pouvez installer avec Systems Manager Distributor.

Pour consulter les packages disponibles dans le AWS Management Console, connectez-vous à la [AWS Systems Manager console](https://console.aws.amazon.com/systems-manager/;) et choisissez **Distributor** dans le volet de navigation. La page **Distributeur** affiche tous les packages mis à votre disposition. Pour plus d'informations sur la liste des packages disponibles avec le AWS CLI, voir [Afficher les packages (ligne de commande)](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor-view-packages.html) dans le *guide de AWS Systems Manager l'utilisateur*.

Vous pouvez également créer vos propres packages privés de distribution Systems Manager. Pour plus d'informations, voir [Création d'un package](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor-working-with-packages-create.html) dans le *guide de AWS Systems Manager l'utilisateur*.

# composants de durcissement CIS
<a name="toe-cis"></a>

Le Center for Internet Security (CIS) est une organisation communautaire à but non lucratif. Leurs experts en cybersécurité travaillent ensemble pour élaborer des directives de sécurité informatique qui protègent les organisations publiques et privées contre les cybermenaces. Leur ensemble de bonnes pratiques mondialement reconnu, connu sous le nom de CIS Benchmarks, aide les organisations informatiques du monde entier à configurer leurs systèmes en toute sécurité. Pour les articles tendance, les articles de blog, les podcasts, les webinaires et les livres blancs, consultez [CIS Insights](https://www.cisecurity.org/insights) sur le site Web du *Center for Internet Security*.

**Evaluations CIS**  
CIS crée et gère un ensemble de directives de configuration, connues sous le nom de benchmarks CIS, qui fournissent les meilleures pratiques de configuration pour des technologies spécifiques, notamment les systèmes d'exploitation, les plateformes cloud, les applications, les bases de données, etc. Les benchmarks CIS sont reconnus comme une norme industrielle par des organisations et des normes telles que PCI DSS, HIPAA, DoD Cloud Computing SRG, FISMA, DFARS et FEDRAMP. Pour en savoir plus, consultez [la section CIS Benchmarks](https://www.cisecurity.org/benchmark) sur le site Web *du Center for Internet Security*.

**composants de durcissement CIS**  
Lorsque vous vous abonnez à une image renforcée CIS dans AWS Marketplace, vous avez également accès au composant de renforcement associé qui exécute un script pour appliquer les directives CIS Benchmarks de niveau 1 à votre configuration. L'organisation CIS possède et entretient les composants de durcissement CIS afin de s'assurer qu'ils reflètent les dernières directives.

**Note**  
Les composants de durcissement CIS ne respectent pas les règles de classement des composants standard des recettes Image Builder. Les composants de renforcement CIS sont toujours exécutés en dernier pour garantir que les tests de référence s'exécutent par rapport à votre image de sortie.

# Amazon a géré les composants de renforcement STIG pour Image Builder
<a name="ib-stig"></a>

Les guides de mise en œuvre technique de sécurité (STIGs) sont des normes de renforcement de la configuration créées par la Defense Information Systems Agency (DISA) pour sécuriser les systèmes d'information et les logiciels. Pour rendre vos systèmes conformes aux normes STIG, vous devez installer, configurer et tester différents paramètres de sécurité.

Image Builder fournit des composants de renforcement STIG pour vous aider à créer plus efficacement des images conformes aux normes STIG de base. Ces composants STIG détectent les erreurs de configuration et exécutent un script de correction. L'utilisation de composants conformes aux normes STIG est gratuite.

**Important**  
À quelques exceptions près, sauf indication contraire dans les paramètres, les composants de renforcement STIG n'installent pas de packages tiers. Si des packages tiers sont déjà installés sur l'instance et STIGs qu'Image Builder prend en charge certains d'entre eux pour ce package, le composant de renforcement les applique.

Cette page répertorie tous les STIG pris en charge par Image Builder et appliqués aux instances EC2 lancées par Image Builder lorsque vous créez et testez une nouvelle image. Si vous souhaitez appliquer des paramètres STIG supplémentaires à votre image, vous pouvez créer un composant personnalisé pour la configurer. Pour plus d'informations sur les composants personnalisés et sur la façon de les créer, consultez[Utilisez des composants pour personnaliser votre image Image Builder](manage-components.md).

Lorsque vous créez une image, les composants de durcissement STIG enregistrent s'ils STIGs sont pris en charge ou ignorés. Nous vous recommandons de consulter les journaux Image Builder de vos images qui utilisent des composants de renforcement STIG. Pour plus d'informations sur la façon d'accéder aux journaux d'Image Builder et de les consulter, consultez[Résoudre les problèmes liés aux builds de pipelines](troubleshooting.md#troubleshooting-pipelines).

**Niveaux de conformité**
+ **Élevé (Catégorie I)**

  Risque le plus grave. Inclut toute vulnérabilité pouvant entraîner une perte de confidentialité, de disponibilité ou d'intégrité.
+ **Moyen (Catégorie II)**

  Inclut toute vulnérabilité susceptible d'entraîner une perte de confidentialité, de disponibilité ou d'intégrité, mais les risques peuvent être atténués.
+ **Faible (catégorie III)**

  Toute vulnérabilité qui dégrade les mesures de protection contre la perte de confidentialité, de disponibilité ou d'intégrité.

**Topics**
+ [Composants de renforcement Windows STIG](#windows-os-stig)
+ [Journal d'historique des versions de STIG pour Windows](#ib-windows-version-hist)
+ [Composants de renforcement Linux STIG](#linux-os-stig)
+ [Journal d'historique des versions de STIG pour Linux](#ib-linux-version-hist)
+ [Composant de validation de conformité SCAP](#scap-compliance)

## Composants de renforcement Windows STIG
<a name="windows-os-stig"></a>

AWSTOE Les composants de renforcement de Windows STIG sont conçus pour les serveurs autonomes et appliquent une stratégie de groupe locale. Les composants de renforcement conformes aux STIG installent et mettent à jour les certificats du ministère de la Défense (DoD). Ils suppriment également les certificats inutiles pour maintenir la conformité aux STIG. Actuellement, les lignes de base STIG sont prises en charge pour les versions suivantes de Windows Server : 2012 R2, 2016, 2019, 2022 et 2025.

Cette section répertorie les paramètres actuels de chacun des composants de renforcement de Windows STIG, suivis d'un journal de l'historique des versions.

### Windows STIG Niveau faible (catégorie III)
<a name="ib-windows-stig-low"></a>

La liste suivante contient les paramètres STIG que le composant de renforcement applique à votre infrastructure. Si aucun paramètre pris en charge n'est applicable à votre infrastructure, le composant de renforcement ignore ce paramètre et passe à autre chose. Par exemple, certains paramètres STIG peuvent ne pas s’appliquer aux serveurs autonomes. Les politiques spécifiques à l'organisation peuvent également affecter les paramètres appliqués par le composant de renforcement, par exemple l'obligation pour les administrateurs de revoir les paramètres du document.

Pour obtenir la liste complète de Windows STIGs, consultez la [bibliothèque de STIGs documents](https://public.cyber.mil/stigs/downloads/?_dl_facet_stigs=windows). Pour plus d’informations sur l’affichage de la liste complète, veuillez consulter la rubrique [Outils d’affichage STIG](https://public.cyber.mil/stigs/srg-stig-tools/).
+ **Windows Server 2025 STIG version 1, version 1**

  V-278082, V-278083, V-278084, V-278085, V-278098, V-278104, V-278110 et V-278231
+ **Windows Server 2022 STIG version 2 version 7**

  V-254335, V-254336, V-254337, V-254338, V-254351, V-254357, V-254363 et V-254481
+ **Windows Server 2019 STIG version 3 version 7**

  V-205691, V-205819, V-205858, V-205859, V-205860, V-205870, V-205871 et V-205923
+ **Windows Server 2016 STIG version 2 version 10**

  V-224916, V-224917, V-224918, V-224919, V-224931, V-224942 et V-225060
+ **Windows Server 2012 R2 MS STIG version 3 version 5**

  V-225250, V-225318, V-225319, V-225324, V-225327, V-225328, V-225330, V-225331, V-225332, V-225333, V-225334, V-225335, V-225336, V-225342, V-225343, V-225355, V-225357, V-225358, V-225359, V-225360, V-225362, V-225363, V-225376, V-225392, V-225394, V-225412, V-225459, V-225460, V-225462, V-225468, V-225473, V-225476, V-225479, V-225480, V-225481, V-225482, V-225483, V-225484, V-225485, V-225487, V-225488, V-225489, V-225490, V-225511, V-225514, V-225525, V-225526, V-225536 et V-225537
+ **Microsoft .NET Framework 4.0 STIG version 2 version 7**

  Aucun paramètre STIG n'est appliqué au Microsoft .NET Framework pour les vulnérabilités de catégorie III.
+ **Pare-feu Windows STIG version 2, version 2**

  V-241994, V-241995, V-241996, V-241999, V-242000, V-242001, V-242006, V-242007 et V-242008
+ **Internet Explorer 11 STIG version 2 version 6**

  V-223056 et V-223078
+ **Microsoft Edge STIG version 2 version 4 (Windows Server 2022 et 2025 uniquement)**

  V-235727, V-235731, V-235751, V-235752 et V-235765
+ **Microsoft Defender STIG version 2, version 7**

  Aucun paramètre STIG n'est appliqué aux vulnérabilités de catégorie III de Microsoft Antivirus.

### Windows STIG Niveau moyen (catégorie II)
<a name="ib-windows-stig-medium"></a>

La liste suivante contient les paramètres STIG que le composant de renforcement applique à votre infrastructure. Si aucun paramètre pris en charge n'est applicable à votre infrastructure, le composant de renforcement ignore ce paramètre et passe à autre chose. Par exemple, certains paramètres STIG peuvent ne pas s’appliquer aux serveurs autonomes. Les politiques spécifiques à l'organisation peuvent également affecter les paramètres appliqués par le composant de renforcement, par exemple l'obligation pour les administrateurs de revoir les paramètres du document.

Pour obtenir la liste complète de Windows STIGs, consultez la [bibliothèque de STIGs documents](https://public.cyber.mil/stigs/downloads/?_dl_facet_stigs=windows). Pour plus d’informations sur l’affichage de la liste complète, veuillez consulter la rubrique [Outils d’affichage STIG](https://public.cyber.mil/stigs/srg-stig-tools/).

**Note**  
Les composants de renforcement Windows STIG Medium incluent tous les paramètres STIG répertoriés qui AWSTOE s'appliquent aux composants de renforcement faible de Windows STIG, en plus des paramètres STIG répertoriés spécifiquement pour les vulnérabilités de catégorie II.
+ **Windows Server 2025 STIG version 1, version 1**

  Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique aux vulnérabilités de catégorie III (faible), ainsi que :

  V-278015, V-278016, V-278019, V-278020, V-278021, V-278022, V-278023, V-278024, V-278025, V-278026, V-278033, V-278034, V-278035, V-278036, V-278037, V-278038, V-278039, V-278047, V-278048, V-278049, V-278050, V-278051, V-278052, V-278053, V-278054, V-278055, V-278056, V-278057, V-278058, V-278059, V-278060, V-278061, V-278062, V-278063, V-278064, V-278065, V-278066, V-278067, V-278068, V-278069, V-278070, V-278071, V-278072, V-278073, V-278074, V-278075, V-278076, V-278077, V-278078, V-278079, V-278080, V-278088, V-278089, V-278091, V-278092, V-278093, V-278094, V-278095, V-278096, V-278097, V-278102, V-278103, V-278105, V-278106, V-278107, V-278108, V-278109, V-278111, V-278112, V-278113, V-278114, V-278115, V-278116, V-278117, V-278118, V-278119, V-278120, V-278122, V-278123, V-278124, V-278126, V-278127, V-278129, V-278130, V-278131, V-278165, V-278168, V-278169, V-278170, V-278171, V-278174, V-278180, V-278181, V-278182, V-278183, V-278184, V-278185, V-278187, V-278188, V-278189, V-278192, V-278193, V-278194, V-278195, V-278198, V-278199, V-278200, V-278201, V-278202, V-278203, V-278204, V-278205, V-27820626, V-278209, V-278210, V-278211, V-278212, V-278213, V-278214, V-278218, V-278220, V-278221, V-278222, V-278223, V-278226, V-278227, V-278228, V-278229, V-278230, V-278232, V-278233, V-278234, V-278235, V-278236, V-278237, V-278238, V-278239, V-278240, V-278241, V-278243, V-278244, V-278245, V-278247, V-278248, V-278249, V-278251, V-278252, V-278253, V-278254, V-278255, V-278256, V-278257, V-278258, V-278259, V-278260, V-278261, V-278262, V-279916, V-279917, V-279918, V-279919, V-279920, V-279921, V-279922 et V-279923
+ **Windows Server 2022 STIG version 2 version 7**

  Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique aux vulnérabilités de catégorie III (faible), ainsi que :

  V-254247, V-254269, V-254270, V-254271, V-254272, V-254273, V-254274, V-254276, V-254277, V-254278, V-254285, V-254286, V-254287, V-254288, V-254289, V-254290, V-254291, V-254292, V-254296, V-254297, V-254298, V-254299, V-254300, V-254301, V-254302, V-254303, V-254304, V-254305, V-254307, V-254309, V-254311, V-254313, V-254314, V-254315, V-254316, V-254319, V-254320, V-254321, V-254322, V-254323, V-254324, V-254325, V-254326, V-254327, V-254328, V-254329, V-254330, V-254331, V-254332, V-254334, V-254339, V-254341, V-254342, V-254344, V-254345, V-254346, V-254347, V-254348, V-254349, V-254350, V-254355, V-254356, V-254358, V-254359, V-254360, V-254361, V-254362, V-254365, V-254366, V-254367, V-254368, V-254369, V-254370, V-254371, V-254372, V-254373, V-254375, V-254376, V-254377, V-254379, V-254380, V-254382, V-254383, V-254384, V-254431, V-254434, V-254435, V-254436, V-254438, V-254439, V-254440, V-254442, V-254443, V-254444, V-254445, V-254447, V-254448, V-254449, V-254450, V-254451, V-254452, V-254453, V-254454, V-254456, V-254459, V-254460, V-254461, V-254462, V-254463, V-254464, V-254468, V-254470, V-254471, V-254472, V-254473, V-254476, V-254477, V-254478, V-254479, V-254480, V-254482, V-254483, V-254484, V-254485, V-254486, V-254487, V-254488, V-254489, V-254491, V-254493, V-254494, V-254495, V-254497, V-254498, V-254499, V-254501, V-254502, V-254503, V-254504, V-254505, V-254506, V-254508, V-254509, V-254510, V-254511, V-254512, V-278942, V-278943, V-278944, V-278945, V-278946, V-278947, V-278948 et V-278949
+ **Windows Server 2019 STIG version 3 version 7**

  Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique aux vulnérabilités de catégorie III (faible), ainsi que :

  V-205625, V-205626, V-205627, V-205629, V-205630, V-205633, V-205634, V-205636, V-205637, V-205638, V-205639, V-205640, V-205641, V-205642, V-205643, V-205644, V-205648, V-205649, V-205650, V-205651, V-205652, V-205655, V-205656, V-205659, V-205660, V-205662, V-205671, V-205672, V-205673, V-205675, V-205676, V-205678, V-205679, V-205680, V-205681, V-205682, V-2055682, V-2055682 V-205684, V-205685, V-205686, V-205687, V-205688, V-205689, V-205690, V-205692, V-205693, V-205694, V-205697, V-205698, V-205708, V-205709, V-205712, V-205714, V-205716, V-205716, V-205709, V-205712, V-205714, V-205716, V-205716, V-205709, V-205712, V-205714, V-205716, V-205716, V-205709, V-205712, V-205714, V-205716, V-205716, V-205709, V-205712, V-205714, V-205716, V-5717, V-205718, V-205719, V-205720, V-205722, V-205730, V-205731, V-205733, V-205747, V-205748, V-205749, V-205751, V-205752, V-205754, V-205756, V-205758, V-205759, V-205760, V-205761, V-205762, V-205763, V-205764, V-205765, V-205766, V-205767, V-205768, V-205769, V-205770, V-205771, V-205772, V-205773, V-205774, V-205776, V-205777, V-205778, V-205779, V-20577 80, V-205781, V-205782, V-205783, V-205784, V-205795, V-205796, V-205797, V-205798, V-205801, V-205808, V-205809, V-205810, V-205811, V-205812, V-205814, V-205815, V-205816, V-205816, V-205811, V-205812, V-205813, V-205814, V-205815, V-205816, V-205816, V-205811 5817, V-205821, V-205822, V-205823, V-205824, V-205825, V-205826, V-205827, V-205828, V-205830, V-205832, V-205833, V-205835, V-205836, V-205837, V-205838, V-205842, V-205861, V-205863, V-205865, V-205866, V-205867, V-205868, V-205869, V-205872, V-205873, V-205874, V-205909, V-205910, V-205911, V-205912, V-205915, V-205916, V-205917, V-205918, V-205920, V-205921, V-205922, V-205925, V-257503, V-278934, V-278935, V-278936, V-278937, V-278938, V-278939, V-278940 et V-278941
+ **Windows Server 2016 STIG version 2 version 10**

  Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique aux vulnérabilités de catégorie III (faible), ainsi que :

  V-224850, V-224851, V-224852, V-224853, V-224854, V-224855, V-224856, V-224857, V-224858, V-224859, V-224866, V-224867, V-224868, V-224869, V-224870, V-224871, V-224872, V-224873, V-224877, V-224877, V-224871 V-224879, V-224880, V-224881, V-224882, V-224883, V-224884, V-224885, V-224886, V-224888, V-224890, V-224892, V-224893, V-224894, V-224895, V-224896, V-224897, V-224900, V-224901, V-224902, V-224902, V-224896 903, V-224904, V-224905, V-224906, V-224907, V-224908, V-224909, V-224910, V-224911, V-224912, V-224913, V-224914, V-224915, V-224920, V-224921, V-224922, V-224924, V-224925, V-224926, V-224927, V-224928, V-224929, V-224930, V-224935, V-224936, V-224937, V-224938, V-224939, V-224940, V-224941, V-224943, V-224944, V-224945, V-224946, V-224947, V-224948, V-224949, V-224944 V-224952, V-224953, V-224955, V-224956, V-224957, V-224959, V-224960, V-224962, V-224963, V-224965, V-224966, V-224967, V-224968, V-224969, V-224987, V-224988, V-224989, V-224995, V-224996, V-224997, V-224998, V-224999, V-225000, V-225001, V-225002, V-225003, V-225004, V-225005, V-225008, V-225009, V-225010, V-225011, V-225013, V-225014, V-225015, V-225016, V-225017, V-225018, V-225019, V-225020, V-225021, V-225022, V-225023, V-225024, V-225026, V-225027, V-225028, V-225029, V-225030, V-225031, V-225032, V-225033, V-225034, V-225035, V-225038, V-225039, V-225040, V-225041, V-225042, V-225043, V-225047, V-225049, V-225050, V-225051, V-225052, V-225055, V-225056, V-225057, V-225058, V-225061, V-225062, V-225063, V-225064, V-225065, V-225066, V-225067, V-225068, V-225070, V-225072, V-225073, V-225074, V-225076, V-225077, V-225078, V-225080, V-225081, V-225082, V-225083, V-225084, V-225085, V-225086, V-225087, V-225088, V-225089, V-225092, V-225093 et V-257502
+ **Windows Server 2012 R2 MS STIG version 3 version 5**

  Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique aux vulnérabilités de catégorie III (faible), ainsi que :

  V-225239, V-225259, V-225260, V-225261, V-225263, V-225264, V-225265, V-225266, V-225267, V-225268, V-225269, V-225270, V-225271, V-225272, V-225273, V-225275, V-225276, V-225277, V-225278, V-225279, V-225280, V-225281, V-225282, V-225283, V-225284, V-225285, V-225286, V-225287, V-225288, V-225289, V-225290, V-225291, V-225292, V-225293, V-225294, V-225295, V-225296, V-225297, V-225298, V-225299, V-225300, V-225301, V-225302, V-225303, V-225304, V-225305, V-225314, V-225315, V-225316, V-225317, V-225325, V-225326, V-225329, V-225337, V-225338, V-225339, V-225340, V-225341, V-225344, V-225345, V-225346, V-225347, V-225348, V-225349, V-225350, V-225351, V-225352, V-225353, V-225356, V-225367, V-225368, V-225369, V-225370, V-225371, V-225372, V-225373, V-225374, V-225375, V-225377, V-225378, V-225379, V-225380, V-225381, V-225382, V-225383, V-225384, V-225385, V-225386, V-225389, V-225391, V-225393, V-225395, V-225397, V-225398, V-225400, V-225401, V-225402, V-225404, V-225405, V-225406, V-225407, V-225408, V-225409, V-225410, V-225411, V-225413, V-225414, V-225415, V-225441, V-225442, V-225443, V-225448, V-225452, V-225453, V-225454, V-225455, V-225456, V-225457, V-225458, V-225461, V-225463, V-225464, V-225469, V-225470, V-225471, V-225472, V-225474, V-225475, V-225477, V-225478, V-225486, V-225494, V-225500, V-225501, V-225502, V-225503, V-225504, V-225506, V-225508, V-225509, V-225510, V-225513, V-225515, V-225516, V-225517, V-225518, V-225519, V-225520, V-225521, V-225522, V-225523, V-225524, V-225527, V-225528, V-225529, V-225530, V-225531, V-225532, V-225533, V-225534, V-225535, V-225538, V-225539, V-225540, V-225541, V-225542, V-225543, V-225544, V-225545, V-225546, V-225548, V-225549, V-225550, V-225551, V-225553, V-225554, V-225555, V-225557, V-225558, V-225559, V-225560, V-225561, V-225562, V-225563, V-225564, V-225565, V-225566, V-225567, V-225568, V-225569, V-225570, V-225571, V-225572, V-225573 et V-225574
+ **Microsoft .NET Framework 4.0 STIG version 2 version 7**

  Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique aux vulnérabilités de catégorie III (faible), ainsi que :

  V-225223, V-225230, V-225235 et V-225238
+ **Pare-feu Windows STIG version 2, version 2**

  Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique aux vulnérabilités de catégorie III (faible), ainsi que :

  V-241989, V-241990, V-241991, V-241993, V-241998, V-242003, V-242004 et V-242005
+ **Internet Explorer 11 STIG version 2 version 6**

  Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique aux vulnérabilités de catégorie III (faible), ainsi que :

  V-223015, V-223017, V-223018, V-223019, V-223020, V-223021, V-223022, V-223023, V-223024, V-223025, V-223026, V-223027, V-223028, V-223030, V-223031, V-223032, V-223033, V-223034, V-223035, V-223036, V-223037, V-223038, V-223039, V-223040, V-223041, V-223042, V-223043, V-223044, V-223045, V-223046, V-223048, V-223049, V-223050, V-223051, V-223052, V-223053, V-223054, V-223055, V-223057, V-223058, V-223059, V-223060, V-223061, V-223062, V-223063, V-223064, V-223065, V-223066, V-223067, V-223068, V-223069, V-223070, V-223071, V-223072, V-223073, V-223074, V-223075, V-223076, V-223077, V-223079, V-223080, V-223081, V-223082, V-223083, V-223084, V-223085, V-223086, V-223087, V-223088, V-223089, V-223090, V-223091, V-223092, V-223093, V-223094, V-223095, V-223096, V-223097, V-223098, V-223099, V-223100, V-223101, V-223102, V-223103, V-223104, V-223105, V-223106, V-223107, V-223108, V-223109, V-223110, V-223111, V-223112, V-223113, V-223114, V-223115, V-223116, V-223116, V-223112 117, V-223118, V-223119, V-223120, V-223121, V-223123, V-223125, V-223126, V-223127, V-223128, V-223129, V-223130, V-223131, V-223132, V-223133, V-223134, V-223135, V-223136, V-223137, V-223138, V-223139, V-223140, V-223141, V-223142, V-223143, V-223144, V-223145, V-223146, V-223147, V-223148, V-223149, V-250540 et V-250541
+ **Microsoft Edge STIG version 2 version 4 (Windows Server 2022 et 2025 uniquement)**

  Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique aux vulnérabilités de catégorie III (faible), ainsi que :

  V-235720, V-235721, V-235723, V-235724, V-235725, V-235726, V-235728, V-235729, V-235730, V-235732, V-235733, V-235734, V-235735, V-235736, V-235737, V-235738, V-235739, V-235740, V-235741, V-235742, V-235743, V-235744, V-235745, V-235746, V-235747, V-235748, V-235749, V-235750, V-235754, V-235756, V-235760, V-235761, V-235763, V-235764, V-235766, V-235767, V-235768, V-235769, V-235770, V-235771, V-235772, V-235773, V-235774 et V-246736
+ **Microsoft Defender STIG version 2, version 7**

  Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique aux vulnérabilités de catégorie III (faible), ainsi que :

  V-213427, V-213429, V-213430, V-213431, V-213432, V-213433, V-213434, V-213435, V-213436, V-213437, V-213438, V-213439, V-213440, V-213441, V-213442, V-213443, V-213444, V-213446, V-213447, V-213448, V-213448, V-213448 V-213450, V-213451, V-213454, V-213455, V-213456, V-213457, V-213458, V-213459, V-213460, V-213461, V-213462, V-213463, V-213464, V-213465, V-213466, V-278647, V-278648, V-278649, V-278650, V-278651, V-278652, V-278652 278653, V-278654, V-278655, V-278656, V-278658, V-278659, V-278660, V-278661, V-278662, V-278668, V-278669, V-278672, V-278674, V-278675, V-278676, V-278677, V-278678, V-278679, V-278680 et V-278863

### Windows STIG Niveau élevé (catégorie I)
<a name="ib-windows-stig-high"></a>

La liste suivante contient les paramètres STIG que le composant de renforcement applique à votre infrastructure. Si aucun paramètre pris en charge n'est applicable à votre infrastructure, le composant de renforcement ignore ce paramètre et passe à autre chose. Par exemple, certains paramètres STIG peuvent ne pas s’appliquer aux serveurs autonomes. Les politiques spécifiques à l'organisation peuvent également affecter les paramètres appliqués par le composant de renforcement, par exemple l'obligation pour les administrateurs de revoir les paramètres du document.

Pour obtenir la liste complète de Windows STIGs, consultez la [bibliothèque de STIGs documents](https://public.cyber.mil/stigs/downloads/?_dl_facet_stigs=windows). Pour plus d’informations sur l’affichage de la liste complète, veuillez consulter la rubrique [Outils d’affichage STIG](https://public.cyber.mil/stigs/srg-stig-tools/).

**Note**  
Les composants de renforcement élevé de Windows STIG incluent tous les paramètres STIG répertoriés qui AWSTOE s'appliquent aux composants de renforcement Windows STIG Low et Windows STIG Medium, en plus des paramètres STIG répertoriés spécifiquement pour les vulnérabilités de catégorie I.
+ **Windows Server 2025 STIG version 1, version 1**

  Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique aux vulnérabilités de catégories II et III (moyennes et faibles), ainsi que :

  V-278040, V-278099, V-278100, V-278101, V-278121, V-278125, V-278128, V-278196, V-278215, V-278216, V-278217, V-278219, V-278225, V-278242, V-278246 et V-278250
+ **Windows Server 2022 STIG version 2 version 7**

  Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique aux vulnérabilités de catégories II et III (moyennes et faibles), ainsi que :

  V-254250, V-254293, V-254352, V-254353, V-254354, V-254374, V-254378, V-254381, V-254446, V-254466, V-254467, V-254469, V-254474, V-254475, V-254492, V-254496 et V-254500
+ **Windows Server 2019 STIG version 3 version 7**

  Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique aux vulnérabilités de catégories II et III (moyennes et faibles), ainsi que :

  V-205653, V-205654, V-205663, V-205711, V-205713, V-205724, V-205725, V-205750, V-205753, V-205757, V-205802, V-205804, V-205805, V-205806, V-205849, V-205908, V-205914 et V-205919
+ **Windows Server 2016 STIG version 2 version 10**

  Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique aux vulnérabilités de catégories II et III (moyennes et faibles), ainsi que :

  V-224831, V-224874, V-224932, V-224933, V-224934, V-224954, V-224958, V-224961, V-225025, V-225045, V-225046, V-225048, V-225053, V-225054, V-225071, V-225079 et V-225091
+ **Windows Server 2012 R2 MS STIG version 3 version 5**

  Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique aux vulnérabilités de catégories II et III (moyennes et faibles), ainsi que :

  V-225274, V-225354, V-225364, V-225365, V-225366, V-225390, V-225396, V-225399, V-225444, V-225449, V-225491, V-225492, V-225493, V-225496, V-225497, V-225498, V-225505, V-225507, V-225547, V-225552 et V-225556
+ **Microsoft .NET Framework 4.0 STIG version 2 version 7**

  Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique pour les vulnérabilités de catégories II et III (moyennes et faibles) dans le Microsoft .NET Framework. Aucun paramètre STIG supplémentaire ne s’applique pour les vulnérabilités de catégorie I.
+ **Pare-feu Windows STIG version 2, version 2**

  Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique aux vulnérabilités de catégories II et III (moyennes et faibles), ainsi que :

  V-241992, V-241997 et V-242002
+ **Internet Explorer 11 STIG version 2 version 6**

  V-252910
+ **Microsoft Edge STIG version 2 version 4 (Windows Server 2022 et 2025 uniquement)**

  Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique aux vulnérabilités de catégories II et III (moyennes et faibles), ainsi que :

  V-235758 and V-235759
+ **Microsoft Defender STIG version 2, version 7**

  Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique aux vulnérabilités de catégories II et III (moyennes et faibles), ainsi que :

  V-213426, V-213428, V-213452 et V-213453

## Journal d'historique des versions de STIG pour Windows
<a name="ib-windows-version-hist"></a>

Cette section enregistre l'historique des versions des composants de renforcement de Windows pour les mises à jour trimestrielles de STIG. Pour voir les modifications et les versions publiées pendant un trimestre, choisissez le titre pour développer les informations.

### Modifications apportées au premier trimestre 2026 - 10/03/2026 :
<a name="2026-q1-windows"></a>

Ajout du support pour Windows Server 2025 et mise à jour de toutes les versions applicables STIGs au premier trimestre 2026.

**Fenêtres STIG-BUILD**
+ Windows Server 2025 STIG version 1, version 1
+ Windows Server 2022 STIG version 2 version 7
+ Windows Server 2019 STIG version 3 version 7
+ Windows Server 2016 STIG version 2 version 10
+ Windows Server 2012 R2 MS utilisant STIG version 3 sortie 5
+ Microsoft .NET Framework 4.0 STIG version 2 version 7
+ Pare-feu Windows STIG version 2, version 2
+ Internet Explorer 11 STIG version 2 version 8
+ Microsoft Edge STIG version 2 version 4 (Windows Server 2022 et 2025 uniquement)

### Modifications apportées au troisième trimestre 2025 – 09/04/2025 (aucune modification) :
<a name="2025-q3-windows"></a>

Aucune modification n’a été apportée au composant Windows STIG pour la version du troisième trimestre 2025.

### Modifications apportées au deuxième trimestre 2025 – 26/06/2025 :
<a name="2025-q2-windows"></a>

Versions STIG mises à jour et STIG appliquées pour la version du deuxième trimestre 2025 comme suit :

**STIG-Build-Windows-Low version 2025.2.x**
+ Windows Server 2022 STIG version 2 version 4
+ Windows Server 2019 STIG Version 3 Release 4
+ Windows Server 2016 STIG version 2 version 10
+ Windows Server 2012 R2 MS utilisant STIG version 3 sortie 5
+ Microsoft .NET Framework 4.0 STIG Version 2 Release 6
+ Pare-feu Windows STIG version 2, version 2
+ Internet Explorer 11 STIG version 2 version 5
+ Microsoft Edge STIG Version 2 Release 2 (Windows Server 2022 seulement)

**STIG-Build-Windows-Medium version 2025.2.x**
+ Windows Server 2022 STIG version 2 version 4
+ Windows Server 2019 STIG Version 3 Release 4
+ Windows Server 2016 STIG version 2 version 10
+ Windows Server 2012 R2 MS utilisant STIG version 3 sortie 5
+ Microsoft .NET Framework 4.0 STIG Version 2 Release 6
+ Pare-feu Windows STIG version 2, version 2
+ Internet Explorer 11 STIG version 2 version 5
+ Microsoft Edge STIG Version 2 Release 2 (Windows Server 2022 seulement)
+ Defender STIG Version 2 Release 4

**STIG-Build-Windows-High version 2025.2.x**
+ Windows Server 2022 STIG version 2 version 4
+ Windows Server 2019 STIG Version 3 Release 4
+ Windows Server 2016 STIG version 2 version 10
+ Windows Server 2012 R2 MS utilisant STIG version 3 sortie 5
+ Microsoft .NET Framework 4.0 STIG Version 2 Release 6
+ Pare-feu Windows STIG version 2, version 2
+ Internet Explorer 11 STIG version 2 version 5
+ Microsoft Edge STIG Version 2 Release 2 (Windows Server 2022 seulement)
+ Defender STIG Version 2 Release 4

### Modifications apportées au premier trimestre 2025 au 05/04/2025 :
<a name="2025-q1-windows"></a>

Mise à jour de STIG pour Internet Explorer 11 STIG Version 2 Release 5 pour tous les composants STIG pour la version du premier trimestre 2025.
+ STIG-Build-Windows-Low version 2025.1.x
+ STIG-Build-Windows-Medium version 2025.1.x
+ STIG-Build-Windows-High version 2025.1.x

### Modifications apportées au quatrième trimestre 2024 - 02/04/2025 :
<a name="2024-q4-windows"></a>

Versions STIG mises à jour et STIG appliqués pour la version du quatrième trimestre 2024 comme suit :

**STIG-Build-Windows-Low version 2024.4.0**
+ Windows Server 2022 STIG version 2 version 2
+ Windows Server 2019 STIG Version 3 Release 2
+ Windows Server 2016 STIG version 2 version 9
+ Windows Server 2012 R2 MS utilisant STIG version 3 sortie 5
+ Microsoft .NET Framework 4.0 utilisant STIG version 2 sortie 2
+ Pare-feu Windows STIG version 2, version 2
+ Internet Explorer 11 STIG version 2 version 5
+ Microsoft Edge STIG Version 2 Release 2 (Windows Server 2022 seulement)

**STIG-Build-Windows-Medium version 2024.4.0**
+ Windows Server 2022 STIG version 2 version 2
+ Windows Server 2019 STIG Version 3 Release 2
+ Windows Server 2016 STIG version 2 version 9
+ Windows Server 2012 R2 MS utilisant STIG version 3 sortie 5
+ Microsoft .NET Framework 4.0 utilisant STIG version 2 sortie 2
+ Pare-feu Windows STIG version 2, version 2
+ Internet Explorer 11 STIG version 2 version 5
+ Microsoft Edge STIG Version 2 Release 2 (Windows Server 2022 seulement)
+ Defender STIG Version 2 Release 4

**STIG-Build-Windows-High version 2024.4.0**
+ Windows Server 2022 STIG version 2 version 2
+ Windows Server 2019 STIG Version 3 Release 2
+ Windows Server 2016 STIG version 2 version 9
+ Windows Server 2012 R2 MS utilisant STIG version 3 sortie 5
+ Microsoft .NET Framework 4.0 utilisant STIG version 2 sortie 2
+ Pare-feu Windows STIG version 2, version 2
+ Internet Explorer 11 STIG version 2 version 5
+ Microsoft Edge STIG Version 2 Release 2 (Windows Server 2022 seulement)
+ Defender STIG Version 2 Release 4

### Changements du troisième trimestre 2024 - 10/04/2023 (aucun changement) :
<a name="2024-q3-windows"></a>

Aucune modification n’a été apportée au composant Windows STIG pour la version du troisième trimestre 2024.

### Modifications apportées au deuxième trimestre 2024 – 05/10/2024 (aucune modification) :
<a name="2024-q2-windows"></a>

Aucune modification n’a été apportée au composant Windows STIG pour la version du deuxième trimestre 2024.

### Changements du premier trimestre 2024 - 02/06/2024 (aucun changement) :
<a name="2024-q1-windows"></a>

Aucune modification n’a été apportée au composant Windows STIG pour la version du premier trimestre 2024.

### Changements du quatrième trimestre 2023 - 12/04/2023 (aucun changement) :
<a name="2023-q4-windows"></a>

Aucune modification n’a été apportée au composant Windows STIG pour la version du quatrième trimestre 2023.

### Modifications apportées au troisième trimestre 2023 – 10/04/2023 (aucune modification) :
<a name="2023-q3-windows"></a>

Aucune modification n’a été apportée au composant Windows STIG pour la version du troisième trimestre 2023.

### Modifications apportées au deuxième trimestre 2023 – 05/03/2023 (aucune modification) :
<a name="2023-q2-windows"></a>

Aucune modification n’a été apportée au composant Windows STIG pour la version du deuxième trimestre 2023.

### Modifications apportées au premier trimestre 2023 – 27/03/2023 (aucune modification) :
<a name="2023-q1-windows"></a>

Aucune modification n’a été apportée au composant Windows STIG pour la version du premier trimestre 2023.

### Modifications apportées au quatrième trimestre 2022 – 01/02/2023 :
<a name="2022-q4-windows"></a>

Versions STIG mises à jour et STIG appliqués pour la version du quatrième trimestre 2022 comme suit :

**STIG-Build-Windows-Low version 2022.4.x**
+ Windows Server 2022 utilisant STIG version 1 sortie 1
+ Windows Server 2019 utilisant STIG version 2 sortie 5
+ Windows Server 2016 utilisant STIG version 2 sortie 5
+ Windows Server 2012 R2 MS utilisant STIG version 3 sortie 5
+ Microsoft .NET Framework 4.0 utilisant STIG version 2 sortie 2
+ Pare-feu Windows utilisant STIG version 2 sortie 1
+ Internet Explorer 11 utilisant STIG version 2 sortie 3
+ Microsoft Edge STIG Version 1 Release 6 (Windows Server 2022 seulement)

**STIG-Build-Windows-Medium version 2022.4.x**
+ Windows Server 2022 utilisant STIG version 1 sortie 1
+ Windows Server 2019 utilisant STIG version 2 sortie 5
+ Windows Server 2016 utilisant STIG version 2 sortie 5
+ Windows Server 2012 R2 MS utilisant STIG version 3 sortie 5
+ Microsoft .NET Framework 4.0 utilisant STIG version 2 sortie 2
+ Pare-feu Windows utilisant STIG version 2 sortie 1
+ Internet Explorer 11 utilisant STIG version 2 sortie 3
+ Microsoft Edge STIG Version 1 Release 6 (Windows Server 2022 seulement)
+ Defender  STIG Version 2 Release 4 (Windows Server 2022 seulement)

**STIG-Build-Windows-High version 2022.4.x**
+ Windows Server 2022 utilisant STIG version 1 sortie 1
+ Windows Server 2019 utilisant STIG version 2 sortie 5
+ Windows Server 2016 utilisant STIG version 2 sortie 5
+ Windows Server 2012 R2 MS utilisant STIG version 3 sortie 5
+ Microsoft .NET Framework 4.0 utilisant STIG version 2 sortie 2
+ Pare-feu Windows utilisant STIG version 2 sortie 1
+ Internet Explorer 11 utilisant STIG version 2 sortie 3
+ Microsoft Edge STIG Version 1 Release 6 (Windows Server 2022 seulement)
+ Defender  STIG Version 2 Release 4 (Windows Server 2022 seulement)

### Modifications apportées au troisième trimestre 2022 – 30/09/2022 (aucune modification) :
<a name="2022-q3-windows"></a>

Aucune modification n’a été apportée au composant Windows STIG pour la version du troisième trimestre 2022.

### Modifications apportées au deuxième trimestre 2022 – 08/02/2022 :
<a name="2022-q2-windows"></a>

Versions STIG mises à jour et STIG appliqués pour la version du deuxième trimestre 2022.

**STIG-Build-Windows-Low version 1.5.x**
+ Windows Server 2019 STIG version 2 version 4
+ Windows Server 2016 STIG version 2 version 4
+ Windows Server 2012 R2 MS STIG version 3 version 3
+ Microsoft .NET Framework 4.0 STIG Version 2 Release 1
+ Pare-feu Windows utilisant STIG version 2 sortie 1
+ Internet Explorer 11 STIG version 1, version 19

**STIG-Build-Windows-Medium version 1.5.x**
+ Windows Server 2019 STIG version 2 version 4
+ Windows Server 2016 STIG version 2 version 4
+ Windows Server 2012 R2 MS STIG version 3 version 3
+ Microsoft .NET Framework 4.0 STIG Version 2 Release 1
+ Pare-feu Windows utilisant STIG version 2 sortie 1
+ Internet Explorer 11 STIG version 1, version 19

**STIG-Build-Windows-High version 1.5.x**
+ Windows Server 2019 STIG version 2 version 4
+ Windows Server 2016 STIG version 2 version 4
+ Windows Server 2012 R2 MS STIG version 3 version 3
+ Microsoft .NET Framework 4.0 STIG Version 2 Release 1
+ Pare-feu Windows utilisant STIG version 2 sortie 1
+ Internet Explorer 11 STIG version 1, version 19

### Modifications apportées au premier trimestre 2022 – 08/02/2022 (aucune modification) :
<a name="2022-q1-windows"></a>

Aucune modification n’a été apportée au composant Windows STIG pour la version du premier trimestre 2022.

### Modifications apportées au quatrième trimestre 2021 – 20/12/2021 :
<a name="2021-q4-windows"></a>

Versions STIG mises à jour et STIG appliqués pour la version du quatrième trimestre 2021 comme suit :

**STIG-Build-Windows-Low version 1.5.x**
+ Windows Server 2019 STIG version 2 version 3
+ Windows Server 2016 STIG version 2 version 3
+ Windows Server 2012 R2 MS STIG version 3 version 3
+ Microsoft .NET Framework 4.0 STIG Version 2 Release 1
+ Pare-feu Windows utilisant STIG version 2 sortie 1
+ Internet Explorer 11 STIG version 1, version 19

**STIG-Build-Windows-Medium version 1.5.x**
+ Windows Server 2019 STIG version 2 version 3
+ Windows Server 2016 STIG version 2 version 3
+ Windows Server 2012 R2 MS STIG version 3 version 3
+ Microsoft .NET Framework 4.0 STIG Version 2 Release 1
+ Pare-feu Windows utilisant STIG version 2 sortie 1
+ Internet Explorer 11 STIG version 1, version 19

**STIG-Build-Windows-High version 1.5.x**
+ Windows Server 2019 STIG version 2 version 3
+ Windows Server 2016 STIG version 2 version 3
+ Windows Server 2012 R2 MS STIG version 3 version 3
+ Microsoft .NET Framework 4.0 STIG Version 2 Release 1
+ Pare-feu Windows utilisant STIG version 2 sortie 1
+ Internet Explorer 11 STIG version 1, version 19

### Modifications apportées au troisième trimestre 2021 au 30/09/2021 :
<a name="2021-q3-windows"></a>

Versions STIG mises à jour et STIG appliqués pour la version du troisième trimestre 2021.

**STIG-Build-Windows-Low version 1.4.x**
+ Windows Server 2019 STIG version 2 version 2
+ Windows Server 2016 STIG version 2 version 2
+ Windows Server 2012 R2 MS STIG version 3 version 2
+ Microsoft .NET Framework 4.0 STIG Version 2 Release 1
+ Windows Firewall STIG Version 1 Release 7
+ Internet Explorer 11 STIG version 1, version 19

**STIG-Build-Windows-Medium version 1.4.x**
+ Windows Server 2019 STIG version 2 version 2
+ Windows Server 2016 STIG version 2 version 2
+ Windows Server 2012 R2 MS STIG version 3 version 2
+ Microsoft .NET Framework 4.0 STIG Version 2 Release 1
+ Windows Firewall STIG Version 1 Release 7
+ Internet Explorer 11 STIG version 1, version 19

**STIG-Build-Windows-High version 1.4.x**
+ Windows Server 2019 STIG version 2 version 2
+ Windows Server 2016 STIG version 2 version 2
+ Windows Server 2012 R2 MS STIG version 3 version 2
+ Microsoft .NET Framework 4.0 STIG Version 2 Release 1
+ Windows Firewall STIG Version 1 Release 7
+ Internet Explorer 11 STIG version 1, version 19

## Composants de renforcement Linux STIG
<a name="linux-os-stig"></a>

Cette section contient des informations sur les composants de renforcement de Linux STIG, suivies d'un journal de l'historique des versions. Si la distribution Linux ne possède pas ses propres paramètres STIG, le composant de renforcement applique les paramètres RHEL.

Les composants Linux ont des paramètres d'entrée facultatifs qui vous aident à personnaliser les comportements suivants pour votre instance Linux.
+ **Niveau (chaîne)** Si aucune valeur n'est spécifiée, la valeur par défaut est `High` et appliquera toutes les configurations Low, Medium et High applicables.
+ **InstallPackages (chaîne)** Si la valeur est`No`, le composant n'installe aucun package logiciel supplémentaire. Si la valeur est égale à `Yes` ce chiffre, le composant installe des progiciels supplémentaires nécessaires pour une conformité maximale. La valeur par défaut est `No`.
+ **SetDoDConsentBannière (chaîne)** Si la valeur est`No`, la bannière de consentement du DoD ne s'affiche pas lorsque vous vous connectez à une instance sur laquelle l'un des composants STIG Linux est installé. Si la valeur est « oui »`Yes`, la bannière de consentement du DoD s'affiche avant que vous ne vous connectiez lorsque vous vous connectez à une instance sur laquelle l'un des composants STIG Linux est installé. Vous devez confirmer la bannière avant de pouvoir vous connecter. La valeur par défaut est `No`.

  Pour un exemple de bannière de consentement, consultez la [Disclaimer Department of Defense Privacy and Consent Notice](https://dso.dla.mil/) qui apparaît lorsque vous accédez au site Web de DLA Document Services.

Le composant de renforcement applique les paramètres STIG pris en charge à l'infrastructure basée sur la distribution Linux, comme suit :

**Paramètres STIG de Red Hat Enterprise Linux (RHEL) 7**
+ RHEL 7
+ CentOS 7
+ Amazon Linux (2AL2)

**Réglages RHEL 8 STIG**
+ RHEL 8
+ CentOS 8

**Réglages RHEL 9 STIG**
+ RHEL 9
+ CentOS Stream 9

### Linux STIG Niveau faible (catégorie III)
<a name="ib-linux-stig-low"></a>

La liste suivante contient les paramètres STIG que le composant de renforcement applique à votre infrastructure. Si aucun paramètre pris en charge n'est applicable à votre infrastructure, le composant de renforcement ignore ce paramètre et passe à autre chose. Par exemple, certains paramètres STIG peuvent ne pas s’appliquer aux serveurs autonomes. Les politiques spécifiques à l'organisation peuvent également affecter les paramètres appliqués par le composant de renforcement, par exemple l'obligation pour les administrateurs de revoir les paramètres du document.

Pour une liste complète, consultez la [bibliothèque de STIGs documents](https://public.cyber.mil/stigs/downloads/?_dl_facet_stigs=operating-systems%2Cunix-linux). Pour plus d’informations sur l’affichage de la liste complète, veuillez consulter la rubrique [Outils d’affichage STIG](https://public.cyber.mil/stigs/srg-stig-tools/).

**RHEL 7 STIG Version 3 Release 15**
+ 

**RHEL 7/CentOS 7/ AL2**  
V-204452, V-204576 et V-204605

**RHEL 8 STIG Version 2 Version 6**
+ 

**RHEL 8/CentOS 8**  
V-230241, V-230269, V-230270, V-230281, V-230285, V-230346, V-230381, V-230395, V-230468, V-230469, V-230485, V-230486, V-230491, V-230494, V-230495, V-230496, V-230497, V-230498, V-230499 et V-244527

**RHEL 9 STIG version 2, version 7**
+ 

**RHEL 9/CentOS Stream 9**  
V-257782, V-257824, V-258138, V-258037, V-257880, V-258069, V-258076, V-258067, V-257946, V-257947, V-257795, V-257796 et V-258173

**Amazon Linux 2023 STIG version 1, version 2**

V-274141

**SLES 12 STIG version 3, version 4**

V-217108, V-217113, V-217140, V-217198, V-217209, V-217211, V-217212, V-217213, V-217214, V-217215, V-217216, V-217236, V-217237, V-217238, V-217239, V-217282 et V-255915

**SLES 15 STIG version 2, version 6**

V-234811, V-234850, V-234868, V-234873, V-234905, V-234907, V-234908, V-234909, V-234933, V-234934, V-234935, V-234936, V-234955, V-234963, V-234967 et V-255921

**Ubuntu 18.04 STIG version 2, version 15**

V-219163, V-219164, V-219165, V-219172, V-219173, V-219174, V-219175, V-219178, V-219179, V-219180, V-219210, V-219301, V-219327, V-219332 et V-219333

**Ubuntu 20.04 STIG version 2 version 4**

V-238202, V-238203, V-238221, V-238222, V-238223, V-238224, V-238226, V-238234, V-238235, V-238237, V-238308, V-238323, V-238357, V-238362 et V-238373

**Ubuntu 22.04 STIG version 2, version 7**

V-260472, V-260476, V-260479, V-260480, V-260481, V-260520, V-260521, V-260549, V-260550, V-260551, V-260552, V-260581 et V-260596

**Ubuntu 24.04 STIG version 1 version 4**

V-270645, V-270646, V-270664, V-270677, V-270690, V-270695, V-270706, V-270710, V-270734, V-270749, V-270752, V-270818 et V-270820

### Linux STIG Niveau moyen (catégorie II)
<a name="ib-linux-stig-medium"></a>

La liste suivante contient les paramètres STIG que le composant de renforcement applique à votre infrastructure. Si aucun paramètre pris en charge n'est applicable à votre infrastructure, le composant de renforcement ignore ce paramètre et passe à autre chose. Par exemple, certains paramètres STIG peuvent ne pas s’appliquer aux serveurs autonomes. Les politiques spécifiques à l'organisation peuvent également affecter les paramètres appliqués par le composant de renforcement, par exemple l'obligation pour les administrateurs de revoir les paramètres du document.

Pour une liste complète, consultez la [bibliothèque de STIGs documents](https://public.cyber.mil/stigs/downloads/?_dl_facet_stigs=operating-systems%2Cunix-linux). Pour plus d’informations sur l’affichage de la liste complète, veuillez consulter la rubrique [Outils d’affichage STIG](https://public.cyber.mil/stigs/srg-stig-tools/).

**Note**  
Les composants de renforcement moyen de Linux STIG incluent tous les paramètres STIG répertoriés qui AWSTOE s'appliquent aux composants de renforcement faible de Linux STIG, en plus des paramètres STIG répertoriés spécifiquement pour les vulnérabilités de catégorie II.

**RHEL 7 STIG Version 3 Release 15**

Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique aux vulnérabilités de catégorie III (faible) pour cette distribution Linux, ainsi que :
+ 

**RHEL 7/CentOS 7/ AL2**  
V-204405, V-204406, V-204407, V-204408, V-204409, V-204410, V-204411, V-204412, V-204413, V-204414, V-204415, V-204416, V-204417, V-204418, V-204420, V-204423, V-204426, V-204427, V-204431, V-204434, V-204435, V-204437, V-204449, V-204450, V-204451, V-204457, V-204466, V-204490, V-204491, V-204503, V-204507, V-204508, V-204510, V-204511, V-204512, V-204514, V-204515, V-204516, V-204517, V-204521, V-204524, V-204531, V-204536, V-204537, V-204538, V-204539, V-204540, V-204541, V-204542, V-204543, V-204545, V-204546, V-204547, V-204548, V-204549, V-204550, V-204551, V-204552, V-204553, V-204554, V-204555, V-204556, V-204558, V-204559, V-204560, V-204562, V-204563, V-204564, V-204565, V-204566, V-204567, V-204568, V-204572, V-204579, V-204584, V-204585, V-204587, V-204588, V-204589, V-204590, V-204591, V-204592, V-204593, V-204596, V-204597, V-204598, V-204599, V-204600, V-204601, V-204602, V-204609, V-204610, V-204611, V-204612, V-204613, V-204614, V-204615, V-204616, V-204617, V-204622, V-204625, V-204630, V-204631, V-204633, V-233307, V-237634, V-237635, V-251703, V-255925, V-2559, V-2559, V-2559, V-2559, V-2559, V-255928 et V-256970

**RHEL 8 STIG Version 2 Version 6**

Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique aux vulnérabilités de catégorie III (faible) pour cette distribution Linux, ainsi que :
+ 

**RHEL 8/CentOS 8**  
V-230222, V-230228, V-230231, V-230233, V-230236, V-230237, V-230238, V-230239, V-230240, V-230243, V-230244, V-230245, V-230246, V-230247, V-230248, V-230249, V-230250, V-230255, V-230256, V-230257, V-230258, V-230259, V-230260, V-230261, V-230262, V-230266, V-230267, V-230268, V-230271, V-230273, V-230275, V-230276, V-230277, V-230278, V-230279, V-230280, V-230282, V-230282, V-230286, V-230287, V-230288, V-230290, V-230291, V-230296, V-230298, V-230310, V-230310, V-230290 311, V230312, V230313, V230314, V230315, V230316, V230318, V230319, V230320, V230321, V-230322, V-230324, V-230325, V-230326, V-230327, V-230330, V-230332, V-230333, V-230335, V-230337, V-230339, V-230341, V-230343, V-230345, V-230347, V-230348, V-230352, V-230353, V-230354, V-230356, V-230357, V-230358, V-230359, V-230359, V-230359, V-230354 360, V-230361, V-230362, V-230363, V-230365, V-230366, V-230368, V-230369, V-230370, V-230372, V-230373, V-230375, V-230376, V-230377, V-230378, V-230380, V-230382, V-230383, V-230385, V-230386, V-230387, V-230389, V-230390, V-230392, V-230392 230393, V230394, V230396, V230397, V230398, V230399, V230400, V230401, V230402, V230403, V-230404, V-230405, V-230406, V-230407, V-230408, V-230409, V-230410, V-230411, V-230412, V-230413, V-230418, V-230419, V-230421, V-230422, V-230423, V-230424, V-230425, V-230426, V-230427, V-230428, V-230429, V-230430, V-230431, V-230432, V-230433, V-230434, V-230435, V-230436, V-230437, V-230438, V-230439, V-230444, V-230446, V-230447, V-230448, V-230449, V-230455, V-230456, V-230462, V-230464, V-230465, V-230466, V-230467, V230470, V230471, V230472, V230473, V230474, V230475, V230478, V230480, V230481, V230482, V230483, V230488, V230489, V-230493, V-230502, V-230503, V-230505, V-230506, V-230507, V-230523, V-230524, V-230525, V-230526, V-230527, V-230532, V-230535, V-230536, V-230537, V-230538, V-230539, V-230540, V-230541, V-230542, V-230543, V-230544, V-230545, V-230546, V-230548, V-230549, V-230550, V-230555, V-230556, V-230557, V-230559, V-230560, V-230561, V-237640, V-237642, V-237643, V-244519, V-244523, V-242424, V-4525, V-244526, V-244528, V-244531, V-244533, V-244535, V-244536, V-244538, V-244539, V-244542, V-244543, V-244544, V-244545, V-244547, V-244550, V-244551, V-244552, V-244553, V-244554, V-250315, V-250315, V-250316, V-250316, V-250317, V-251707, V-251708, V-251709, V-251710, V-251711, V-251713, V-251714, V-251715, V-251716, V-251717, V-251718, V-256974, V-257258, V-257258, V-274877, V-279929, V-279930 et V-279931

**RHEL 9 STIG version 2, version 7**

Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique aux vulnérabilités de catégorie III (faible) pour cette distribution Linux, ainsi que :
+ 

**RHEL 9/CentOS Stream 9**  
V-257780, V-257781, V-257783, V-257786, V-257788, V-257790, V-257791, V-257792, V-257793, V-257794, V-257797, V-257798, V-257799, V-257800, V-257801, V-257802, V-257803, V-257804, V-2577804 805, V-257806, V-257807, V-257808, V-257809, V-257810, V-257811, V-257812, V-257813, V-257814, V-257815, V-257816, V-257817, V-257825, V-257827, V-257828, V-257829, V-257830, V-257831, V-257832, V-257833, V-257834, V-257836, V-257838, V-257839, V-257840, V-257841, V-257842, V-257849, V-257882, V-257883, V-257884, V-257885, V-257886, V-257887, V-25788, V-257889, V-257890, V-257891, V-257892, V-257893, V-257894, V-257895, V-257896, V-257897, V-257899, V-257900, V-257901, V-257902, V-257903, V-257904, V-257905, V-257906, V-257907, V-257908, V-257909, V-257910, V-257911, V-257912, V-257913, V-257914, V-257915, V-257916, V-257917, V-257918, V-257919, V-257920, V-257921, V-257922, V-257923, V-257924, V-257925, V-257926, V-257927, V-257928, V-257929, V-257930, V-257933, V-257934, V-257935, V-257936, V-257939, V-257940, V-257942, V-257943, V-257944, V-257948, V-257951, V-257952, V-257953, V-257954, V-257957, V-257958, V-257959, V-257960, V-257961, V-257962, V-257963, V-257964, V-257965, V-257966, V-257968, V-257969, V-257970, V-257971, V-257972, V-257973, V-257974, V-257975, V-257976, V-257977, V-257978, V-257979, V-257980, V-257982, V-257983, V-257985, V-257987, V-257988, V-257992, V-257993, V-257994, V-257995, V-257996, V-257997, V-257999, V-258000, V-258001, V-258002, V-258002, V-258003, V-258004, V-258005, V-258006, V-258007, V-258008, V-258009, V-258011, V-258028, V-258034, V-258035, V-258038, V-258039, V-258041, V-258043, V-258046, V-258049, V-258049, V-258052, V-258054, V-258055, V-258056, V-258057, V-258060, V-258063, V-258064, V-258066, V-258068, V-258070, V-258071, V-258072, V-258073, V-258074, V-258077, V-258077, V-258079, V-258080, V-258081, V-258082, V-258083, V-258084, V-258085, V-258088, V-258089, V-258090, V-258091, V-258092, V-258093, V-258095, V-258097, V-258098, V-258100, V-258101, V-258102, V-258103, V-258104, V-258105, V-258107, V-258108, V-258109, V-258110, V-258111, V-258112, V-258113, V-258114, V-258115, V-258116, V-258117, V-258118, V-258119, V-258121, V-258122, V-258123, V-258124, V-258125, V-258126, V-258128, V-258129, V-258130, V-258133, V-258137, V-258140, V-258141, V-258142, V-258144, V-258145, V-258147, V-258148, V-258150, V-258151, V-258152, V-258153, V-258154, V-258156, V-258157, V-258158, V-258159, V-258160, V-258161, V-258162, V-258163, V-258164, V-258165, V-258166, V-258168, V-258169, V-258170, V-258171, V-258172, V-258175, V-258176, V-258177, V-258178, V-258179, V-258180, V-258181, V-258182, V-258183, V-258184, V-258185, V-258186, V-258187, V-258188, V-258190, V-258191, V-258192, V-2583, V-258194, V-258195, V-258196, V-258197, V-258198, V-258199, V-258200, V-258201, V-258202, V-258203, V-258204, V-258205, V-258206, V-258207, V-258208, V-258210, V-258211, V-258212, V-258213, V-258214, V-258215, V-258216, V-258217, V-258218, V-258219, V-258220, V-258221, V-258222, V-258223, V-258224, V-258225, V-258227, V-258228, V-258229, V-258232, V-258233, V-258234, V-258237, V-258239, V-258240, V-270174, V-270175, V-270176, V-270177, V-272488 et V-279936

**Amazon Linux 2023 STIG version 1, version 2**

Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique aux vulnérabilités de catégorie III (faible) pour cette distribution Linux, ainsi que :

V-273995, V-274000, V-274001, V-274002, V-274003, V-274004, V-274005, V-274006, V-274008, V-274009, V-274010, V-274011, V-274012, V-274013, V-274014, V-274017, V-274018, V-274019, V-274020, V-274020, V-274021, V-274022, V-274023, V-274024, V-274026, V-274027, V-274028, V-274030, V-274031, V-274032, V-274033, V-274034, V-274035, V-274037, V-274040, V-274041, V-274042, V-274044, V-274044, V-274045, V-274047, V-274048, V-274049, V-274050, V-274051, V-274053, V-274054, V-274059, V-274061, V-274062, V-274069, V-274070, V-274071, V-274072, V-274073, V-274074, V-274075, V-274076, V-274077, V-274078, V-274079, V-274081, V-274082, V-274083, V-274084, V-274085, V-274086, V-274087, V-274088, V-274089, V-274090, V-274091, V-274092, V-274093, V-274094, V-274095, V-274096, V-274097, V-274098, V-274099, V-274100, V-274101, V-274102, V-274103, V-274104, V-274105, V-274106, V-274107, V-274108, V-274109, V-274111, V-274112, V-274113, V-274114, V-274115, V-274116, V-274117, V-274119, V-274120, V-274121, V-274122, V-274123, V-274124, V-274125, V-274126, V-274127, V-274128, V-274129, V-274130, V-274131, V-274132, V-274133, V-274134, V-274135, V-274136, V-274137, V-274138, V-274139, V-274140, V-274142, V-274143, V-274144, V-274145, V-274147, V-274149, V-274151, V-274152, V-274154, V-274155, V-274156, V-274157, V-274160, V-274161, V-274162, V-274163, V-274164, V-274165, V-274166, V-274167, V-274168, V-274169, V-274170, V-274173, V-274177, V-274181, V-274182, V-274185 et V-274187

**SLES 12 STIG version 3, version 4**

Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique aux vulnérabilités de catégorie III (faible) pour cette distribution Linux, ainsi que :

V-217102, V-217105, V-217105, V-217106, V-217106, V-217110, V-217116, V-217117, V-217118, V-217119, V-217120, V-217121, V-217122, V-217124, V-217125, V-217127, V-217128, V-217130, V-217134, V-217138, V-217143, V-217147, V-217152, V-217153, V-217154, V-217155, V-217156, V-217158, V-217161, V-217163, V-217166, V-217168, V-217169, V-217170, V-217171, V-217182, V-217183, V-217188, V-217190, V-217191, V-217194, V-217195, V-217196, V-217197, V-217200, V-217201, V-217202, V-217203, V-217204, V-217205, V-217206, V-217208, V-217210, V-217217221, V-217218, V-217223, V-217227, V-217230, V-217240, V-217241, V-217242, V-217243, V-217244, V-217245, V-217246, V-217247, V-217248, V-217249, V-217250, V-217252, V-217253, V-217254, V-217255, V-217257, V-217258, V-217260, V-217265, V-217266, V-217267, V-217269, V-217272, V-217273, V-217274, V-217275, V-217276, V-217277, V-217278, V-217280, V-217283, V-217284, V-217286, V-217287, V-217288, V-217289, V-217290, V-217291, V-217292, V-217293, V-217294, V-217295, V-217296, V-217299, V-217300, V-217301, V-217302, V-233308, V-237605, V-237606, V-237607767, V-237608, V-237609, V-237610, V-237611, V-237612, V-237613, V-237614, V-237615, V-237616, V-237617, V-237618, V-237619, V-237620, V-237621, V-237622, V-251720, V-251722, V-251722, V-255914, et V-256981

**SLES 15 STIG version 2, version 6**

Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique aux vulnérabilités de catégorie III (faible) pour cette distribution Linux, ainsi que :

V-234802, V-234807, V-234808, V-234809, V-234813, V-234815, V-234817, V-234821, V-234822, V-234823, V-234825, V-234827, V-234828, V-234829, V-234830, V-234832, V-234833, V-234834, V-234835, V-234836, V-234837, V-234838, V-234839, V-234840, V-234841, V-234842, V-234843, V-234844, V-234845, V-234848, V-234854, V-234855, V-234857, V-234858, V-234861, V-234862, V-234863, V-234869, V-234870, V-234875, V-234878, V-234880, V-234881, V-234882, V-234883, V-234884, V-234885, V-234886, V-234887, V-234888, V-234889, V-234891, V-234896, V-234897, V-234899, V-234900, V-234901, V-234902, V-234903, V-234904, V-234906, V-234910, V-234911, V-234912, V-234913, V-234914, V-234918, V-234924, V-234928, V-234932, V-234937, V-234938, V-234939, V-234940, V-234941, V-234942, V-234943, V-234944, V-234945, V-234946, V-234947, V-234948, V-234949, V-234950, V-234951, V-234952, V-234954, V-234956, V-234957, V-234958, V-234959, V-234961, V-234962, V-234964, V-234966, V-234969, V-234973, V-234975, V-234976, V-234977, V-234978, V-234979, V-234981, V-234982, V-234983, V-234991, V-235002, V-235003, V-235007, V-235008, V-23105009, V-23509, V-235013, V-235014, V-235015, V-235016, V-235017, V-235018, V-235019, V-235020, V-235021, V-235022, V-235023, V-235024, V-235025, V-235026, V-235028, V-235029, V-235030, V-251724, V-255920, V-256983 et V-274879

**Ubuntu 18.04 STIG version 2, version 15**

Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique aux vulnérabilités de catégorie III (faible) pour cette distribution Linux, ainsi que :

V-219149, V-219155, V-219156, V-219160, V-219166, V-219168, V-219176, V-219181, V-219184, V-219186, V-219188, V-219189, V-219190, V-219191, V-219192, V-219193, V-219194, V-219195, V-219196, V-219197, V-219198, V-219199, V-219200, V-219201, V-219202, V-219203, V-219204, V-219205, V-219206, V-219207, V-219208, V-219209, V-219213, V-219214, V-219215, V-219216, V-219217, V-219218, V-219219, V-219220, V-219221, V-219222, V-219223, V-219224, V-219225, V-219226, V-219227, V-219228, V-219229, V-219230, V-219231, V-219232, V-219233, V-219234, V-219235, V-219236, V-219238, V-219239, V-219240, V-219241, V-219242, V-219243, V-219244, V-219250, V-219254, V-219257, V-219263, V-219264, V-219265, V-219266, V-219267, V-219268, V-219269, V-219270, V-219271, V-219272, V-219273, V-219274, V-219275, V-219276, V-219277, V-219279, V-219281, V-219287, V-219291, V-219296, V-219297, V-219298, V-219299, V-219300, V-219303, V-219304, V-219306, V-219309, V-219310, V-219311, V-219315, V-219318, V-219319, V-219323, V-219326, V-219328, V-219330, V-219331, V-219335, V-219336, V-219337, V-219338, V-219339, V-219342, V-219344, V-233779, V-233780 et V-255906

**Ubuntu 20.04 STIG version 2 version 4**

Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique aux vulnérabilités de catégorie III (faible) pour cette distribution Linux, ainsi que :

V-238200, V-238205, V-238207, V-238209, V-238210, V-238211, V-238212, V-238213, V-238220, V-238225, V-238227, V-238228, V-238229, V-238230, V-238231, V-238232, V-238236, V-238238, V-238239, V-238240, V-238241, V-238242, V-238244, V-238245, V-238246, V-238247, V-238248, V-238249, V-238250, V-238251, V-238252, V-238253, V-238254, V-238255, V-238256, V-238257, V-238258, V-238264, V-238268, V-238271, V-238277, V-238278, V-238279, V-238280, V-238281, V-238282, V-238283, V-238284, V-238285, V-238286, V-238287, V-238288, V-238289, V-238290, V-238291, V-238292, V-238293, V-238294, V-238295, V-238297, V-238298, V-238299, V-238300, V-238301, V-238302, V-238303, V-238304, V-238309, V-238310, V-238315, V-238316, V-238317, V-238318, V-238319, V-238320, V-238324, V-238325, V-238329, V-238330, V-238333, V-238334, V-238337, V-238338, V-238339, V-238340, V-238341, V-238342, V-238343, V-238344, V-238345, V-238346, V-238347, V-238348, V-238349, V-238350, V-238351, V-238352, V-238353, V-238355, V-238356, V-238359, V-238360, V-238369, V-238370, V-238371, V-238376, V-238377, V-238378, V-251505, V-255912, V-274852 et V-274853

**Ubuntu 22.04 STIG version 2, version 7**

Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique aux vulnérabilités de catégorie III (faible) pour cette distribution Linux, ainsi que :

V-260471, V-260473, V-260474, V-260475, V-260477, V-260478, V-260485, V-260486, V-260487, V-260488, V-260489, V-260490, V-260491, V-260492, V-260493, V-260494, V-260495, V-260496, V-260497, V-260498, V-260499, V-260500, V-260505, V-260506, V-260507, V-260508, V-260509, V-260533, V-260534, V-260535, V-260537, V-260538, V-260540, V-260542, V-260542, V-260534, V-260535, V-260537, V-260538, V-260540, V-260542, V-260542, V-260542 543, V-260545, V-260546, V-260547, V-260553, V-260554, V-260555, V-260556, V-260557, V-260560, V-260561, V-260562, V-260563, V-260564, V-260565, V-260566, V-260567, V-260569, V-260572, V-260573, V-260574, V-260575, V-260576, V-260582, V-260584, V-260585, V-260586, V-260588, V-260589, V-260591, V-260594, V-260594, V-260596 7, V-260598, V-260599, V-260600, V-260601, V-260602, V-260603, V-260604, V-260605, V-260606, V-260607, V-260608, V-260609, V-260610, V-260611, V-260612, V-260613, V-260614, V-260616, V-260616, V-260617, V-260618, V-260619, V-260620, V-260621, V-260622, V-260623, V-260624, V-260625, V-260626, V-260627, V-260628, V-260629, V-260630, V-260631, V-260632, V-260633, V-260634, V-260635, V-260636, V-260637, V-260638, V-260639, V-260640, V-260641, V-260642, V-260643, V-260644, V-260645, V-260646, V-260647, V-260648, V-260649, V-274862, V-274864 et V-274866

**Ubuntu 24.04 STIG version 1 version 4**

Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique aux vulnérabilités de catégorie III (faible) pour cette distribution Linux, ainsi que :

V-270649, V-270651, V-270652, V-270653, V-270654, V-270656, V-270657, V-270659, V-270660, V-270661, V-270662, V-270663, V-270669, V-270672, V-270673, V-270674, V-270676, V-270678, V-270679, V-270680, V-270681, V-270683, V-270684, V-270685, V-270686, V-270687, V-270688, V-270689, V-270692, V-270693, V-270696, V-270697, V-270698, V-270699, V-270700, V-270701, V-270702, V-270703, V-270704, V-270705, V-270709, V-270715, V-270716, V-270718, V-270720, V-270721, V-270722, V-270723, V-270724, V-270725, V-270726, V-270727, V-270728, V-270729, V-270730, V-270731, V-270732, V-270733, V-270737, V-270739, V-270740, V-270741, V-270742, V-270743, V-270746, V-270750, V-270753, V-270755, V-270756, V-270757, V-270758, V-270759, V-270760, V-270765, V-270766, V-270767, V-270768, V-270769, V-270770, V-270771, V-270772, V-270773, V-270775, V-270776, V-270777, V-270778, V-270779, V-270780, V-270781, V-270782, V-270783, V-270784, V-270785, V-270786, V-270787, V-270788, V-270789, V-270790, V-270791, V-270792, V-270793, V-270794, V-270795, V-270796, V-270797, V-270798, V-270799, V-270800, V-270801, V-270802, V-270803, V-270804, V-270805, V-270806, V-270807, V-270808, V-270809, V-270810, V-270811, V-270812, V-270813, V-270814, V-270815, V-270821, V-270822, V-270823, V-270824, V-270825, V-270826, V-270827, V-270828, V-270829, V-270830, V-270831, V-270832, V-274870, V-274871, V-274872 et V-274873

### Linux STIG Niveau élevé (catégorie I)
<a name="ib-linux-stig-high"></a>

La liste suivante contient les paramètres STIG que le composant de renforcement applique à votre infrastructure. Si aucun paramètre pris en charge n'est applicable à votre infrastructure, le composant de renforcement ignore ce paramètre et passe à autre chose. Par exemple, certains paramètres STIG peuvent ne pas s’appliquer aux serveurs autonomes. Les politiques spécifiques à l'organisation peuvent également affecter les paramètres appliqués par le composant de renforcement, par exemple l'obligation pour les administrateurs de revoir les paramètres du document.

Pour une liste complète, consultez la [bibliothèque de STIGs documents](https://public.cyber.mil/stigs/downloads/?_dl_facet_stigs=operating-systems%2Cunix-linux). Pour plus d’informations sur l’affichage de la liste complète, veuillez consulter la rubrique [Outils d’affichage STIG](https://public.cyber.mil/stigs/srg-stig-tools/).

**Note**  
Les composants de renforcement élevé de Linux STIG incluent tous les paramètres STIG répertoriés qui AWSTOE s'appliquent aux composants de renforcement Linux STIG Low et Linux STIG Medium, en plus des paramètres STIG répertoriés qui s'appliquent spécifiquement aux vulnérabilités de catégorie I.

**RHEL 7 STIG Version 3 Release 15**

Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique pour les vulnérabilités de catégories II et III (moyennes et faibles) de cette distribution Linux, ainsi que :
+ 

**RHEL 7/CentOS 7/ AL2**  
V-204424, V-204425, V-204442, V-204443, V-204447, V-204448, V-204455, V-204462, V-204497, V-204497, V-204502, V-204594, V-204620 et V-204621

**RHEL 8 STIG Version 2 Version 6**

Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique pour les vulnérabilités de catégories II et III (moyennes et faibles) de cette distribution Linux, ainsi que :
+ 

**RHEL 8/CentOS 8**  
V-230223, V-230264, V-230283, V-230284, V-230487, V-230492, V-230533, V-230558, V-244540, V-279933, V-230265, V-230226, V-230530, V-268322, V-230529 et V-230531

**RHEL 9 STIG version 2, version 7**

Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique pour les vulnérabilités de catégories II et III (moyennes et faibles) de cette distribution Linux, ainsi que :
+ 

**RHEL 9/CentOS Stream 9**  
V-257820, V-257821, V-257826, V-257835, V-257955, V-257956, V-258059, V-258230, V-258238, V-257984, V-257986, V-258078, V-258094, V-258235, V-257784 et V-257785

**Amazon Linux 2023 STIG version 1, version 2**

Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique pour les vulnérabilités de catégories II et III (moyennes et faibles) de cette distribution Linux, ainsi que :

V-273996, V-273997, V-273999, V-274007, V-274038, V-274039, V-274046, V-274052, V-274057 et V-274153

**SLES 12 STIG version 3, version 4**

Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique pour les vulnérabilités de catégories II et III (moyennes et faibles) de cette distribution Linux, ainsi que :

 V-217101, V-217139, V-217141, V-217142, V-217159, V-217160, V-217164, V-217264, V-217268, V-222386 et V-251721

**SLES 15 STIG version 2, version 6**

Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique pour les vulnérabilités de catégories II et III (moyennes et faibles) de cette distribution Linux, ainsi que :

V-234800, V-234804, V-234818, V-234852, V-234859, V-234860, V-234898, V-234984, V-234985, V-234988, V-234989, V-234990, V-235031, V-235032 et V-251725

**Ubuntu 18.04 STIG version 2, version 15**

Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique pour les vulnérabilités de catégories II et III (moyennes et faibles) de cette distribution Linux, ainsi que :

V-219157, V-219158, V-219177, V-219212, V-219308, V-219314, V-219316 et V-251507

**Ubuntu 20.04 STIG version 2 version 4**

Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique pour les vulnérabilités de catégories II et III (moyennes et faibles) de cette distribution Linux, ainsi que :

V-238201, V-238218, V-238219, V-238326, V-238327, V-238380 et V-251504

**Ubuntu 22.04 STIG version 2, version 7**

Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique pour les vulnérabilités de catégories II et III (moyennes et faibles) de cette distribution Linux, ainsi que :

V-260469, V-260482, V-260483, V-260523, V-260524, V-260526, V-260529, V-260539, V-260570, V-260571, V-260579 et V-279937

**Ubuntu 24.04 STIG version 1 version 4**

Inclut tous les paramètres STIG pris en charge que le composant de renforcement applique pour les vulnérabilités de catégories II et III (moyennes et faibles) de cette distribution Linux, ainsi que :

V-270647, V-270648, V-270665, V-270666, V-270708, V-270711, V-270712, V-270713, V-270714, V-270717, V-270736, V-270738 et V-279938

## Journal d'historique des versions de STIG pour Linux
<a name="ib-linux-version-hist"></a>

Cette section enregistre l'historique des versions des composants Linux. Pour voir les modifications et les versions publiées pendant un trimestre, choisissez le titre pour développer les informations.

### Modifications apportées au premier trimestre 2026 - 10/03/2026 :
<a name="2026-q1-linux"></a>

Mise à jour des versions STIG suivantes, appliquées STIGs à la version du premier trimestre 2026 pour tous les niveaux de conformité :

**STIG-Build-Linux**
+ RHEL 8 STIG Version 2 Version 6
+ RHEL 9 STIG version 2, version 7
+ Amazon Linux 2023 STIG version 1, version 2
+ SLES 12 STIG version 3, version 4
+ SLES 15 STIG version 2, version 6
+ Ubuntu 20.04 STIG version 2 version 4
+ Ubuntu 22.04 STIG version 2 version 7
+ Ubuntu 24.04 STIG version 1 version 4

### Modifications apportées au troisième trimestre 2025 – 09/04/2025 :
<a name="2025-q3-linux"></a>

Ajout de la prise en charge du système d’exploitation SUSE Linux Enterprise Server (SLES) et Amazon Linux 2023. Mise à jour des versions STIG suivantes et application des STIGS pour la version du troisième trimestre 2025 pour tous les niveaux de conformité () low/medium/high :
+ RHEL 7 STIG Version 3 Release 15
+ RHEL 8 STIG Version 2 Release 4
+ RHEL 9 STIG Version 2 Release 5
+ Amazon Linux 2023 STIG Version 1 Release 1
+ SLES 12 STIG Version 3 Release 3
+ SLES 15 STIG Version 2 Release 5
+ Ubuntu 18.04 STIG Version 2 Release 15
+ Ubuntu 20.04 STIG Version 2 Release 3
+ Ubuntu 22.04 STIG Version 2 Release 5
+ Ubuntu 24.04 STIG Version 1 Release 2

### Modifications apportées au deuxième trimestre 2025 – 26/06/2025 :
<a name="2025-q2-linux"></a>

Mise à jour des versions STIG suivantes, application des STIG pour la version du deuxième trimestre 2025 :

**STIG-Build-Linux-Low version 2025.2.x**
+ RHEL 7 STIG Version 3 Release 15
+ RHEL 8 STIG Version 2 Release 3
+ RHEL 9 STIG Version 2 Release 4
+ Ubuntu 18.04 STIG Version 2 Release 15
+ Ubuntu 20.04 STIG Version 2 Release 2
+ Ubuntu 22.04 STIG Version 2 Release 4
+ Ubuntu 24.04 STIG Version 1 Release 1

**STIG-Build-Linux-Medium version 2025.2.x**
+ RHEL 7 STIG Version 3 Release 15
+ RHEL 8 STIG Version 2 Release 3
+ RHEL 9 STIG Version 2 Release 4
+ Ubuntu 18.04 STIG Version 2 Release 15
+ Ubuntu 20.04 STIG Version 2 Release 2
+ Ubuntu 22.04 STIG Version 2 Release 4
+ Ubuntu 24.04 STIG Version 1 Release 1

**STIG-Build-Linux-High version 2025.2.x**
+ RHEL 7 STIG Version 3 Release 15
+ RHEL 8 STIG Version 2 Release 3
+ RHEL 9 STIG Version 2 Release 4
+ Ubuntu 18.04 STIG Version 2 Release 15
+ Ubuntu 20.04 STIG Version 2 Release 2
+ Ubuntu 22.04 STIG Version 2 Release 4
+ Ubuntu 24.04 STIG Version 1 Release 1

### Modifications apportées au premier trimestre 2025 – 04/11/2025 :
<a name="2025-q1-linux"></a>

Mise à jour des versions STIG suivantes, application de STIG pour la version du premier trimestre 2025 et ajout du support pour Ubuntu 24.04 :

**STIG-Build-Linux-Low version 2025.1.x**
+ RHEL 7 STIG Version 3 Release 15
+ RHEL 8 STIG Version 2 Release 2
+ RHEL 9 STIG Version 2 Release 3
+ Ubuntu 18.04 STIG Version 2 Release 15
+ Ubuntu 20.04 STIG Version 2 Release 2
+ Ubuntu 22.04 STIG Version 2 Release 3
+ Ubuntu 24.04 STIG Version 1 Release 1

**STIG-Build-Linux-Medium version 2025.1.x**
+ RHEL 7 STIG Version 3 Release 15
+ RHEL 8 STIG Version 2 Release 2
+ RHEL 9 STIG Version 2 Release 3
+ Ubuntu 18.04 STIG Version 2 Release 15
+ Ubuntu 20.04 STIG Version 2 Release 2
+ Ubuntu 22.04 STIG Version 2 Release 3
+ Ubuntu 24.04 STIG Version 1 Release 1

**STIG-Build-Linux-High version 2025.1.x**
+ RHEL 7 STIG Version 3 Release 15
+ RHEL 8 STIG Version 2 Release 2
+ RHEL 9 STIG Version 2 Release 3
+ Ubuntu 18.04 STIG Version 2 Release 15
+ Ubuntu 20.04 STIG Version 2 Release 2
+ Ubuntu 22.04 STIG Version 2 Release 3
+ Ubuntu 24.04 STIG Version 1 Release 1

### Modifications apportées au quatrième trimestre 2024 – 10/12/2024 :
<a name="2024-q4-linux"></a>

Mise à jour des versions STIG suivantes, application de STIG pour la version du quatrième trimestre 2024 et ajout d’informations sur deux nouveaux paramètres d’entrée pour les composants Linux :

**STIG-Build-Linux-Low version 2024.4.x**
+ RHEL 7 STIG Version 3 Release 15
+ RHEL 8 STIG Version 2 Release 1
+ RHEL 9 STIG Version 2 Release 2
+ Ubuntu 18.04 STIG Version 2 Release 15
+ Ubuntu 20.04 STIG Version 2 Release 1
+ Ubuntu 22.04 STIG Version 2 Release 2

**STIG-Build-Linux-Medium version 2024.4.x**
+ RHEL 7 STIG Version 3 Release 15
+ RHEL 8 STIG Version 2 Release 1
+ RHEL 9 STIG Version 2 Release 2
+ Ubuntu 18.04 STIG Version 2 Release 15
+ Ubuntu 20.04 STIG Version 2 Release 1
+ Ubuntu 22.04 STIG Version 2 Release 2

**STIG-Build-Linux-High version 2024.4.x**
+ RHEL 7 STIG Version 3 Release 15
+ RHEL 8 STIG Version 2 Release 1
+ RHEL 9 STIG Version 2 Release 2
+ Ubuntu 18.04 STIG Version 2 Release 15
+ Ubuntu 20.04 STIG Version 2 Release 1
+ Ubuntu 22.04 STIG Version 2 Release 2

### Modifications apportées au troisième trimestre 2024 – 10/04/2024 (aucune modification) :
<a name="2024-q3-linux"></a>

Aucune modification n’a été apportée au composant Linux STIG pour la version du troisième trimestre 2024.

### Modifications apportées au deuxième trimestre 2024 – 10/05/2024 :
<a name="2024-q2-linux"></a>

Versions STIG mises à jour et STIG appliqués pour la version du deuxième trimestre 2024. La prise en charge de RHEL 9, CentOS Stream 9 et Ubuntu 22.04 a également été ajoutée, comme suit :

**STIG-Build-Linux-Low version 2024.2.x**
+ RHEL 7 STIG Version 3 Release 14
+ RHEL 8 STIG Version 1 Release 14
+ RHEL 9 STIG Version 1 Release 3
+ Ubuntu 18.04 STIG Version 2 Release 14
+ Ubuntu 20.04 STIG Version 1 Release 12
+ Ubuntu 22.04 STIG Version 1 Release 1

**STIG-Build-Linux-Medium version 2024.2.x**
+ RHEL 7 STIG Version 3 Release 14
+ RHEL 8 STIG Version 1 Release 14
+ RHEL 9 STIG Version 1 Release 3
+ Ubuntu 18.04 STIG Version 2 Release 14
+ Ubuntu 20.04 STIG Version 1 Release 12
+ Ubuntu 22.04 STIG Version 1 Release 1

**STIG-Build-Linux-High version 2024.2.x**
+ RHEL 7 STIG Version 3 Release 14
+ RHEL 8 STIG Version 1 Release 14
+ RHEL 9 STIG Version 1 Release 3
+ Ubuntu 18.04 STIG Version 2 Release 14
+ Ubuntu 20.04 STIG Version 1 Release 12
+ Ubuntu 22.04 STIG Version 1 Release 1

### Modifications apportées au premier trimestre 2024 – 02/06/2024 :
<a name="2024-q1-linux"></a>

Versions STIG mises à jour et STIG appliqués pour la version du premier trimestre 2024 comme suit :

**STIG-Build-Linux-Low version 2024.1.x**
+ RHEL 7 STIG Version 3 Release 14
+ RHEL 8 STIG Version 1 Release 13
+ Ubuntu 18.04 STIG Version 2 Release 13
+ Ubuntu 20.04 STIG Version 1 Release 11

**STIG-Build-Linux-Medium version 2024.1.x**
+ RHEL 7 STIG Version 3 Release 14
+ RHEL 8 STIG Version 1 Release 13
+ Ubuntu 18.04 STIG Version 2 Release 13
+ Ubuntu 20.04 STIG Version 1 Release 11

**STIG-Build-Linux-High version 2024.1.x**
+ RHEL 7 STIG Version 3 Release 14
+ RHEL 8 STIG Version 1 Release 13
+ Ubuntu 18.04 STIG Version 2 Release 13
+ Ubuntu 20.04 STIG Version 1 Release 11

### Modifications apportées au quatrième trimestre 2023 – 07/12/2023 :
<a name="2023-q4-linux"></a>

Versions STIG mises à jour et STIG appliqués pour la version du quatrième trimestre 2023 comme suit :

**STIG-Build-Linux-Low version 2023.4.x**
+ RHEL 7 STIG Version 3 Release 13
+ RHEL 8 STIG Version 1 Release 12
+ Ubuntu 18.04 STIG Version 2 Release 12
+ Ubuntu 20.04 STIG Version 1 Release 10

**STIG-Build-Linux-Medium version 2023.4.x**
+ RHEL 7 STIG Version 3 Release 13
+ RHEL 8 STIG Version 1 Release 12
+ Ubuntu 18.04 STIG Version 2 Release 12
+ Ubuntu 20.04 STIG Version 1 Release 10

**STIG-Build-Linux-High version 2023.4.x**
+ RHEL 7 STIG Version 3 Release 13
+ RHEL 8 STIG Version 1 Release 12
+ Ubuntu 18.04 STIG Version 2 Release 12
+ Ubuntu 20.04 STIG Version 1 Release 10

### Modifications apportées au troisième trimestre 2023 – 10/04/2023 :
<a name="2023-q3-linux"></a>

Versions STIG mises à jour et STIG appliqués pour la version du troisième trimestre 2023 comme suit :

**STIG-Build-Linux-Low version 2023.3.x**
+ RHEL 7 STIG Version 3 Release 12
+ RHEL 8 STIG Version 1 Release 11
+ Ubuntu 18.04 STIG Version 2 Release 11
+ Ubuntu 20.04 STIG Version 1 Release 9

**STIG-Build-Linux-Medium version 2023.3.x**
+ RHEL 7 STIG Version 3 Release 12
+ RHEL 8 STIG Version 1 Release 11
+ Ubuntu 18.04 STIG Version 2 Release 11
+ Ubuntu 20.04 STIG Version 1 Release 9

**STIG-Build-Linux-High version 2023.3.x**
+ RHEL 7 STIG Version 3 Release 12
+ RHEL 8 STIG Version 1 Release 11
+ Ubuntu 18.04 STIG Version 2 Release 11
+ Ubuntu 20.04 STIG Version 1 Release 9

### Modifications apportées au deuxième trimestre 2023 – 05/03/2023 :
<a name="2023-q2-linux"></a>

Versions STIG mises à jour et STIG appliqués pour la version du deuxième trimestre 2023 comme suit :

**STIG-Build-Linux-Low version 2023.2.x**
+ RHEL 7 STIG Version 3 Release 11
+ RHEL 8 STIG Version 1 Release 10
+ Ubuntu 18.04 STIG Version 2 Release 11
+ Ubuntu 20.04 STIG Version 1 Release 8

**STIG-Build-Linux-Medium version 2023.2.x**
+ RHEL 7 STIG Version 3 Release 11
+ RHEL 8 STIG Version 1 Release 10
+ Ubuntu 18.04 STIG Version 2 Release 11
+ Ubuntu 20.04 STIG Version 1 Release 8

**STIG-Build-Linux-High version 2023.2.x**
+ RHEL 7 STIG Version 3 Release 11
+ RHEL 8 STIG Version 1 Release 10
+ Ubuntu 18.04 STIG Version 2 Release 11
+ Ubuntu 20.04 STIG Version 1 Release 8

### Modifications apportées au premier trimestre 2023 – 27/03/2023 :
<a name="2023-q1-linux"></a>

Versions STIG mises à jour et STIG appliqués pour la version du premier trimestre 2023 comme suit :

**STIG-Build-Linux-Low version 2023.1.x**
+ RHEL 7 STIG Version 3 Release 10
+ RHEL 8 STIG Version 1 Release 9
+ Ubuntu 18.04 STIG Version 2 Release 10
+ Ubuntu 20.04 STIG Version 1 Release 7

**STIG-Build-Linux-Medium version 2023.1.x**
+ RHEL 7 STIG Version 3 Release 10
+ RHEL 8 STIG Version 1 Release 9
+ Ubuntu 18.04 STIG Version 2 Release 10
+ Ubuntu 20.04 STIG Version 1 Release 7

**STIG-Build-Linux-High version 2023.1.x**
+ RHEL 7 STIG Version 3 Release 10
+ RHEL 8 STIG Version 1 Release 9
+ Ubuntu 18.04 STIG Version 2 Release 10
+ Ubuntu 20.04 STIG Version 1 Release 7

### Modifications apportées au quatrième trimestre 2022 – 01/02/2023 :
<a name="2022-q4-linux"></a>

Versions STIG mises à jour et STIG appliqués pour la version du quatrième trimestre 2022 comme suit :

**STIG-Build-Linux-Low version 2022.4.x**
+ RHEL 7 STIG Version 3 Release 9
+ RHEL 8 STIG Version 1 Release 8
+ Ubuntu 18.04 STIG Version 2 Release 9
+ Ubuntu 20.04 STIG Version 1 Release 6

**STIG-Build-Linux-Medium version 2022.4.x**
+ RHEL 7 STIG Version 3 Release 9
+ RHEL 8 STIG Version 1 Release 8
+ Ubuntu 18.04 STIG Version 2 Release 9
+ Ubuntu 20.04 STIG Version 1 Release 6

**STIG-Build-Linux-High version 2022.4.x**
+ RHEL 7 STIG Version 3 Release 9
+ RHEL 8 STIG Version 1 Release 8
+ Ubuntu 18.04 STIG Version 2 Release 9
+ Ubuntu 20.04 STIG Version 1 Release 6

### Modifications apportées au troisième trimestre 2022 – 30/09/2022 (aucune modification) :
<a name="2022-q3-linux"></a>

Aucune modification n’a été apportée au composant Linux STIG pour la version du troisième trimestre 2022.

### Modifications apportées au deuxième trimestre 2022 – 08/02/2022 :
<a name="2022-q2-linux"></a>

Introduction du support Ubuntu, mise à jour des versions STIG et application des STIG pour la version du deuxième trimestre 2022 comme suit :

**STIG-Build-Linux-Low version 2022.2.x**
+ RHEL 7 STIG Version 3 Release 7
+ RHEL 8 STIG Version 1 Release 6
+ Ubuntu 18.04 STIG Version 2 Release 6 (nouveau)
+ Ubuntu 20.04 STIG Version 1 Release 4 (nouveau)

**STIG-Build-Linux-Medium version 2022.2.x**
+ RHEL 7 STIG Version 3 Release 7
+ RHEL 8 STIG Version 1 Release 6
+ Ubuntu 18.04 STIG Version 2 Release 6 (nouveau)
+ Ubuntu 20.04 STIG Version 1 Release 4 (nouveau)

**STIG-Build-Linux-High version 2022.2.x**
+ RHEL 7 STIG Version 3 Release 7
+ RHEL 8 STIG Version 1 Release 6
+ Ubuntu 18.04 STIG Version 2 Release 6 (nouveau)
+ Ubuntu 20.04 STIG Version 1 Release 4 (nouveau)

### Modifications apportées au premier trimestre 2022 – 26/04/2022 :
<a name="2022-q1-linux"></a>

Refactorisé pour inclure un meilleur support pour les conteneurs. Combinaison du AL2 script précédent avec RHEL 7. Versions STIG mises à jour et STIG appliqués pour la version du premier trimestre 2022 comme suit :

**STIG-Build-Linux-Low version 3.6.x**
+ RHEL 7 STIG Version 3 Release 6
+ RHEL 8 STIG Version 1 Release 5

**STIG-Build-Linux-Medium version 3.6.x**
+ RHEL 7 STIG Version 3 Release 6
+ RHEL 8 STIG Version 1 Release 5

**STIG-Build-Linux-High version 3.6.x**
+ RHEL 7 STIG Version 3 Release 6
+ RHEL 8 STIG Version 1 Release 5

### Modifications apportées au quatrième trimestre 2021 – 20/12/2021 :
<a name="2021-q4-linux"></a>

Versions STIG mises à jour et STIG appliqués pour la version du quatrième trimestre 2021 comme suit :

**STIG-Build-Linux-Low version 3.5.x**
+ RHEL 7 STIG Version 3 Release 5
+ RHEL 8 STIG Version 1 Release 4

**STIG-Build-Linux-Medium version 3.5.x**
+ RHEL 7 STIG Version 3 Release 5
+ RHEL 8 STIG Version 1 Release 4

**STIG-Build-Linux-High version 3.5.x**
+ RHEL 7 STIG Version 3 Release 5
+ RHEL 8 STIG Version 1 Release 4

### Modifications apportées au troisième trimestre 2021 au 30/09/2021 :
<a name="2021-q3-linux"></a>

Versions STIG mises à jour et STIG appliqués pour la version du troisième trimestre 2021 comme suit :

**STIG-Build-Linux-Low version 3.4.x**
+ RHEL 7 STIG Version 3 Release 4
+ RHEL 8 STIG Version 1 Release 3

**STIG-Build-Linux-Medium version 3.4.x**
+ RHEL 7 STIG Version 3 Release 4
+ RHEL 8 STIG Version 1 Release 3

**STIG-Build-Linux-High version 3.4.x**
+ RHEL 7 STIG Version 3 Release 4
+ RHEL 8 STIG Version 1 Release 3

## Composant de validation de conformité SCAP
<a name="scap-compliance"></a>

Le protocole SCAP (Security Content Automation Protocol) est un ensemble de normes que les professionnels de l'informatique peuvent utiliser pour identifier les vulnérabilités de sécurité des applications à des fins de conformité. Le SCAP Compliance Checker (SCC) est un outil d'analyse validé par le SCAP, publié par le Naval Information Warfare Center (NIWC) Atlantic. Pour plus d'informations, voir [Vérificateur de conformité au protocole SCAP (Security Content Automation Protocol) (SCC)](https://www.niwcatlantic.navy.mil/Technology/SCAP/) sur le site Web de *NIWC* Atlantic.

Les `scap-compliance-checker-linux` composants AWSTOE `scap-compliance-checker-windows` et téléchargent et installent le scanner SCC sur les instances de construction et de test du pipeline. Lorsque le scanner s'exécute, il effectue des analyses de configuration authentifiées à l'aide des benchmarks DISA SCAP et fournit un rapport contenant les informations suivantes. AWSTOE écrit également les informations dans les journaux de vos applications.
+ Paramètres STIG appliqués à l'instance.
+ Un score de conformité global pour l'instance.

Nous vous recommandons d'exécuter la validation SCAP comme dernière étape de votre processus de création, afin de garantir l'exactitude des résultats de validation de conformité.

**Note**  
Vous pouvez consulter les rapports à l'aide de l'un des [outils de visualisation STIG](https://public.cyber.mil/stigs/srg-stig-tools/). Ces outils sont disponibles en ligne via le DoD Cyber Exchange.

Les sections suivantes décrivent les benchmarks inclus dans les composants de validation SCAP.

### scap-compliance-checker-windows version 2024.03.0
<a name="scap-component-windows"></a>

Le `scap-compliance-checker-windows` composant s'exécute sur les instances EC2 créées par Image Builder pour créer et tester l'image. AWSTOE enregistre à la fois le rapport et le score produits par l'application SCC.

Le composant exécute les étapes de flux de travail suivantes : 

1. Télécharge et installe l'application SCC.

1. Importe les points de référence de conformité.

1. Exécute la validation à l'aide de l'application SCC.

1. Enregistre le rapport de conformité et le score localement sur le poste de travail de l'instance de build.

1. Enregistre le score de conformité du rapport local dans les fichiers journaux de AWSTOE l'application.

**Note**  
AWSTOE prend actuellement en charge la validation de conformité SCAP pour Windows Server 2012 R2 MS, 2016, 2019 et 2022.

Le composant du vérificateur de conformité SCAP pour Windows inclut les tests de performance suivants :

**Version SCC : 5.10**  
Points de référence du quatrième trimestre 2023 :
+ U\$1MS\$1Defender\$1Antivirus\$1V2R5\$1Stig\$1Scap\$11-2\$1Benchmark
+ U\$1MS\$1 \$1Framework\$14-0\$1V2R2\$1STIG\$1SCAP\$11-2\$1Benchmark DotNet
+ U\$1MS\$1 \$1V2R6\$1Stig\$1Scap\$11-2\$1Benchmark IE11
+ U\$1MS\$1Windows\$12012\$1et\$12012\$1R2\$1DC\$1V3R5\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1MS\$1Windows\$12012\$1et\$12012\$1R2\$1MS\$1V3R5\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1MS\$1Windows\$1Defender\$1Firewall\$1v2r3\$1Stig\$1Scap\$11-2\$1Benchmark
+ U\$1MS\$1Windows\$1Server\$12016\$1V2R7\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1MS\$1Windows\$1Server\$12019\$1V3R2\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1MS\$1Windows\$1Server\$12022\$1V2R2\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1CAN\$1Ubuntu\$120-04\$1LTS\$1V1R10\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1RHEL\$17\$1V3R15\$1Stig\$1Scap\$11-3\$1Benchmark
+ U\$1RHEL\$18\$1V1R13\$1Stig\$1Scap\$11-3\$1Benchmark
+ U\$1RHEL\$19\$1V2R1\$1STIG\$1SCAP\$11-3\$1Benchmark

### scap-compliance-checker-linux version 2021.04.0
<a name="scap-component-linux"></a>

Le `scap-compliance-checker-linux` composant s'exécute sur les instances EC2 créées par Image Builder pour créer et tester l'image. AWSTOE enregistre à la fois le rapport et le score produits par l'application SCC.

Le composant exécute les étapes de flux de travail suivantes :

1. Télécharge et installe l'application SCC.

1. Importe les points de référence de conformité.

1. Exécute la validation à l'aide de l'application SCC.

1. Enregistre le rapport de conformité et le score localement, à l'emplacement suivant sur l'instance de build :`/opt/scc/SCCResults`.

1. Enregistre le score de conformité du rapport local dans les fichiers journaux de AWSTOE l'application.

**Note**  
AWSTOE prend actuellement en charge la validation de conformité SCAP pour RHEL 7/8 et Ubuntu 18.04/20.04. L'application SCC prend actuellement en charge l'architecture x86 pour la validation.

Le composant du vérificateur de conformité SCAP pour Linux inclut les tests de performance suivants :

**Version SCC : 5.10**  
Points de référence du quatrième trimestre 2023 :
+ U\$1CAN\$1Ubuntu\$120-04\$1LTS\$1V1R10\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1RHEL\$17\$1V3R15\$1Stig\$1Scap\$11-3\$1Benchmark
+ U\$1RHEL\$18\$1V1R13\$1Stig\$1Scap\$11-3\$1Benchmark
+ U\$1RHEL\$19\$1V2R1\$1STIG\$1SCAP\$11-3\$1Benchmark
+ U\$1MS\$1Defender\$1Antivirus\$1V2R5\$1Stig\$1Scap\$11-2\$1Benchmark
+ U\$1MS\$1 \$1Framework\$14-0\$1V2R2\$1STIG\$1SCAP\$11-2\$1Benchmark DotNet
+ U\$1MS\$1 \$1V2R6\$1Stig\$1Scap\$11-2\$1Benchmark IE11
+ U\$1MS\$1Windows\$12012\$1et\$12012\$1R2\$1DC\$1V3R5\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1MS\$1Windows\$12012\$1et\$12012\$1R2\$1MS\$1V3R5\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1MS\$1Windows\$1Defender\$1Firewall\$1v2r3\$1Stig\$1Scap\$11-2\$1Benchmark
+ U\$1MS\$1Windows\$1Server\$12016\$1V2R7\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1MS\$1Windows\$1Server\$12019\$1V3R2\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1MS\$1Windows\$1Server\$12022\$1V2R2\$1STIG\$1SCAP\$11-2\$1Benchmark

### Historique des versions de SCAP
<a name="ib-scap-version-hist"></a>

Le tableau suivant décrit les modifications importantes apportées à l'environnement et aux paramètres SCAP décrits dans ce document.


| Modifier | Description | Date | 
| --- | --- | --- | 
|  Mises à jour du SCAP du premier trimestre 2025  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/imagebuilder/latest/userguide/ib-stig.html)  | 11 avril 2025 | 
|  Mises à jour du SCAP du quatrième trimestre 2023  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/imagebuilder/latest/userguide/ib-stig.html)  | 20 décembre 2021 | 
|  Mises à jour du SCAP du troisième trimestre 2023  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/imagebuilder/latest/userguide/ib-stig.html)  | 13 novembre 2023 | 
|  Composants SCAP ajoutés  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/imagebuilder/latest/userguide/ib-stig.html)  | 20 décembre 2021 | 

# Développez des composants personnalisés pour votre image Image Builder
<a name="create-custom-components"></a>

Vous pouvez créer vos propres composants pour personnaliser vos images Image Builder en fonction de vos spécifications exactes. Suivez les étapes ci-dessous pour développer des composants personnalisés pour votre image Image Builder ou vos recettes de conteneur.

1. Si vous souhaitez développer votre document de composant et le valider localement, vous pouvez installer l'application AWS Task Orchestrator and Executor (AWSTOE) et la configurer sur votre machine locale. Pour de plus amples informations, veuillez consulter [Configuration manuelle pour développer des composants personnalisés avec AWSTOE](toe-get-started.md).

1. Créez un document de composant qui utilise le cadre de documentation du AWSTOE composant. Pour plus d'informations sur le cadre documentaire, consultez[Utiliser le cadre de documentation des AWSTOE composants pour les composants personnalisés](toe-use-documents.md).

1. Spécifiez le document de votre composant lorsque vous créez un composant personnalisé. Pour de plus amples informations, veuillez consulter [Création d'un composant personnalisé avec Image Builder](create-component.md).

**Topics**
+ [Création d'un document de composant YAML pour les composants personnalisés dans Image Builder](create-component-yaml.md)
+ [Création d'un composant personnalisé avec Image Builder](create-component.md)

# Création d'un document de composant YAML pour les composants personnalisés dans Image Builder
<a name="create-component-yaml"></a>

Pour créer un composant, vous devez fournir un document de composant d'application YAML ou JSON. Le document contient le code qui s'exécute pendant les phases et les étapes que vous définissez pour personnaliser votre image.

Certains des exemples présentés dans cette section créent un composant de génération qui appelle le module `UpdateOS` d'action dans l'application de gestion des AWSTOE composants. Le module met à jour le système d'exploitation. Pour plus d'informations sur le module `UpdateOS` d'action, consultez[Mettre à jour le système d'exploitation](toe-action-modules.md#action-modules-updateos).

L'exemple du système d'exploitation macOS utilise le module `ExecuteBash` d'action pour installer et vérifier l'`wget`utilitaire. Le module `UpdateOS` d'action n'est pas compatible avec macOS. Pour plus d'informations sur le module `ExecuteBash` d'action, consultez[ExecuteBash](toe-action-modules.md#action-modules-executebash). Pour plus d'informations sur les phases, les étapes et la syntaxe des documents des composants de AWSTOE l'application, voir [Utiliser des documents dans AWSTOE](https://docs.aws.amazon.com/imagebuilder/latest/userguide/toe-use-documents.html).

**Note**  
Image Builder détermine le type de composant à partir des phases définies dans le document du composant comme suit :  
**Construire** — Il s'agit du type de composant par défaut. Tout ce qui n'est pas classé comme composant de test est un composant de construction. Ce type de composant s'exécute pendant la *phase de création* de l'image. Si une `test` phase est définie pour ce composant de construction, celle-ci s'exécute pendant la phase de *test*.
**Test** — Pour être considéré comme un composant de test, le document du composant ne doit inclure qu'une seule phase, nommée`test`. Pour les tests liés à la configuration des composants de génération, nous vous recommandons de ne pas utiliser de composant de test autonome. Utilisez plutôt la `test` phase dans le composant de construction associé.
Pour plus d'informations sur la manière dont Image Builder utilise les étapes et les phases pour gérer le flux de travail des composants dans son processus de création, consultez[Utilisez des composants pour personnaliser votre image Image Builder](manage-components.md).

Pour créer un document de composant d'application YAML pour un exemple d'application, suivez les étapes de l'onglet correspondant à votre système d'exploitation d'image. 

------
#### [ Linux ]

**Création d'un fichier de composant YAML**  
Utilisez un outil d'édition de fichiers pour créer votre document de composant. Les exemples de documentation utilisent un fichier nommé`update-linux-os.yaml`, dont le contenu est le suivant :

```
# Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: MIT-0
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of this
# software and associated documentation files (the "Software"), to deal in the Software
# without restriction, including without limitation the rights to use, copy, modify,
# merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
# PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
name: update-linux-os
description: Updates Linux with the latest security updates.
schemaVersion: 1
phases:
  - name: build
    steps:
    - name: UpdateOS
      action: UpdateOS
# Document End
```

**Astuce**  
Utilisez un outil tel que ce [validateur YAML](https://jsonformatter.org/yaml-validator) en ligne ou une extension YAML lint dans votre environnement de code pour vérifier que votre code YAML est bien formé.

------
#### [ Windows ]

**Création d'un fichier de composant YAML**  
Utilisez un outil d'édition de fichiers pour créer votre document de composant. Les exemples de documentation utilisent un fichier nommé`update-windows-os.yaml`, dont le contenu est le suivant :

```
# Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: MIT-0
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of this
# software and associated documentation files (the "Software"), to deal in the Software
# without restriction, including without limitation the rights to use, copy, modify,
# merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
# PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
name: update-windows-os
description: Updates Windows with the latest security updates.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: UpdateOS
        action: UpdateOS
# Document End
```

**Astuce**  
Utilisez un outil tel que ce [validateur YAML](https://jsonformatter.org/yaml-validator) en ligne ou une extension YAML lint dans votre environnement de code pour vérifier que votre code YAML est bien formé.

------
#### [ macOS ]

**Création d'un fichier de composant YAML**  
Utilisez un outil d'édition de fichiers pour créer votre document de composant. Les exemples de documentation utilisent un fichier nommé`wget-macos.yaml`, dont le contenu est le suivant :

```
name: WgetInstallDocument
description: This is wget installation document.
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: WgetBuildStep
        action: ExecuteBash
        inputs:
          commands:
            - |
              PATH=/usr/local/bin:$PATH
              sudo -u ec2-user brew install wget


  - name: validate
    steps:
      - name: WgetValidateStep
        action: ExecuteBash
        inputs:
          commands:
            - |
              function error_exit {
                echo $1
                echo "{\"failureMessage\":\"$2\"}"
                exit 1
              }

              type wget
              if [ $? -ne 0 ]; then
                error_exit "$stderr" "Wget installation failed!"
              fi

  - name: test
    steps:
      - name: WgetTestStep
        action: ExecuteBash
        inputs:
          commands:
            - wget -h
```

**Astuce**  
Utilisez un outil tel que ce [validateur YAML](https://jsonformatter.org/yaml-validator) en ligne ou une extension YAML lint dans votre environnement de code pour vérifier que votre code YAML est bien formé.

------

# Création d'un composant personnalisé avec Image Builder
<a name="create-component"></a>

Une fois que vous avez terminé le document de composant, vous pouvez l'utiliser pour créer un composant personnalisé que vos recettes Image Builder peuvent utiliser. Vous pouvez créer un composant personnalisé à partir de la console Image Builder, de l'API ou SDKs de la ligne de commande. Pour plus d'informations sur la façon de créer un composant personnalisé avec des paramètres d'entrée et de l'utiliser dans vos recettes, consultez[Tutoriel : Création d'un composant personnalisé avec des paramètres d'entrée](tutorial-component-parameters.md).

Les sections suivantes expliquent comment créer des composants à partir de la console ou du AWS CLI.

**Topics**
+ [Création d'un composant personnalisé depuis la console](#create-component-ib-console)
+ [Créez un composant personnalisé à partir du AWS CLI](#create-component-ib-cli)
+ [Importez un script pour créer un composant à partir du AWS CLI](#import-component-cli)
+ [Gestion automatique des versions de build](#auto-build-version-management)
+ [Utilisation des références de version](#using-version-references)

## Création d'un composant personnalisé depuis la console
<a name="create-component-ib-console"></a>

Pour créer un composant d' AWSTOE application à partir de la console Image Builder, procédez comme suit :

1. Ouvrez la console [https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/)EC2 Image Builder à l'adresse.

1. Sélectionnez **Composants** dans le volet de navigation. Sélectionnez ensuite **Créer un composant**.

1. Sur la page **Créer un composant**, sous **Détails du composant**, entrez ce qui suit :

   1. **Système d'exploitation d'image (OS)**. Spécifiez le système d'exploitation avec lequel le composant est compatible.

   1. **Catégorie de composant**. Dans le menu déroulant, sélectionnez le type de composant de construction ou de test que vous créez.

   1. **Nom du composant**. Entrez un nom pour le composant.

   1. **Version du composant**. Entrez le numéro de version du composant.

   1. **Description**. Fournissez une description facultative pour vous aider à identifier le composant.

   1. **Modifier la description**. Fournissez une description facultative pour vous aider à comprendre les modifications apportées à cette version du composant.

1. Dans la section **Définition du document**, l'option par défaut est **Définir le contenu du document**. Le document du composant définit les actions qu'Image Builder exécute sur les instances de génération et de test pour créer votre image.

   Dans le champ **Contenu**, entrez le contenu du document de votre composant YAML. Pour commencer par un exemple de *Hello World* pour Linux, choisissez l'option **Utiliser un exemple**. Pour en savoir plus sur la création d'un document de composant YAML ou sur le copier-coller de l'exemple *UpdateOS* à partir de cette page, consultez. [Création d'un document de composant YAML pour les composants personnalisés dans Image Builder](create-component-yaml.md)

1. Après avoir saisi les détails du composant, sélectionnez **Créer un composant**.
**Note**  
Pour voir votre nouveau composant lorsque vous créez ou mettez à jour une recette, appliquez le filtre **Owned by me** à la liste des composants de construction ou de test. Le filtre se trouve en haut de la liste des composants, à côté du champ de recherche.

1. Pour supprimer un composant, sur la page **Composants**, cochez la case à côté du composant que vous souhaitez supprimer. Dans le menu déroulant **Actions**, sélectionnez **Supprimer le composant**.

**Mettre à jour un composant**  
Pour créer une nouvelle version de composant, procédez comme suit :

1. En fonction de votre point de départ :
   + Sur la page de liste des **composants** : cochez la case à côté du nom du composant, puis sélectionnez **Créer une nouvelle version** dans le menu **Actions**.
   + Sur la page détaillée du composant : cliquez sur le bouton **Créer une nouvelle version** dans le coin supérieur droit de l'en-tête.

1. Les informations du composant sont déjà renseignées avec les valeurs actuelles lorsque la page **Créer un composant** s'affiche. Suivez les étapes de création d'un composant pour le mettre à jour. Cela garantit que vous entrez une version sémantique unique dans la version du **composant**. Pour en savoir plus sur le versionnement sémantique des ressources Image Builder, consultez. [Versionnage sémantique dans Image Builder](ibhow-semantic-versioning.md)

## Créez un composant personnalisé à partir du AWS CLI
<a name="create-component-ib-cli"></a>

Dans cette section, vous allez apprendre à configurer et à utiliser les commandes Image Builder AWS CLI pour créer un composant d' AWSTOE application, comme suit.
+ Téléchargez le document de votre composant YAML dans un compartiment S3 auquel vous pouvez faire référence depuis la ligne de commande.
+ Créez le composant AWSTOE d'application à l'aide de la **create-component** commande.
+ Répertoriez les versions des composants à l'aide de la **list-components** commande et d'un filtre de nom pour voir quelles versions existent déjà. Vous pouvez utiliser le résultat pour déterminer quelle sera la prochaine version pour les mises à jour.

Pour créer un composant d' AWSTOE application à partir d'un document YAML d'entrée, suivez les étapes correspondant à la plate-forme de votre système d'exploitation d'image.

------
#### [ Linux ]

**Stockez le document relatif aux composants de votre application dans Amazon S3**

Vous pouvez utiliser un compartiment S3 comme référentiel pour le document source des composants de votre AWSTOE application. Pour enregistrer le document de votre composant, procédez comme suit :
+ 

**Téléchargez le document sur Amazon S3**

  *Si la taille de votre document est inférieure à 64 Ko, vous pouvez ignorer cette étape.* Les documents d'une taille supérieure ou égale à 64 Ko doivent être stockés dans Amazon S3.

  ```
  aws s3 cp update-linux-os.yaml s3://amzn-s3-demo-destination-bucket/my-path/update-linux-os.yaml
  ```

**Création d'un composant à partir du document YAML**

Pour rationaliser la **create-component** commande que vous utilisez dans le AWS CLI, créez un fichier JSON contenant tous les paramètres de composant que vous souhaitez transmettre à la commande. Indiquez l'emplacement du `update-linux-os.yaml` document que vous avez créé précédemment. La paire `uri` clé-valeur contient la référence du fichier.
**Note**  
La convention de dénomination des valeurs de données dans le fichier JSON suit le modèle spécifié pour les paramètres de demande d'opération de l'API Image Builder. Pour consulter les paramètres de demande de commande d'API, consultez la [CreateComponent](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html)commande dans le manuel de référence de l'*API EC2 Image Builder*.  
Pour fournir les valeurs de données sous forme de paramètres de ligne de commande, reportez-vous aux noms de paramètres spécifiés dans la *référence des AWS CLI commandes*.

1. 

**Créer un fichier JSON d'entrée CLI**

   Utilisez un outil d'édition de fichiers pour créer un fichier nommé`create-update-linux-os-component.json`. Incluez le contenu suivant :

   ```
   {
   	"name": "update-linux-os",
   	"semanticVersion": "1.1.2",
   	"description": "An example component that updates the Linux operating system",
   	"changeDescription": "Initial version.",
   	"platform": "Linux",
   	"uri": "s3://amzn-s3-demo-destination-bucket/my-path/update-linux-os.yaml",
   	"kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/98765432-b123-456b-7f89-0123456f789c",
   	"tags": {
   		"MyTagKey-purpose": "security-updates"
   	}
   }
   ```

1. 

**Création du composant**

   Utilisez la commande suivante pour créer le composant, en faisant référence au nom du fichier JSON que vous avez créé à l'étape précédente :

   ```
   aws imagebuilder create-component --cli-input-json file://create-update-linux-os-component.json
   ```
**Note**  
Vous devez inclure l'option `file://` au début du chemin du fichier JSON.
Le chemin d'accès du fichier JSON doit suivre la convention appropriée pour le système d'exploitation de base sur lequel vous exécutez la commande. Par exemple, Windows utilise la barre oblique inverse (\$1) pour faire référence au chemin du répertoire, tandis que Linux et macOS utilisent la barre oblique (/).

------
#### [ Windows ]

**Stockez le document relatif aux composants de votre application dans Amazon S3**

Vous pouvez utiliser un compartiment S3 comme référentiel pour le document source des composants de votre AWSTOE application. Pour enregistrer le document de votre composant, procédez comme suit :
+ 

**Téléchargez le document sur Amazon S3**

  *Si la taille de votre document est inférieure à 64 Ko, vous pouvez ignorer cette étape.* Les documents d'une taille supérieure ou égale à 64 Ko doivent être stockés dans Amazon S3.

  ```
  aws s3 cp update-windows-os.yaml s3://amzn-s3-demo-destination-bucket/my-path/update-windows-os.yaml
  ```

**Création d'un composant à partir du document YAML**

Pour rationaliser la **create-component** commande que vous utilisez dans le AWS CLI, créez un fichier JSON contenant tous les paramètres de composant que vous souhaitez transmettre à la commande. Indiquez l'emplacement du `update-windows-os.yaml` document que vous avez créé précédemment. La paire `uri` clé-valeur contient la référence du fichier.
**Note**  
La convention de dénomination des valeurs de données dans le fichier JSON suit le modèle spécifié pour les paramètres de demande d'opération de l'API Image Builder. Pour consulter les paramètres de demande de commande d'API, consultez la [CreateComponent](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html)commande dans le manuel de référence de l'*API EC2 Image Builder*.  
Pour fournir les valeurs de données sous forme de paramètres de ligne de commande, reportez-vous aux noms de paramètres spécifiés dans la *référence des AWS CLI commandes*.

1. 

**Créer un fichier JSON d'entrée CLI**

   Utilisez un outil d'édition de fichiers pour créer un fichier nommé`create-update-windows-os-component.json`. Incluez le contenu suivant :

   ```
   {
   	"name": "update-windows-os",
   	"semanticVersion": "1.1.2",
   	"description": "An example component that updates the Windows operating system.",
   	"changeDescription": "Initial version.",
   	"platform": "Windows",
   	"uri": "s3://amzn-s3-demo-destination-bucket/my-path/update-windows-os.yaml",
   	"kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/98765432-b123-456b-7f89-0123456f789c",
   	"tags": {
   		"MyTagKey-purpose": "security-updates"
   	}
   }
   ```
**Note**  
Vous devez inclure l'option `file://` au début du chemin du fichier JSON.
Le chemin d'accès du fichier JSON doit suivre la convention appropriée pour le système d'exploitation de base sur lequel vous exécutez la commande. Par exemple, Windows utilise la barre oblique inverse (\$1) pour faire référence au chemin du répertoire, tandis que Linux et macOS utilisent la barre oblique (/).

1. 

**Création du composant**

   Utilisez la commande suivante pour créer le composant, en faisant référence au nom du fichier JSON que vous avez créé à l'étape précédente :

   ```
   aws imagebuilder create-component --cli-input-json file://create-update-windows-os-component.json
   ```
**Note**  
Vous devez inclure l'option `file://` au début du chemin du fichier JSON.
Le chemin d'accès du fichier JSON doit suivre la convention appropriée pour le système d'exploitation de base sur lequel vous exécutez la commande. Par exemple, Windows utilise la barre oblique inverse (\$1) pour faire référence au chemin du répertoire, tandis que Linux et macOS utilisent la barre oblique (/).

------
#### [ macOS ]

**Stockez le document relatif aux composants de votre application dans Amazon S3**

Vous pouvez utiliser un compartiment S3 comme référentiel pour le document source des composants de votre AWSTOE application. Pour enregistrer le document de votre composant, procédez comme suit :
+ 

**Téléchargez le document sur Amazon S3**

  *Si la taille de votre document est inférieure à 64 Ko, vous pouvez ignorer cette étape.* Les documents d'une taille supérieure ou égale à 64 Ko doivent être stockés dans Amazon S3.

  ```
  aws s3 cp wget-macos.yaml s3://amzn-s3-demo-destination-bucket/my-path/wget-macos.yaml
  ```

**Création d'un composant à partir du document YAML**

Pour rationaliser la **create-component** commande que vous utilisez dans le AWS CLI, créez un fichier JSON contenant tous les paramètres de composant que vous souhaitez transmettre à la commande. Indiquez l'emplacement du `wget-macos.yaml` document que vous avez créé précédemment. La paire `uri` clé-valeur contient la référence du fichier.
**Note**  
La convention de dénomination des valeurs de données dans le fichier JSON suit le modèle spécifié pour les paramètres de demande d'opération de l'API Image Builder. Pour consulter les paramètres de demande de commande d'API, consultez la [CreateComponent](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html)commande dans le manuel de référence de l'*API EC2 Image Builder*.  
Pour fournir les valeurs de données sous forme de paramètres de ligne de commande, reportez-vous aux noms de paramètres spécifiés dans la *référence des AWS CLI commandes*.

1. 

**Créer un fichier JSON d'entrée CLI**

   Utilisez un outil d'édition de fichiers pour créer un fichier nommé`install-wget-macos-component.json`. Incluez le contenu suivant :

   ```
   {
   	"name": "install install-wget-macos-component",
   	"semanticVersion": "1.1.2",
   	"description": "An example component that installs and verifies the wget utility on macOS.",
   	"changeDescription": "Initial version.",
   	"platform": "macOS",
   	"uri": "s3://amzn-s3-demo-destination-bucket/my-path/wget-macos.yaml",
   	"kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/98765432-b123-456b-7f89-0123456f789c",
   	"tags": {
   		"MyTagKey-purpose": "install-software"
   	}
   }
   ```

1. 

**Création du composant**

   Utilisez la commande suivante pour créer le composant, en faisant référence au nom du fichier JSON que vous avez créé à l'étape précédente :

   ```
   aws imagebuilder create-component --cli-input-json file://install-wget-macos-component.json
   ```
**Note**  
Vous devez inclure l'option `file://` au début du chemin du fichier JSON.
Le chemin d'accès du fichier JSON doit suivre la convention appropriée pour le système d'exploitation de base sur lequel vous exécutez la commande. Par exemple, Windows utilise la barre oblique inverse (\$1) pour faire référence au chemin du répertoire, tandis que Linux et macOS utilisent la barre oblique (/).

------

### AWSTOE gestion des versions des composants pour les mises à jour depuis AWS CLI
<a name="component-update-cli"></a>

AWSTOE les noms et versions des composants sont intégrés dans le nom de ressource Amazon (ARN) du composant, après le préfixe du composant. Chaque nouvelle version d'un composant possède son propre ARN unique. Les étapes de création d'une nouvelle version sont exactement les mêmes que celles de création d'un nouveau composant, à condition que la version sémantique soit unique pour le nom de ce composant. Pour en savoir plus sur le versionnement sémantique des ressources Image Builder, consultez. [Versionnage sémantique dans Image Builder](ibhow-semantic-versioning.md)

Pour être sûr d'attribuer la version logique suivante, obtenez d'abord une liste des versions existantes du composant que vous souhaitez modifier. Utilisez la **list-components** commande avec le AWS CLI, et filtrez sur le nom.

Dans cet exemple, vous filtrez sur le nom du composant que vous avez créé dans les exemples Linux précédents. Pour répertorier le composant que vous avez créé, utilisez la valeur du `name` paramètre du fichier JSON que vous avez utilisé dans la **create-component** commande.

```
aws imagebuilder list-components --filters name="name",values="update-linux-os"	
{
    "requestId": "123a4567-b890-123c-45d6-ef789ab0cd1e",
    "componentVersionList": [
        {
            "arn": "arn:aws:imagebuilder:us-west-2:1234560087789012:component/update-linux-os/1.0.0",
            "name": "update-linux-os",
            "version": "1.0.0",
            "platform": "Linux",
            "type": "BUILD",
            "owner": "123456789012",
            "dateCreated": "2020-09-24T16:58:24.444Z"
        },
        {
            "arn": "arn:aws:imagebuilder:us-west-2:1234560087789012:component/update-linux-os/1.0.1",
            "name": "update-linux-os",
            "version": "1.0.1",
            "platform": "Linux",
            "type": "BUILD",
            "owner": "123456789012",
            "dateCreated": "2021-07-10T03:38:46.091Z"
        }
    ]
}
```

Sur la base de vos résultats, vous pouvez déterminer quelle devrait être la prochaine version.

## Importez un script pour créer un composant à partir du AWS CLI
<a name="import-component-cli"></a>

Dans certains scénarios, il peut être plus facile de démarrer avec un script préexistant. Pour ce scénario, vous pouvez utiliser l'exemple suivant. 

Cet exemple suppose que vous disposez d'un fichier appelé `import-component.json` (comme indiqué). Notez que le fichier fait directement référence à un PowerShell script appelé `AdminConfig.ps1` qui a déjà été téléchargé vers`amzn-s3-demo-source-bucket`. Actuellement, `SHELL` est pris en charge pour le composant`format`. 

```
{
"name": "MyImportedComponent",
"semanticVersion": "1.0.0",
"description": "An example of how to import a component",
"changeDescription": "First commit message.",
"format": "SHELL",
"platform": "Windows",
"type": "BUILD",
"uri": "s3://amzn-s3-demo-source-bucket/AdminConfig.ps1",
"kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/60763706-b131-418b-8f85-3420912f020c"
}
```

Pour créer le composant à partir d'un script importé, exécutez la commande suivante.

```
aws imagebuilder import-component --cli-input-json file://import-component.json
```

## Gestion automatique des versions de build
<a name="auto-build-version-management"></a>

Lorsque vous créez un composant portant le même nom et la même version sémantique qu'un composant existant, Image Builder incrémente automatiquement la version de construction (par exemple, de `/1` à`/2`, à`/3`, etc.). Cela vous permet d'effectuer des mises à jour itératives de vos composants sans gérer manuellement les numéros de version, ce qui est particulièrement utile dans les CI/CD pipelines et les infrastructure-as-code déploiements. Si le contenu du composant est identique à celui de la version précédente, Image Builder revient `ResourceAlreadyExistsException` pour empêcher les composants dupliqués d'utiliser votre quota de service. 

## Utilisation des références de version
<a name="using-version-references"></a>

Lorsque vous créez ou récupérez un composant, Image Builder fournit automatiquement des modèles de version préconstruits ARNs avec des caractères génériques dans l' latestVersionReferences objet. Ces références facilitent l'utilisation des dernières versions de vos composants dans les recettes et les pipelines sans analyse ARNs manuelle. 

**Choisir la bonne référence de version**
+ latestVersionArn (x.x.x) - Utilisez toujours la dernière version du composant.
+ atestMajorVersionArn (1.x.x) - Utilisez les dernières versions mineures et patchs dans une version majeure.
+ latestMinorVersionArn (1.2.x) - Utilisez uniquement la dernière version du correctif.
+ latestPatchVersionArn (1.2.3) - Référencez une version sémantique spécifique, mais obtenez la dernière version de compilation.

**Note**  
Pour éviter des frais imprévus, veillez à nettoyer les ressources et les pipelines que vous avez créés à partir des exemples de ce guide. Pour plus d'informations sur la suppression de ressources dans Image Builder, consultez[Supprimer les ressources d'Image Builder obsolètes ou inutilisées](delete-resources.md).

# Comment Image Builder utilise l' AWS Task Orchestrator and Executor application pour gérer les composants
<a name="toe-component-manager"></a>

EC2 Image Builder utilise l'application AWS Task Orchestrator and Executor (AWSTOE) pour orchestrer des flux de travail complexes, modifier les configurations du système et tester vos images sans avoir besoin de scripts ou de code DevOps supplémentaires. Cette application gère et exécute les composants qui implémentent son schéma de document déclaratif.

AWSTOE est une application autonome qu'Image Builder installe sur ses instances de build et de test lorsque vous créez une image. Vous pouvez également l'installer manuellement sur EC2 les instances pour créer vos propres composants personnalisés. Il ne nécessite aucune configuration supplémentaire et peut également fonctionner sur site.

**Topics**
+ [AWSTOE téléchargements](#toe-downloads)
+ [Régions prises en charge](#toe-supported-regions)
+ [AWSTOE référence de commande](#toe-commands)
+ [Configuration manuelle pour développer des composants personnalisés avec AWSTOE](toe-get-started.md)
+ [Utiliser le cadre de documentation des AWSTOE composants pour les composants personnalisés](toe-use-documents.md)
+ [Modules d'action pris en charge par le gestionnaire de AWSTOE composants](toe-action-modules.md)
+ [Configurer l'entrée pour la commande d' AWSTOE exécution](toe-run-config-input.md)

## AWSTOE téléchargements
<a name="toe-downloads"></a>

Pour l'installer AWSTOE, choisissez le lien de téléchargement correspondant à votre architecture et à votre plate-forme. Si vous vous connectez à un point de terminaison VPC pour votre service (Image Builder, par exemple), il doit être associé à une politique de point de terminaison personnalisée qui inclut l'accès au compartiment S3 pour AWSTOE les téléchargements. Dans le cas contraire, vos instances de build et de test ne pourront pas télécharger le script bootstrap (`bootstrap.sh`) et installer l' AWSTOE application. Pour de plus amples informations, veuillez consulter [Création d'une politique de point de terminaison VPC pour Image Builder](vpc-interface-endpoints.md#vpc-endpoint-policy).

**Important**  
AWS supprime progressivement le support pour les versions 1.0 et 1.1 du protocole TLS. Pour accéder au compartiment S3 à des fins de AWSTOE téléchargement, votre logiciel client doit utiliser la version 1.2 ou ultérieure du protocole TLS. Pour plus d'informations, consultez ce billet [AWS de blog sur la sécurité](https://aws.amazon.com/blogs/security/tls-1-2-required-for-aws-endpoints/).


| Architecture | Plateforme | Lien de téléchargement | exemple | 
| --- | --- | --- | --- | 
| 386 |  AL 2 et 2023 RHEL 7, 8 et 9 Ubuntu 16.04, 18.04, 20.04, 22.04 et 24.04 CentOS 7 et 8 SUSE 12 et 15  | `https://awstoe-<region>.s3.<region>.amazonaws.com/latest/linux/386/awstoe`  | [https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/386/awstoe](https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/386/awstoe) | 
| AMD64 |  AL 2 et 2023 RHEL 7, 8 et 9 Ubuntu 16.04, 18.04, 20.04, 22.04 et 24.04 CentOS 7 et 8 CentOS Stream 8 SUSE 12 et 15  | https://awstoe-<region>.s3.<region>.amazonaws.com/latest/linux/amd64/awstoe | [https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/amd64/awstoe](https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/amd64/awstoe) | 
| AMD64 |  macOS 10.14.x (Mojave), 10.15.x (Catalina), 11.x (Big Sur), 12.x (Monterey)  | https://awstoe-region.s3.region.amazonaws.com/latest/darwin/amd64/awstoe | [https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/darwin/amd64/awstoe](https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/darwin/amd64/awstoe) | 
|  AMD64  |  Windows Server 2012 R2, 2016, 2019 et 2022  |   `https://awstoe-<region>.s3.<region>.amazonaws.com/latest/windows/amd64/awstoe.exe`  | [https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/windows/amd64/awstoe.exe](https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/windows/amd64/awstoe.exe) | 
| ARM64 |  AL 2 et 2023 RHEL 7, 8 et 9 Ubuntu 16.04, 18.04, 20.04, 22.04 et 24.04 CentOS 7 et 8 CentOS Stream 8 SUSE 12 et 15  | https://awstoe-<region>.s3.<region>.amazonaws.com/latest/linux/arm64/awstoe | [https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/arm64/awstoe](https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/arm64/awstoe) | 

## Régions prises en charge
<a name="toe-supported-regions"></a>

AWSTOE est prise en charge en tant qu'application autonome dans les régions suivantes.


| Région AWS nom | Région AWS | 
| --- | --- | 
|  USA Est (Ohio)  |  us-east-2  | 
|  USA Est (Virginie du Nord)  |  us-east-1  | 
|  AWS GovCloud (USA Est)  |  us-gov-east-1  | 
|  AWS GovCloud (US-Ouest)  |  us-gov-west-1  | 
|  USA Ouest (Californie du Nord)  | us-west-1 | 
|  US West (Oregon)  | us-west-2 | 
|  Afrique (Le Cap)  | af-south-1 | 
|  Asie-Pacifique (Hong Kong)  | ap-east-1 | 
|  Asie-Pacifique (Osaka)  | ap-northeast-3 | 
|  Asie-Pacifique (Séoul)  | ap-northeast-2 | 
|  Asie-Pacifique (Mumbai)  | ap-south-1 | 
|  Asie-Pacifique (Hyderabad)  | ap-south-2 | 
|  Asie-Pacifique (Singapour)  | ap-southeast-1 | 
|  Asie-Pacifique (Sydney)  | ap-southeast-2 | 
|  Asie-Pacifique (Jakarta)  | ap-southeast-3 | 
|  Asie-Pacifique (Tokyo)  | ap-northeast-1 | 
|  Canada (Central)  | ca-central-1 | 
|  Europe (Francfort)  | eu-central-1 | 
|  Europe (Zurich)  | eu-central-2 | 
|  Europe (Stockholm)  | eu-north-1 | 
|  Europe (Milan)  | eu-south-1 | 
|  Europe (Espagne)  | eu-south-2 | 
|  Europe (Irlande)  | eu-west-1 | 
|  Europe (Londres)  | eu-west-2 | 
|  Europe (Paris)  | eu-west-3 | 
|  Israël (Tel Aviv)  | il-central-1 | 
|  Moyen-Orient (EAU)  | me-central-1 | 
|  Moyen-Orient (Bahreïn)  | me-south-1 | 
|  Amérique du Sud (São Paulo)  | sa-east-1 | 
|  Chine (Beijing)  | cn-north-1 | 
|  China (Ningxia)  | cn-northwest-1 | 

## AWSTOE référence de commande
<a name="toe-commands"></a>

AWSTOE est une application de gestion des composants en ligne de commande qui s'exécute sur les EC2 instances Amazon. Lorsque Image Builder lance une instance de EC2 build ou de test, il s'installe AWSTOE sur l'instance. Il exécute ensuite AWSTOE des commandes dans le AWS CLI pour installer ou valider les composants spécifiés dans l'image ou la recette du conteneur.

**Note**  
Certains modules AWSTOE d'action nécessitent des autorisations élevées pour s'exécuter sur un serveur Linux. Pour utiliser des autorisations élevées, préfixez la syntaxe de la commande par **sudo** ou **sudo su** exécutez-la une fois lorsque vous vous connectez avant d'exécuter les commandes liées ci-dessous. Pour plus d'informations sur les modules AWSTOE d'action, consultez[Modules d'action pris en charge par le gestionnaire de AWSTOE composants](toe-action-modules.md).

***[run](#cmd-run)***  
Utilisez la **run** commande pour exécuter les scripts de document YAML pour un ou plusieurs documents de composants.

***[valider](#cmd-validate)***  
Exécutez la **validate** commande pour valider la syntaxe du document YAML pour un ou plusieurs documents de composants.

### commande awstoe run
<a name="cmd-run"></a>

Cette commande exécute les scripts de document du composant YAML dans l'ordre dans lequel ils sont inclus dans le fichier de configuration spécifié par le `--config` paramètre ou dans la liste des documents du composant spécifiée par le `--documents` paramètre.

**Note**  
Vous devez spécifier exactement l'un des paramètres suivants, jamais les deux :  
--configuration  
--documents

#### Syntaxe
<a name="run-syntax"></a>

```
awstoe run [--config <file path>] [--cw-ignore-failures <?>] 
      [--cw-log-group <?>] [--cw-log-region us-west-2] [--cw-log-stream <?>] 
      [--document-s3-bucket-owner <owner>] [--documents <file path,file path,...>] 
      [--execution-id <?>] [--log-directory <file path>] 
      [--log-s3-bucket-name <name>] [--log-s3-bucket-owner <owner>] 
      [--log-s3-key-prefix <?>] [--parameters name1=value1,name2=value2...] 
      [--phases <phase name>] [--state-directory <directory path>] [--version <?>] 
      [--help] [--trace]
```

#### Paramètres et options
<a name="run-parameters"></a>Paramètres

**--configuration *`./config-example.json`***  
Forme abrégée : -c *`./config-example.json`*  
Le fichier de configuration *(conditionnel)*. Ce paramètre contient l'emplacement du fichier JSON contenant les paramètres de configuration des composants exécutés par cette commande. Si vous spécifiez des paramètres de **run** commande dans un fichier de configuration, vous ne devez pas spécifier le `--documents` paramètre. Pour plus d'informations sur la configuration des entrées, consultez[Configurer l'entrée pour la commande d' AWSTOE exécution](toe-run-config-input.md).  
Les emplacements valides incluent :  
+ Un chemin de fichier local (*`./config-example.json`*)
+ Un URI S3 (`s3://bucket/key`)

**--cw-ignore-failures**  
Forme abrégée : N/A  
Ignorez les échecs de journalisation dans les CloudWatch journaux.

**--cw-log-group**  
Forme abrégée : N/A  
Le `LogGroup` nom des CloudWatch journaux.

**--cw-log-region**  
Forme abrégée : N/A  
La AWS région qui s'applique aux CloudWatch journaux.

**--cw-log-stream**  
Forme abrégée : N/A  
Le `LogStream` nom des CloudWatch journaux, qui indique AWSTOE où diffuser le `console.log` fichier.

**--document-s3-bucket-owner**  
Forme abrégée : N/A  
L'ID de compte du propriétaire du compartiment pour les documents basés sur l'URI S3.

**--documents *`./doc-1.yaml`,`./doc-n.yaml`***  
Forme abrégée : -d, *`./doc-1.yaml`* *`./doc-n`*  
Les documents du composant *(conditionnels)*. Ce paramètre contient une liste d'emplacements de fichiers séparés par des virgules pour les documents du composant YAML à exécuter. Si vous spécifiez des documents YAML pour la **run** commande à l'aide du `--documents` paramètre, vous ne devez pas le `--config` spécifier.  
Les emplacements valides incluent :  
+ chemins de fichiers locaux (*./component-doc-example.yaml*).
+ S3 URIs (`s3://bucket/key`).
+ Version de compilation du composant Image Builder ARNs (arn:aws:imagebuilder:us-west-:component/ /2021.12.02/1). *2:123456789012* *my-example-component*
Il n'y a aucun espace entre les éléments de la liste, uniquement des virgules.

**--identifiant d'exécution**  
Forme abrégée : -i  
Il s'agit de l'identifiant unique qui s'applique à l'exécution de la **run** commande en cours. Cet identifiant est inclus dans les noms des fichiers de sortie et des fichiers journaux, afin d'identifier ces fichiers de manière unique et de les lier à l'exécution de la commande en cours. Si ce paramètre est omis, AWSTOE génère un GUID.

**--log-directory**  
Forme abrégée : -l  
Le répertoire de destination où sont AWSTOE stockés tous les fichiers journaux de l'exécution de cette commande. Par défaut, ce répertoire se trouve dans le répertoire parent suivant :`TOE_<DATETIME>_<EXECUTIONID>`. Si vous ne spécifiez pas le répertoire du journal, AWSTOE utilise le répertoire de travail actuel (`.`).

**--log-s3-bucket-name**  
Forme abrégée : -b  
Si les journaux des composants sont stockés dans Amazon S3 (recommandé), AWSTOE télécharge les journaux des applications des composants dans le compartiment S3 nommé dans ce paramètre.

**--log-s3-bucket-owner**  
Forme abrégée : N/A  
Si les journaux des composants sont stockés dans Amazon S3 (recommandé), il s'agit de l'ID de compte propriétaire du compartiment dans lequel AWSTOE les fichiers journaux sont écrits.

**--log-s3-key-prefix**  
Forme abrégée : -k  
Si les journaux des composants sont stockés dans Amazon S3 (recommandé), il s'agit du préfixe de clé d'objet S3 pour l'emplacement du journal dans le compartiment.

**--paramètres *name1* =*value1*, *name2* =*value2*...**  
Forme abrégée : N/A  
Les paramètres sont des variables mutables définies dans le document du composant, avec des paramètres que l'application appelante peut fournir lors de l'exécution.

**--phases**  
Forme abrégée : -p  
Liste séparée par des virgules qui spécifie les phases à exécuter à partir des documents du composant YAML. Si le document d'un composant inclut des phases supplémentaires, celles-ci ne seront pas exécutées.

**--répertoire d'état**  
Forme abrégée : -s  
Le chemin du fichier dans lequel les fichiers de suivi d'état sont stockés.

**--Version**  
Forme abrégée : -v  
Spécifie la version du composant de l'application.Options

**--help**  
Forme abrégée : -h  
Affiche un manuel d'aide pour utiliser les options de l'application de gestion des composants.

**--tracer**  
Forme abrégée : -t  
Active la journalisation détaillée sur la console.

### commande awstoe validate
<a name="cmd-validate"></a>

Lorsque vous exécutez cette commande, elle valide la syntaxe du document YAML pour chacun des documents de composant spécifiés par le `--documents` paramètre.

#### Syntaxe
<a name="validate-syntax"></a>

```
awstoe validate [--document-s3-bucket-owner <owner>] 
      --documents <file path,file path,...> [--help] [--trace]
```

#### Paramètres et options
<a name="validate-parameters"></a>Paramètres

**--document-s3-bucket-owner**  
Forme abrégée : N/A  
ID de compte source des documents basés sur l'URI S3 fournis.

**--documents *`./doc-1.yaml`,`./doc-n.yaml`***  
Forme abrégée : -d, *`./doc-1.yaml`* *`./doc-n`*  
Les documents relatifs aux composants *(obligatoires)*. Ce paramètre contient une liste d'emplacements de fichiers séparés par des virgules pour les documents du composant YAML à exécuter. Les emplacements valides incluent :  
+ chemins de fichiers locaux (*./component-doc-example.yaml*)
+ S3 URIs (`s3://bucket/key`)
+ Version de compilation du composant Image Builder ARNs (arn:aws:imagebuilder:us-west-:component/ /2021.12.02/1) *2:123456789012* *my-example-component*
Il n'y a aucun espace entre les éléments de la liste, uniquement des virgules.Options

**--help**  
Forme abrégée : -h  
Affiche un manuel d'aide pour utiliser les options de l'application de gestion des composants.

**--tracer**  
Forme abrégée : -t  
Active la journalisation détaillée sur la console.

# Configuration manuelle pour développer des composants personnalisés avec AWSTOE
<a name="toe-get-started"></a>

L'application AWS Task Orchestrator and Executor (AWSTOE) est une application autonome qui crée, valide et exécute des commandes dans un cadre de définition de composants. AWS les services peuvent être utilisés AWSTOE pour orchestrer les flux de travail, installer des logiciels, modifier les configurations du système et tester les versions d'images.

Procédez comme suit pour installer manuellement l' AWSTOE application et l'utiliser en tant qu'application autonome pour développer des composants personnalisés. Image Builder s'occupe de ces étapes pour vous, si vous utilisez la console ou les AWS CLI commandes Image Builder pour créer des composants personnalisés. Pour de plus amples informations, veuillez consulter [Créez des composants personnalisés avec Image Builder](create-component.md).

# Vérifiez la signature du téléchargement de AWSTOE l'installation
<a name="awstoe-verify-sig"></a>

Cette section décrit le processus recommandé pour vérifier la validité du téléchargement d'installation pour AWSTOE les systèmes d'exploitation Linux, macOS et Windows.

**Topics**
+ [Vérifiez la signature du téléchargement de l' AWSTOE installation sous Linux ou macOS](#awstoe-verify-sig-linux)
+ [Vérifiez la signature du téléchargement de l' AWSTOE installation sous Windows](#awstoe-verify-sig-win)

## Vérifiez la signature du téléchargement de l' AWSTOE installation sous Linux ou macOS
<a name="awstoe-verify-sig-linux"></a>

Cette rubrique décrit le processus recommandé pour vérifier la validité du téléchargement d'installation pour les systèmes AWSTOE d'exploitation Linux ou macOS.

Chaque fois que vous téléchargez une application sur Internet, nous vous recommandons d'authentifier l'identité de l'éditeur du logiciel. Vérifiez également que l'application n'a pas été modifiée ou corrompue depuis sa publication. Cela vous évitera d’installer une version de l’application contenant un virus ou tout autre code malveillant.

Si, après avoir exécuté les étapes décrites dans cette rubrique, vous déterminez que le logiciel de l' AWSTOE application est modifié ou endommagé, n'exécutez pas le fichier d'installation. Contactez plutôt Support Pour plus d'informations sur vos options de support, consultez [Support](https://aws.amazon.com/premiumsupport/).

AWSTOE les fichiers pour les systèmes d'exploitation Linux et macOS sont signés à l'aide `GnuPG` d'une implémentation open source de la norme Pretty Good Privacy (OpenPGP) pour les signatures numériques sécurisées. `GnuPG`(également connu sous le nom de`GPG`) fournit une authentification et un contrôle d'intégrité par le biais d'une signature numérique. Amazon EC2 publie une clé publique et des signatures que vous pouvez utiliser pour vérifier les outils de la CLI Amazon EC2 téléchargés. Pour plus d'informations sur `PGP` et `GnuPG` (`GPG`), consultez [http://www.gnupg.org](https://www.gnupg.org/).

La première étape consiste à établir une approbation avec l’éditeur du logiciel. Téléchargez la clé publique de l'éditeur du logiciel, vérifiez que le propriétaire de cette clé publique est bien celui qu'il prétend être, puis ajoutez la clé publique à votre *porte-clés*. Votre porte-clés est un ensemble de clés publiques connues. Après avoir établi l’authenticité de la clé publique, vous pouvez l’utiliser pour vérifier la signature de l’application.

**Topics**
+ [Installation des outils GPG](#awstoe-verify-signature-of-binary-download-install-tools)
+ [Authentification et importation de la clé publique](#awstoe-verify-signature-of-binary-download-authenticate-import-public-key)
+ [Vérification de la signature du package](#awstoe-verify-signature-of-binary-package)

### Installation des outils GPG
<a name="awstoe-verify-signature-of-binary-download-install-tools"></a>

Si votre système d'exploitation est Linux, Unix ou macOS, les outils GPG sont probablement déjà installés. Pour tester si les outils sont installés sur votre système, tapez **gpg** à partir d'une invite de commande. Si les outils GPG sont installés, une invite de commande GPG s'affiche. Si les outils GPG ne sont pas installés, un message d'erreur indiquant que la commande est introuvable s'affiche. Vous pouvez installer le package GnuPG à partir d'un référentiel.

Pour installer les outils GPG, sélectionnez le système d'exploitation correspondant à votre instance.

------
#### [ Debian-based Linux ]

Depuis un terminal, exécutez la commande suivante :

```
apt-get install gnupg
```

------
#### [ Red Hat–based Linux ]

Depuis un terminal, exécutez la commande suivante :

```
yum install gnupg
```

------
#### [ macOS ]

Depuis un terminal, exécutez la commande suivante :

```
brew install gnupg
```

------

### Authentification et importation de la clé publique
<a name="awstoe-verify-signature-of-binary-download-authenticate-import-public-key"></a>

L'étape suivante du processus consiste à authentifier la clé AWSTOE publique et à l'ajouter en tant que clé fiable dans votre `GPG` trousseau de clés.

**Pour authentifier et importer la clé AWSTOE publique**

1. Obtenez une copie de notre clé publique `GPG` en effectuant l'une des actions suivantes :
   + Téléchargez la clé sur

      https://awstoe - **<region>** .s3. **<region>**.amazonaws. com/assets/awstoe.gpg. Par exemple, [https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/assets/awstoe.gpg](https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/assets/awstoe.gpg).
   + Copiez la clé à partir du texte suivant et collez-la dans un fichier nommé `awstoe.gpg`. Veillez à inclure tout ce qui suit :

     ```
     -----BEGIN PGP PUBLIC KEY BLOCK-----
     Version: GnuPG v2
     
     mQENBF8UqwsBCACdiRF2bkZYaFSDPFC+LIkWLwFvtUCRwAHtD8KIwTJ6LVn3fHAU
     GhuK0ZH9mRrqRT2bq/xJjGsnF9VqTj2AJqndGJdDjz75YCZYM+ocZ+r5HSJaeW9i
     S5dykHj7Txti2zHe0G5+W0v7v5bPi2sPHsN7XWQ7+G2AMEPTz8PjxY//I0DvMQns
     Sle3l9hz6wCClz1l9LbBzTyHfSm5ucTXvNe88XX5Gmt37OCDM7vfli0Ctv8WFoLN
     6jbxuA/sV71yIkPm9IYp3+GvaKeT870+sn8/JOOKE/U4sJV1ppbqmuUzDfhrZUaw
     8eW8IN9A1FTIuWiZED/5L83UZuQs1S7s2PjlABEBAAG0GkFXU1RPRSA8YXdzdG9l
     QGFtYXpvbi5jb20+iQE5BBMBCAAjBQJfFKsLAhsDBwsJCAcDAgEGFQgCCQoLBBYC
     AwECHgECF4AACgkQ3r3BVvWuvFJGiwf9EVmrBR77+Qe/DUeXZJYoaFr7If/fVDZl
     6V3TC6p0J0Veme7uXleRUTFOjzbh+7e5sDX19HrnPquzCnzfMiqbp4lSoeUuNdOf
     FcpuTCQH+M+sIEIgPno4PLl0Uj2uE1o++mxmonBl/Krk+hly8hB2L/9n/vW3L7BN
     OMb1Ll9PmgGPbWipcT8KRdz4SUex9TXGYzjlWb3jU3uXetdaQY1M3kVKE1siRsRN
     YYDtpcjmwbhjpu4xm19aFqNoAHCDctEsXJA/mkU3erwIRocPyjAZE2dnlkL9ZkFZ
     z9DQkcIarbCnybDM5lemBbdhXJ6hezJE/b17VA0t1fY04MoEkn6oJg==
     =oyze
     -----END PGP PUBLIC KEY BLOCK-----
     ```

1. À l'invite de commande du répertoire dans lequel vous avez enregistré **awstoe.gpg**, utilisez la commande suivante pour importer la clé AWSTOE publique dans votre trousseau de clés.

   ```
   gpg --import awstoe.gpg
   ```

   La commande renvoie des résultats semblables à ce qui suit :

   ```
   gpg: key F5AEBC52: public key "AWSTOE <awstoe@amazon.com>" imported
   gpg: Total number processed: 1
   gpg:               imported: 1  (RSA: 1)
   ```

   Notez la valeur de la clé ; vous en aurez besoin lors de l'étape suivante. Dans l'exemple précédent, la valeur de la clé est `F5AEBC52`.

1. Vérifiez l'empreinte en exécutant la commande suivante, en remplaçant *key-value* (valeur clé) par la valeur de l'étape précédente :

   ```
   gpg --fingerprint key-value
   ```

   Cette commande renvoie un résultat semblable à ce qui suit :

   ```
   pub   2048R/F5AEBC52 2020-07-19
         Key fingerprint = F6DD E01C 869F D639 15E5  5742 DEBD C156 F5AE BC52
   uid       [ unknown] AWSTOE <awstoe@amazon.com>
   ```

   De plus, la chaîne de l'empreinte doit être identique à `F6DD E01C 869F D639 15E5 5742 DEBD C156 F5AE BC52`, comme illustré dans l'exemple précédent. Comparez l'empreinte de la clé renvoyée à celle publiée sur cette page. Elles doivent correspondre. S'ils ne correspondent pas, n'installez pas le script AWSTOE d'installation et contactez Support. 

### Vérification de la signature du package
<a name="awstoe-verify-signature-of-binary-package"></a>

Après avoir installé les outils `GPG`, authentifié et importé la clé publique de AWSTOE et vérifié que la clé publique est de confiance, vous êtes prêt à vérifier la signature du script d'installation. 

**Pour vérifier la signature du script d'installation**

1. À l'invite de commande, exécutez la commande suivante pour télécharger le fichier binaire de l'application :

   ```
   curl -O https://awstoe-<region>.s3.<region>.amazonaws.com/latest/linux/<architecture>/awstoe
   ```

   Par exemple :

   ```
   curl -O https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/amd64/awstoe
   ```

   Les valeurs prises en charge pour **architecture** peuvent être `amd64``386`, et`arm64`.

1. À l'invite de commande, exécutez la commande suivante pour télécharger le fichier de signature du binaire d'application correspondant à partir du même chemin de préfixe de clé S3 :

   ```
   curl -O https://awstoe-<region>.s3.<region>.amazonaws.com/latest/linux/<architecture>/awstoe.sig
   ```

   Par exemple :

   ```
   curl -O https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/amd64/awstoe.sig
   ```

   Les valeurs prises en charge pour **architecture** peuvent être `amd64``386`, et`arm64`.

1. Vérifiez la signature en exécutant la commande suivante à l'invite de commande dans le répertoire dans lequel vous avez enregistré `awstoe.sig` et dans le fichier AWSTOE d'installation. Ces deux fichiers doivent être présents.

   ```
   gpg --verify ./awstoe.sig ~/awstoe
   ```

   Le résultat doit ressembler à ce qui suit :

   ```
   gpg: Signature made Mon 20 Jul 2020 08:54:55 AM IST using RSA key ID F5AEBC52
   gpg: Good signature from "AWSTOE awstoe@amazon.com" [unknown]
   gpg: WARNING: This key is not certified with a trusted signature!
   gpg:          There is no indication that the signature belongs to the owner.
   Primary key fingerprint: F6DD E01C 869F D639 15E5 5742 DEBD C156 F5AE BC52
   ```

   Si le résultat contient l'expression `Good signature from "AWSTOE <awstoe@amazon.com>"`, cela signifie que la signature a été vérifiée et vous pouvez continuer à exécuter le script d'installation d' AWSTOE .

   Si le résultat inclut l’expression `BAD signature`, vérifiez si vous avez effectué la procédure correctement. Si cette réponse persiste, n'exécutez pas le fichier d'installation que vous avez téléchargé précédemment et contactez Support.

Voici les informations détaillées sur les avertissements qui peuvent s’afficher : 
+ **AVERTISSEMENT : Cette clé n'est pas certifiée par une signature fiable \$1 Rien n'indique que la signature appartient au propriétaire.** Idéalement, vous devriez vous rendre dans un AWS bureau et recevoir la clé en personne. Cependant, vous le téléchargeriez probablement à partir d'un site Web. Dans ce cas, le site Web est un AWS site Web. 
+ **gpg: no ultimately trusted keys found.** Cela signifie que la clé en question n'est pas « définitivement approuvée » par vous ou par d'autres personnes en qui vous avez confiance.

Pour plus d’informations, consultez [http://www.gnupg.org](http://www.gnupg.org).

## Vérifiez la signature du téléchargement de l' AWSTOE installation sous Windows
<a name="awstoe-verify-sig-win"></a>

Cette rubrique décrit le processus recommandé pour vérifier la validité du fichier d'installation de l' AWS Task Orchestrator and Executor application sur les systèmes d'exploitation Windows. 

Lorsque vous téléchargez une application à partir d'internet, nous vous recommandons d'authentifier l'identité de l'éditeur du logiciel et de vérifier que l'application n'a pas été modifiée ou corrompue depuis sa publication. Cela vous évitera d’installer une version de l’application contenant un virus ou tout autre code malveillant.

Si, après avoir exécuté les étapes décrites dans cette rubrique, vous déterminez que le logiciel de l' AWSTOE application est modifié ou endommagé, n'exécutez pas le fichier d'installation. Au lieu de cela, contactez Support.

Pour vérifier la validité du fichier binaire awstoe téléchargé sur les systèmes d'exploitation Windows, assurez-vous que l'empreinte numérique du certificat de signature Amazon Services LLC est égale à cette valeur :

**9D CA 72 17 DA FF B8 2F E4 C4 67 77 36 2F A4 AA C9 08 82 15**

**Note**  
Pendant la période de déploiement d'un nouveau binaire, il est possible que votre certificat de signataire ne corresponde pas à la nouvelle empreinte numérique. Si votre certificat de signataire ne correspond pas, vérifiez que la valeur de l'empreinte numérique est la suivante :   
**BA 81 25 EE AC 64 2E A9 F3 C5 93 CA 6D 3E B7 93 7D 68 75 74**

Pour vérifier cette valeur, exécutez la procédure suivante : 

1. Cliquez avec le bouton droit sur le fichier `awstoe.exe` téléchargé et ouvrez la fenêtre **Properties (Propriétés)**.

1. Choisissez l'onglet **Signatures numériques**.

1. Dans **Signature List**, choisissez **Amazon Services LLC**, puis **Details**.

1. Choisissez l'onglet **General (Général)**, s'il n'est pas déjà sélectionné, puis **View Certificate (Afficher le certificat)**.

1. Sélectionnez l'onglet **Détails**, puis sélectionnez **All (Tous)** dans la liste déroulante **Show (Afficher)**, si cette option n'est pas déjà sélectionnée.

1. Faites défiler l'écran vers le bas jusqu'au champ **Thumbprint (Empreinte)**, puis choisissez **Thumbprint (Empreinte)**. Cela affichera la valeur complète de l'empreinte dans la fenêtre inférieure.
   + Si la valeur de l'empreinte affichée dans la fenêtre inférieure est identique à la valeur suivante :

     **9D CA 72 17 DA FF B8 2F E4 C4 67 77 36 2F A4 AA C9 08 82 15**

     alors votre AWSTOE binaire téléchargé est authentique et peut être installé en toute sécurité.
   + Si la valeur de l'empreinte numérique dans la fenêtre de détails inférieure n'est pas identique à la valeur précédente, ne l'exécutez pas. `awstoe.exe`

**Topics**
+ [Vérifiez la signature du téléchargement de AWSTOE l'installation](awstoe-verify-sig.md)
+ [Étape 1 : Installation AWSTOE](#toe-start-install)
+ [Étape 2 : définir les AWS informations d'identification](#toe-start-credentials)
+ [Étape 3 : développer les documents des composants localement](#toe-start-develop)
+ [Étape 4 : Valider AWSTOE les composants](#toe-start-validate)
+ [Étape 5 : Exécuter AWSTOE les composants](#toe-start-run)

## Étape 1 : Installation AWSTOE
<a name="toe-start-install"></a>

Pour développer des composants localement, téléchargez et installez l' AWSTOE application.

1. 

**Téléchargez l' AWSTOE application**

   Pour procéder à l'installation AWSTOE, choisissez le lien de téléchargement correspondant à votre architecture et à votre plate-forme. Pour obtenir la liste complète des liens de téléchargement des applications, voir [AWSTOE téléchargements](toe-component-manager.md#toe-downloads)
**Important**  
AWS supprime progressivement le support pour les versions 1.0 et 1.1 du protocole TLS. Pour accéder au compartiment S3 à des fins de AWSTOE téléchargement, votre logiciel client doit utiliser la version 1.2 ou ultérieure du protocole TLS. Pour plus d'informations, consultez ce billet [AWS de blog sur la sécurité](https://aws.amazon.com/blogs/security/tls-1-2-required-for-aws-endpoints/).

1. 

**Vérifiez la signature**

   Les étapes de vérification de votre téléchargement dépendent de la plate-forme du serveur sur lequel vous exécutez l' AWSTOE application après l'avoir installée. Pour vérifier votre téléchargement sur un serveur Linux, consultez[Vérifiez la signature sous Linux ou macOS](awstoe-verify-sig.md#awstoe-verify-sig-linux). Pour vérifier votre téléchargement sur un serveur Windows, consultez[Vérifiez la signature sous Windows](awstoe-verify-sig.md#awstoe-verify-sig-win).

**Note**  
AWSTOE est invoqué directement depuis son emplacement de téléchargement. Il n'est pas nécessaire d'effectuer une étape d'installation séparée. Cela signifie également que cela AWSTOE peut apporter des modifications à l'environnement local.  
Pour vous assurer d'isoler les modifications lors du développement des composants, nous vous recommandons d'utiliser une EC2 instance pour développer et tester AWSTOE les composants.

## Étape 2 : définir les AWS informations d'identification
<a name="toe-start-credentials"></a>

 AWSTOE nécessite des AWS informations d'identification pour se connecter à d'autres sites Services AWS, tels qu'Amazon S3 et Amazon CloudWatch, lors de l'exécution de tâches telles que : 
+ Téléchargement de AWSTOE documents depuis un chemin Amazon S3 fourni par l'utilisateur.
+ Modules `S3Download` d'exécution ou `S3Upload` d'action.
+ Le streaming se connecte à CloudWatch, lorsqu'il est activé.

Si vous exécutez AWSTOE sur une EC2 instance, l'exécution AWSTOE utilise les mêmes autorisations que le rôle IAM attaché à l' EC2 instance.

Pour plus d'informations sur les rôles IAM pour EC2, consultez la section [Rôles IAM pour Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html). EC2

Les exemples suivants montrent comment définir les AWS informations d'identification à l'aide des variables d'`AWS_SECRET_ACCESS_KEY`environnement `AWS_ACCESS_KEY_ID` et. 

Pour définir ces variables sous Linux, macOS ou Unix, utilisez`export`.

```
export AWS_ACCESS_KEY_ID=your_access_key_id
```

```
export AWS_SECRET_ACCESS_KEY=your_secret_access_key
```

Pour définir ces variables sous Windows à l'aide de PowerShell, utilisez`$env`.

```
$env:AWS_ACCESS_KEY_ID=your_access_key_id
```

```
$env:AWS_SECRET_ACCESS_KEY=your_secret_access_key
```

Pour définir ces variables sous Windows à l'aide de l'invite de commande, utilisez`set`.

```
set AWS_ACCESS_KEY_ID=your_access_key_id
```

```
set AWS_SECRET_ACCESS_KEY=your_secret_access_key
```

## Étape 3 : développer les documents des composants localement
<a name="toe-start-develop"></a>

Les composants sont créés à partir de documents YAML en texte brut. Pour plus d'informations sur la syntaxe des documents, consultez[Utiliser le cadre de documentation des AWSTOE composants pour les composants personnalisés](toe-use-documents.md).

Vous trouverez ci-dessous des exemples de documents relatifs aux composants *Hello World* pour vous aider à démarrer.

------
#### [ Linux ]

Certains des exemples de composants Linux présentés dans ce guide font référence à un fichier de document de composant nommé`hello-world-linux.yml`. Vous pouvez utiliser le document suivant pour commencer à utiliser ces exemples.

```
name: Hello World
description: This is hello world testing document for Linux.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the build phase.'
  - name: validate
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the validate phase.'
  - name: test
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the test phase.'
```

------
#### [ Windows ]

Certains des exemples de composants Windows présentés dans ce guide font référence à un fichier de document de composant nommé`hello-world-windows.yml`. Vous pouvez utiliser le document suivant pour commencer à utiliser ces exemples.

```
name: Hello World
description: This is Hello World testing document for Windows.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: HelloWorldStep
        action: ExecutePowerShell
        inputs:
          commands:
            - Write-Host 'Hello World from the build phase.'
  - name: validate
    steps:
      - name: HelloWorldStep
        action: ExecutePowerShell
        inputs:
          commands:
            - Write-Host 'Hello World from the validate phase.'
  - name: test
    steps:
      - name: HelloWorldStep
        action: ExecutePowerShell
        inputs:
          commands:
            - Write-Host 'Hello World from the test phase.'
```

------
#### [ macOS ]

Certains des exemples de composants macOS présentés dans ce guide font référence à un fichier de document de composant nommé`hello-world-macos.yml`. Vous pouvez utiliser le document suivant pour commencer à utiliser ces exemples.

```
name: Hello World
description: This is hello world testing document for macOS.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the build phase.'
  - name: validate
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the validate phase.'
  - name: test
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the test phase.'
```

------

## Étape 4 : Valider AWSTOE les composants
<a name="toe-start-validate"></a>

Vous pouvez valider la syntaxe des AWSTOE composants localement avec l' AWSTOE application. Les exemples suivants montrent la `validate` commande AWSTOE d'application permettant de valider la syntaxe d'un composant sans l'exécuter.

**Note**  
L' AWSTOE application ne peut valider que la syntaxe des composants pour le système d'exploitation actuel. Par exemple, lors de l'exécution `awstoe.exe` sous Windows, vous ne pouvez pas valider la syntaxe d'un document Linux qui utilise le module `ExecuteBash` d'action.

Linux ou macOS

```
awstoe validate --documents /home/user/hello-world.yml
```

Windows

```
awstoe.exe validate --documents C:\Users\user\Documents\hello-world.yml
```

## Étape 5 : Exécuter AWSTOE les composants
<a name="toe-start-run"></a>

L' AWSTOE application peut exécuter une ou plusieurs phases de documents spécifiés à l'aide de l'argument de ligne de `--phases` commande. Les valeurs prises en charge pour `--phases` sont `build``validate`, et`test`. Plusieurs valeurs de phase peuvent être saisies sous forme de valeurs séparées par des virgules.

Lorsque vous fournissez une liste de phases, l' AWSTOE application exécute séquentiellement les phases spécifiées pour chaque document. Par exemple, AWSTOE exécute les `validate` phases `build` et de`document1.yaml`, puis les `validate` phases `build` et de`document2.yaml`.

Pour garantir que vos journaux sont stockés en toute sécurité et conservés à des fins de dépannage, nous vous recommandons de configurer le stockage des journaux dans Amazon S3. Dans Image Builder, l'emplacement Amazon S3 pour la publication des journaux est spécifié dans la configuration de l'infrastructure. Pour plus d'informations sur la configuration de l'infrastructure, voir [Gérer la configuration de l'infrastructure Image Builder](manage-infra-config.md)

Si aucune liste de phases n'est fournie, l' AWSTOE application exécute toutes les phases dans l'ordre indiqué dans le document YAML.

Pour exécuter des phases spécifiques dans un ou plusieurs documents, utilisez les commandes suivantes.

Monophasé

```
awstoe run --documents hello-world.yml --phases build
```

Phases multiples

```
awstoe run --documents hello-world.yml --phases build,test
```

**Document exécuté**  
Exécuter toutes les phases dans un seul document

```
awstoe run --documents documentName.yaml
```

Exécuter toutes les phases dans plusieurs documents

```
awstoe run --documents documentName1.yaml,documentName2.yaml
```

Entrez les informations Amazon S3 pour télécharger les AWSTOE journaux à partir d'un chemin local défini par l'utilisateur (recommandé)

```
awstoe run --documents documentName.yaml --log-s3-bucket-name amzn-s3-demo-destination-bucket --log-s3-key-prefix S3KeyPrefix --log-s3-bucket-owner S3BucketOwner --log-directory local_path
```

Exécutez toutes les phases dans un seul document et affichez tous les journaux sur la console

```
awstoe run --documents documentName.yaml --trace
```

Exemple de commande 

```
awstoe run --documents s3://bucket/key/doc.yaml --phases build,validate
```

Exécuter un document avec un identifiant unique

```
awstoe run --documents documentName.yaml --execution-id user-provided-id --phases build,test
```

Obtenez de l'aide pour AWSTOE

```
awstoe --help
```

# Utiliser le cadre de documentation des AWSTOE composants pour les composants personnalisés
<a name="toe-use-documents"></a>

Pour créer un composant à l'aide de la structure de composants AWS Task Orchestrator and Executor (AWSTOE), vous devez fournir un document basé sur YAML qui représente les phases et les étapes applicables au composant que vous créez. Services AWS utilisent votre composant lorsqu'ils créent une nouvelle image de machine Amazon (AMI) ou une nouvelle image de conteneur.

**Topics**
+ [Flux de travail documentaire des composants](#component-doc-workflow)
+ [Journalisation des composants](#component-logging)
+ [Chainage des entrées et des sorties](#document-chaining)
+ [Schéma du document et définitions](#document-schema)
+ [Exemples de documents](#document-example)
+ [Utiliser des variables dans votre document de composant personnalisé](toe-user-defined-variables.md)
+ [Utiliser des constructions conditionnelles dans AWSTOE](toe-conditional-constructs.md)
+ [Utiliser des opérateurs de comparaison dans les documents relatifs aux AWSTOE composants](toe-comparison-operators.md)
+ [Utiliser des opérateurs logiques dans les documents relatifs aux AWSTOE composants](toe-logical-operators.md)
+ [Utiliser des constructions en boucle dans AWSTOE](toe-looping-constructs.md)

## Flux de travail documentaire des composants
<a name="component-doc-workflow"></a>

Le document du AWSTOE composant utilise des phases et des étapes pour regrouper les tâches associées et organiser ces tâches dans un flux de travail logique pour le composant.

**Astuce**  
Le service qui utilise votre composant pour créer une image peut implémenter des règles concernant les phases à utiliser pour son processus de génération et le moment où ces phases sont autorisées à s'exécuter. Il est important d'en tenir compte lors de la conception de votre composant.

**Phases**  
Les phases représentent la progression de votre flux de travail tout au long du processus de création de l'image. Par exemple, le service Image Builder utilise `build` et met en `validate` phase les images qu'il produit au cours de sa *phase de création*. Il utilise les `container-host-test` phases `test` et au cours de sa *phase de test* pour s'assurer que l'instantané d'image ou l'image du conteneur produit les résultats attendus avant de créer l'AMI finale ou de distribuer l'image du conteneur.

Lorsque le composant s'exécute, les commandes associées à chaque phase sont appliquées dans l'ordre dans lequel elles apparaissent dans le document du composant.

**Règles pour les phases**
+ Chaque nom de phase doit être unique dans un document.
+ Vous pouvez définir de nombreuses phases dans votre document.
+ Vous devez inclure au moins l'une des phases suivantes dans votre document :
  + **build** — pour Image Builder, cette phase est généralement utilisée pendant la *phase de construction*.
  + **valider** — pour Image Builder, cette phase est généralement utilisée pendant la *phase de construction*.
  + **test** — pour Image Builder, cette phase est généralement utilisée pendant la *phase de test*.
+ Les phases s'exécutent toujours dans l'ordre dans lequel elles sont définies dans le document. L'ordre dans lequel elles sont spécifiées pour AWSTOE les commandes du n' AWS CLI a aucun effet.

**Étapes**  
Les étapes sont des unités de travail individuelles qui définissent le flux de travail au sein de chaque phase. Les étapes sont exécutées par ordre séquentiel. Cependant, l'entrée ou la sortie d'une étape peuvent également alimenter une étape suivante en tant qu'entrée. C'est ce qu'on appelle le « chaînage ».

**Règles relatives aux étapes**
+ Le nom de l'étape doit être unique pour la phase.
+ L'étape doit utiliser une action prise en charge (module d'action) qui renvoie un code de sortie.

  Pour obtenir la liste complète des modules d'action pris en charge, leur fonctionnement, leurs input/output valeurs et des exemples, voir[Modules d'action pris en charge par le gestionnaire de AWSTOE composants](toe-action-modules.md).

## Journalisation des composants
<a name="component-logging"></a>

AWSTOE crée un nouveau dossier journal sur les instances EC2 utilisées pour créer et tester une nouvelle image, chaque fois que votre composant s'exécute. Pour les images de conteneur, le dossier journal est stocké dans le conteneur.

Pour faciliter le dépannage en cas de problème lors du processus de création de l'image, le document d'entrée et tous les fichiers de sortie AWSTOE créés lors de l'exécution du composant sont stockés dans le dossier journal.

Le nom du dossier journal comprend les éléments suivants :

1. **Répertoire des journaux** : lorsqu'un service exécute un AWSTOE composant, il est transmis dans le répertoire des journaux, ainsi que les autres paramètres de la commande. Dans les exemples suivants, nous montrons le format de fichier journal utilisé par Image Builder.
   + **Linux et macOS** : `/var/lib/amazon/toe/`
   + **Windows** : `$env:ProgramFiles\Amazon\TaskOrchestratorAndExecutor\`

1. **Préfixe de fichier** — Il s'agit d'un préfixe standard utilisé pour tous les composants : « »`TOE_`.

1. Durée d'**exécution : il s'**agit d'un horodatage au format YYYY-MM-DD \$1HH-MM-SS\$1UTC-0.

1. **ID d'exécution** : il s'agit du GUID attribué lors de l' AWSTOE exécution d'un ou de plusieurs composants.

Exemple : `/var/lib/amazon/toe/TOE_2021-07-01_12-34-56_UTC-0_a1bcd2e3-45f6-789a-bcde-0fa1b2c3def4`

AWSTOE stocke les fichiers principaux suivants dans le dossier journal :

**Fichiers d'entrée**
+ **document.yaml** — Document utilisé comme entrée pour la commande. Une fois le composant exécuté, ce fichier est stocké sous forme d'artefact.

**Fichiers de sortie**
+ **application.log** — Le journal de l'application contient des informations horodatées AWSTOE sur le niveau de débogage indiquant ce qui se passe pendant l'exécution du composant.
+ **detailedoutput.json** — Ce fichier JSON contient des informations détaillées sur l'état d'exécution, les entrées, les sorties et les échecs pour tous les documents, phases et étapes applicables au composant lors de son exécution.
+ **console.log** — Le journal de la console contient toutes les informations de sortie standard (stdout) et d'erreur standard (stderr) écrites sur la console pendant l'exécution du composant. AWSTOE 
+ **chaining.json** — Ce fichier JSON représente les optimisations AWSTOE appliquées pour résoudre les expressions de chaînage.

**Note**  
Le dossier journal peut également contenir d'autres fichiers temporaires qui ne sont pas abordés ici.

## Chainage des entrées et des sorties
<a name="document-chaining"></a>

L'application AWSTOE de gestion de configuration fournit une fonctionnalité permettant de chaîner les entrées et les sorties en écrivant des références dans les formats suivants :

`{{ phase_name.step_name.inputs/outputs.variable }}`

or

`{{ phase_name.step_name.inputs/outputs[index].variable }}`

La fonction de chaînage vous permet de recycler le code et d'améliorer la maintenabilité du document.

**Règles de chaînage**
+ Les expressions de chaînage ne peuvent être utilisées que dans la section des entrées de chaque étape.
+ Les instructions contenant des expressions de chaînage doivent être placées entre guillemets. Par exemple :
  + **Expression non valide** : `echo {{ phase.step.inputs.variable }}`
  + **Expression valide** : `"echo {{ phase.step.inputs.variable }}"`
  + **Expression valide** : `'echo {{ phase.step.inputs.variable }}'`
+ Les expressions de chaînage peuvent faire référence à des variables issues d'autres étapes et phases du même document. Cependant, le service d'appel peut avoir des règles qui exigent que le chaînage des expressions ne fonctionne que dans le contexte d'une seule étape. Par exemple, Image Builder ne prend pas en charge le chaînage entre la *phase de création* et la *phase de test*, car il exécute chaque étape indépendamment.
+ Les index des expressions de chaînage suivent une indexation basée sur zéro. L'indice commence par zéro (0) pour référencer le premier élément.

**Exemples**

Pour faire référence à la variable source dans la deuxième entrée de l'étape d'exemple suivante, le modèle de chaînage est`{{ build.SampleS3Download.inputs[1].source }}`.

```
phases:
  - name: 'build'
    steps:
      - name: SampleS3Download
        action: S3Download
        timeoutSeconds: 60
        onFailure: Abort
        maxAttempts: 3
        inputs:
          - source: 's3://sample-bucket/sample1.ps1'
            destination: 'C:\sample1.ps1'
          - source: 's3://sample-bucket/sample2.ps1'
            destination: 'C:\sample2.ps1'
```

Pour faire référence à la variable de sortie (égale à « Hello ») de l'étape d'exemple suivante, le modèle de chaînage est`{{ build.SamplePowerShellStep.outputs.stdout }}`.

```
phases:
  - name: 'build'
    steps:
      - name: SamplePowerShellStep
        action: ExecutePowerShell
        timeoutSeconds: 120
        onFailure: Abort
        maxAttempts: 3
        inputs:
          commands:
            - 'Write-Host "Hello"'
```

## Schéma du document et définitions
<a name="document-schema"></a>

Le schéma YAML d'un document est le suivant.

```
name: (optional)
description: (optional)
schemaVersion: "string"

phases:
  - name: "string"
    steps:
      - name: "string"
        action: "string"
        timeoutSeconds: integer
        onFailure: "Abort|Continue|Ignore"
        maxAttempts: integer
        inputs:
```

Les définitions de schéma d'un document sont les suivantes.


| Champ | Description | Type | Obligatoire | 
| --- | --- | --- | --- | 
| name | Nom du document. | String | Non | 
| description | Description du document. | String |  Non  | 
| schemaVersion | Version du schéma du document, actuellement 1.0. | String |  Oui  | 
| phases | Une liste des phases avec leurs étapes. |  List  |  Oui  | 

Les définitions du schéma d'une phase sont les suivantes.


| Champ | Description | Type | Obligatoire | 
| --- | --- | --- | --- | 
| name | Nom de la phase. | String | Oui | 
| steps | Liste des étapes de la phase. | List  |  Oui  | 

Les définitions du schéma d'une étape sont les suivantes.


| Champ | Description | Type | Obligatoire | Valeur par défaut | 
| --- | --- | --- | --- | --- | 
| name | Nom défini par l'utilisateur pour l'étape. | String |  |  | 
| action | Mot-clé relatif au module qui exécute l'étape. | String |  |  | 
| timeoutSeconds |  Nombre de secondes pendant lesquelles l'étape s'exécute avant d'échouer ou de réessayer.  Supporte également la valeur -1, ce qui indique un délai d'expiration infini. 0 et les autres valeurs négatives ne sont pas autorisées.  | Entier |  Non  | 7 200 secondes (120 minutes) | 
| onFailure |  Spécifie ce que l'étape doit faire en cas d'échec. Les valeurs valides sont les suivantes :  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/imagebuilder/latest/userguide/toe-use-documents.html)  |  String  |  Non  | Interruption | 
| maxAttempts | Nombre maximum de tentatives autorisées avant d'échouer à l'étape. | Entier |  Non  | 1 | 
| inputs | Contient les paramètres requis par le module d'action pour exécuter l'étape. | Dict |  Oui  |  | 

## Exemples de documents
<a name="document-example"></a>

Les exemples suivants présentent des documents de AWSTOE composants qui exécutent des tâches pour le système d'exploitation cible.

------
#### [ Linux ]

**Exemple 1 : Exécuter un fichier binaire personnalisé**  
Voici un exemple de document qui télécharge et exécute un fichier binaire personnalisé sur une instance Linux.

```
name: LinuxBin
description: Download and run a custom Linux binary file.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: Download
        action: S3Download
        inputs:
          - source: s3://<replaceable>amzn-s3-demo-source-bucket</replaceable>/<replaceable>myapplication</replaceable>
            destination: /tmp/<replaceable>myapplication</replaceable>
      - name: Enable
        action: ExecuteBash
        onFailure: Continue
        inputs:
          commands:
            - 'chmod u+x {{ build.Download.inputs[0].destination }}'
      - name: Install
        action: ExecuteBinary
        onFailure: Continue
        inputs:
          path: '{{ build.Download.inputs[0].destination }}'
          arguments:
            - '--install'
      - name: Delete
        action: DeleteFile
        inputs:
          - path: '{{ build.Download.inputs[0].destination }}'
```

------
#### [ Windows ]

**Exemple 1 : Installation des mises à jour Windows**  
Voici un exemple de document qui installe toutes les mises à jour Windows disponibles, exécute un script de configuration, valide les modifications avant la création de l'AMI et teste les modifications après la création de l'AMI.

```
name: RunConfig_UpdateWindows
description: 'This document will install all available Windows updates and run a config script. It will then validate the changes before an AMI is created. Then after AMI creation, it will test all the changes.'
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: DownloadConfigScript
        action: S3Download
        timeoutSeconds: 60
        onFailure: Abort
        maxAttempts: 3
        inputs:
          - source: 's3://customer-bucket/config.ps1'
            destination: 'C:\config.ps1'

      - name: RunConfigScript
        action: ExecutePowerShell
        timeoutSeconds: 120
        onFailure: Abort
        maxAttempts: 3
        inputs:
          file: '{{build.DownloadConfigScript.inputs[0].destination}}'

      - name: Cleanup
        action: DeleteFile
        onFailure: Abort
        maxAttempts: 3
        inputs:
          - path: '{{build.DownloadConfigScript.inputs[0].destination}}'

      - name: RebootAfterConfigApplied
        action: Reboot
        inputs:
          delaySeconds: 60

      - name: InstallWindowsUpdates
        action: UpdateOS

  - name: validate
    steps:
      - name: DownloadTestConfigScript
        action: S3Download
        timeoutSeconds: 60
        onFailure: Abort
        maxAttempts: 3
        inputs:
          - source: 's3://customer-bucket/testConfig.ps1'
            destination: 'C:\testConfig.ps1'

      - name: ValidateConfigScript
        action: ExecutePowerShell
        timeoutSeconds: 120
        onFailure: Abort
        maxAttempts: 3
        inputs:
          file: '{{validate.DownloadTestConfigScript.inputs[0].destination}}'

      - name: Cleanup
        action: DeleteFile
        onFailure: Abort
        maxAttempts: 3
        inputs:
          - path: '{{validate.DownloadTestConfigScript.inputs[0].destination}}'

  - name: test
    steps:
      - name: DownloadTestConfigScript
        action: S3Download
        timeoutSeconds: 60
        onFailure: Abort
        maxAttempts: 3
        inputs:
          - source: 's3://customer-bucket/testConfig.ps1'
            destination: 'C:\testConfig.ps1'

      - name: ValidateConfigScript
        action: ExecutePowerShell
        timeoutSeconds: 120
        onFailure: Abort
        maxAttempts: 3
        inputs:
          file: '{{test.DownloadTestConfigScript.inputs[0].destination}}'
```

**Exemple 2 : installer le AWS CLI sur une instance Windows**  
Voici un exemple de document qui installe le AWS CLI sur une instance Windows à l'aide du fichier d'installation.

```
name: InstallCLISetUp
description: Install &CLI; using the setup file
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: Download
        action: S3Download
        inputs:
          - source: s3://aws-cli/AWSCLISetup.exe
            destination: C:\Windows\temp\AWSCLISetup.exe
      - name: Install
        action: ExecuteBinary
        onFailure: Continue
        inputs:
          path: '{{ build.Download.inputs[0].destination }}'
          arguments:
            - '/install'
            - '/quiet'
            - '/norestart'
      - name: Delete
        action: DeleteFile
        inputs:
          - path: '{{ build.Download.inputs[0].destination }}'
```

**Exemple 3 : installer le AWS CLI avec le programme d'installation MSI**  
Voici un exemple de document qui installe le AWS CLI avec le programme d'installation MSI.

```
name: InstallCLIMSI
description: Install &CLI; using the MSI installer
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: Download
        action: S3Download
        inputs:
          - source: s3://aws-cli/AWSCLI64PY3.msi
            destination: C:\Windows\temp\AWSCLI64PY3.msi
      - name: Install
        action: ExecuteBinary
        onFailure: Continue
        inputs:
          path: 'C:\Windows\System32\msiexec.exe'
          arguments:
            - '/i'
            - '{{ build.Download.inputs[0].destination }}'
            - '/quiet'
            - '/norestart'
      - name: Delete
        action: DeleteFile
        inputs:
          - path: '{{ build.Download.inputs[0].destination }}'
```

------
#### [ macOS ]

**Exemple 1 : Exécuter un fichier binaire macOS personnalisé**  
Voici un exemple de document qui télécharge et exécute un fichier binaire personnalisé sur une instance de macOS.

```
name: macOSBin
description: Download and run a binary file on macOS.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: Download
        action: S3Download
        inputs:
          - source: s3://<replaceable>amzn-s3-demo-source-bucket</replaceable>/<replaceable>myapplication</replaceable>
            destination: /tmp/<replaceable>myapplication</replaceable>
      - name: Enable
        action: ExecuteBash
        onFailure: Continue
        inputs:
          commands:
            - 'chmod u+x {{ build.Download.inputs[0].destination }}'
      - name: Install
        action: ExecuteBinary
        onFailure: Continue
        inputs:
          path: '{{ build.Download.inputs[0].destination }}'
          arguments:
            - '--install'
      - name: Delete
        action: DeleteFile
        inputs:
          - path: '{{ build.Download.inputs[0].destination }}'
```

------

# Utiliser des variables dans votre document de composant personnalisé
<a name="toe-user-defined-variables"></a>

Les variables permettent d'étiqueter les données avec des noms significatifs qui peuvent être utilisés dans l'ensemble d'une application. Vous pouvez définir des variables personnalisées avec des formats simples et lisibles pour les flux de travail complexes, et les référencer dans le document du composant d'application YAML correspondant à un AWSTOE composant.

Cette section fournit des informations pour vous aider à définir les variables de votre AWSTOE composant dans le document du composant d'application YAML, notamment la syntaxe, les contraintes de nom et des exemples.

## Constantes
<a name="user-defined-vars-constants"></a>

Les constantes sont des variables immuables qui ne peuvent pas être modifiées ou remplacées une fois définies. Les constantes peuvent être définies à l'aide des valeurs figurant dans la `constants` section d'un AWSTOE document.

**Règles pour les noms de constantes**
+ Le nom doit comporter entre 3 et 128 caractères.
+ Le nom ne peut contenir que des caractères alphanumériques (a-z, A-Z, 0-9), des tirets (-) ou des traits de soulignement (\$1).
+ Le nom doit être unique dans le document.
+ Le nom doit être spécifié sous forme de chaîne YAML.

**Syntaxe**

```
constants:
  - <name>:
      type: <constant type>
      value: <constant value>
```


| Nom de la touche | Obligatoire | Description | 
| --- | --- | --- | 
|  `name`  |  Oui  | Nom de la constante. Doit être unique pour le document (il ne doit pas être identique aux autres noms de paramètres ou constantes). | 
| `value` | Oui | Valeur de la constante. | 
| `type` | Oui | Type de constante. Le type pris en charge eststring. | 

**Valeurs constantes de référence dans un document**  
Vous pouvez référencer des constantes dans les entrées d'étape ou de boucle à l'intérieur de votre document YAML, comme suit :
+ Les références constantes distinguent les majuscules et minuscules, et le nom doit correspondre exactement.
+ Le nom doit être placé entre accolades `{{` *MyConstant* `}}` doubles.
+ Les espaces sont autorisés à l'intérieur des bretelles et sont automatiquement découpés. Par exemple, toutes les références suivantes sont valides :

  `{{ MyConstant }}`, `{{ MyConstant}}`, `{{MyConstant }}`, `{{MyConstant}}`
+ La référence dans le document YAML doit être spécifiée sous forme de chaîne (entre guillemets simples ou doubles).

  Par exemple : n'`- {{ MyConstant }}`est pas valide, car il n'est pas identifié comme une chaîne.

  Toutefois, les références suivantes sont toutes deux valides : `- '{{ MyConstant }}'` et`- "{{ MyConstant }}"`.

**Exemples**  
Constante référencée dans les entrées d'étape

```
name: Download AWS CLI version 2
schemaVersion: 1.0
constants:
  - Source:
      type: string
      value: https://awscli.amazonaws.com/AWSCLIV2.msi
phases:
  - name: build
    steps:
      - name: Download
        action: WebDownload
        inputs:
          - source: '{{ Source }}'
            destination: 'C:\Windows\Temp\AWSCLIV2.msi'
```

Constante référencée dans les entrées de boucle

```
name: PingHosts
schemaVersion: 1.0
constants:
  - Hosts:
      type: string
      value: 127.0.0.1,amazon.com
phases:
  - name: build
    steps:
      - name: Ping
        action: ExecuteBash
        loop:
          forEach:
            list: '{{ Hosts }}'
            delimiter: ','
        inputs:
          commands:
            - ping -c 4 {{ loop.value }}
```

## Parameters
<a name="user-defined-vars-parameters"></a>

Les paramètres sont des variables mutables, avec des paramètres que l'application appelante peut fournir au moment de l'exécution. Vous pouvez définir des paramètres dans la `Parameters` section du document YAML.

**Règles relatives aux noms de paramètres**
+ Le nom doit comporter entre 3 et 128 caractères.
+ Le nom ne peut contenir que des caractères alphanumériques (a-z, A-Z, 0-9), des tirets (-) ou des traits de soulignement (\$1).
+ Le nom doit être unique dans le document.
+ Le nom doit être spécifié sous forme de chaîne YAML.

### Syntaxe
<a name="vars-parameters-syntax"></a>

```
parameters:
  - <name>:
      type: <parameter type>
      default: <parameter value>
      description: <parameter description>
```


| Nom de la touche | Obligatoire | Description | 
| --- | --- | --- | 
| `name` | Oui | Nom du paramètre. Doit être unique pour le document (il ne doit pas être identique aux autres noms de paramètres ou constantes). | 
| `type` | Oui | Type de données du paramètre. Les types pris en charge incluent :`string`. | 
| `default` | Non | La valeur par défaut du paramètre. | 
| `description` | Non | Décrit le paramètre. | 

### Valeurs des paramètres de référence dans un document
<a name="vars-parameters-referencing"></a>

Vous pouvez référencer des paramètres dans des entrées par étapes ou en boucle dans votre document YAML, comme suit :
+ Les références aux paramètres distinguent les majuscules et minuscules, et le nom doit correspondre exactement.
+ Le nom doit être placé entre accolades `{{` *MyParameter* `}}` doubles.
+ Les espaces sont autorisés à l'intérieur des bretelles et sont automatiquement découpés. Par exemple, toutes les références suivantes sont valides :

  `{{ MyParameter }}`, `{{ MyParameter}}`, `{{MyParameter }}`, `{{MyParameter}}`
+ La référence dans le document YAML doit être spécifiée sous forme de chaîne (entre guillemets simples ou doubles).

  Par exemple : n'`- {{ MyParameter }}`est pas valide, car il n'est pas identifié comme une chaîne.

  Toutefois, les références suivantes sont toutes deux valides : `- '{{ MyParameter }}'` et`- "{{ MyParameter }}"`.

**Exemples**  
Les exemples suivants montrent comment utiliser des paramètres dans votre document YAML :
+ Référez-vous à un paramètre dans les entrées d'étape :

  ```
  name: Download AWS CLI version 2
  schemaVersion: 1.0
  parameters:
    - Source:
        type: string
        default: 'https://awscli.amazonaws.com/AWSCLIV2.msi'
        description: The AWS CLI installer source URL.
  phases:
    - name: build
      steps:
        - name: Download
          action: WebDownload
          inputs:
            - source: '{{ Source }}'
              destination: 'C:\Windows\Temp\AWSCLIV2.msi'
  ```
+ Référez-vous à un paramètre dans les entrées de boucle :

  ```
  name: PingHosts
  schemaVersion: 1.0
  parameters:
    - Hosts:
        type: string
        default: 127.0.0.1,amazon.com
        description: A comma separated list of hosts to ping.
  phases:
    - name: build
      steps:
        - name: Ping
          action: ExecuteBash
          loop:
            forEach:
              list: '{{ Hosts }}'
              delimiter: ','
          inputs:
            commands:
              - ping -c 4 {{ loop.value }}
  ```

### Remplacer les paramètres lors de l'exécution
<a name="vars-parameters-set-at-runtime"></a>

Vous pouvez utiliser l'`--parameters`option AWS CLI avec une paire clé-valeur pour définir une valeur de paramètre lors de l'exécution.
+ <value>Spécifiez la paire clé-valeur du paramètre sous forme de nom et de valeur, séparés par un signe égal (<name>=).
+ Les paramètres multiples doivent être séparés par une virgule.
+ Les noms de paramètres introuvables dans le document du composant YAML sont ignorés.
+ Le nom et la valeur du paramètre sont tous deux obligatoires.

**Important**  
Les paramètres des composants sont des valeurs en texte brut et sont connectés AWS CloudTrail. Nous vous recommandons d'utiliser AWS Secrets Manager le AWS Systems Manager Parameter Store pour stocker vos secrets. Pour plus d'informations sur Secrets Manager, voir [Qu'est-ce que Secrets Manager ?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) dans le *guide de AWS Secrets Manager l'utilisateur*. Pour plus d'informations sur AWS Systems Manager Parameter Store, voir [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) dans le *guide de AWS Systems Manager l'utilisateur*.

#### Syntaxe
<a name="vars-runtime-parameters-syntax"></a>

```
--parameters name1=value1,name2=value2...
```


| Option CLI | Obligatoire | Description | 
| --- | --- | --- | 
| --paramètres *name* =*value*,... | Non | Cette option prend une liste de paires clé-valeur, avec le nom du paramètre comme clé. | 

**Exemples**  
Les exemples suivants montrent comment utiliser des paramètres dans votre document YAML :
+ La paire clé-valeur du paramètre spécifiée dans cette `--parameter` option n'est pas valide :

  ```
  --parameters ntp-server=
  ```
+ Définissez une paire clé-valeur de paramètre avec l'`--parameter`option dans le champ : AWS CLI

  ```
  --parameters ntp-server=ntp-server-windows-qe.us-east1.amazon.com
  ```
+ Définissez plusieurs paires clé-valeur de paramètres à l'aide de l'`--parameter`option suivante : AWS CLI

  ```
  --parameters ntp-server=ntp-server.amazon.com,http-url=https://internal-us-east1.amazon.com
  ```

## Utiliser les paramètres du magasin de paramètres de Systems Manager
<a name="toe-ssm-parameters"></a>

Vous pouvez référencer les AWS Systems Manager paramètres du magasin de paramètres (paramètres SSM) dans les documents de vos composants en préfixant les variables par. `aws:ssm` Par exemple, 

`{{ aws:ssm:/my/param }}`se résout à la valeur du paramètre `/my/param` SSM.

Cette fonctionnalité prend en charge les types de paramètres SSM suivants :
+ Chaîne — Correspond au type de AWSTOE chaîne.
+ StringList — Correspond au AWSTOE `stringList` type.
+ SecureString — Correspond au type de AWSTOE chaîne.

Pour plus d'informations sur le magasin de paramètres, voir [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) dans le *guide de AWS Systems Manager l'utilisateur*.

Vous pouvez également référencer des AWS Secrets Manager secrets à l'aide d'un paramètre `SecureString` SSM. Par exemple : `{{ aws:ssm:/aws/reference/secretsmanager/test/test-secret }}`. Pour plus d'informations, consultez la section [Référencement de AWS Secrets Manager secrets à partir des paramètres du Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/integration-ps-secretsmanager.html).

**Important**  
Image Builder exclut la résolution des `SecureString` paramètres de ses journaux. Cependant, vous devez également vous assurer que les informations sensibles ne sont pas enregistrées par le biais des commandes émises dans le document du composant. Par exemple, si vous utilisez la `echo` commande avec une chaîne sécurisée, la commande écrit une valeur en texte brut dans le journal.

### Autorisations IAM requises
<a name="toe-ssm-parameters-permissions"></a>

Pour utiliser les paramètres de Systems Manager dans vos composants, votre rôle d'instance doit être `ssm:GetParameter` autorisé à accéder à l'ARN de la ressource de paramètres. Par exemple :

------
#### [ JSON ]

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Effect": "Allow",
			"Action": "ssm:GetParameter",
			"Resource": "arn:aws:ssm:*:111122223333:parameter/ImageBuilder-*"
		}
	]
}
```

------

Pour accéder aux valeurs chiffrées, vous devez également disposer des autorisations suivantes :
+ Ajoutez `kms:Decrypt` des `SecureString` paramètres ou AWS Secrets Manager des valeurs chiffrés gérés par un client AWS KMS key.
+ Ajoutez `secretsmanager:GetSecretValue` si vous faites référence à un secret du Secrets Manager.

### Référencer un paramètre SSM dans un document de composant
<a name="toe-ssm-parameters-example"></a>

L'exemple suivant montre comment référencer un paramètre Systems Manager Parameter Store parmi les paramètres Systems Manager d'un composant :

```
name: UseSSMParameterVariable
description: This is a sample component document that prints out the value of an SSM Parameter. Never do this for a SecureString parameter.
schemaVersion: 1.0

phases:
  - name: verify
    steps:
      - name: EchoParameterValue
        action: ExecuteBash
        inputs:
          commands:
            - echo "Log SSM parameter name: /my/test/param, value {{ aws:ssm:/my/test/param }}."
```

### Résolution des variables d'exécution dynamiques pour les paramètres SSM
<a name="toe-dynamic-vars"></a>

AWSTOE fournit la fonction intégrée suivante que vous pouvez utiliser dans les références de variables pour manipuler ou transformer des valeurs lors de l'exécution.

#### fonction de résolution
<a name="toe-function-resolve"></a>

La `resolve` fonction résout une référence de variable à l'intérieur d'une autre référence de variable, permettant un référencement dynamique des noms de variables. Cela est utile lorsque vous travaillez avec des paramètres SSM où une partie du chemin du paramètre peut être variable et transmise en tant que paramètre de document.

La `resolve` fonction prend uniquement en charge la résolution dynamique de la partie du nom d'un paramètre SSM.

##### Syntaxe
<a name="toe-function-resolve-syntax"></a>

`dynamic_variable`Dans l'exemple suivant, le nom d'un paramètre SSM doit être l'un des suivants :
+ Une référence de paramètre SSM (par exemple,`aws:ssm:/my/param`)
+ Une référence aux paramètres d'un document de composant (par exemple,`parameter-name`)

```
{{ aws:ssm:resolve(dynamic_variable) }}
```

##### Exemple : résolution d'un paramètre SSM lors de l'exécution
<a name="toe-function-resolve-examples"></a>

L'exemple suivant montre comment utiliser la `resolve` fonction dans un document de composant YAML :

```
name: SsmParameterTest
description: This component verifies an SSM parameter variable reference with the echo command.
schemaVersion: 1.0

parameters:
  - parameter-name:
      type: string
      description: "test"

phases:
  - name: validate
    steps:
      - name: PrintDynamicVariable
        action: ExecuteBash
        inputs:
          commands:
            - echo "{{ aws:ssm:resolve(parameter-name) }}"
```

# Utiliser des constructions conditionnelles dans AWSTOE
<a name="toe-conditional-constructs"></a>

Les constructions conditionnelles exécutent différentes actions dans le document de votre composant selon que l'expression conditionnelle spécifiée est évaluée à `true` ou. `false` Vous pouvez utiliser la `if` construction pour contrôler le flux d'exécution dans le document de votre composant.

## si Construct
<a name="toe-conditional-if"></a>

Vous pouvez utiliser la `if` construction pour évaluer si une étape doit être exécutée ou non. Par défaut, lorsque l'expression `if` conditionnelle est évaluée à`true`, AWSTOE exécute l'étape, et lorsque la condition est évaluée à`false`, AWSTOE ignore l'étape. Si une étape est ignorée, elle est considérée comme une étape réussie lorsqu' AWSTOE il est déterminé si la phase et le document ont été exécutés correctement.

**Note**  
Une `if` instruction n'est évaluée qu'une seule fois, même si l'étape déclenche un redémarrage. Si une étape redémarre, elle reconnaît que l'`if`instruction a déjà été évaluée et continue là où elle s'est arrêtée.

### Syntaxe
<a name="toe-conditional-if-syntax"></a>

```
if:
  - <conditional expression>:
      [then: <step action>]
      [else: <step action>]
```


| Nom de la touche | Obligatoire | Description | 
| --- | --- | --- | 
| expression conditionnelle | Oui |  L'expression conditionnelle peut contenir exactement l'un des types d'opérateurs suivants au niveau supérieur. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/imagebuilder/latest/userguide/toe-conditional-constructs.html) Si votre expression doit satisfaire plusieurs conditions, utilisez un opérateur logique pour spécifier vos conditions.  | 
| then | Non |  Définit l'action à effectuer si l'expression conditionnelle est évaluée à`true`.  | 
| else | Non |  Définit l'action à effectuer si l'expression conditionnelle est évaluée à`false`.  | 
| action par étapes | Conditionnel |  Lorsque vous utilisez `then` ou`else`, vous devez spécifier l'une des étapes suivantes : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/imagebuilder/latest/userguide/toe-conditional-constructs.html)  | 

**Exemple 1 : installer le package**  
Les exemples d'étapes suivants, tirés d'un document de AWSTOE composant, utilisent des opérateurs logiques pour tester une valeur de paramètre et exécuter les commandes du gestionnaire de packages appropriées pour installer une application si le package est décompressé.

```
    - name: InstallUnzipAptGet
      action: ExecuteBash
      if:
        and:
            - binaryExists: 'apt-get'
            - not:
                binaryExists: 'unzip'
      inputs:
        commands:
            - sudo apt-get update
            - sudo apt-get install -y unzip

    - name: InstallUnzipYum
      action: ExecuteBash
      if:
        and:
            - binaryExists: 'yum'
            - not:
                binaryExists: 'unzip'
      inputs:
        commands:
            - sudo yum install -y unzip

    - name: InstallUnzipZypper
      action: ExecuteBash
      if:
        and:
            - binaryExists: 'zypper'
            - not:
                binaryExists: 'unzip'
      inputs:
        commands:
            - sudo zypper refresh
            - sudo zypper install -y unzip
```

**Exemple 2 : sauter une étape**  
L'exemple suivant montre deux manières de sauter une étape. L'un utilise un opérateur logique et l'autre un opérateur de comparaison avec l'action `Skip` step.

```
# Creates a file if it does not exist using not
- name: CreateMyConfigFile-1
  action: ExecuteBash
  if:
    not:
      fileExists: '/etc/my_config'
  inputs:
    commands:
      - echo "Hello world" > '/etc/my_config'

# Creates a file if it does not exist using then and else
- name: CreateMyConfigFile-2
  action: ExecuteBash
  if:
    fileExists: '/etc/my_config'
    then: Skip
    else: Execute
  inputs:
    commands:
      - echo "Hello world" > '/etc/my_config'
```

# Utiliser des opérateurs de comparaison dans les documents relatifs aux AWSTOE composants
<a name="toe-comparison-operators"></a>

Vous pouvez utiliser les opérateurs de comparaison suivants avec le module **[Affirmer](toe-action-modules.md#action-modules-assertion)** d'action et avec les expressions conditionnelles qui utilisent le[si ConstructSyntaxe](toe-conditional-constructs.md#toe-conditional-if). Un opérateur de comparaison peut agir sur une seule valeur, par exemple`stringIsEmpty`, ou il peut comparer une valeur de référence à une deuxième valeur (valeur variable) pour déterminer si l'expression conditionnelle est évaluée à `true` ou`false`.

Si la comparaison fonctionne sur deux valeurs, la seconde valeur peut être une variable de chaînage.

Lorsque vous comparez des valeurs d'un type différent, les conversions de valeurs suivantes peuvent avoir lieu avant la comparaison :
+ Pour les comparaisons numériques, si la valeur de la variable est une chaîne, AWSTOE convertit la chaîne en nombre avant l'évaluation. Si la conversion n'est pas possible, la comparaison est renvoyée`false`. Par exemple, si la valeur de la variable est`"1.0"`, la conversion fonctionne, mais si c'est la valeur de la variable, `"a10"` la conversion échoue.
+ Pour les comparaisons de chaînes, si la valeur de la variable est un nombre, elle est AWSTOE convertie en chaîne avant l'évaluation.

## Comparez les chaînes
<a name="toe-compare-strings"></a>

Les opérateurs de comparaison suivants fonctionnent avec des chaînes pour comparer des valeurs, pour tester la présence d'espaces ou d'une chaîne vide, ou pour comparer une valeur d'entrée à un modèle d'expression régulière. Les comparaisons de chaînes ne font pas la distinction majuscules/majuscules et ne réduisent pas les espaces entre le début et la fin des entrées de chaîne.

**Opérateurs de comparaison de chaînes**
+ [stringIsEmpty](#stringIsEmpty)
+ [stringIsWhitespace](#stringIsWhitespace)
+ [stringEquals](#stringEquals)
+ [stringLessThan](#stringLessThan)
+ [stringLessThanEquals](#stringLessThanEquals)
+ [stringGreaterThan](#stringGreaterThan)
+ [stringGreaterThanEquals](#stringGreaterThanEquals)
+ [patternMatches](#patternMatches)

**stringIsEmpty**  
L'`stringIsEmpty`opérateur revient `true` si la chaîne spécifiée ne contient aucun caractère. Par exemple :  

```
# Evaluates to true
stringIsEmpty: ""

# Evaluates to false
stringIsEmpty: " "
				
# Evaluates to false
stringIsEmpty: "Hello."
```

**stringIsWhitespace**  
Teste si la chaîne spécifiée pour ne `stringIsWhitespace` contient que des espaces. Par exemple :  

```
# Evaluates to true
stringIsWhitespace: "   "

# Evaluates to false
stringIsWhitespace: ""
				
# Evaluates to false
stringIsWhitespace: " Hello?"
```

**String est égal**  
Teste si la chaîne spécifiée pour `stringEquals` correspond exactement à la chaîne spécifiée dans le `value` paramètre. Par exemple :  

```
# Evaluates to true
stringEquals: 'Testing, testing...'
value: 'Testing, testing...'

# Evaluates to false
stringEquals: 'Testing, testing...'
value: 'Hello again.'

# Evaluates to false
stringEquals: 'Testing, testing...'
value: 'TESTING, TESTING....'

# Evaluates to false
stringEquals: 'Testing, testing...'
value: '   Testing, testing...'
				
# Evaluates to false
stringEquals: 'Testing, testing...'
value: 'Testing, testing...   '
```

**stringLessThan**  
Teste si la chaîne spécifiée pour `stringLessThan` est inférieure à la chaîne spécifiée dans le `value` paramètre. Par exemple :  

```
# Evaluates to true
# This comparison operator isn't case sensitive
stringlessThan: 'A'
value: 'a'

# Evaluates to true - 'a' is less than 'b'
stringlessThan: 'b'
value: 'a'

# Evaluates to true
# Numeric strings compare as less than alphabetic strings
stringlessThan: 'a'
value: '0'

# Evaluates to false
stringlessThan: '0'
value: 'a'
```

**stringLessThanÉgal**  
Teste si la chaîne spécifiée pour `stringLessThanEquals` est inférieure ou égale à la chaîne spécifiée dans le `value` paramètre. Par exemple :  

```
# Evaluates to true - 'a' is equal to 'a'
stringLessThanEquals: 'a'
value: 'a'

# Evaluates to true - since the comparison isn't case sensitive, 'a' is equal to 'A'
stringLessThanEquals: 'A'
value: 'a'

# Evaluates to true - 'a' is less than 'b'
stringLessThanEquals: 'b'
value: 'a'

# Evaluates to true - '0' is less than 'a'
stringLessThanEquals: 'a'
value: '0'

# Evaluates to false - 'a' is greater than '0'
stringLessThanEquals: '0'
value: 'a'
```

**stringGreaterThan**  
Teste si la chaîne spécifiée pour `stringGreaterThan` est supérieure à la chaîne spécifiée dans le `value` paramètre. Par exemple :  

```
# Evaluates to false - since the comparison isn't case sensitive, 'A' is equal to 'a'
stringGreaterThan: 'a'
value: 'A'

# Evaluates to true - 'b' is greater than 'a'
stringGreaterThan: 'a'
value: 'b'

# Evaluates to true - 'a' is greater than '0'
stringGreaterThan: '0'
value: 'a'

# Evaluates to false - '0' is less than 'a'
stringGreaterThan: 'a'
value: '0'
```

**stringGreaterThanÉgal**  
Teste si la chaîne spécifiée pour `stringGreaterThanEquals` est supérieure ou égale à la chaîne spécifiée dans le `value` paramètre. Par exemple :  

```
# Evaluates to true - 'a' is equal to 'A'
stringGreaterThanEquals: 'A'
value: 'a'

# Evaluates to true - 'b' is greater than 'a'
stringGreaterThanEquals: 'a'
value: 'b'

# Evaluates to true - 'a' is greater than '0'
stringGreaterThanEquals: '0'
value: 'a'

# Evaluates to false - '0' is less than 'a'
stringGreaterThanEquals: 'a'
value: '0'
```

**Correspondances à motifs**  
Teste si la chaîne spécifiée dans le `value` paramètre correspond au modèle d'expression régulière spécifié pour`patternMatches`. La comparaison utilise le [package Golang regexp](https://pkg.go.dev/regexp), qui est conforme à la syntaxe. RE2 Pour plus d'informations sur RE2 les règles, consultez le référentiel [google/ re2](https://github.com/google/re2/wiki/Syntax) dans *GitHub*.  
L'exemple suivant montre une correspondance de modèle qui renvoie `true` :  

```
patternMatches: '^[a-z]+$'
value: 'ThisIsValue'
```

## Comparez les chiffres
<a name="toe-compare-numbers"></a>

Les opérateurs de comparaison suivants fonctionnent avec des nombres. Les valeurs fournies pour ces opérateurs doivent être de l'un des types suivants, conformément à la spécification YAML. Support pour les comparaisons numériques utilisant l'opérateur de comparaison de gros paquets Golang, par exemple : [func (\$1Float](https://pkg.go.dev/math/big#Float.Cmp)) Cmp.
+ Entier
+ Float (basé sur float64, qui prend en charge les nombres de -1,7e\$1308 à \$11,7e\$1308)
+ Une chaîne qui correspond au modèle d'expression régulière suivant : `^[-+]?([0-9]+[.])?[0-9]+$`

**Opérateurs de comparaison de nombres**
+ [numberEquals](#numberEquals)
+ [numberLessThan](#numberLessThan)
+ [numberLessThanEquals](#numberLessThanEquals)
+ [numberGreaterThan](#numberGreaterThan)
+ [numberGreaterThanEquals](#numberGreaterThanEquals)

**Le nombre est égal**  
Teste si le nombre spécifié pour `numberEquals` est égal au nombre spécifié dans le `value` paramètre. Tous les exemples de comparaison suivants renvoient `true` :  

```
# Values provided as a positive number
numberEquals: 1
value: 1

# Comparison value provided as a string
numberEquals: '1'
value: 1

# Value provided as a string
numberEquals: 1
value: '1'

# Values provided as floats
numberEquals: 5.0
value: 5.0

# Values provided as a negative number
numberEquals: -1
value: -1
```

**numberLessThan**  
Teste si le nombre spécifié pour `numberLessThan` est inférieur au nombre spécifié dans le `value` paramètre. Par exemple :  

```
# Evaluates to true
numberLessThan: 2
value: 1

# Evaluates to true
numberLessThan: 2
value: 1.9

# Evaluates to false
numberLessThan: 2
value: '2'
```

**numberLessThanÉgal**  
Teste si le nombre spécifié pour `numberLessThanEquals` est inférieur ou égal au nombre spécifié dans le `value` paramètre. Par exemple :  

```
# Evaluates to true
numberLessThanEquals: 2
value: 1

# Evaluates to true
numberLessThanEquals: 2
value: 1.9

# Evaluates to true
numberLessThanEquals: 2
value: '2'

# Evaluates to false
numberLessThanEquals: 2
value: 2.1
```

**numberGreaterThan**  
Teste si le nombre spécifié pour `numberGreaterThan` est supérieur au nombre spécifié dans le `value` paramètre. Par exemple :  

```
# Evaluates to true
numberGreaterThan: 1
value: 2

# Evaluates to true
numberGreaterThan: 1
value: 1.1

# Evaluates to false
numberGreaterThan: 1
value: '1'
```

**numberGreaterThanÉgal**  
Teste si le nombre spécifié pour `numberGreaterThanEquals` est supérieur ou égal au nombre spécifié dans le `value` paramètre. Par exemple :  

```
# Evaluates to true
numberGreaterThanEquals: 1
value: 2

# Evaluates to true
numberGreaterThanEquals: 1
value: 1.1

# Evaluates to true
numberGreaterThanEquals: 1
value: '1'

# Evaluates to false
numberGreaterThanEquals: 1
value: 0.8
```

## Vérifier les fichiers
<a name="toe-check-files"></a>

Les opérateurs de comparaison suivants vérifient le hachage du fichier ou vérifient si un fichier ou un dossier existe.

**Opérateurs de fichiers et de dossiers**
+ [binaryExists](#binaryExists)
+ [fileExists](#fileExists)
+ [folderExists](#folderExists)
+ [fileMD5Equals](#fileMD5Equals)
+ [fileSHA1Equals](#fileSHA1Equals)
+ [fileSHA256Equals](#fileSHA256Equals)
+ [fileSHA512Equals](#fileSHA512Equals)

**Le binaire existe**  
Teste si une application est disponible dans le chemin actuel. Par exemple :  

```
binaryExists: 'foo'
```
Sur les systèmes Linux et macOS, pour une application nommée*foo*, cela fonctionne de la même manière que la commande bash suivante :**type *foo* >/dev/null 2>&1**, où **\$1? == 0** indique une comparaison réussie.  
Sur les systèmes Windows, pour une application nommée*foo*, cela fonctionne de la même manière que la PowerShell commande **& C:\$1Windows\$1System32\$1where.exe /Q *foo*** où **\$1LASTEXITCODE = 0** indique une comparaison réussie.

**Le fichier existe**  
Teste si un fichier existe au chemin spécifié. Vous pouvez fournir un chemin absolu ou relatif. Si l'emplacement que vous spécifiez existe et est un fichier, la comparaison est évaluée à`true`. Par exemple :  

```
fileExists: '/path/to/file'
```
Sur les systèmes Linux et macOS, cela fonctionne de la même manière que la commande bash suivante :**-d */path/to/file***, où **\$1? == 0** indique une comparaison réussie.  
Sur les systèmes Windows, cela fonctionne de la même manière que la PowerShell commande**Test-Path -Path '*C:\$1path\$1to\$1file*' -PathType 'Leaf'**.

**Le dossier existe**  
Teste si un dossier existe sur le chemin spécifié. Vous pouvez fournir un chemin absolu ou relatif. Si l'emplacement que vous spécifiez existe et qu'il s'agit d'un dossier, la comparaison est évaluée à`true`. Par exemple :  

```
folderExists: '/path/to/folder'
```
Sur les systèmes Linux et macOS, cela fonctionne de la même manière que la commande bash suivante :**-d */path/to/folder***, où **\$1? == 0** indique une comparaison réussie.  
Sur les systèmes Windows, cela fonctionne de la même manière que la PowerShell commande**Test-Path -Path '*C:\$1path\$1to\$1folder*' -PathType 'Container'**.

**le fichier MD5 est égal**  
Teste si le MD5 hachage d'un fichier est égal à une valeur spécifiée. Par exemple :  

```
fileMD5Equals: '<MD5Hash>'
path: '/path/to/file'
```

**le fichier SHA1 est égal**  
Teste si le SHA1 hachage d'un fichier est égal à une valeur spécifiée. Par exemple :  

```
fileSHA1Equals: '<SHA1Hash>'
path: '/path/to/file'
```

**le fichier SHA256 est égal**  
Teste si le SHA256 hachage d'un fichier est égal à une valeur spécifiée. Par exemple :  

```
fileSHA256Equals: '<SHA256Hash>'
path: '/path/to/file'
```

**le fichier SHA512 est égal**  
Teste si le SHA512 hachage d'un fichier est égal à une valeur spécifiée. Par exemple :  

```
fileSHA512Equals: '<SHA512Hash>'
path: '/path/to/file'
```

# Utiliser des opérateurs logiques dans les documents relatifs aux AWSTOE composants
<a name="toe-logical-operators"></a>

Vous pouvez utiliser les opérateurs logiques suivants pour ajouter ou modifier des expressions conditionnelles dans votre document de composant. AWSTOE évalue les expressions conditionnelles dans l'ordre dans lequel les conditions sont spécifiées. Pour plus d'informations sur les opérateurs de comparaison pour les documents de composants, consultez[Utiliser des opérateurs de comparaison dans les documents relatifs aux AWSTOE composants](toe-comparison-operators.md).

**et **  
Avec l'`and`opérateur, vous pouvez évaluer deux ou plusieurs comparaisons sous la forme d'une seule expression. L'expression est évaluée `true` lorsque toutes les conditions de la liste sont vraies. Dans le cas contraire, l'expression est évaluée à. `false`  
**Exemples :**  
L'exemple suivant effectue deux comparaisons : une chaîne et un nombre. Les deux comparaisons étant vraies, l'expression est évaluée comme vraie.

```
and:
  - stringEquals: 'test_string'
    value: 'test_string'
  - numberEquals: 1
    value: 1
```
L'exemple suivant effectue également deux comparaisons. La première comparaison est fausse, c'est à ce moment que l'évaluation s'arrête et que la seconde comparaison est ignorée. L'expression est évaluée à. `false`  

```
and:
  - stringEquals: 'test_string'
    value: 'Hello world!'
  - numberEquals: 1
    value: 1
```

**ou**  
Avec l'`or`opérateur, vous pouvez évaluer deux ou plusieurs comparaisons sous la forme d'une seule expression. L'expression indique `true` si l'une des comparaisons spécifiées est vraie. Si aucune des comparaisons spécifiées n'est évaluée à`true`, l'expression est évaluée à`false`.  
**Exemples :**  
L'exemple suivant effectue deux comparaisons : une chaîne et un nombre. La première comparaison étant vraie, l'expression est évaluée à `true` et la seconde comparaison est ignorée.

```
or:
  - stringEquals: 'test_string'
    value: 'test_string'
  - numberEquals: 1
    value: 3
```
L'exemple suivant effectue également deux comparaisons. La première comparaison est fausse, et l'évaluation se poursuit. La deuxième comparaison étant vraie, l'expression est évaluée à`true`.  

```
or:
  - stringEquals: 'test_string'
    value: 'Hello world!'
  - numberEquals: 1
    value: 1
```
Dans le dernier exemple, les deux comparaisons étant fausses, l'expression est évaluée à`false`.  

```
or:
  - stringEquals: 'test_string'
    value: 'Hello world!'
  - numberEquals: 1
    value: 3
```

**pas**  
Avec l'`not`opérateur, vous pouvez annuler une seule comparaison. L'expression indique `true` si la comparaison est fausse. Si la comparaison est vraie, l'expression est évaluée à`false`.  
**Exemples :**  
L'exemple suivant effectue une comparaison de chaînes. La comparaison étant fausse, l'expression est évaluée à`true`.

```
not:
  - stringEquals: 'test_string'
    value: 'Hello world!'
```
L'exemple suivant effectue également une comparaison de chaînes. La comparaison étant vraie, l'expression est évaluée à`false`.  

```
not:
  - stringEquals: 'test_string'
    value: 'test_string'
```

# Utiliser des constructions en boucle dans AWSTOE
<a name="toe-looping-constructs"></a>

Cette section fournit des informations pour vous aider à créer des constructions en boucle dans le. AWSTOE Les constructions en boucle définissent une séquence répétée d'instructions. Vous pouvez utiliser les types de constructions en boucle suivants dans : AWSTOE
+ `for`constructs — Itérer sur une séquence bornée d'entiers.
+ `forEach`construit
  + `forEach`boucle avec liste d'entrées : itère sur une collection limitée de chaînes. 
  + `forEach`boucle avec liste délimitée : itère sur une collection limitée de chaînes jointes par un délimiteur.

**Note**  
Les constructions en boucle ne prennent en charge que les types de données sous forme de chaîne.

**Topics**
+ [Variables d'itération de référence](#toe-loop-iteration-variables)
+ [Types de constructions en boucle](#toe-loop-types)
+ [Champs d'étape](#toe-loop-step-fields)
+ [Sorties d'étape et d'itération](#toe-loop-step-output)

## Variables d'itération de référence
<a name="toe-loop-iteration-variables"></a>

Pour faire référence à l'index et à la valeur de la variable d'itération en cours, l'expression de référence `{{ loop.* }}` doit être utilisée dans le corps d'entrée d'une étape contenant une construction en boucle. Cette expression ne peut pas être utilisée pour faire référence aux variables d'itération de la construction en boucle d'une autre étape.

L'expression de référence comprend les membres suivants :
+ `{{ loop.index }}`— Position ordinale de l'itération en cours, indexée à. `0` 
+ `{{ loop.value }}`— La valeur associée à la variable d'itération en cours. 

### Noms des boucles
<a name="toe-loop-iteration-variables-names"></a>

 Toutes les constructions en boucle ont un champ de nom facultatif pour l'identification. Si un nom de boucle est fourni, il peut être utilisé pour faire référence à des variables d'itération dans le corps d'entrée de l'étape. Pour faire référence aux indices d'itération et aux valeurs d'une boucle nommée, utilisez `{{ <loop_name>.* }}` with `{{ loop.* }}` dans le corps de saisie de l'étape. Cette expression ne peut pas être utilisée pour faire référence à la construction en boucle nommée d'une autre étape. 

L'expression de référence comprend les membres suivants :
+ `{{ <loop_name>.index }}`— Position ordinale de l'itération en cours de la boucle nommée, qui est indexée à. `0`
+ `{{ <loop_name>.value }}`— La valeur associée à la variable d'itération actuelle de la boucle nommée.

### Résoudre les expressions de référence
<a name="toe-loop-iteration-variables-expressions"></a>

 AWSTOE Résout les expressions de référence comme suit : 
+ `{{ <loop_name>.* }}`— AWSTOE résout cette expression selon la logique suivante :
  + Si la boucle de l'étape en cours d'exécution correspond à la `<loop_name>` valeur, l'expression de référence est résolue en fonction de la structure en boucle de l'étape en cours d'exécution.
  + `<loop_name>`aboutit à la construction en boucle nommée si elle apparaît dans l'étape en cours d'exécution.
+ `{{ loop.* }}`— AWSTOE résout l'expression à l'aide de la construction en boucle définie dans l'étape en cours d'exécution.

Si des expressions de référence sont utilisées dans une étape ne contenant pas de boucle, les expressions AWSTOE ne sont pas résolues et elles apparaissent dans l'étape sans être remplacées. 

**Note**  
Les expressions de référence doivent être placées entre guillemets pour être correctement interprétées par le compilateur YAML.

## Types de constructions en boucle
<a name="toe-loop-types"></a>

Cette section fournit des informations et des exemples sur les types de construction en boucle qui peuvent être utilisés dans le AWSTOE.

**Topics**
+ [`for`boucle](#toe-loop-types-for)
+ [`forEach`boucle avec liste d'entrées](#toe-loop-types-foreach)
+ [`forEach`boucle avec liste délimitée](#toe-loop-types-foreach-delimited)

### `for`boucle
<a name="toe-loop-types-for"></a>

La `for` boucle itère sur une plage d'entiers spécifiée dans une limite définie par le début et la fin des variables. Les valeurs itératives font partie de l'ensemble `[start, end]` et incluent les valeurs limites.

AWSTOE vérifie les `updateBy` valeurs `start``end`, et pour s'assurer que la combinaison ne donne pas lieu à une boucle infinie.

`for`schéma de boucle

```
  - name: "StepName"
    action: "ActionModule"
    loop:
      name: "string"
      for:
        start: int
        end: int
        updateBy: int
inputs:
  ...
```


**`for`entrée en boucle**  

| Champ | Description | Type | Obligatoire | Par défaut | 
| --- | --- | --- | --- | --- | 
|  `name`  | Nom unique de la boucle. Il doit être unique par rapport aux autres noms de boucle de la même phase. |  String  |  Non  |  ""  | 
|  `start`  | Valeur de départ de l'itération. N'accepte pas le chaînage d'expressions.  |  Entier  |  Oui  |  N/A  | 
| `end` | Valeur finale de l'itération. N'accepte pas le chaînage d'expressions.  | Entier | Oui | N/A | 
| `updateBy` | Différence selon laquelle une valeur itérative est mise à jour par addition. Il doit s'agir d'une valeur négative ou positive différente de zéro. N'accepte pas le chaînage d'expressions.  | Entier | Oui | N/A | 

`for`exemple d'entrée en boucle

```
  - name: "CalculateFileUploadLatencies"
    action: "ExecutePowerShell"
    loop:
      for:
        start: 100000
        end: 1000000
        updateBy: 100000
    inputs:
      commands:
        - |
          $f = new-object System.IO.FileStream c:\temp\test{{ loop.index }}.txt, Create, ReadWrite
          $f.SetLength({{ loop.value }}MB)
          $f.Close()
        - c:\users\administrator\downloads\latencyTest.exe --file c:\temp\test{{ loop.index }}.txt
        - AWS s3 cp c:\users\administrator\downloads\latencyMetrics.json s3://bucket/latencyMetrics.json
        - |
          Remove-Item -Path c:\temp\test{{ loop.index }}.txt
          Remove-Item -Path c:\users\administrator\downloads\latencyMetrics.json
```

### `forEach`boucle avec liste d'entrées
<a name="toe-loop-types-foreach"></a>

La `forEach` boucle itère sur une liste explicite de valeurs, qui peuvent être des chaînes ou des expressions enchaînées. 

`forEach`boucle avec schéma de liste d'entrées

```
  - name: "StepName"
    action: "ActionModule"
    loop:
      name: "string"
      forEach:
        - "string"
    inputs:
  ...
```


**`forEach`boucle avec entrée de liste d'entrées**  

| Champ | Description | Type | Obligatoire | Par défaut | 
| --- | --- | --- | --- | --- | 
|  `name`  | Nom unique de la boucle. Il doit être unique par rapport aux autres noms de boucle de la même phase. |  String  |  Non  |  ""  | 
|  Liste des chaînes de `forEach` boucles  |  Liste des chaînes pour l'itération. Accepte les expressions chaînées sous forme de chaînes dans la liste. Les expressions chaînées doivent être placées entre guillemets pour que le compilateur YAML puisse les interpréter correctement.  |  Liste de chaînes  |  Oui  |  N/A  | 

`forEach`boucle avec liste d'entrées, exemple 1

```
  - name: "ExecuteCustomScripts"
    action: "ExecuteBash"
    loop:
      name: BatchExecLoop
      forEach:
        - /tmp/script1.sh
        - /tmp/script2.sh
        - /tmp/script3.sh
    inputs:
      commands:
        - echo "Count {{ BatchExecLoop.index }}"
        - sh "{{ loop.value }}"
        - |
          retVal=$?
          if [ $retVal -ne 0 ]; then
            echo "Failed"
          else
            echo "Passed"
         fi
```

`forEach`boucle avec liste d'entrées, exemple 2

```
  - name: "RunMSIWithDifferentArgs"
    action: "ExecuteBinary"
    loop:
      name: MultiArgLoop
      forEach:
        - "ARG1=C:\Users ARG2=1"
        - "ARG1=C:\Users"
        - "ARG1=C:\Users ARG3=C:\Users\Administrator\Documents\f1.txt"
    inputs:
      commands:
        path: "c:\users\administrator\downloads\runner.exe"
        args:
          - "{{ MultiArgLoop.value }}"
```

`forEach`exemple de boucle avec liste d'entrées 3

```
  - name: "DownloadAllBinaries"
    action: "S3Download"
    loop:
      name: MultiArgLoop
      forEach:
        - "bin1.exe"
        - "bin10.exe"
        - "bin5.exe"
    inputs:
      - source: "s3://bucket/{{ loop.value }}"
        destination: "c:\temp\{{ loop.value }}"
```

### `forEach`boucle avec liste délimitée
<a name="toe-loop-types-foreach-delimited"></a>

La boucle itère sur une chaîne contenant des valeurs séparées par un délimiteur. Pour itérer sur les constituants de la chaîne, utilisez AWSTOE le délimiteur pour diviser la chaîne en un tableau adapté à l'itération. 

`forEach`boucle avec schéma de liste délimité

```
  - name: "StepName"
    action: "ActionModule"
    loop:
      name: "string"
      forEach:
        list: "string"
        delimiter: ".,;:\n\t -_"
    inputs:
  ...
```


**`forEach`boucle avec entrée de liste délimitée**  

| Champ | Description | Type | Obligatoire | Par défaut | 
| --- | --- | --- | --- | --- | 
|  `name`  | Nom unique attribué à la boucle. Il doit être unique par rapport aux autres noms de boucles de la même phase. |  String  |  Non  |  ""  | 
|  `list`  | Chaîne composée de chaînes constitutives reliées par un caractère délimiteur commun. Accepte également les expressions chaînées. Dans le cas d'expressions chaînées, assurez-vous qu'elles sont placées entre guillemets pour une interprétation correcte par le compilateur YAML. | String |  Oui  |  N/A  | 
| `delimiter` | Caractère utilisé pour séparer les chaînes d'un bloc. La virgule est la virgule par défaut. Un seul caractère délimiteur est autorisé dans la liste donnée : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/imagebuilder/latest/userguide/toe-looping-constructs.html) Les expressions de chaînage ne peuvent pas être utilisées. | String | Non | Virgule : "," | 

**Note**  
La valeur de `list` est traitée comme une chaîne immuable. Si la source de `list` est modifiée pendant l'exécution, elle ne sera pas reflétée pendant l'exécution.

`forEach`boucle avec liste délimitée, exemple 1

Cet exemple utilise le modèle d'expression de chaînage suivant pour faire référence à la sortie d'une autre étape :`<phase_name>.<step_name>.[inputs | outputs].<var_name>`.

```
  - name: "RunMSIs"
    action: "ExecuteBinary"
    loop:
      forEach:
        list: "{{ build.GetAllMSIPathsForInstallation.outputs.stdout }}"
        delimiter: "\n"
    inputs:
      commands:
        path: "{{ loop.value }}"
```

`forEach`boucle avec liste délimitée, exemple 2

```
  - name: "UploadMetricFiles"
    action: "S3Upload"
    loop:
      forEach:
        list: "/tmp/m1.txt,/tmp/m2.txt,/tmp/m3.txt,..."
    inputs:
      commands:
        - source: "{{ loop.value }}"
          destination: "s3://bucket/key/{{ loop.value }}"
```

## Champs d'étape
<a name="toe-loop-step-fields"></a>

Les boucles font partie d'une étape. Aucun champ lié à l'exécution d'une étape n'est appliqué aux itérations individuelles. Les champs d'étape s'appliquent uniquement au niveau de l'étape, comme suit :
+ *TimeoutSeconds* — Toutes les itérations de la boucle doivent être exécutées dans le délai spécifié par ce champ. Si le délai d'exécution de la boucle expire, AWSTOE exécute la politique de nouvelle tentative de l'étape et réinitialise le paramètre de délai d'expiration pour chaque nouvelle tentative. Si le délai d'exécution de la boucle dépasse le délai d'expiration après avoir atteint le nombre maximal de tentatives, le message d'échec de l'étape indique que le délai d'exécution de la boucle a expiré. 
+ *OnFailure* — La gestion des défaillances est appliquée à l'étape comme suit :
  + Si *OnFailure* est défini sur`Abort`, AWSTOE quitte la boucle et réessaie l'étape conformément à la politique de nouvelles tentatives. Une fois le nombre maximal de tentatives atteint, AWSTOE marque l'étape en cours comme ayant échoué et arrête l'exécution du processus.

    AWSTOE définit le code d'état de la phase parent et du document sur`Failed`.
**Note**  
Aucune autre étape n'est exécutée après l'échec de l'étape.
  + Si *OnFailure* est défini sur`Continue`, AWSTOE quitte la boucle et réessaie l'étape conformément à la politique de nouvelles tentatives. Une fois le nombre maximal de tentatives atteint, AWSTOE marque l'étape en cours comme ayant échoué et passe à l'étape suivante.

    AWSTOE définit le code d'état de la phase parent et du document sur`Failed`.
  + Si *OnFailure* est défini sur`Ignore`, AWSTOE quitte la boucle et réessaie l'étape conformément à la politique de nouvelles tentatives. Une fois le nombre maximal de tentatives atteint, AWSTOE marque l'étape en cours comme telle `IgnoredFailure` et passe à l'étape suivante.

    AWSTOE définit le code d'état de la phase parent et du document sur`SuccessWithIgnoredFailure`.
**Note**  
Ceci est toujours considéré comme une exécution réussie, mais inclut des informations vous indiquant qu'une ou plusieurs étapes ont échoué et ont été ignorées.
+ *MaxAttempts — À chaque nouvelle tentative*, l'étape complète et toutes les itérations sont exécutées depuis le début.
+ *status* — État général de l'exécution d'une étape. `status`ne représente pas le statut des itérations individuelles. Le statut d'une étape comportant des boucles est déterminé comme suit :
  + Si une seule itération échoue, le statut d'une étape indique un échec.
  + Si toutes les itérations aboutissent, le statut d'une étape indique un succès.
+ *StartTime : heure* de début globale de l'exécution d'une étape. Ne représente pas l'heure de début des itérations individuelles.
+ *EndTime — Heure* de fin globale de l'exécution d'une étape. Ne représente pas l'heure de fin des itérations individuelles.
+ *FailureMessage* — Inclut les indices d'itération qui ont échoué en cas d'erreurs autres que le délai d'expiration. En cas d'erreur de temporisation, le message indique que l'exécution de la boucle a échoué. Aucun message d'erreur individuel n'est fourni pour chaque itération afin de minimiser la taille des messages d'échec.

## Sorties d'étape et d'itération
<a name="toe-loop-step-output"></a>

Chaque itération contient une sortie. À la fin d'une exécution en boucle, AWSTOE consolide toutes les sorties d'itération réussies dans. `detailedOutput.json` Les sorties consolidées sont un assemblage de valeurs appartenant aux clés de sortie correspondantes telles que définies dans le schéma de sortie du module d'action. L'exemple suivant montre comment les sorties sont consolidées :

**Sortie de `ExecuteBash` pour l'itération 1**

```
{
	"stdout":"Hello"
}
```

**Sortie de `ExecuteBash` pour l'itération 2**

```
{
	"stdout":"World"
}
```

**Sortie de `ExecuteBash` for Step**

```
{
	"stdout":"Hello\nWorld"
}
```

Par exemple, `ExecuteBash``ExecutePowerShell`, et `ExecuteBinary` sont des modules d'action qui renvoient `STDOUT` en tant que sortie du module d'action. `STDOUT`les messages sont joints au nouveau caractère de ligne pour produire le résultat global de l'étape`detailedOutput.json`.

AWSTOE ne consolidera pas les résultats des itérations infructueuses.

# Modules d'action pris en charge par le gestionnaire de AWSTOE composants
<a name="toe-action-modules"></a>

Les services de création d'images, tels que EC2 Image Builder, AWSTOE utilisent des modules d'action pour configurer les instances EC2 utilisées pour créer et tester des images de machine personnalisées. Cette section décrit les fonctionnalités des modules d' AWSTOE action couramment utilisés et explique comment les configurer, y compris des exemples.

Les composants sont créés à partir de documents YAML en texte brut. Pour plus d'informations sur la syntaxe des documents, consultez[Utiliser le cadre de documentation des AWSTOE composants pour les composants personnalisés](toe-use-documents.md).

**Note**  
Tous les modules d'action utilisent le même compte que l'agent Systems Manager lorsqu'ils s'exécutent, sous Linux et `NT Authority\SYSTEM` sous Windows. `root`

La référence croisée suivante classe les modules d'action en fonction du type d'actions qu'ils exécutent.

 

**Exécution générale**
+ [Assert (Linux, Windows, macOS)](#action-modules-assertion)
+ [ExecuteBash (Linux, macOS)](#action-modules-executebash)
+ [ExecuteBinary (Linux, Windows, macOS)](#action-modules-executebinary)
+ [ExecuteDocument (Linux, Windows, macOS)](#action-modules-executedocument)
+ [ExecutePowerShell (Fenêtres)](#action-modules-executepowershell)

 

**Téléchargement et envoi de fichiers**
+ [Téléchargement de S3 (Linux, Windows, macOS)](#action-modules-s3download)
+ [Téléchargement en mode S3 (Linux, Windows, macOS)](#action-modules-s3upload)
+ [WebDownload (Linux, Windows, macOS)](#action-modules-webdownload)

 

**Opérations du système de fichiers**
+ [AppendFile (Linux, Windows, macOS)](#action-modules-appendfile)
+ [CopyFile (Linux, Windows, macOS)](#action-modules-copyfile)
+ [CopyFolder (Linux, Windows, macOS)](#action-modules-copyfolder)
+ [CreateFile (Linux, Windows, macOS)](#action-modules-createfile)
+ [CreateFolder (Linux, Windows, macOS)](#action-modules-createfolder)
+ [CreateSymlink (Linux, Windows, macOS)](#action-modules-createsymlink)
+ [DeleteFile (Linux, Windows, macOS)](#action-modules-deletefile)
+ [DeleteFolder (Linux, Windows, macOS)](#action-modules-deletefolder)
+ [ListFiles (Linux, Windows, macOS)](#action-modules-listfiles)
+ [MoveFile (Linux, Windows, macOS)](#action-modules-movefile)
+ [MoveFolder (Linux, Windows, macOS)](#action-modules-movefolder)
+ [ReadFile (Linux, Windows, macOS)](#action-modules-readfile)
+ [SetFileEncoding (Linux, Windows, macOS)](#action-modules-setfileencoding)
+ [SetFileOwner (Linux, Windows, macOS)](#action-modules-setfileowner)
+ [SetFolderOwner (Linux, Windows, macOS)](#action-modules-setfolderowner)
+ [SetFilePermissions (Linux, Windows, macOS)](#action-modules-setfilepermissions)
+ [SetFolderPermissions (Linux, Windows, macOS)](#action-modules-setfolderpermissions)

 

**Actions d'installation du logiciel**
+ [Installez MSI (Windows)](#action-modules-install-msi)
+ [Désinstallez MSI (Windows)](#action-modules-uninstall-msi)

 

**Actions du système**
+ [Redémarrer (Linux, Windows)](#action-modules-reboot)
+ [SetRegistry (Fenêtres)](#action-modules-setregistry)
+ [Mettre à jour le système d'exploitation (Linux, Windows)](#action-modules-updateos)

## Modules d'exécution généraux
<a name="action-modules-general-execution"></a>

La section suivante contient des détails sur les modules d'action qui exécutent des commandes et contrôlent le flux de travail d'exécution.

**Topics**
+ [Assert (Linux, Windows, macOS)](#action-modules-assertion)
+ [ExecuteBash (Linux, macOS)](#action-modules-executebash)
+ [ExecuteBinary (Linux, Windows, macOS)](#action-modules-executebinary)
+ [ExecuteDocument (Linux, Windows, macOS)](#action-modules-executedocument)
+ [ExecutePowerShell (Fenêtres)](#action-modules-executepowershell)

### Assert (Linux, Windows, macOS)
<a name="action-modules-assertion"></a>

Le module **d'action Assert** effectue des comparaisons de valeurs en utilisant [Opérateurs de comparaison](toe-comparison-operators.md) ou en [Opérateurs logiques](toe-logical-operators.md) tant qu'entrée. Le résultat de l'expression de l'opérateur (vrai ou faux) indique le statut global de réussite ou d'échec de l'étape.

Si la comparaison ou l'expression de l'opérateur logique est évaluée à`true`, l'étape est marquée comme`Success`. Dans le cas contraire, l'étape est marquée comme`Failed`. Si l'étape échoue, le `onFailure` paramètre détermine le résultat de l'étape.


**Input**  

| Nom de la touche | Description | Type | Obligatoire | 
| --- | --- | --- | --- | 
| input | Contient une comparaison ou un opérateur logique unique. Notez que les opérateurs logiques peuvent contenir plusieurs opérateurs de comparaison. | Ceci est variable en fonction de l'opérateur | Oui | 

**Exemple de saisie : comparaison simple à l'aide de l'opérateur de `stringEquals` comparaison**

Cet exemple évalue à. `true`

```
- name: StringComparison
  action: Assert
  inputs:
    stringEquals: '2.1.1'
    value: '{{ validate.ApplicationVersion.outputs.stdout }}'
```

**Exemple de saisie : comparaisons Regex à l'aide de l'opérateur de `patternMatches` comparaison**

Ces exemples sont tous évalués à`true`.

```
- name: Letters only
  action: Assert
  inputs:
    patternMatches: '^[a-zA-Z]+$'
    value: 'ThisIsOnlyLetters'

- name: Letters and spaces only
  action: Assert
  inputs:
    patternMatches: '^[a-zA-Z\s]+$'
    value: 'This text contains spaces'
  
- name: Numbers only
  action: Assert
  inputs:
    patternMatches: '^[0-9]+$'
    value: '1234567890'
```

**Exemple d'entrée : comparaisons imbriquées avec des opérateurs logiques et des variables chaînées**

L'exemple suivant illustre des comparaisons imbriquées avec des opérateurs logiques qui utilisent des comparaisons avec des variables chaînées. `Assert`Évalue `true` si l'une des conditions suivantes est vraie :
+ Le `ApplicationVersion` est supérieur à `2.0` et `CPUArchitecture` égal`arm64`.
+ Les `CPUArchitecture` égaux`x86_64`.

```
- name: NestedComparisons
  action: Assert
  inputs:
    or: # <- first level deep
      - and: # <- second level deep
          - numberGreaterThan: 2.0 # <- third level deep
            value: '{{ validate.ApplicationVersion.outputs.stdout }}'
          - stringEquals: 'arm64'
            value: '{{ validate.CPUArchitecture.outputs.stdout }}'
      - stringEquals: 'x86_64'
        value: '{{ validate.CPUArchitecture.outputs.stdout }}'
```

**Sortie** :

Le résultat d'une `Assert` est le succès ou l'échec de l'étape.

### ExecuteBash (Linux, macOS)
<a name="action-modules-executebash"></a>

Le module **ExecuteBash**d'action vous permet d'exécuter des scripts bash avec du code/des commandes shell intégrés. Ce module est compatible avec Linux. 

Toutes les commandes et instructions que vous spécifiez dans le bloc de commandes sont converties dans un fichier (par exemple`input.sh`) et exécutées avec le shell bash. Le résultat de l'exécution du fichier shell est le code de sortie de l'étape. 

Le **ExecuteBash**module gère les redémarrages du système si le script se termine avec un code de sortie de. `194` Lorsqu'elle est lancée, l'application exécute l'une des actions suivantes :
+ L'application transmet le code de sortie à l'appelant s'il est exécuté par l'agent Systems Manager. L'agent Systems Manager gère le redémarrage du système et exécute la même étape que celle à l'origine du redémarrage, comme décrit dans la section [Redémarrage d'une instance gérée à partir de scripts](https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-reboot.html).
+ L'application enregistre le courant`executionstate`, configure un déclencheur de redémarrage pour réexécuter l'application et redémarre le système.

Après le redémarrage du système, l'application exécute la même étape que celle à l'origine du redémarrage. Si vous avez besoin de cette fonctionnalité, vous devez écrire des scripts idempotents capables de gérer plusieurs invocations de la même commande shell.


**Input**  

| Nom de la touche | Description | Type | Obligatoire | 
| --- | --- | --- | --- | 
| commands | Contient une liste d'instructions ou de commandes à exécuter conformément à la syntaxe bash. Le YAML multiligne est autorisé. | List | Oui | 

**Exemple de saisie : avant et après un redémarrage**

```
name: ExitCode194Example
description: This shows how the exit code can be used to restart a system with ExecuteBash
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: RestartTrigger
        action: ExecuteBash
        inputs:
          commands:
            - |
              REBOOT_INDICATOR=/var/tmp/reboot-indicator
              if [ -f "${REBOOT_INDICATOR}" ]; then
                echo 'The reboot file exists. Deleting it and exiting with success.'
                rm "${REBOOT_INDICATOR}"
                exit 0
              fi
              echo 'The reboot file does not exist. Creating it and triggering a restart.'
              touch "${REBOOT_INDICATOR}"
              exit 194
```


**Output**  

| Champ | Description | Type | 
| --- | --- | --- | 
| stdout | Sortie standard de l'exécution des commandes. | chaîne | 

Si vous lancez un redémarrage et que vous renvoyez le code de sortie dans le `194` cadre du module d'action, la compilation reprendra à l'étape du module d'action qui a initié le redémarrage. Si vous démarrez un redémarrage sans le code de sortie, le processus de génération risque d'échouer.

**Exemple de sortie : avant le redémarrage (première fois via le document)**

```
{
	“stdout”: “The reboot file does not exist. Creating it and triggering a restart."
}
```

**Exemple de sortie : après le redémarrage, (deuxième fois dans le document)**

```
{
	“stdout”: “The reboot file exists. Deleting it and exiting with success."
}
```

### ExecuteBinary (Linux, Windows, macOS)
<a name="action-modules-executebinary"></a>

Le module **ExecuteBinary**d'action vous permet d'exécuter des fichiers binaires avec une liste d'arguments de ligne de commande.

Le **ExecuteBinary**module gère les redémarrages du système si le fichier binaire se termine avec un code de sortie `194` (Linux) ou `3010` (Windows). Dans ce cas, l'application exécute l'une des actions suivantes :
+ L'application transmet le code de sortie à l'appelant s'il est exécuté par l'agent Systems Manager. L'agent Systems Manager gère le redémarrage du système et exécute la même étape que celle qui a initié le redémarrage, comme décrit dans [Redémarrage d'une instance gérée à partir](https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-reboot.html) de scripts.
+ L'application enregistre le courant`executionstate`, configure un déclencheur de redémarrage pour réexécuter l'application et redémarre le système.

Après le redémarrage du système, l'application exécute la même étape que celle à l'origine du redémarrage. Si vous avez besoin de cette fonctionnalité, vous devez écrire des scripts idempotents capables de gérer plusieurs invocations de la même commande shell.


**Input**  

| Nom de la touche | Description | Type | Obligatoire | 
| --- | --- | --- | --- | 
| path | Le chemin d'accès au fichier binaire à exécuter. | String | Oui | 
| arguments | Contient une liste d'arguments de ligne de commande à utiliser lors de l'exécution du binaire. | Liste de chaînes | Non | 

**Exemple de saisie : installer .NET**

```
  - name: "InstallDotnet"
    action: ExecuteBinary
    inputs:
      path: C:\PathTo\dotnet_installer.exe
      arguments:
        - /qb
        - /norestart
```


**Output**  

| Champ | Description | Type | 
| --- | --- | --- | 
| stdout | Sortie standard de l'exécution des commandes. | chaîne | 

**Exemple de sortie**

```
{
	"stdout": "success"
}
```

### ExecuteDocument (Linux, Windows, macOS)
<a name="action-modules-executedocument"></a>

Le module **ExecuteDocument**d'action ajoute la prise en charge des documents de composants imbriqués, en exécutant plusieurs documents de composants à partir d'un seul document. AWSTOE valide le document transmis dans le paramètre d'entrée lors de l'exécution.

**Restrictions**
+ Ce module d'action ne s'exécute qu'une seule fois, sans qu'aucune nouvelle tentative ne soit autorisée et qu'aucune option ne permet de définir des limites de délai d'expiration. **ExecuteDocument**définit les valeurs par défaut suivantes et renvoie une erreur si vous essayez de les modifier.
  + `timeoutSeconds`: -1
  + `maxAttempts` : 1
**Note**  
Vous pouvez laisser ces valeurs vides et AWSTOE utiliser les valeurs par défaut.
+ L'imbrication de documents est autorisée, jusqu'à trois niveaux de profondeur, mais pas plus. Trois niveaux d'imbrication se traduisent par quatre niveaux de document, le niveau supérieur n'étant pas imbriqué. Dans ce scénario, le document de niveau le plus bas ne doit appeler aucun autre document.
+ L'exécution cyclique des documents des composants n'est pas autorisée. Tout document qui s'appelle lui-même en dehors d'une construction en boucle, ou qui appelle un autre document situé plus haut dans la chaîne d'exécution actuelle, lance un cycle qui peut entraîner une boucle sans fin. Lorsqu'il AWSTOE détecte une exécution cyclique, il arrête l'exécution et enregistre l'échec.

![\[Restrictions de niveau d'imbrication pour le module ExecuteDocument d'action.\]](http://docs.aws.amazon.com/fr_fr/imagebuilder/latest/userguide/images/toe-component-document-nesting.png)


Si un document de composant essaie de s'exécuter lui-même ou d'exécuter l'un des documents de composant situés plus haut dans la chaîne d'exécution en cours, l'exécution échoue.

**Entrée**


| Nom de la touche | Description | Type | Obligatoire | 
| --- | --- | --- | --- | 
| document |  Chemin du document du composant. Les options valides sont les suivantes : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/imagebuilder/latest/userguide/toe-action-modules.html)  | String | Oui | 
| document-s3-bucket-owner |  L'ID de compte du propriétaire du compartiment S3 pour le compartiment S3 dans lequel les documents des composants sont stockés. *(Recommandé si vous utilisez S3 URIs dans le document de votre composant.)*  | String | Non | 
| phases |  Phases à exécuter dans le document du composant, exprimées sous forme de liste séparée par des virgules. Si aucune phase n'est spécifiée, toutes les phases sont exécutées.  | String | Non | 
| parameters |  Paramètres d'entrée transmis au document du composant lors de l'exécution sous forme de paires clé-valeur.  | Liste des cartes de paramètres | Non | 

**Entrée de mappage de paramètres**


| Nom de la touche | Description | Type | Obligatoire | 
| --- | --- | --- | --- | 
| name |  Nom du paramètre d'entrée à transmettre au document du composant que le module **ExecuteDocument**d'action exécute.  | String | Oui | 
| value |  La valeur du paramètre d'entrée.  | String | Oui | 

**Exemples de saisie**  
Les exemples suivants montrent des variantes des entrées pour le document de votre composant, en fonction de votre chemin d'installation.

**Exemple de saisie : chemin du document local**

```
# main.yaml
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: ExecuteNestedDocument
        action: ExecuteDocument
        inputs:
          document: Sample-1.yaml
          phases: build
          parameters:
            - name: parameter-1
              value: value-1
            - name: parameter-2
              value: value-2
```

**Exemple de saisie : URI S3 en tant que chemin de document**

```
# main.yaml
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: ExecuteNestedDocument
        action: ExecuteDocument
        inputs:
          document: s3://my-bucket/Sample-1.yaml
          document-s3-bucket-owner: 123456789012
          phases: build,validate
          parameters:
            - name: parameter-1
              value: value-1
            - name: parameter-2
              value: value-2
```

**Exemple de saisie : ARN du composant EC2 Image Builder en tant que chemin de document**

```
# main.yaml
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: ExecuteNestedDocument
        action: ExecuteDocument
        inputs:
          document: arn:aws:imagebuilder:us-west-2:aws:component/Sample-Test/1.0.0
          phases: test
          parameters:
            - name: parameter-1
              value: value-1
            - name: parameter-2
              value: value-2
```

**Utilisation d'une ForEach boucle pour exécuter des documents**

```
# main.yaml
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: ExecuteNestedDocument
        action: ExecuteDocument
        loop:
          name: 'myForEachLoop'
          forEach:
            - Sample-1.yaml
            - Sample-2.yaml
        inputs:
          document: "{{myForEachLoop.value}}"
          phases: test
          parameters:
            - name: parameter-1
              value: value-1
            - name: parameter-2
              value: value-2
```

**Utilisation d'une boucle For pour exécuter des documents**

```
# main.yaml
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: ExecuteNestedDocument
        action: ExecuteDocument
        loop:
          name: 'myForLoop'
          for:
            start: 1
            end: 2
            updateBy: 1
        inputs:
          document: "Sample-{{myForLoop.value}}.yaml"
          phases: test
          parameters:
            - name: parameter-1
              value: value-1
            - name: parameter-2
              value: value-2
```

**Output**  
AWSTOE crée un fichier de sortie appelé à `detailedoutput.json` chaque fois qu'il s'exécute. Le fichier contient des détails sur chaque phase et étape de chaque document composant invoqué pendant son exécution. Pour le module **ExecuteDocument**d'action, vous trouverez un bref résumé de l'exécution dans le `outputs` champ, ainsi que des détails sur les phases, les étapes et les documents qu'il exécute dans le`detailedOutput`.

```
{
	\"executedStepCount\":1,\"executionId\":\"97054e22-06cc-11ec-9b14-acde48001122\",\"failedStepCount\":0,\"failureMessage\":\"\",\"ignoredFailedStepCount\":0,\"logUrl\":\"\",\"status\":\"success\"
}",
```

L'objet récapitulatif de sortie de chaque document de composant contient les détails suivants, comme indiqué ici, avec des exemples de valeurs :
+ executedStepCount« :1
+ « ID d'exécution » « 12345a67-89bc-01de-2f34-abcd56789012 »
+ failedStepCount« 0 : 0
+ « Message d'échec » : « »
+ « ignoredFailedStep Compter » : 0
+ « URL du journal » : « »
+ « statut » « succès »

**Exemple de sortie**  
L'exemple suivant montre la sortie du module **ExecuteDocument**d'action lorsqu'une exécution imbriquée se produit. Dans cet exemple, le document du `main.yaml` composant exécute correctement le document du `Sample-1.yaml` composant.

```
{
    "executionId": "12345a67-89bc-01de-2f34-abcd56789012",
    "status": "success",
    "startTime": "2021-08-26T17:20:31-07:00",
    "endTime": "2021-08-26T17:20:31-07:00",
    "failureMessage": "",
    "documents": [
        {
            "name": "",
            "filePath": "main.yaml",
            "status": "success",
            "description": "",
            "startTime": "2021-08-26T17:20:31-07:00",
            "endTime": "2021-08-26T17:20:31-07:00",
            "failureMessage": "",
            "phases": [
                {
                    "name": "build",
                    "status": "success",
                    "startTime": "2021-08-26T17:20:31-07:00",
                    "endTime": "2021-08-26T17:20:31-07:00",
                    "failureMessage": "",
                    "steps": [
                        {
                            "name": "ExecuteNestedDocument",
                            "status": "success",
                            "failureMessage": "",
                            "timeoutSeconds": -1,
                            "onFailure": "Abort",
                            "maxAttempts": 1,
                            "action": "ExecuteDocument",
                            "startTime": "2021-08-26T17:20:31-07:00",
                            "endTime": "2021-08-26T17:20:31-07:00",
                            "inputs": "[{\"document\":\"Sample-1.yaml\",\"document-s3-bucket-owner\":\"\",\"phases\":\"\",\"parameters\":null}]",
                            "outputs": "[{\"executedStepCount\":1,\"executionId\":\"98765f43-21ed-09cb-8a76-fedc54321098\",\"failedStepCount\":0,\"failureMessage\":\"\",\"ignoredFailedStepCount\":0,\"logUrl\":\"\",\"status\":\"success\"}]",
                            "loop": null,
                            "detailedOutput": [
                                {
                                    "executionId": "98765f43-21ed-09cb-8a76-fedc54321098",
                                    "status": "success",
                                    "startTime": "2021-08-26T17:20:31-07:00",
                                    "endTime": "2021-08-26T17:20:31-07:00",
                                    "failureMessage": "",
                                    "documents": [
                                        {
                                            "name": "",
                                            "filePath": "Sample-1.yaml",
                                            "status": "success",
                                            "description": "",
                                            "startTime": "2021-08-26T17:20:31-07:00",
                                            "endTime": "2021-08-26T17:20:31-07:00",
                                            "failureMessage": "",
                                            "phases": [
                                                {
                                                    "name": "build",
                                                    "status": "success",
                                                    "startTime": "2021-08-26T17:20:31-07:00",
                                                    "endTime": "2021-08-26T17:20:31-07:00",
                                                    "failureMessage": "",
                                                    "steps": [
                                                        {
                                                            "name": "ExecuteBashStep",
                                                            "status": "success",
                                                            "failureMessage": "",
                                                            "timeoutSeconds": 7200,
                                                            "onFailure": "Abort",
                                                            "maxAttempts": 1,
                                                            "action": "ExecuteBash",
                                                            "startTime": "2021-08-26T17:20:31-07:00",
                                                            "endTime": "2021-08-26T17:20:31-07:00",
                                                            "inputs": "[{\"commands\":[\"echo \\\"Hello World!\\\"\"]}]",
                                                            "outputs": "[{\"stdout\":\"Hello World!\"}]",
                                                            "loop": null,
                                                            "detailedOutput": null
                                                        }]
                                                }]
                                        }]
                                }]
                        }]
                
                }]
        }]
}
```

### ExecutePowerShell (Fenêtres)
<a name="action-modules-executepowershell"></a>

Le module **ExecutePowerShell**d'action vous permet d'exécuter des PowerShell scripts avec du code/des commandes shell intégrés. Ce module prend en charge la plate-forme Windows et Windows PowerShell.

Tous les éléments commands/instructions spécifiés dans le bloc de commandes sont convertis en un fichier de script (par exemple,`input.ps1`) et exécutés sous WindowsPowerShell. Le résultat de l'exécution du fichier shell est le code de sortie.

Le **ExecutePowerShell**module gère les redémarrages du système si la commande shell se termine avec un code de sortie de. `3010` Lorsqu'elle est lancée, l'application exécute l'une des actions suivantes : 
+ Transmet le code de sortie à l'appelant s'il est exécuté par l'agent Systems Manager. L'agent Systems Manager gère le redémarrage du système et exécute la même étape que celle à l'origine du redémarrage, comme décrit dans la section [Redémarrage d'une instance gérée à partir de scripts](https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-reboot.html).
+ Enregistre le courant`executionstate`, configure un déclencheur de redémarrage pour réexécuter l'application et redémarre le système.

Après le redémarrage du système, l'application exécute la même étape que celle à l'origine du redémarrage. Si vous avez besoin de cette fonctionnalité, vous devez écrire des scripts idempotents capables de gérer plusieurs invocations de la même commande shell.


**Input**  

| Nom de la touche | Description | Type | Obligatoire | 
| --- | --- | --- | --- | 
| commands | Contient une liste d'instructions ou de commandes à exécuter conformément à PowerShell la syntaxe. Le YAML multiligne est autorisé. | Liste de chaînes | Oui. Doit spécifier`file`, `commands` ou pas les deux.  | 
| file | Contient le chemin d'accès à un fichier de PowerShell script. PowerShell sera exécuté sur ce fichier en utilisant l'argument de ligne de -file commande. Le chemin doit pointer vers un .ps1 fichier. | String | Oui. Doit spécifier`file`, `commands` ou pas les deux.  | 

**Exemple de saisie : avant et après un redémarrage**

```
name: ExitCode3010Example
description: This shows how the exit code can be used to restart a system with ExecutePowerShell
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: RestartTrigger
        action: ExecutePowerShell
        inputs:
          commands:
            - |
              $rebootIndicator = Join-Path -Path $env:SystemDrive -ChildPath 'reboot-indicator'
              if (Test-Path -Path $rebootIndicator) {
                Write-Host 'The reboot file exists. Deleting it and exiting with success.'
                Remove-Item -Path $rebootIndicator -Force | Out-Null
                [System.Environment]::Exit(0)
              }
              Write-Host 'The reboot file does not exist. Creating it and triggering a restart.'
              New-Item -Path $rebootIndicator -ItemType File | Out-Null
              [System.Environment]::Exit(3010)
```


**Output**  

| Champ | Description | Type | 
| --- | --- | --- | 
| stdout | Sortie standard de l'exécution des commandes. | chaîne | 

Si vous exécutez un redémarrage et que vous renvoyez le code de sortie dans le `3010` cadre du module d'action, la compilation reprendra à l'étape du module d'action qui a initié le redémarrage. Si vous redémarrez sans le code de sortie, le processus de génération risque d'échouer.

**Exemple de sortie : avant le redémarrage (première fois via le document)**

```
{
	“stdout”: “The reboot file does not exist. Creating it and triggering a restart."
}
```

**Exemple de sortie : après le redémarrage, (deuxième fois dans le document)**

```
{
	“stdout”: “The reboot file exists. Deleting it and exiting with success."
}
```

## Modules de téléchargement et de téléversement de fichiers
<a name="action-modules-download-upload"></a>

La section suivante contient des détails sur les modules d'action qui chargent ou téléchargent des fichiers.

**Topics**
+ [Téléchargement de S3 (Linux, Windows, macOS)](#action-modules-s3download)
+ [Téléchargement en mode S3 (Linux, Windows, macOS)](#action-modules-s3upload)
+ [WebDownload (Linux, Windows, macOS)](#action-modules-webdownload)

### Téléchargement de S3 (Linux, Windows, macOS)
<a name="action-modules-s3download"></a>

Avec le module `S3Download` d'action, vous pouvez télécharger un objet Amazon S3, ou un ensemble d'objets, dans un fichier ou un dossier local que vous spécifiez avec le `destination` chemin. Si un fichier existe déjà à l'emplacement spécifié et que l'`overwrite`indicateur est défini sur true, le fichier `S3Download` est remplacé.

Votre `source` position peut pointer vers un objet spécifique dans Amazon S3, ou vous pouvez utiliser un préfixe de clé avec un astérisque (`*`) pour télécharger un ensemble d'objets correspondant au chemin du préfixe clé. Lorsque vous spécifiez un préfixe clé dans votre `source` position, le module `S3Download` d'action télécharge tout ce qui correspond au préfixe (fichiers et dossiers inclus). Assurez-vous que le préfixe clé se termine par une barre oblique, suivie d'un astérisque (`/*`), afin de télécharger tout ce qui correspond au préfixe. Par exemple : `s3://my-bucket/my-folder/*`.

Si l'`S3Download`action pour un préfixe de clé spécifié échoue lors d'un téléchargement, le contenu du dossier n'est pas rétabli dans son état antérieur à l'échec. Le dossier de destination reste tel qu'il était au moment de l'échec.

**Cas d’utilisation pris en charge**  
Le module `S3Download` d'action prend en charge les cas d'utilisation suivants :
+ L'objet Amazon S3 est téléchargé dans un dossier local, comme indiqué dans le chemin de téléchargement.
+ Les objets Amazon S3 (avec un préfixe clé dans le chemin du fichier Amazon S3) sont téléchargés dans le dossier local spécifié, qui copie de manière récursive tous les objets Amazon S3 correspondant au préfixe clé dans le dossier local.

**Exigences relatives à l'IAM**  
Le rôle IAM que vous associez à votre profil d'instance doit être autorisé à exécuter le module `S3Download` d'action. Les politiques IAM suivantes doivent être associées au rôle IAM associé au profil d'instance :
+ **Fichier unique** : `s3:GetObject` contre le bucket/object (par exemple,`arn:aws:s3:::BucketName/*`).
+ **Plusieurs fichiers** : `s3:ListBucket` contre le bucket/object (par exemple,`arn:aws:s3:::BucketName`) et `s3:GetObject` contre le bucket/object (par exemple,`arn:aws:s3:::BucketName/*`).


**Input**  

|  Clé  |  Description  |  Type  |  Obligatoire  |  Par défaut  | 
| --- | --- | --- | --- | --- | 
|  `source`  |  Le compartiment Amazon S3 qui est la source de votre téléchargement. Vous pouvez spécifier le chemin d'accès à un objet spécifique ou utiliser un préfixe de clé se terminant par une barre oblique suivie d'un astérisque (`/*`) pour télécharger un ensemble d'objets correspondant au préfixe de clé.  |  String  |  Oui  |  N/A  | 
|  `destination`  |  Le chemin local où les objets Amazon S3 sont téléchargés. Pour télécharger un seul fichier, vous devez spécifier le nom du fichier dans le chemin. Par exemple, `/myfolder/package.zip`.  |  String  |  Oui  |  N/A  | 
|  `expectedBucketOwner`  |  ID de compte propriétaire attendu du bucket indiqué dans le `source` chemin. Nous vous recommandons de vérifier la propriété du compartiment Amazon S3 spécifié dans la source.  |  String  |  Non  |  N/A  | 
|  `overwrite`  |  Lorsqu'il est défini sur true, si un fichier du même nom existe déjà dans le dossier de destination pour le chemin local spécifié, le fichier de téléchargement remplace le fichier local. Lorsqu'il est défini sur false, le fichier existant sur le système local est protégé contre le remplacement et le module d'action échoue en raison d'une erreur de téléchargement. Par exemple, `Error: S3Download: File already exists and "overwrite" property for "destination" file is set to false. Cannot download.`  |  Booléen  |  Non  |  true  | 

**Note**  
Dans les exemples suivants, le chemin du dossier Windows peut être remplacé par un chemin Linux. Par exemple, `C:\myfolder\package.zip` peut être remplacé par`/myfolder/package.zip`.

**Exemple de saisie : copier un objet Amazon S3 dans un fichier local**  
L'exemple suivant montre comment copier un objet Amazon S3 dans un fichier local.

```
  - name: DownloadMyFile
    action: S3Download
    inputs:
      - source: s3://amzn-s3-demo-source-bucket/path/to/package.zip
        destination: C:\myfolder\package.zip
        expectedBucketOwner: 123456789022
        overwrite: false
      - source: s3://amzn-s3-demo-source-bucket/path/to/package.zip
        destination: C:\myfolder\package.zip
        expectedBucketOwner: 123456789022
        overwrite: true
      - source: s3://amzn-s3-demo-source-bucket/path/to/package.zip
        destination: C:\myfolder\package.zip
        expectedBucketOwner: 123456789022
```

**Exemple de saisie : copier tous les objets Amazon S3 dans un compartiment Amazon S3 avec un préfixe de clé dans un dossier local**  
L'exemple suivant montre comment copier tous les objets Amazon S3 d'un compartiment Amazon S3 avec le préfixe key dans un dossier local. Amazon S3 n'a aucune notion de dossier. Par conséquent, tous les objets correspondant au préfixe de clé sont copiés. Le nombre maximum d'objets pouvant être téléchargés est de 1 000.

```
  - name: MyS3DownloadKeyprefix
    action: S3Download
    maxAttempts: 3
    inputs:
      - source: s3://amzn-s3-demo-source-bucket/path/to/*
        destination: C:\myfolder\
        expectedBucketOwner: 123456789022
        overwrite: false
      - source: s3://amzn-s3-demo-source-bucket/path/to/*
        destination: C:\myfolder\
        expectedBucketOwner: 123456789022
        overwrite: true
      - source: s3://amzn-s3-demo-source-bucket/path/to/*
        destination: C:\myfolder\
        expectedBucketOwner: 123456789022
```

**Output**  
Aucune.

### Téléchargement en mode S3 (Linux, Windows, macOS)
<a name="action-modules-s3upload"></a>

Avec le module d'action **S3Upload**, vous pouvez télécharger un fichier depuis un fichier ou un dossier source vers un emplacement Amazon S3. Vous pouvez utiliser un caractère générique (`*`) dans le chemin indiqué pour votre emplacement source afin de télécharger tous les fichiers dont le chemin correspond au modèle générique.

Si l'action récursive **S3Upload** échoue, tous les fichiers déjà chargés resteront dans le compartiment Amazon S3 de destination.

**Cas d’utilisation pris en charge**
+ Fichier local vers un objet Amazon S3.
+ Fichiers locaux dans un dossier (avec caractère générique) avec le préfixe de clé Amazon S3.
+ Copiez le dossier local (doit avoir été `recurse` défini sur`true`) dans le préfixe de clé Amazon S3.

**Exigences relatives à l'IAM**  
Le rôle IAM que vous associez à votre profil d'instance doit être autorisé à exécuter le module `S3Upload` d'action. La politique IAM suivante doit être attachée au rôle IAM associé au profil d'instance. La politique doit accorder `s3:PutObject` des autorisations au compartiment Amazon S3 cible. Par exemple, `arn:aws:s3:::BucketName/*`).


**Input**  

|  Clé  |  Description  |  Type  |  Obligatoire  |  Par défaut  | 
| --- | --- | --- | --- | --- | 
|  `source`  |  Le chemin local d'où files/folders provient la source. `source`Supporte un caractère générique astérisque ()`*`.  |  String  |  Oui  |  N/A  | 
|  `destination`  |  Le chemin du compartiment Amazon S3 de destination où les fichiers/dossiers source sont chargés.  |  String  |  Oui  |  N/A  | 
|  `recurse`  |  Lorsqu'il est défini sur`true`, exécute **S3Upload** de manière récursive.  |  String  |  Non  |  `false`  | 
|  `expectedBucketOwner`  |  L'ID de compte propriétaire attendu pour le compartiment Amazon S3 spécifié dans le chemin de destination. Nous vous recommandons de vérifier la propriété du compartiment Amazon S3 spécifié dans la destination.  |  String  |  Non  |  N/A  | 

**Exemple de saisie : copie d'un fichier local dans un objet Amazon S3**  
L'exemple suivant montre comment copier un fichier local dans un objet Amazon S3.

```
  - name: MyS3UploadFile
    action: S3Upload
    onFailure: Abort
    maxAttempts: 3
    inputs:
      - source: C:\myfolder\package.zip
        destination: s3://amzn-s3-demo-destination-bucket/path/to/package.zip
        expectedBucketOwner: 123456789022
```

**Exemple de saisie : copier tous les fichiers d'un dossier local dans un compartiment Amazon S3 avec le préfixe key**  
L'exemple suivant montre comment copier tous les fichiers du dossier local dans un compartiment Amazon S3 avec le préfixe key. Cet exemple ne copie pas les sous-dossiers ni leur contenu car cela n'`recurse`est pas spécifié, et sa valeur par défaut est. `false`

```
  - name: MyS3UploadMultipleFiles
    action: S3Upload
    onFailure: Abort
    maxAttempts: 3
    inputs:
      - source: C:\myfolder\*
        destination: s3://amzn-s3-demo-destination-bucket/path/to/
        expectedBucketOwner: 123456789022
```

**Exemple de saisie : copie récursive de tous les fichiers et dossiers d'un dossier local vers un compartiment Amazon S3**  
L'exemple suivant montre comment copier tous les fichiers et dossiers de manière récursive d'un dossier local vers un compartiment Amazon S3 avec le préfixe key.

```
  - name: MyS3UploadFolder
    action: S3Upload
    onFailure: Abort
    maxAttempts: 3
    inputs:
      - source: C:\myfolder\*
        destination: s3://amzn-s3-demo-destination-bucket/path/to/
        recurse: true
        expectedBucketOwner: 123456789022
```

**Output**  
Aucune.

### WebDownload (Linux, Windows, macOS)
<a name="action-modules-webdownload"></a>

Le module **WebDownload**d'action vous permet de télécharger des fichiers et des ressources depuis un emplacement distant via le HTTP/HTTPS protocole (le protocole *HTTPS est recommandé*). Il n'y a aucune limite quant au nombre ou à la taille des téléchargements. Ce module gère la logique des nouvelles tentatives et des retards exponentiels. 

Chaque opération de téléchargement dispose d'un maximum de 5 tentatives pour réussir en fonction des entrées de l'utilisateur. Ces tentatives sont différentes de celles spécifiées dans le `maxAttempts` champ du document`steps`, qui sont liées à des défaillances du module d'action.

Ce module d'action gère implicitement les redirections. Tous les codes d'état HTTP, à l'exception de`200`, génèrent une erreur.


**Input**  

| Nom de la touche | Description | Type | Obligatoire | Par défaut | 
| --- | --- | --- | --- | --- | 
| source |  HTTP/HTTPS URL valide (HTTPS est recommandé), conforme à la norme RFC 3986. Les expressions de chaînage sont autorisées. | String |  Oui  | N/A | 
| destination | Un chemin de fichier ou de dossier absolu ou relatif sur le système local. Les chemins de dossier doivent se terminer par/. S'ils ne se terminent pas par/, ils seront traités comme des chemins de fichiers. Le module crée tout fichier ou dossier requis pour des téléchargements réussis. Les expressions de chaînage sont autorisées. | String | Oui | N/A | 
| overwrite | Lorsque cette option est activée, elle remplace tous les fichiers existants sur le système local par le fichier ou la ressource téléchargé. Lorsque cette option n'est pas activée, aucun fichier existant sur le système local n'est remplacé et le module d'action échoue avec une erreur. Lorsque le remplacement est activé et que la somme de contrôle et l'algorithme sont spécifiés, le module d'action télécharge le fichier uniquement si la somme de contrôle et le hachage des fichiers préexistants ne correspondent pas.  | Booléen | Non | true | 
| checksum | Lorsque vous spécifiez la somme de contrôle, elle est comparée au hachage du fichier téléchargé généré avec l'algorithme fourni. Pour que la vérification des fichiers soit activée, la somme de contrôle et l'algorithme doivent être fournis. Les expressions de chaînage sont autorisées.  | String | Non | N/A | 
| algorithm | Algorithme utilisé pour calculer le checksum. Les options sont MD5 SHA1, SHA256, et SHA512. Pour que la vérification des fichiers soit activée, la somme de contrôle et l'algorithme doivent être fournis. Les expressions de chaînage sont autorisées.  | String | Non | N/A | 
| ignoreCertificateErrors | La validation du certificat SSL est ignorée lorsqu'elle est activée. | Booléen | Non | false | 


**Output**  

| Nom de la touche | Description | Type | 
| --- | --- | --- | 
| destination | Chaîne de nouvelle ligne délimitée par des caractères qui indique le chemin de destination où sont stockés les fichiers ou les ressources téléchargés. | String | 

**Exemple de saisie : téléchargement d'un fichier distant vers une destination locale**

```
  - name: DownloadRemoteFile
    action: WebDownload
    maxAttempts: 3
    inputs:
      - source: https://testdomain/path/to/java14.zip
        destination: C:\testfolder\package.zip
```

**Sortie** :

```
{
	"destination": "C:\\testfolder\\package.zip"
}
```

**Exemple de saisie : téléchargement de plusieurs fichiers distants vers plusieurs destinations locales**

```
  - name: DownloadRemoteFiles
    action: WebDownload
    maxAttempts: 3
    inputs:
      - source: https://testdomain/path/to/java14.zip
        destination: /tmp/java14_renamed.zip
      - source: https://testdomain/path/to/java14.zip
        destination: /tmp/create_new_folder_and_add_java14_as_zip/
```

**Sortie** :

```
{
	"destination": "/tmp/create_new_folder/java14_renamed.zip\n/tmp/create_new_folder_and_add_java14_as_zip/java14.zip"
}
```

**Exemple de saisie : téléchargement d'un fichier distant sans remplacer la destination locale et téléchargement d'un autre fichier distant avec vérification du fichier**

```
  - name: DownloadRemoteMultipleProperties
    action: WebDownload
    maxAttempts: 3
    inputs:
      - source: https://testdomain/path/to/java14.zip
        destination: C:\create_new_folder\java14_renamed.zip
        overwrite: false
      - source: https://testdomain/path/to/java14.zip
        destination: C:\create_new_folder_and_add_java14_as_zip\
        checksum: ac68bbf921d953d1cfab916cb6120864
        algorithm: MD5
        overwrite: true
```

**Sortie** :

```
{
	"destination": "C:\\create_new_folder\\java14_renamed.zip\nC:\\create_new_folder_and_add_java14_as_zip\\java14.zip"
}
```

**Exemple de saisie : télécharger un fichier distant et ignorer la validation de la certification SSL**

```
  - name: DownloadRemoteIgnoreValidation
    action: WebDownload
    maxAttempts: 3
    inputs:
      - source: https://www.bad-ssl.com/resource
        destination: /tmp/downloads/
        ignoreCertificateErrors: true
```

**Sortie** :

```
{
	"destination": "/tmp/downloads/resource"
}
```

## Modules d'opérations du système de fichiers
<a name="action-modules-file-system-operations"></a>

La section suivante contient des informations détaillées sur les modules d'action qui exécutent des opérations sur le système de fichiers.

**Topics**
+ [AppendFile (Linux, Windows, macOS)](#action-modules-appendfile)
+ [CopyFile (Linux, Windows, macOS)](#action-modules-copyfile)
+ [CopyFolder (Linux, Windows, macOS)](#action-modules-copyfolder)
+ [CreateFile (Linux, Windows, macOS)](#action-modules-createfile)
+ [CreateFolder (Linux, Windows, macOS)](#action-modules-createfolder)
+ [CreateSymlink (Linux, Windows, macOS)](#action-modules-createsymlink)
+ [DeleteFile (Linux, Windows, macOS)](#action-modules-deletefile)
+ [DeleteFolder (Linux, Windows, macOS)](#action-modules-deletefolder)
+ [ListFiles (Linux, Windows, macOS)](#action-modules-listfiles)
+ [MoveFile (Linux, Windows, macOS)](#action-modules-movefile)
+ [MoveFolder (Linux, Windows, macOS)](#action-modules-movefolder)
+ [ReadFile (Linux, Windows, macOS)](#action-modules-readfile)
+ [SetFileEncoding (Linux, Windows, macOS)](#action-modules-setfileencoding)
+ [SetFileOwner (Linux, Windows, macOS)](#action-modules-setfileowner)
+ [SetFolderOwner (Linux, Windows, macOS)](#action-modules-setfolderowner)
+ [SetFilePermissions (Linux, Windows, macOS)](#action-modules-setfilepermissions)
+ [SetFolderPermissions (Linux, Windows, macOS)](#action-modules-setfolderpermissions)

### AppendFile (Linux, Windows, macOS)
<a name="action-modules-appendfile"></a>

Le module **AppendFile**d'action ajoute le contenu spécifié au contenu préexistant d'un fichier.

Si la valeur de codage de fichier est différente de la valeur d'encodage (`utf-8`) par défaut, vous pouvez spécifier la valeur de codage de fichier à l'aide de l'`encoding`option. Par défaut, `utf-16` et `utf-32` sont supposés utiliser le codage little-endian. 

Le module d'action renvoie une erreur dans les cas suivants :
+ Le fichier spécifié n'existe pas au moment de l'exécution.
+ Vous n'êtes pas autorisé à écrire pour modifier le contenu du fichier.
+ Le module rencontre une erreur lors de l'opération sur le fichier.


**Input**  

| Nom de la touche | Description | Type | Obligatoire | Valeur par défaut | Valeurs acceptables | Pris en charge sur toutes les plateformes | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Le chemin du fichier. | String | Oui | N/A | N/A | Oui | 
| content | Le contenu à ajouter au fichier. | String | Non | Chaîne vide | N/A | Oui | 
| encoding | La norme d'encodage. | String | Non | utf8 | utf8,utf-8,utf16,utf-16,utf16-LE, utf-16-LE utf16-BEutf-16-BE,utf32,utf-32,utf32-LE,utf-32-LE,utf32-BE, et utf-32-BE. La valeur de l'option de codage ne distingue pas les majuscules et minuscules. | Oui | 

**Exemple de saisie : ajout d'un fichier sans encodage (Linux)**

```
  - name: AppendingFileWithOutEncodingLinux
    action: AppendFile
    inputs:
      - path: ./Sample.txt
        content: "The string to be appended to the file"
```

**Exemple de saisie : ajout d'un fichier sans encodage (Windows)**

```
  - name: AppendingFileWithOutEncodingWindows
    action: AppendFile
    inputs:
      - path: C:\MyFolder\MyFile.txt
        content: "The string to be appended to the file"
```

**Exemple de saisie : ajout d'un fichier avec encodage (Linux)**

```
  - name: AppendingFileWithEncodingLinux
    action: AppendFile
    inputs:
      - path: /FolderName/SampleFile.txt
        content: "The string to be appended to the file"
        encoding: UTF-32
```

**Exemple de saisie : ajout d'un fichier avec encodage (Windows)**

```
  - name: AppendingFileWithEncodingWindows
    action: AppendFile
    inputs:
      - path: C:\MyFolderName\SampleFile.txt
        content: "The string to be appended to the file"
        encoding: UTF-32
```

**Exemple de saisie : ajouter un fichier avec une chaîne vide (Linux)**

```
  - name: AppendingEmptyStringLinux
    action: AppendFile
    inputs:
      - path: /FolderName/SampleFile.txt
```

**Exemple de saisie : ajouter un fichier avec une chaîne vide (Windows)**

```
  - name: AppendingEmptyStringWindows
    action: AppendFile
    inputs:
      - path: C:\MyFolderName\SampleFile.txt
```

**Output**  
Aucune.

### CopyFile (Linux, Windows, macOS)
<a name="action-modules-copyfile"></a>

Le module **CopyFile**d'action copie les fichiers de la source spécifiée vers la destination spécifiée. Par défaut, le module crée de manière récursive le dossier de destination s'il n'existe pas au moment de l'exécution.

Si un fichier portant le nom spécifié existe déjà dans le dossier spécifié, le module d'action remplace par défaut le fichier existant. Vous pouvez annuler ce comportement par défaut en définissant l'option de remplacement sur. `false` Lorsque l'option de remplacement est définie sur et qu'il existe déjà un fichier portant le nom spécifié à l'emplacement spécifié, le module d'action renvoie une erreur. `false` Cette option fonctionne de la même manière que la `cp` commande sous Linux, qui remplace par défaut.

Le nom du fichier source peut inclure un caractère générique (`*`). Les caractères génériques ne sont acceptés qu'après le dernier séparateur de chemin de fichier (`/`ou`\`). Si des caractères génériques sont inclus dans le nom du fichier source, tous les fichiers correspondant au caractère générique sont copiés dans le dossier de destination. Si vous souhaitez déplacer plusieurs fichiers à l'aide d'un caractère générique, la saisie de l'`destination`option doit se terminer par un séparateur de chemin de fichier (`/`ou`\`), ce qui indique que l'entrée de destination est un dossier.

Si le nom du fichier de destination est différent du nom du fichier source, vous pouvez spécifier le nom du fichier de destination à l'aide de l'`destination`option. Si vous ne spécifiez pas de nom de fichier de destination, le nom du fichier source est utilisé pour créer le fichier de destination. Tout texte qui suit le dernier séparateur de chemin de fichier (`/`ou`\`) est traité comme le nom du fichier. Si vous souhaitez utiliser le même nom de fichier que le fichier source, l'entrée de l'`destination`option doit se terminer par un séparateur de chemin de fichier (`/`ou`\`). 

Le module d'action renvoie une erreur dans les cas suivants :
+ Vous n'êtes pas autorisé à créer un fichier dans le dossier indiqué.
+ Les fichiers source n'existent pas au moment de l'exécution.
+ Il existe déjà un dossier portant le nom de fichier spécifié et l'`overwrite`option est définie sur`false`.
+ Le module d'action rencontre une erreur lors de l'exécution de l'opération.


**Input**  

| Nom de la touche | Description | Type | Obligatoire | Valeur par défaut | Valeurs acceptables | Pris en charge sur toutes les plateformes | 
| --- | --- | --- | --- | --- | --- | --- | 
| source | Le chemin du fichier source. | String | Oui | N/A | N/A | Oui | 
| destination | Le chemin du fichier de destination. | String | Oui | N/A | N/A | Oui | 
| overwrite | Lorsqu'il est défini sur false, les fichiers de destination ne seront pas remplacés s'il existe déjà un fichier portant le nom spécifié à l'emplacement spécifié. | Booléen | Non | true | N/A | Oui | 

**Exemple de saisie : copier un fichier (Linux)**

```
  - name: CopyingAFileLinux
    action: CopyFile
    inputs:
      - source: /Sample/MyFolder/Sample.txt
        destination: /MyFolder/destinationFile.txt
```

**Exemple de saisie : copier un fichier (Windows)**

```
  - name: CopyingAFileWindows
    action: CopyFile
    inputs:
      - source: C:\MyFolder\Sample.txt
        destination: C:\MyFolder\destinationFile.txt
```

**Exemple de saisie : copier un fichier en utilisant le nom du fichier source (Linux)**

```
  - name: CopyingFileWithSourceFileNameLinux
    action: CopyFile
    inputs:
      - source: /Sample/MyFolder/Sample.txt
        destination: /MyFolder/
```

**Exemple de saisie : copier un fichier en utilisant le nom du fichier source (Windows)**

```
  - name: CopyingFileWithSourceFileNameWindows
    action: CopyFile
    inputs:
      - source: C:\Sample\MyFolder\Sample.txt
        destination: C:\MyFolder\
```

**Exemple de saisie : copie d'un fichier à l'aide du caractère générique (Linux)**

```
  - name: CopyingFilesWithWildCardLinux
    action: CopyFile
    inputs:
      - source: /Sample/MyFolder/Sample*
        destination: /MyFolder/
```

**Exemple de saisie : copie d'un fichier à l'aide du caractère générique (Windows)**

```
  - name: CopyingFilesWithWildCardWindows
    action: CopyFile
    inputs:
      - source: C:\Sample\MyFolder\Sample*
        destination: C:\MyFolder\
```

**Exemple de saisie : copier un fichier sans le remplacer (Linux)**

```
  - name: CopyingFilesWithoutOverwriteLinux
    action: CopyFile
    inputs:
      - source: /Sample/MyFolder/Sample.txt
        destination: /MyFolder/destinationFile.txt
        overwrite: false
```

**Exemple de saisie : copier un fichier sans le remplacer (Windows)**

```
  - name: CopyingFilesWithoutOverwriteWindows
    action: CopyFile
    inputs:
      - source: C:\Sample\MyFolder\Sample.txt
        destination: C:\MyFolder\destinationFile.txt
        overwrite: false
```

**Output**  
Aucune.

### CopyFolder (Linux, Windows, macOS)
<a name="action-modules-copyfolder"></a>

Le module **CopyFolder**d'action copie un dossier de la source spécifiée vers la destination spécifiée. L'entrée de l'`source`option est le dossier à copier, et l'entrée de l'`destination`option est le dossier dans lequel le contenu du dossier source est copié. Par défaut, le module crée de manière récursive le dossier de destination s'il n'existe pas au moment de l'exécution.

Si un dossier portant le nom spécifié existe déjà dans le dossier spécifié, le module d'action remplace par défaut le dossier existant. Vous pouvez annuler ce comportement par défaut en définissant l'option de remplacement sur. `false` Lorsque l'option de remplacement est définie sur et qu'il existe déjà un dossier portant le nom spécifié à l'emplacement spécifié, le module d'action renvoie une erreur. `false`

Le nom du dossier source peut inclure un caractère générique (`*`). Les caractères génériques ne sont acceptés qu'après le dernier séparateur de chemin de fichier (`/`ou`\`). Si des caractères génériques sont inclus dans le nom du dossier source, tous les dossiers correspondant au caractère générique sont copiés dans le dossier de destination. Si vous souhaitez copier plusieurs dossiers à l'aide d'un caractère générique, l'entrée de l'`destination`option doit se terminer par un séparateur de chemin de fichier (`/`ou`\`), ce qui indique que l'entrée de destination est un dossier.

Si le nom du dossier de destination est différent du nom du dossier source, vous pouvez spécifier le nom du dossier de destination à l'aide de l'`destination`option. Si vous ne spécifiez pas de nom de dossier de destination, le nom du dossier source est utilisé pour créer le dossier de destination. Tout texte qui suit le dernier séparateur de chemin de fichier (`/`ou`\`) est traité comme le nom du dossier. Si vous souhaitez utiliser le même nom de dossier que le dossier source, l'entrée de l'`destination`option doit se terminer par un séparateur de chemin de fichier (`/`ou`\`). 

Le module d'action renvoie une erreur dans les cas suivants :
+ Vous n'êtes pas autorisé à créer un dossier dans le dossier spécifié.
+ Les dossiers source n'existent pas au moment de l'exécution.
+ Il existe déjà un dossier portant le nom de dossier spécifié et l'`overwrite`option est définie sur`false`.
+ Le module d'action rencontre une erreur lors de l'exécution de l'opération.


**Input**  

| Nom de la touche | Description | Type | Obligatoire | Valeur par défaut | Valeurs acceptables | Pris en charge sur toutes les plateformes | 
| --- | --- | --- | --- | --- | --- | --- | 
| source | Le chemin du dossier source. | String | Oui | N/A | N/A | Oui | 
| destination | Le chemin du dossier de destination. | String | Oui | N/A | N/A | Oui | 
| overwrite | Lorsqu'il est défini sur false, les dossiers de destination ne seront pas remplacés s'il existe déjà un dossier portant le nom spécifié à l'emplacement spécifié. | Booléen | Non | true | N/A | Oui | 

**Exemple de saisie : copier un dossier (Linux)**

```
  - name: CopyingAFolderLinux
    action: CopyFolder
    inputs:
      - source: /Sample/MyFolder/SampleFolder
        destination: /MyFolder/destinationFolder
```

**Exemple de saisie : copier un dossier (Windows)**

```
  - name: CopyingAFolderWindows
    action: CopyFolder
    inputs:
      - source: C:\Sample\MyFolder\SampleFolder
        destination: C:\MyFolder\destinationFolder
```

**Exemple de saisie : copier un dossier en utilisant le nom du dossier source (Linux)**

```
  - name: CopyingFolderSourceFolderNameLinux
    action: CopyFolder
    inputs:
      - source: /Sample/MyFolder/SourceFolder
        destination: /MyFolder/
```

**Exemple de saisie : copier un dossier en utilisant le nom du dossier source (Windows)**

```
  - name: CopyingFolderSourceFolderNameWindows
    action: CopyFolder
    inputs:
      - source: C:\Sample\MyFolder\SampleFolder
        destination: C:\MyFolder\
```

**Exemple de saisie : copier un dossier à l'aide du caractère générique (Linux)**

```
  - name: CopyingFoldersWithWildCardLinux
    action: CopyFolder
    inputs:
      - source: /Sample/MyFolder/Sample*
        destination: /MyFolder/
```

**Exemple de saisie : copier un dossier à l'aide du caractère générique (Windows)**

```
  - name: CopyingFoldersWithWildCardWindows
    action: CopyFolder
    inputs:
      - source: C:\Sample\MyFolder\Sample*
        destination: C:\MyFolder\
```

**Exemple de saisie : copier un dossier sans le remplacer (Linux)**

```
  - name: CopyingFoldersWithoutOverwriteLinux
    action: CopyFolder
    inputs:
      - source: /Sample/MyFolder/SourceFolder
        destination: /MyFolder/destinationFolder
        overwrite: false
```

**Exemple de saisie : copier un dossier sans le remplacer (Windows)**

```
  - name: CopyingFoldersWithoutOverwrite
    action: CopyFolder
    inputs:
      - source: C:\Sample\MyFolder\SourceFolder
        destination: C:\MyFolder\destinationFolder
        overwrite: false
```

**Output**  
Aucune.

### CreateFile (Linux, Windows, macOS)
<a name="action-modules-createfile"></a>

Le module **CreateFile**d'action crée un fichier dans un emplacement spécifié. Par défaut, si nécessaire, le module crée également les dossiers parents de manière récursive.

Si le fichier existe déjà dans le dossier spécifié, le module d'action tronque ou remplace par défaut le fichier existant. Vous pouvez annuler ce comportement par défaut en définissant l'option de remplacement sur. `false` Lorsque l'option de remplacement est définie sur et qu'il existe déjà un fichier portant le nom spécifié à l'emplacement spécifié, le module d'action renvoie une erreur. `false`

Si la valeur de codage de fichier est différente de la valeur d'encodage (`utf-8`) par défaut, vous pouvez spécifier la valeur de codage de fichier à l'aide de l'`encoding`option. Par défaut, `utf-16` et `utf-32` sont supposés utiliser le codage little-endian. 

`owner``group`, et `permissions` sont des entrées facultatives. L'entrée pour `permissions` doit être une valeur de chaîne. Les fichiers sont créés avec des valeurs par défaut lorsqu'elles ne sont pas fournies. Ces options ne sont pas prises en charge sur les plateformes Windows. Ce module d'action valide et renvoie une erreur si les `permissions` options `owner``group`, et sont utilisées sur les plateformes Windows.

Ce module d'action peut créer un fichier dont les autorisations sont définies par la `umask` valeur par défaut du système d'exploitation. Vous devez définir la `umask` valeur si vous souhaitez remplacer la valeur par défaut.

Le module d'action renvoie une erreur dans les cas suivants :
+ Vous n'êtes pas autorisé à créer un fichier ou un dossier dans le dossier parent spécifié.
+ Le module d'action rencontre une erreur lors de l'exécution de l'opération.


**Input**  

| Nom de la touche | Description | Type | Obligatoire | Valeur par défaut | Valeurs acceptables | Pris en charge sur toutes les plateformes | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Le chemin du fichier. | String | Oui | N/A | N/A | Oui | 
| content | Le contenu textuel du fichier. | String | Non | N/A | N/A | Oui | 
| encoding | La norme d'encodage. | String | Non | utf8 | utf8,utf-8,utf16,utf-16,utf16-LE, utf-16-LE utf16-BEutf-16-BE,utf32,utf-32,utf32-LE,utf-32-LE,utf32-BE, et utf-32-BE. La valeur de l'option de codage ne distingue pas les majuscules et minuscules. | Oui | 
| owner | Le nom d'utilisateur ou l'ID. | String | Non | N/A | N/A | Non pris en charge sous Windows. | 
| group | Le nom ou l'identifiant du groupe. | String | Non | L'utilisateur actuel. | N/A | Non pris en charge sous Windows. | 
| permissions | Les autorisations du fichier. | String | Non | 0666 | N/A | Non pris en charge sous Windows. | 
| overwrite | Si le nom du fichier spécifié existe déjà, définissez cette valeur pour false empêcher le fichier d'être tronqué ou remplacé par défaut. | Booléen | Non | true | N/A | Oui | 

**Exemple de saisie : créer un fichier sans le remplacer (Linux)**

```
  - name: CreatingFileWithoutOverwriteLinux
    action: CreateFile
    inputs:
      - path: /home/UserName/Sample.txt
        content: The text content of the sample file.
        overwrite: false
```

**Exemple de saisie : créer un fichier sans le remplacer (Windows)**

```
  - name: CreatingFileWithoutOverwriteWindows
    action: CreateFile
    inputs:
      - path: C:\Temp\Sample.txt
        content: The text content of the sample file.
        overwrite: false
```

**Exemple de saisie : création d'un fichier avec des propriétés de fichier**

```
  - name: CreatingFileWithFileProperties
    action: CreateFile
    inputs:
      - path: SampleFolder/Sample.txt
        content: The text content of the sample file.
        encoding: UTF-16
        owner: Ubuntu
        group: UbuntuGroup
        permissions: 0777
     - path: SampleFolder/SampleFile.txt
        permissions: 755
      - path: SampleFolder/TextFile.txt
        encoding: UTF-16
        owner: root
        group: rootUserGroup
```

**Exemple de saisie : création d'un fichier sans propriétés de fichier**

```
  - name: CreatingFileWithoutFileProperties
    action: CreateFile
    inputs:
      - path: ./Sample.txt
      - path: Sample1.txt
```

**Exemple de saisie : créer un fichier vide pour ignorer une section du script de nettoyage Linux**

```
  - name: CreateSkipCleanupfile
    action: CreateFile
    inputs:
      - path: <skip section file name>
```

Pour de plus amples informations, consultez [Remplacer le script de nettoyage Linux](security-best-practices.md#override-linux-cleanup-script).

**Output**  
Aucune.

### CreateFolder (Linux, Windows, macOS)
<a name="action-modules-createfolder"></a>

Le module **CreateFolder**d'action crée un dossier à un emplacement spécifié. Par défaut, si nécessaire, le module crée également les dossiers parents de manière récursive.

Si le dossier existe déjà dans le dossier spécifié, le module d'action tronque ou remplace par défaut le dossier existant. Vous pouvez annuler ce comportement par défaut en définissant l'option de remplacement sur. `false` Lorsque l'option de remplacement est définie sur et qu'il existe déjà un dossier portant le nom spécifié à l'emplacement spécifié, le module d'action renvoie une erreur. `false`

`owner``group`, et `permissions` sont des entrées facultatives. L'entrée pour `permissions` doit être une valeur de chaîne. Ces options ne sont pas prises en charge sur les plateformes Windows. Ce module d'action valide et renvoie une erreur si les `permissions` options `owner``group`, et sont utilisées sur les plateformes Windows.

Ce module d'action peut créer un dossier dont les autorisations sont définies par la `umask` valeur par défaut du système d'exploitation. Vous devez définir la `umask` valeur si vous souhaitez remplacer la valeur par défaut.

Le module d'action renvoie une erreur dans les cas suivants :
+ Vous n'êtes pas autorisé à créer un dossier à l'emplacement indiqué.
+ Le module d'action rencontre une erreur lors de l'exécution de l'opération.


**Input**  

| Nom de la touche | Description | Type | Obligatoire | Valeur par défaut | Valeurs acceptables | Pris en charge sur toutes les plateformes | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Le chemin du dossier. | String | Oui | N/A | N/A | Oui | 
| owner | Le nom d'utilisateur ou l'ID. | String | Non | L'utilisateur actuel. | N/A | Non pris en charge sous Windows. | 
| group | Le nom ou l'identifiant du groupe. | String | Non | Le groupe de l'utilisateur actuel. | N/A | Non pris en charge sous Windows. | 
| permissions | Les autorisations relatives aux dossiers. | String | Non | 0777 | N/A | Non pris en charge sous Windows. | 
| overwrite | Si le nom du fichier spécifié existe déjà, définissez cette valeur pour false empêcher le fichier d'être tronqué ou remplacé par défaut. | Booléen | Non | true | N/A | Oui | 

**Exemple de saisie : création d'un dossier (Linux)**

```
  - name: CreatingFolderLinux
    action: CreateFolder
    inputs:
      - path: /Sample/MyFolder/
```

**Exemple de saisie : création d'un dossier (Windows)**

```
  - name: CreatingFolderWindows
    action: CreateFolder
    inputs:
      - path: C:\MyFolder
```

**Exemple de saisie : création d'un dossier en spécifiant les propriétés du dossier**

```
  - name: CreatingFolderWithFolderProperties
    action: CreateFolder
    inputs:
      - path: /Sample/MyFolder/Sample/
        owner: SampleOwnerName
        group: SampleGroupName
        permissions: 0777
      - path: /Sample/MyFolder/SampleFoler/
        permissions: 777
```

**Exemple de saisie : créer un dossier qui remplace le dossier existant, s'il y en a un.**

```
  - name: CreatingFolderWithOverwrite
    action: CreateFolder
    inputs:
      - path: /Sample/MyFolder/Sample/
        overwrite: true
```

**Output**  
Aucune.

### CreateSymlink (Linux, Windows, macOS)
<a name="action-modules-createsymlink"></a>

Le module **CreateSymlink**d'action crée des liens symboliques ou des fichiers contenant une référence à un autre fichier. Ce module n'est pas pris en charge sur les plateformes Windows. 

L'entrée pour les `target` options `path` et peut être un chemin absolu ou relatif. Si l'entrée de l'`path`option est un chemin relatif, il est remplacé par le chemin absolu lors de la création du lien.

Par défaut, lorsqu'un lien portant le nom spécifié existe déjà dans le dossier spécifié, le module d'action renvoie une erreur. Vous pouvez annuler ce comportement par défaut en définissant l'`force`option sur. `true` Lorsque l'`force`option est définie sur`true`, le module remplace le lien existant.

Si aucun dossier parent n'existe, le module d'action crée le dossier de manière récursive, par défaut.

Le module d'action renvoie une erreur dans les cas suivants :
+ Le fichier cible n'existe pas au moment de l'exécution.
+ Un fichier de lien non symbolique portant le nom spécifié existe déjà.
+ Le module d'action rencontre une erreur lors de l'exécution de l'opération.


**Input**  

| Nom de la touche | Description | Type | Obligatoire | Valeur par défaut | Valeurs acceptables | Pris en charge sur toutes les plateformes | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Le chemin du fichier. | String | Oui | N/A | N/A | Non pris en charge sous Windows. | 
| target | Le chemin du fichier cible vers lequel pointe le lien symbolique. | String | Oui | N/A | N/A | Non pris en charge sous Windows. | 
| force | Force la création d'un lien lorsqu'un lien portant le même nom existe déjà. | Booléen | Non | false | N/A | Non pris en charge sous Windows. | 

**Exemple de saisie : créer un lien symbolique qui force la création d'un lien**

```
  - name: CreatingSymbolicLinkWithForce
    action: CreateSymlink
    inputs:
      - path: /Folder2/Symboliclink.txt
        target: /Folder/Sample.txt
        force: true
```

**Exemple de saisie : créer un lien symbolique qui ne force pas la création d'un lien**

```
  - name: CreatingSymbolicLinkWithOutForce
    action: CreateSymlink
    inputs:
      - path: Symboliclink.txt
        target: /Folder/Sample.txt
```

**Output**  
Aucune.

### DeleteFile (Linux, Windows, macOS)
<a name="action-modules-deletefile"></a>

Le module **DeleteFile**d'action supprime un ou plusieurs fichiers dans un emplacement spécifié.

L'entrée de `path` doit être un chemin de fichier valide ou un chemin de fichier avec un caractère générique (`*`) dans le nom du fichier. Lorsque des caractères génériques sont spécifiés dans le nom du fichier, tous les fichiers du même dossier qui correspondent au caractère générique sont supprimés. 

Le module d'action renvoie une erreur dans les cas suivants :
+ Vous n'êtes pas autorisé à effectuer des opérations de suppression.
+ Le module d'action rencontre une erreur lors de l'exécution de l'opération.


**Input**  

| Nom de la touche | Description | Type | Obligatoire | Valeur par défaut | Valeurs acceptables | Pris en charge sur toutes les plateformes | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Le chemin du fichier. | String | Oui | N/A | N/A | Oui | 

**Exemple de saisie : supprimer un seul fichier (Linux)**

```
  - name: DeletingSingleFileLinux
    action: DeleteFile
    inputs:
      - path: /SampleFolder/MyFolder/Sample.txt
```

**Exemple de saisie : supprimer un seul fichier (Windows)**

```
  - name: DeletingSingleFileWindows
    action: DeleteFile
    inputs:
      - path: C:\SampleFolder\MyFolder\Sample.txt
```

**Exemple de saisie : supprimer un fichier qui se termine par « log » (Linux)**

```
  - name: DeletingFileEndingWithLogLinux
    action: DeleteFile
    inputs:
      - path: /SampleFolder/MyFolder/*log
```

**Exemple de saisie : supprimer un fichier qui se termine par « log » (Windows)**

```
  - name: DeletingFileEndingWithLogWindows
    action: DeleteFile
    inputs:
      - path: C:\SampleFolder\MyFolder\*log
```

**Exemple de saisie : supprimer tous les fichiers d'un dossier spécifié (Linux)**

```
  - name: DeletingAllFilesInAFolderLinux
    action: DeleteFile
    inputs:
      - path: /SampleFolder/MyFolder/*
```

**Exemple de saisie : supprimer tous les fichiers d'un dossier spécifié (Windows)**

```
  - name: DeletingAllFilesInAFolderWindows
    action: DeleteFile
    inputs:
      - path: C:\SampleFolder\MyFolder\*
```

**Output**  
Aucune.

### DeleteFolder (Linux, Windows, macOS)
<a name="action-modules-deletefolder"></a>

Le module **DeleteFolder**d'action supprime les dossiers.

Si le dossier n'est pas vide, vous devez définir l'`force`option `true` de suppression du dossier et de son contenu. Si vous ne définissez pas l'`force`option sur `true` et que le dossier que vous essayez de supprimer n'est pas vide, le module d'action renvoie une erreur. La valeur par défaut de l'`force`option est`false`.

Le module d'action renvoie une erreur dans les cas suivants :
+ Vous n'êtes pas autorisé à effectuer des opérations de suppression.
+ Le module d'action rencontre une erreur lors de l'exécution de l'opération.


**Input**  

| Nom de la touche | Description | Type | Obligatoire | Valeur par défaut | Valeurs acceptables | Pris en charge sur toutes les plateformes | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Le chemin du dossier. | String | Oui | N/A | N/A | Oui | 
| force | Supprime le dossier, qu'il soit vide ou non. | Booléen | Non | false | N/A | Oui | 

**Exemple de saisie : supprimer un dossier qui n'est pas vide à l'aide de l'`force`option (Linux)** 

```
  - name: DeletingFolderWithForceOptionLinux
    action: DeleteFolder
    inputs:
      - path: /Sample/MyFolder/Sample/
        force: true
```

**Exemple de saisie : supprimer un dossier qui n'est pas vide à l'aide de l'`force`option (Windows)** 

```
  - name: DeletingFolderWithForceOptionWindows
    action: DeleteFolder
    inputs:
      - path: C:\Sample\MyFolder\Sample\
        force: true
```

**Exemple de saisie : suppression d'un dossier (Linux)** 

```
  - name: DeletingFolderWithOutForceLinux
    action: DeleteFolder
    inputs:
      - path: /Sample/MyFolder/Sample/
```

**Exemple de saisie : suppression d'un dossier (Windows)** 

```
  - name: DeletingFolderWithOutForce
    action: DeleteFolder
    inputs:
      - path: C:\Sample\MyFolder\Sample\
```

**Output**  
Aucune.

### ListFiles (Linux, Windows, macOS)
<a name="action-modules-listfiles"></a>

Le module **ListFiles**d'action répertorie les fichiers d'un dossier spécifié. Lorsque l'option récursive est définie sur`true`, elle répertorie les fichiers dans des sous-dossiers. Ce module ne répertorie pas les fichiers dans les sous-dossiers par défaut.

Pour répertorier tous les fichiers dont les noms correspondent à un modèle spécifié, utilisez l'`fileNamePattern`option permettant de fournir le modèle. L'`fileNamePattern`option accepte la valeur wildcard (`*`). Lorsque le `fileNamePattern` est fourni, tous les fichiers correspondant au format de nom de fichier spécifié sont renvoyés. 

Le module d'action renvoie une erreur dans les cas suivants :
+ Le dossier spécifié n'existe pas au moment de l'exécution.
+ Vous n'êtes pas autorisé à créer un fichier ou un dossier dans le dossier parent spécifié.
+ Le module d'action rencontre une erreur lors de l'exécution de l'opération.


**Input**  

| Nom de la touche | Description | Type | Obligatoire | Valeur par défaut | Valeurs acceptables | Pris en charge sur toutes les plateformes | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Le chemin du dossier. | String | Oui | N/A | N/A | Oui | 
| fileNamePattern | Le modèle à associer pour répertorier tous les fichiers dont les noms correspondent au modèle. | String | Non | N/A | N/A | Oui | 
| recursive | Répertorie les fichiers du dossier de manière récursive. | Booléen | Non | false | N/A | Oui | 

**Exemple de saisie : liste des fichiers dans le dossier spécifié (Linux)**

```
  - name: ListingFilesInSampleFolderLinux
    action: ListFiles
    inputs:
      - path: /Sample/MyFolder/Sample
```

**Exemple de saisie : liste des fichiers dans le dossier spécifié (Windows)**

```
  - name: ListingFilesInSampleFolderWindows
    action: ListFiles
    inputs:
      - path: C:\Sample\MyFolder\Sample
```

**Exemple de saisie : liste les fichiers qui se terminent par « log » (Linux)**

```
  - name: ListingFilesWithEndingWithLogLinux
    action: ListFiles
    inputs:
      - path: /Sample/MyFolder/
        fileNamePattern: *log
```

**Exemple de saisie : liste les fichiers qui se terminent par « log » (Windows)**

```
  - name: ListingFilesWithEndingWithLogWindows
    action: ListFiles
    inputs:
      - path: C:\Sample\MyFolder\
        fileNamePattern: *log
```

**Exemple de saisie : liste des fichiers de manière récursive**

```
  - name: ListingFilesRecursively
    action: ListFiles
    inputs:
      - path: /Sample/MyFolder/
        recursive: true
```


**Output**  

| Nom de la touche | Description | Type | 
| --- | --- | --- | 
| files | La liste des fichiers. | String | 

**Exemple de sortie**

```
{
	"files": "/sample1.txt,/sample2.txt,/sample3.txt"
}
```

### MoveFile (Linux, Windows, macOS)
<a name="action-modules-movefile"></a>

Le module **MoveFile**d'action déplace les fichiers de la source spécifiée vers la destination spécifiée.

Si le fichier existe déjà dans le dossier spécifié, le module d'action remplace par défaut le fichier existant. Vous pouvez annuler ce comportement par défaut en définissant l'option de remplacement sur. `false` Lorsque l'option de remplacement est définie sur et qu'il existe déjà un fichier portant le nom spécifié à l'emplacement spécifié, le module d'action renvoie une erreur. `false` Cette option fonctionne de la même manière que la `mv` commande sous Linux, qui remplace par défaut.

Le nom du fichier source peut inclure un caractère générique (`*`). Les caractères génériques ne sont acceptés qu'après le dernier séparateur de chemin de fichier (`/`ou`\`). Si des caractères génériques sont inclus dans le nom du fichier source, tous les fichiers correspondant au caractère générique sont copiés dans le dossier de destination. Si vous souhaitez déplacer plusieurs fichiers à l'aide d'un caractère générique, la saisie de l'`destination`option doit se terminer par un séparateur de chemin de fichier (`/`ou`\`), ce qui indique que l'entrée de destination est un dossier.

Si le nom du fichier de destination est différent du nom du fichier source, vous pouvez spécifier le nom du fichier de destination à l'aide de l'`destination`option. Si vous ne spécifiez pas de nom de fichier de destination, le nom du fichier source est utilisé pour créer le fichier de destination. Tout texte qui suit le dernier séparateur de chemin de fichier (`/`ou`\`) est traité comme le nom du fichier. Si vous souhaitez utiliser le même nom de fichier que le fichier source, l'entrée de l'`destination`option doit se terminer par un séparateur de chemin de fichier (`/`ou`\`). 

Le module d'action renvoie une erreur dans les cas suivants :
+ Vous n'êtes pas autorisé à créer un fichier dans le dossier indiqué.
+ Les fichiers source n'existent pas au moment de l'exécution.
+ Il existe déjà un dossier portant le nom de fichier spécifié et l'`overwrite`option est définie sur`false`.
+ Le module d'action rencontre une erreur lors de l'exécution de l'opération.


**Input**  

| Nom de la touche | Description | Type | Obligatoire | Valeur par défaut | Valeurs acceptables | Pris en charge sur toutes les plateformes | 
| --- | --- | --- | --- | --- | --- | --- | 
| source | Le chemin du fichier source. | String | Oui | N/A | N/A | Oui | 
| destination | Le chemin du fichier de destination. | String | Oui | N/A | N/A | Oui | 
| overwrite | Lorsqu'il est défini sur false, les fichiers de destination ne seront pas remplacés s'il existe déjà un fichier portant le nom spécifié à l'emplacement spécifié. | Booléen | Non | true | N/A | Oui | 

**Exemple de saisie : déplacer un fichier (Linux)**

```
  - name: MovingAFileLinux
    action: MoveFile
    inputs:
      - source: /Sample/MyFolder/Sample.txt
        destination: /MyFolder/destinationFile.txt
```

**Exemple de saisie : déplacer un fichier (Windows)**

```
  - name: MovingAFileWindows
    action: MoveFile
    inputs:
      - source: C:\Sample\MyFolder\Sample.txt
        destination: C:\MyFolder\destinationFile.txt
```

**Exemple de saisie : déplacer un fichier en utilisant le nom du fichier source (Linux)**

```
  - name: MovingFileWithSourceFileNameLinux
    action: MoveFile
    inputs:
      - source: /Sample/MyFolder/Sample.txt
        destination: /MyFolder/
```

**Exemple de saisie : déplacer un fichier en utilisant le nom du fichier source (Windows)**

```
  - name: MovingFileWithSourceFileNameWindows
    action: MoveFile
    inputs:
      - source: C:\Sample\MyFolder\Sample.txt
        destination: C:\MyFolder
```

**Exemple de saisie : déplacer un fichier à l'aide d'un caractère générique (Linux)**

```
  - name: MovingFilesWithWildCardLinux
    action: MoveFile
    inputs:
      - source: /Sample/MyFolder/Sample*
        destination: /MyFolder/
```

**Exemple de saisie : déplacer un fichier à l'aide d'un caractère générique (Windows)**

```
  - name: MovingFilesWithWildCardWindows
    action: MoveFile
    inputs:
      - source: C:\Sample\MyFolder\Sample*
        destination: C:\MyFolder
```

**Exemple de saisie : déplacer un fichier sans le remplacer (Linux)**

```
  - name: MovingFilesWithoutOverwriteLinux
    action: MoveFile
    inputs:
      - source: /Sample/MyFolder/Sample.txt
        destination: /MyFolder/destinationFile.txt
        overwrite: false
```

**Exemple de saisie : déplacer un fichier sans le remplacer (Windows)**

```
  - name: MovingFilesWithoutOverwrite
    action: MoveFile
    inputs:
      - source: C:\Sample\MyFolder\Sample.txt
        destination: C:\MyFolder\destinationFile.txt
        overwrite: false
```

**Output**  
Aucune.

### MoveFolder (Linux, Windows, macOS)
<a name="action-modules-movefolder"></a>

Le module **MoveFolder**d'action déplace les dossiers de la source spécifiée vers la destination spécifiée. L'entrée de l'`source`option est le dossier à déplacer, et l'entrée de l'`destination`option est le dossier dans lequel le contenu des dossiers source est déplacé.

Si le dossier parent de destination ou l'entrée de l'`destination`option n'existe pas au moment de l'exécution, le comportement par défaut du module consiste à créer le dossier de manière récursive à la destination spécifiée.

Si un dossier identique au dossier source existe déjà dans le dossier de destination, le module d'action remplace par défaut le dossier existant. Vous pouvez annuler ce comportement par défaut en définissant l'option de remplacement sur. `false` Lorsque l'option de remplacement est définie sur et qu'il existe déjà un dossier portant le nom spécifié à l'emplacement spécifié, le module d'action renvoie une erreur. `false`

Le nom du dossier source peut inclure un caractère générique (`*`). Les caractères génériques ne sont acceptés qu'après le dernier séparateur de chemin de fichier (`/`ou`\`). Si des caractères génériques sont inclus dans le nom du dossier source, tous les dossiers correspondant au caractère générique sont copiés dans le dossier de destination. Si vous souhaitez déplacer plusieurs dossiers à l'aide d'un caractère générique, la saisie de l'`destination`option doit se terminer par un séparateur de chemin de fichier (`/`ou`\`), ce qui indique que l'entrée de destination est un dossier.

Si le nom du dossier de destination est différent du nom du dossier source, vous pouvez spécifier le nom du dossier de destination à l'aide de l'`destination`option. Si vous ne spécifiez pas de nom de dossier de destination, le nom du dossier source est utilisé pour créer le dossier de destination. Tout texte qui suit le dernier séparateur de chemin de fichier (`/`ou`\`) est traité comme le nom du dossier. Si vous souhaitez utiliser le même nom de dossier que le dossier source, l'entrée de l'`destination`option doit se terminer par un séparateur de chemin de fichier (`/`ou`\`). 

Le module d'action renvoie une erreur dans les cas suivants :
+ Vous n'êtes pas autorisé à créer un dossier dans le dossier de destination.
+ Les dossiers source n'existent pas au moment de l'exécution.
+ Il existe déjà un dossier portant le nom spécifié et l'`overwrite`option est définie sur`false`.
+ Le module d'action rencontre une erreur lors de l'exécution de l'opération.


**Input**  

| Nom de la touche | Description | Type | Obligatoire | Valeur par défaut | Valeurs acceptables | Pris en charge sur toutes les plateformes | 
| --- | --- | --- | --- | --- | --- | --- | 
| source | Le chemin du dossier source. | String | Oui | N/A | N/A | Oui | 
| destination | Le chemin du dossier de destination. | String | Oui | N/A | N/A | Oui | 
| overwrite | Lorsqu'il est défini sur false, les dossiers de destination ne seront pas remplacés s'il existe déjà un dossier portant le nom spécifié à l'emplacement spécifié. | Booléen | Non | true | N/A | Oui | 

**Exemple de saisie : déplacer un dossier (Linux)**

```
  - name: MovingAFolderLinux
    action: MoveFolder
    inputs:
      - source: /Sample/MyFolder/SourceFolder
        destination: /MyFolder/destinationFolder
```

**Exemple de saisie : déplacer un dossier (Windows)**

```
  - name: MovingAFolderWindows
    action: MoveFolder
    inputs:
      - source: C:\Sample\MyFolder\SourceFolder
        destination: C:\MyFolder\destinationFolder
```

**Exemple de saisie : déplacer un dossier en utilisant le nom du dossier source (Linux)**

```
  - name: MovingFolderWithSourceFolderNameLinux
    action: MoveFolder
    inputs:
      - source: /Sample/MyFolder/SampleFolder
        destination: /MyFolder/
```

**Exemple de saisie : déplacer un dossier en utilisant le nom du dossier source (Windows)**

```
  - name: MovingFolderWithSourceFolderNameWindows
    action: MoveFolder
    inputs:
      - source: C:\Sample\MyFolder\SampleFolder
        destination: C:\MyFolder\
```

**Exemple de saisie : déplacer un dossier à l'aide d'un caractère générique (Linux)**

```
  - name: MovingFoldersWithWildCardLinux
    action: MoveFolder
    inputs:
      - source: /Sample/MyFolder/Sample*
        destination: /MyFolder/
```

**Exemple de saisie : déplacer un dossier à l'aide d'un caractère générique (Windows)**

```
  - name: MovingFoldersWithWildCardWindows
    action: MoveFolder
    inputs:
      - source: C:\Sample\MyFolder\Sample*
        destination: C:\MyFolder\
```

**Exemple de saisie : déplacer un dossier sans le remplacer (Linux)**

```
  - name: MovingFoldersWithoutOverwriteLinux
    action: MoveFolder
    inputs:
      - source: /Sample/MyFolder/SampleFolder
    destination: /MyFolder/destinationFolder
    overwrite: false
```

**Exemple de saisie : déplacer un dossier sans le remplacer (Windows)**

```
  - name: MovingFoldersWithoutOverwriteWindows
    action: MoveFolder
    inputs:
      - source: C:\Sample\MyFolder\SampleFolder
        destination: C:\MyFolder\destinationFolder
        overwrite: false
```

**Output**  
Aucune.

### ReadFile (Linux, Windows, macOS)
<a name="action-modules-readfile"></a>

Le module **ReadFile**d'action lit le contenu d'un fichier texte de type chaîne. Ce module peut être utilisé pour lire le contenu d'un fichier afin de l'utiliser dans les étapes suivantes via le chaînage ou pour lire des données dans le `console.log` fichier. Si le chemin spécifié est un lien symbolique, ce module renvoie le contenu du fichier cible. Ce module ne prend en charge que les fichiers texte.

Si la valeur de codage de fichier est différente de la valeur d'encodage (`utf-8`) par défaut, vous pouvez spécifier la valeur de codage de fichier à l'aide de l'`encoding`option. Par défaut, `utf-16` et `utf-32` sont supposés utiliser le codage little-endian. 

Par défaut, ce module ne peut pas imprimer le contenu du fichier dans le `console.log` fichier. Vous pouvez annuler ce paramètre en attribuant à `true` la `printFileContent` propriété la valeur.

Ce module ne peut renvoyer que le contenu d'un fichier. Il ne peut pas analyser les fichiers, tels que les fichiers Excel ou JSON.

Le module d'action renvoie une erreur dans les cas suivants :
+ Le fichier n'existe pas au moment de l'exécution.
+ Le module d'action rencontre une erreur lors de l'exécution de l'opération.


**Input**  

| Nom de la touche | Description | Type | Obligatoire | Valeur par défaut | Valeurs acceptables | Pris en charge sur toutes les plateformes | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Le chemin du fichier. | String | Oui | N/A | N/A | Oui | 
| encoding | La norme d'encodage. | String | Non | utf8 | utf8,utf-8,utf16,utf-16,utf16-LE, utf-16-LE utf16-BEutf-16-BE,utf32,utf-32,utf32-LE,utf-32-LE,utf32-BE, et utf-32-BE. La valeur de l'option de codage ne distingue pas les majuscules et minuscules. | Oui | 
| printFileContent | Imprime le contenu du fichier dans le console.log fichier. | Booléen | Non | false | N/A | Oui. | 

**Exemple de saisie : lecture d'un fichier (Linux)**

```
  - name: ReadingFileLinux
    action: ReadFile
    inputs:
      - path: /home/UserName/SampleFile.txt
```

**Exemple de saisie : lecture d'un fichier (Windows)**

```
  - name: ReadingFileWindows
    action: ReadFile
    inputs:
      - path: C:\Windows\WindowsUpdate.log
```

**Exemple de saisie : lecture d'un fichier et spécification de la norme de codage**

```
  - name: ReadingFileWithFileEncoding
    action: ReadFile
    inputs:
      - path: /FolderName/SampleFile.txt
        encoding: UTF-32
```

**Exemple de saisie : lecture d'un fichier et impression dans le `console.log` fichier**

```
  - name: ReadingFileToConsole
    action: ReadFile
    inputs:
      - path: /home/UserName/SampleFile.txt
        printFileContent: true
```


**Output**  

| Champ | Description | Type | 
| --- | --- | --- | 
| content | Le contenu du fichier. | chaîne | 

**Exemple de sortie**

```
{
	"content" : "The file content"
}
```

### SetFileEncoding (Linux, Windows, macOS)
<a name="action-modules-setfileencoding"></a>

Le module **SetFileEncoding**d'action modifie la propriété de codage d'un fichier existant. Ce module peut convertir le codage de fichiers `utf-8` à partir d'une norme de codage spécifiée. Par défaut, `utf-16` et `utf-32` sont supposés être des encodages little-endian.

Le module d'action renvoie une erreur dans les cas suivants :
+ Vous n'êtes pas autorisé à effectuer la modification spécifiée.
+ Le fichier n'existe pas au moment de l'exécution.
+ Le module d'action rencontre une erreur lors de l'exécution de l'opération.


**Input**  

| Nom de la touche | Description | Type | Obligatoire | Valeur par défaut | Valeurs acceptables | Pris en charge sur toutes les plateformes | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Le chemin du fichier. | String | Oui | N/A | N/A | Oui | 
| encoding | La norme d'encodage. | String | Non | utf8 | utf8,utf-8,utf16,utf-16,utf16-LE, utf-16-LE utf16-BEutf-16-BE,utf32,utf-32,utf32-LE,utf-32-LE,utf32-BE, et utf-32-BE. La valeur de l'option de codage ne distingue pas les majuscules et minuscules. | Oui | 

**Exemple de saisie : définir la propriété de codage du fichier**

```
  - name: SettingFileEncodingProperty
    action: SetFileEncoding
    inputs:
      - path: /home/UserName/SampleFile.txt
        encoding: UTF-16
```

**Output**  
Aucune.

### SetFileOwner (Linux, Windows, macOS)
<a name="action-modules-setfileowner"></a>

Le module **SetFileOwner**d'action modifie les propriétés `owner` et le `group` propriétaire d'un fichier existant. Si le fichier spécifié est un lien symbolique, le module modifie la `owner` propriété du fichier source. Ce module n'est pas pris en charge sur les plateformes Windows. 

Ce module accepte les noms d'utilisateur et de groupe en entrée. Si le nom du groupe n'est pas fourni, le module affecte le propriétaire du fichier au groupe auquel appartient l'utilisateur.

Le module d'action renvoie une erreur dans les cas suivants :
+ Vous n'êtes pas autorisé à effectuer la modification spécifiée.
+ Le nom d'utilisateur ou de groupe spécifié n'existe pas au moment de l'exécution.
+ Le fichier n'existe pas au moment de l'exécution.
+ Le module d'action rencontre une erreur lors de l'exécution de l'opération.


**Input**  

| Nom de la touche | Description | Type | Obligatoire | Valeur par défaut | Valeurs acceptables | Pris en charge sur toutes les plateformes | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Le chemin du fichier. | String | Oui | N/A | N/A | Non pris en charge sous Windows. | 
| owner | Nom de l'utilisateur. | chaîne | Oui | N/A | N/A | Non pris en charge sous Windows. | 
| group | Nom du groupe d'utilisateurs. | String | Non | Nom du groupe auquel appartient l'utilisateur. | N/A | Non pris en charge sous Windows. | 

**Exemple de saisie : définir la propriété du propriétaire du fichier sans spécifier le nom du groupe d'utilisateurs**

```
  - name: SettingFileOwnerPropertyNoGroup
    action: SetFileOwner
    inputs:
      - path: /home/UserName/SampleText.txt
        owner: LinuxUser
```

**Exemple de saisie : définir la propriété du propriétaire du fichier en spécifiant le propriétaire et le groupe d'utilisateurs**

```
  - name: SettingFileOwnerProperty
    action: SetFileOwner
    inputs:
      - path: /home/UserName/SampleText.txt
        owner: LinuxUser
        group: LinuxUserGroup
```

**Output**  
Aucune.

### SetFolderOwner (Linux, Windows, macOS)
<a name="action-modules-setfolderowner"></a>

Le module **SetFolderOwner**d'action modifie de manière récursive les propriétés `owner` et le `group` propriétaire d'un dossier existant. Par défaut, le module peut modifier la propriété de l'ensemble du contenu d'un dossier. Vous pouvez définir l'`recursive`option `false` pour annuler ce comportement. Ce module n'est pas pris en charge sur les plateformes Windows. 

Ce module accepte les noms d'utilisateur et de groupe en entrée. Si le nom du groupe n'est pas fourni, le module affecte le propriétaire du fichier au groupe auquel appartient l'utilisateur.

Le module d'action renvoie une erreur dans les cas suivants :
+ Vous n'êtes pas autorisé à effectuer la modification spécifiée.
+ Le nom d'utilisateur ou de groupe spécifié n'existe pas au moment de l'exécution.
+ Le dossier n'existe pas au moment de l'exécution.
+ Le module d'action rencontre une erreur lors de l'exécution de l'opération.


**Input**  

| Nom de la touche | Description | Type | Obligatoire | Valeur par défaut | Valeurs acceptables | Pris en charge sur toutes les plateformes | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Le chemin du dossier. | String | Oui | N/A | N/A | Non pris en charge sous Windows. | 
| owner | Nom de l'utilisateur. | chaîne | Oui | N/A | N/A | Non pris en charge sous Windows. | 
| group | Nom du groupe d'utilisateurs. | String | Non | Nom du groupe auquel appartient l'utilisateur. | N/A | Non pris en charge sous Windows. | 
| recursive | Remplace le comportement par défaut qui consiste à modifier la propriété de l'ensemble du contenu d'un dossier lorsqu'il est défini sur. false | Booléen | Non | true | N/A | Non pris en charge sous Windows. | 

**Exemple de saisie : définir la propriété du propriétaire du dossier sans spécifier le nom du groupe d'utilisateurs**

```
  - name: SettingFolderPropertyWithOutGroup
    action: SetFolderOwner
    inputs:
      - path: /SampleFolder/
        owner: LinuxUser
```

**Exemple de saisie : définir la propriété du propriétaire du dossier sans annuler la propriété de l'ensemble du contenu d'un dossier**

```
  - name: SettingFolderPropertyWithOutRecursively
    action: SetFolderOwner
    inputs:
      - path: /SampleFolder/
        owner: LinuxUser
        recursive: false
```

**Exemple de saisie : définir la propriété de propriété du fichier en spécifiant le nom du groupe d'utilisateurs**

```
  - name: SettingFolderPropertyWithGroup
    action: SetFolderOwner
    inputs:
      - path: /SampleFolder/
        owner: LinuxUser
        group: LinuxUserGroup
```

**Output**  
Aucune.

### SetFilePermissions (Linux, Windows, macOS)
<a name="action-modules-setfilepermissions"></a>

Le module **SetFilePermissions**d'action modifie `permissions` un fichier existant. Ce module n'est pas pris en charge sur les plateformes Windows. 

L'entrée pour `permissions` doit être une valeur de chaîne.

Ce module d'action peut créer un fichier dont les autorisations sont définies par la valeur umask par défaut du système d'exploitation. Vous devez définir la `umask` valeur si vous souhaitez remplacer la valeur par défaut.

Le module d'action renvoie une erreur dans les cas suivants :
+ Vous n'êtes pas autorisé à effectuer la modification spécifiée.
+ Le fichier n'existe pas au moment de l'exécution.
+ Le module d'action rencontre une erreur lors de l'exécution de l'opération.


**Input**  

| Nom de la touche | Description | Type | Obligatoire | Valeur par défaut | Valeurs acceptables | Pris en charge sur toutes les plateformes | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Le chemin du fichier. | String | Oui | N/A | N/A | Non pris en charge sous Windows. | 
| permissions | Les autorisations du fichier. | String | Oui | N/A | N/A | Non pris en charge sous Windows. | 

**Exemple de saisie : modification des autorisations de fichier**

```
  - name: ModifyingFilePermissions
    action: SetFilePermissions
    inputs:
      - path: /home/UserName/SampleFile.txt
        permissions: 766
```

**Output**  
Aucune.

### SetFolderPermissions (Linux, Windows, macOS)
<a name="action-modules-setfolderpermissions"></a>

Le module **SetFolderPermissions**d'action modifie `permissions` de manière récursive le dossier existant et tous ses sous-fichiers et sous-dossiers. Par défaut, ce module peut modifier les autorisations pour tout le contenu du dossier spécifié. Vous pouvez définir l'`recursive`option `false` pour annuler ce comportement. Ce module n'est pas pris en charge sur les plateformes Windows. 

L'entrée pour `permissions` doit être une valeur de chaîne. 

Ce module d'action peut modifier les autorisations en fonction de la valeur umask par défaut du système d'exploitation. Vous devez définir la `umask` valeur si vous souhaitez remplacer la valeur par défaut.

Le module d'action renvoie une erreur dans les cas suivants :
+ Vous n'êtes pas autorisé à effectuer la modification spécifiée.
+ Le dossier n'existe pas au moment de l'exécution.
+ Le module d'action rencontre une erreur lors de l'exécution de l'opération.


**Input**  

| Nom de la touche | Description | Type | Obligatoire | Valeur par défaut | Valeurs acceptables | Pris en charge sur toutes les plateformes | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Le chemin du dossier. | String | Oui | N/A | N/A | Non pris en charge sous Windows. | 
| permissions | Les autorisations relatives aux dossiers. | String | Oui | N/A | N/A | Non pris en charge sous Windows. | 
| recursive | Remplace le comportement par défaut qui consiste à modifier les autorisations pour l'ensemble du contenu d'un dossier lorsqu'il est défini sur. false | Booléen | Non | true | N/A | Non pris en charge sous Windows. | 

**Exemple de saisie : définir les autorisations des dossiers**

```
  - name: SettingFolderPermissions
    action: SetFolderPermissions
    inputs:
      - path: SampleFolder/
        permissions: 0777
```

**Exemple de saisie : définir les autorisations d'un dossier sans modifier les autorisations pour l'ensemble du contenu d'un dossier**

```
  - name: SettingFolderPermissionsNoRecursive
    action: SetFolderPermissions
    inputs:
      - path: /home/UserName/SampleFolder/
        permissions: 777
        recursive: false
```

**Output**  
Aucune.

## Actions d'installation du logiciel
<a name="action-modules-software-install-actions"></a>

La section suivante décrit les modules d'action qui installent ou désinstallent des logiciels.

**Exigences relatives à l'IAM**  
Si le chemin de téléchargement de votre installation est un URI S3, le rôle IAM que vous associez à votre profil d'instance doit être autorisé à exécuter le module `S3Download` d'action. Pour accorder l'autorisation requise, attachez la politique `S3:GetObject` IAM au rôle IAM associé à votre profil d'instance et spécifiez le chemin de votre bucket. Par exemple, `arn:aws:s3:::BucketName/*`).

**Entrées MSI complexes**  
Si vos chaînes d'entrée contiennent des guillemets (`"`), vous devez utiliser l'une des méthodes suivantes pour vous assurer qu'elles sont interprétées correctement :
+ Vous pouvez utiliser des guillemets simples (') à l'extérieur de votre chaîne pour la contenir, et des guillemets doubles («) à l'intérieur de votre chaîne, comme indiqué dans l'exemple suivant.

  ```
  properties:
    COMPANYNAME: '"Acme ""Widgets"" and ""Gizmos."""'
  ```

  Dans ce cas, si vous devez utiliser une apostrophe à l'intérieur de votre chaîne, vous devez y échapper. Cela signifie qu'il faut utiliser un autre guillemet simple (') avant l'apostrophe.
+ Vous pouvez utiliser des guillemets («) à l'extérieur de votre chaîne pour la contenir. Et vous pouvez éviter les guillemets doubles à l'intérieur de votre chaîne en utilisant la barre oblique inverse (`\`), comme indiqué dans l'exemple suivant.

  ```
  properties:
    COMPANYNAME: "\"Acme \"\"Widgets\"\" and \"\"Gizmos.\"\"\""
  ```

Ces deux méthodes transmettent la valeur `COMPANYNAME="Acme ""Widgets"" and ""Gizmos."""` à la **msiexec** commande.

**Topics**
+ [Installez MSI (Windows)](#action-modules-install-msi)
+ [Désinstallez MSI (Windows)](#action-modules-uninstall-msi)

### Installez MSI (Windows)
<a name="action-modules-install-msi"></a>

Le module `InstallMSI` d'action installe une application Windows à l'aide d'un fichier MSI. Vous pouvez spécifier le fichier MSI à l'aide d'un chemin local, d'un URI d'objet S3 ou d'une URL Web. L'option de redémarrage configure le comportement de redémarrage du système.

AWSTOE génère la **msiexec** commande en fonction des paramètres d'entrée du module d'action. Les valeurs des paramètres d'entrée `path` (emplacement du fichier MSI) et `logFile` (emplacement du fichier journal) doivent être placées entre guillemets («).

Les codes de sortie MSI suivants sont considérés comme réussis :
+ 0 (Succès)
+ 1614 (ERROR\$1PRODUCT\$1UNINSTALL)
+ 1641 (redémarrage initié)
+ 3010 (redémarrage requis)


**Input**  

| Nom de la touche | Description | Type | Obligatoire | Valeur par défaut | Valeurs acceptables | 
| --- | --- | --- | --- | --- | --- | 
| path |  Spécifiez l'emplacement du fichier MSI à l'aide de l'une des méthodes suivantes : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/imagebuilder/latest/userguide/toe-action-modules.html) Les expressions de chaînage sont autorisées.  | String | Oui | N/A | N/A | 
| reboot |  Configurez le comportement de redémarrage du système après une exécution réussie du module d'action. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/imagebuilder/latest/userguide/toe-action-modules.html)  | String | Non | Allow | Allow, Force, Skip | 
| logOptions |  Spécifiez les options à utiliser pour la journalisation de l'installation MSI. Les indicateurs spécifiés sont transmis au programme d'installation MSI, avec le paramètre de ligne de `/L` commande pour activer la journalisation. Si aucun indicateur n'est spécifié, AWSTOE utilise la valeur par défaut. Pour plus d'informations sur les options de journalisation pour MSI, consultez [la section Options de ligne de commande](https://learn.microsoft.com/en-us/windows/win32/msi/command-line-options) dans la documentation du produit Microsoft *Windows Installer*.  | String | Non | \$1VX | i,w,e,a,r,u,c,m,o,p,v,x,\$1,\$1,\$1 | 
| logFile |  Un chemin absolu ou relatif vers l'emplacement du fichier journal. Si le chemin du fichier journal n'existe pas, il est créé. Si le chemin du fichier journal n'est pas fourni, AWSTOE ne stocke pas le journal d'installation MSI.  | String | Non | N/A | N/A | 
| properties |  Paires clé-valeur des propriétés de journalisation MSI, par exemple : `TARGETDIR: "C:\target\location"`   Remarque : La modification des propriétés suivantes n'est pas autorisée : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/imagebuilder/latest/userguide/toe-action-modules.html)  | Carte [Chaîne] Chaîne | Non | N/A | N/A | 
| ignoreAuthenticodeSignatureErrors |  Indicateur permettant d'ignorer les erreurs de validation de signature authenticode pour le programme d'installation spécifié dans le chemin. La **Get-AuthenticodeSignature** commande est utilisée pour valider les programmes d'installation. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/imagebuilder/latest/userguide/toe-action-modules.html)  | Booléen | Non | false | true, false | 
| allowUnsignedInstaller |  Indicateur permettant d'exécuter le programme d'installation non signé spécifié dans le chemin. La **Get-AuthenticodeSignature** commande est utilisée pour valider les programmes d'installation. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/imagebuilder/latest/userguide/toe-action-modules.html)  | Booléen | Non | false | true, false | 

**Exemples**  
Les exemples suivants montrent des variantes de la section de saisie de votre document de composant, en fonction de votre chemin d'installation.

**Exemple de saisie : installation du chemin de document local**

```
- name: local-path-install
  steps:
    - name: LocalPathInstaller
      action: InstallMSI
      inputs:
        path: C:\sample.msi
        logFile: C:\msilogs\local-path-install.log
        logOptions: '*VX'
        reboot: Allow
        properties:
          COMPANYNAME: '"Amazon Web Services"'
        ignoreAuthenticodeSignatureErrors: true
        allowUnsignedInstaller: true
```

**Exemple de saisie : installation du chemin Amazon S3**

```
- name: s3-path-install
  steps:
    - name: S3PathInstaller
      action: InstallMSI
      inputs:
        path: s3://<bucket-name>/sample.msi
        logFile: s3-path-install.log
        reboot: Force
        ignoreAuthenticodeSignatureErrors: false
        allowUnsignedInstaller: true
```

**Exemple de saisie : installation du chemin Web**

```
- name: web-path-install
  steps:
    - name: WebPathInstaller
      action: InstallMSI
      inputs:
        path: https://<some-path>/sample.msi
        logFile: web-path-install.log
        reboot: Skip
        ignoreAuthenticodeSignatureErrors: true
        allowUnsignedInstaller: false
```

**Output**  
Voici un exemple de sortie du module `InstallMSI` d'action.

```
{
	"logFile": "web-path-install.log",
	"msiExitCode": 0,
	"stdout": ""
}
```

### Désinstallez MSI (Windows)
<a name="action-modules-uninstall-msi"></a>

Le module `UninstallMSI` d'action permet de supprimer une application Windows à l'aide d'un fichier MSI. Vous pouvez spécifier l'emplacement du fichier MSI à l'aide d'un chemin de fichier local, d'un URI d'objet S3 ou d'une URL Web. L'option de redémarrage configure le comportement de redémarrage du système.

AWSTOE génère la **msiexec** commande en fonction des paramètres d'entrée du module d'action. L'emplacement du fichier MSI (`path`) et l'emplacement du fichier journal (`logFile`) sont explicitement placés entre guillemets («) lors de la génération de la **msiexec** commande.

Les codes de sortie MSI suivants sont considérés comme réussis :
+ 0 (Succès)
+ 1605 (ERROR\$1UNKNOWN\$1PRODUCT)
+ 1614 (ERROR\$1PRODUCT\$1UNINSTALL)
+ 1641 (redémarrage initié)
+ 3010 (redémarrage requis)


**Input**  

| Nom de la touche | Description | Type | Obligatoire | Valeur par défaut | Valeurs acceptables | 
| --- | --- | --- | --- | --- | --- | 
| path |  Spécifiez l'emplacement du fichier MSI à l'aide de l'une des méthodes suivantes : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/imagebuilder/latest/userguide/toe-action-modules.html) Les expressions de chaînage sont autorisées.  | String | Oui | N/A | N/A | 
| reboot |  Configure le comportement de redémarrage du système après une exécution réussie du module d'action. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/imagebuilder/latest/userguide/toe-action-modules.html)  | String | Non | Allow | Allow, Force, Skip | 
| logOptions |  Spécifiez les options à utiliser pour la journalisation de l'installation MSI. Les indicateurs spécifiés sont transmis au programme d'installation MSI, avec le paramètre de ligne de `/L` commande pour activer la journalisation. Si aucun indicateur n'est spécifié, AWSTOE utilise la valeur par défaut. Pour plus d'informations sur les options de journalisation pour MSI, consultez [la section Options de ligne de commande](https://docs.microsoft.com/en-us/windows/win32/msi/command-line-options) dans la documentation du produit Microsoft *Windows Installer*.  | String | Non | \$1VX | i,w,e,a,r,u,c,m,o,p,v,x,\$1,\$1,\$1 | 
| logFile |  Un chemin absolu ou relatif vers l'emplacement du fichier journal. Si le chemin du fichier journal n'existe pas, il est créé. Si le chemin du fichier journal n'est pas fourni, AWSTOE ne stocke pas le journal d'installation MSI.  | String | Non | N/A | N/A | 
| properties |  Paires clé-valeur des propriétés de journalisation MSI, par exemple : `TARGETDIR: "C:\target\location"`   Remarque : La modification des propriétés suivantes n'est pas autorisée : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/imagebuilder/latest/userguide/toe-action-modules.html)  | Carte [Chaîne] Chaîne | Non | N/A | N/A | 
| ignoreAuthenticodeSignatureErrors |  Indicateur permettant d'ignorer les erreurs de validation de signature authenticode pour le programme d'installation spécifié dans le chemin. La **Get-AuthenticodeSignature** commande est utilisée pour valider les programmes d'installation. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/imagebuilder/latest/userguide/toe-action-modules.html)  | Booléen | Non | false | true, false | 
| allowUnsignedInstaller |  Indicateur permettant d'exécuter le programme d'installation non signé spécifié dans le chemin. La **Get-AuthenticodeSignature** commande est utilisée pour valider les programmes d'installation. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/imagebuilder/latest/userguide/toe-action-modules.html)  | Booléen | Non | false | true, false | 

**Exemples**  
Les exemples suivants montrent des variantes de la section de saisie de votre document de composant, en fonction de votre chemin d'installation.

**Exemple de saisie : installation de suppression du chemin de document local**

```
- name: local-path-uninstall
  steps:
    - name: LocalPathUninstaller
      action: UninstallMSI
      inputs:
        path: C:\sample.msi
        logFile: C:\msilogs\local-path-uninstall.log
        logOptions: '*VX'
        reboot: Allow
        properties:
          COMPANYNAME: '"Amazon Web Services"'
        ignoreAuthenticodeSignatureErrors: true
        allowUnsignedInstaller: true
```

**Exemple de saisie : supprimer l'installation du chemin Amazon S3**

```
- name: s3-path-uninstall
  steps:
    - name: S3PathUninstaller
      action: UninstallMSI
      inputs:
        path: s3://<bucket-name>/sample.msi
        logFile: s3-path-uninstall.log
        reboot: Force
        ignoreAuthenticodeSignatureErrors: false
        allowUnsignedInstaller: true
```

**Exemple de saisie : installation de suppression du chemin Web**

```
- name: web-path-uninstall
  steps:
    - name: WebPathUninstaller
      action: UninstallMSI
      inputs:
        path: https://<some-path>/sample.msi
        logFile: web-path-uninstall.log
        reboot: Skip
        ignoreAuthenticodeSignatureErrors: true
        allowUnsignedInstaller: false
```

**Output**  
Voici un exemple de sortie du module `UninstallMSI` d'action.

```
{
	"logFile": "web-path-uninstall.log",
	"msiExitCode": 0,
	"stdout": ""
}
```

## Modules d'action du système
<a name="action-modules-system-actions"></a>

La section suivante décrit les modules d'action qui exécutent des actions système ou mettent à jour les paramètres système.

**Topics**
+ [Redémarrer (Linux, Windows)](#action-modules-reboot)
+ [SetRegistry (Fenêtres)](#action-modules-setregistry)
+ [Mettre à jour le système d'exploitation (Linux, Windows)](#action-modules-updateos)

### Redémarrer (Linux, Windows)
<a name="action-modules-reboot"></a>

Le module d'action **Reboot** redémarre l'instance. Il dispose d'une option configurable pour retarder le démarrage du redémarrage. Par défaut, `delaySeconds` est défini sur`0`, ce qui signifie qu'il n'y a aucun délai. Le délai d'expiration des étapes n'est pas pris en charge pour le module d'action Reboot, car il ne s'applique pas au redémarrage de l'instance.

Si l'application est appelée par l'agent Systems Manager, elle transmet le code de sortie (`3010`pour Windows, `194` pour Linux) à l'agent Systems Manager. L'agent Systems Manager gère le redémarrage du système comme décrit dans [Reboot Managed Instance from Scripts](https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-reboot.html).

Si l'application est invoquée sur l'hôte en tant que processus autonome, elle enregistre l'état d'exécution actuel, configure un déclencheur d'exécution automatique après le redémarrage pour réexécuter l'application après le redémarrage, puis redémarre le système.

**Déclencheur d'exécution automatique après le redémarrage :**
+ **Fenêtres**. AWSTOE crée une entrée du planificateur de tâches Windows avec un déclencheur qui s'exécute automatiquement sur `SystemStartup`
+ **Linux**. AWSTOE ajoute une tâche dans crontab qui s'exécute automatiquement après le redémarrage du système.

```
@reboot /download/path/awstoe run --document s3://bucket/key/doc.yaml
```

Ce déclencheur est nettoyé au démarrage de l'application.

**Nouvelles tentatives**  
Par défaut, le nombre maximum de tentatives est défini sur le Systems Manager`CommandRetryLimit`. Si le nombre de redémarrages dépasse la limite de nouvelles tentatives, l'automatisation échoue. Vous pouvez modifier la limite en modifiant le fichier de configuration de l'agent Systems Manager (`Mds.CommandRetryLimit`). Consultez la section [Configuration du runtime](https://github.com/aws/amazon-ssm-agent/blob/mainline/README.md#runtime-configuration) dans l'agent open source de Systems Manager.

Pour utiliser le module d'action **Redémarrer**, pour les étapes contenant un redémarrage `exitcode` (par exemple,`3010`), vous devez exécuter le binaire de l'application sous le nom de`sudo user`.


**Input**  

| Nom de la touche | Description | Type | Obligatoire | Par défaut | 
| --- | --- | --- | --- | --- | 
| delaySeconds | Retarde un certain temps avant de lancer un redémarrage. | Entier |  Non  |  `0`  | 

**Exemple de saisie : étape de redémarrage**

```
  - name: RebootStep
    action: Reboot
    onFailure: Abort
    maxAttempts: 2
    inputs:
      delaySeconds: 60
```

**Sortie**

Aucune.

Lorsque le module **Reboot** est terminé, Image Builder passe à l'étape suivante de la génération.

### SetRegistry (Fenêtres)
<a name="action-modules-setregistry"></a>

Le module **SetRegistry**d'action accepte une liste d'entrées et vous permet de définir la valeur de la clé de registre spécifiée. Si aucune clé de registre n'existe, elle est créée dans le chemin défini. Cette fonctionnalité s'applique uniquement à Windows.


**Input**  

| Nom de la touche | Description | Type | Obligatoire | 
| --- | --- | --- | --- | 
| path | Chemin de la clé de registre. | String | Oui | 
| name | Nom de la clé de registre. | String | Oui | 
| value | Valeur de la clé de registre. | String/Number/Array | Oui | 
| type | Type de valeur de la clé de registre. | String | Oui | 

**Préfixes de chemin pris en charge**
+ `HKEY_CLASSES_ROOT / HKCR:`
+ `HKEY_USERS / HKU:`
+ `HKEY_LOCAL_MACHINE / HKLM:`
+ `HKEY_CURRENT_CONFIG / HKCC:`
+ `HKEY_CURRENT_USER / HKCU:`

**Types pris en charge**
+ `BINARY`
+ `DWORD`
+ `QWORD`
+ `SZ`
+ `EXPAND_SZ`
+ `MULTI_SZ`

**Exemple de saisie : définir les valeurs des clés de registre**

```
  - name: SetRegistryKeyValues
    action: SetRegistry
    maxAttempts: 3
    inputs:
      - path: HKLM:\SOFTWARE\MySoftWare
        name: MyName
        value: FirstVersionSoftware
        type: SZ
      - path: HKEY_CURRENT_USER\Software\Test
        name: Version
        value: 1.1
        type: DWORD
```

**Sortie**

Aucune.

### Mettre à jour le système d'exploitation (Linux, Windows)
<a name="action-modules-updateos"></a>

Le module d'action **UpdateOS** ajoute la prise en charge de l'installation des mises à jour Windows et Linux. Il installe toutes les mises à jour disponibles par défaut. Vous pouvez également configurer une liste d'une ou de plusieurs mises à jour spécifiques à installer par le module d'action. Vous pouvez également spécifier les mises à jour à exclure de l'installation.

Si des listes « à inclure » et « à exclure » sont fournies, la liste des mises à jour qui en résulte ne peut inclure que celles répertoriées dans la liste « à inclure » qui ne figurent pas dans la liste « à exclure ».

**Note**  
**UpdateOS** ne prend pas en charge Amazon Linux 2023 ()AL2023. Nous vous recommandons de mettre à jour votre AMI de base vers la nouvelle version fournie avec chaque nouvelle version. Pour d'autres alternatives, consultez la section [Contrôler les mises à jour reçues à partir des versions majeures et mineures](https://docs.aws.amazon.com/linux/al2023/ug/deterministic-upgrades.html#controlling-release-updates) dans le *Guide de l'utilisateur Amazon Linux 2023*.
+ **Fenêtres**. Les mises à jour sont installées à partir de la source de mise à jour configurée sur la machine cible.
+ **Linux**. L'application recherche le gestionnaire de packages pris en charge sur la plate-forme Linux et utilise l'un ou l'autre `yum` ou le gestionnaire de `apt-get` packages. Si aucun des deux n'est pris en charge, une erreur est renvoyée. Vous devez être `sudo` autorisé à exécuter le module d'action **UpdateOS**. Si vous n'avez pas d'`sudo`autorisations, un `error.Input` est renvoyé.


**Input**  

| Nom de la touche | Description | Type | Obligatoire | 
| --- | --- | --- | --- | 
| include |  Pour Windows, vous pouvez spécifier les éléments suivants : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/imagebuilder/latest/userguide/toe-action-modules.html) Pour Linux, vous pouvez spécifier un ou plusieurs packages à inclure dans la liste des mises à jour à installer.  | Liste de chaînes | Non | 
| exclude |  Pour Windows, vous pouvez spécifier les éléments suivants : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/imagebuilder/latest/userguide/toe-action-modules.html) Pour Linux, vous pouvez spécifier un ou plusieurs packages à exclure de la liste des mises à jour à installer.  | Liste de chaînes | Non | 

**Exemple de saisie : ajout d'un support pour l'installation de mises à jour Linux**

```
  - name: UpdateMyLinux
    action: UpdateOS
    onFailure: Abort
    maxAttempts: 3
    inputs:
      exclude:
        - ec2-hibinit-agent
```

**Exemple de saisie : ajout d'un support pour l'installation des mises à jour Windows**

```
  - name: UpdateWindowsOperatingSystem
    action: UpdateOS
    onFailure: Abort
    maxAttempts: 3
    inputs:
      include:
        - KB1234567
        - '*Security*'
```

**Sortie**

Aucune.

# Configurer l'entrée pour la commande d' AWSTOE exécution
<a name="toe-run-config-input"></a>

Pour rationaliser la saisie de votre AWSTOE **run** commande en ligne de commande, vous pouvez inclure les paramètres et options de commande dans un fichier de configuration d'entrée au format JSON avec une extension de `.json` fichier. AWSTOE peut lire votre fichier depuis l'un des emplacements suivants :
+ Un chemin de fichier local (*./config.json*).
+ Un compartiment S3 (*s3://<bucket-path>/<bucket-name>/config.json*).

Lorsque vous entrez la **run** commande, vous pouvez spécifier le fichier de configuration d'entrée à l'aide du **--config** paramètre. Par exemple :

```
awstoe run --config <file-path>/config.json
```

**Fichier de configuration d'entrée**  
Le fichier JSON de configuration d'entrée inclut des paires clé-valeur pour tous les paramètres que vous pouvez fournir directement via les paramètres et options de **run** commande. Si vous spécifiez un paramètre à la fois dans le fichier de configuration d'entrée et dans la **run** commande, en tant que paramètre ou option, les règles de priorité suivantes s'appliquent :

**Règles de priorité**

1. Un paramètre fourni directement à la **run** commande dans le AWS CLI, via un paramètre ou une option, remplace toute valeur définie dans le fichier de configuration d'entrée pour le même paramètre.

1. Un paramètre du fichier de configuration d'entrée remplace la valeur par défaut d'un composant.

1. Si aucun autre paramètre n'est transmis au document du composant, celui-ci peut appliquer une valeur par défaut, s'il en existe une.

Il existe deux exceptions à cette règle : les documents et les paramètres. Ces paramètres fonctionnent différemment dans la configuration d'entrée et en tant que paramètres de commande. Si vous utilisez le fichier de configuration d'entrée, vous ne devez pas spécifier ces paramètres directement dans la **run** commande. Cela générera une erreur.

**Réglages des composants**  
Le fichier de configuration d'entrée contient les paramètres suivants. Pour rationaliser votre fichier, vous pouvez omettre les paramètres facultatifs inutiles. Tous les paramètres sont facultatifs, sauf indication contraire.
+ **cwIgnoreFailures**(Boolean) — Ignorez les échecs de journalisation dans les CloudWatch journaux.
+ **cwLogGroup**(String) — Le `LogGroup` nom des CloudWatch journaux.
+ **cwLogRegion**(String) — AWS Région qui s'applique aux CloudWatch journaux.
+ **cwLogStream**(String) — Le `LogStream` nom des CloudWatch journaux, qui indique AWSTOE où diffuser le `console.log` fichier.
+ **DocumentS3 BucketOwner** (String) : ID de compte du propriétaire du compartiment pour les documents basés sur l'URI S3.
+ **documents** (tableau d'objets, obligatoire) — Un tableau d'objets JSON représentant les documents du composant YAML exécutés par la AWSTOE **run** commande. Au moins un document composant doit être spécifié.

  Chaque objet comprend les champs suivants :
  + **path** (String, obligatoire) — Emplacement du fichier du document du composant YAML. Il doit s'agir de l'une des options suivantes :
    + Un chemin de fichier local (*./component-doc-example.yaml*).
    + Un URI S3 (`s3://bucket/key`).
    + Un composant Image Builder construit la version ARN (arn:aws:imagebuilder:us-west-:component/ /2021.12.02/1). *2:123456789012* *my-example-component*
  + **paramètres** (tableau d'objets) — Tableau d'objets d'une paire clé-valeur, chacun représentant un paramètre spécifique au composant que la **run** commande transmet lorsqu'elle exécute le document du composant. Les paramètres sont facultatifs pour les composants. Le document du composant peut avoir des paramètres définis ou non.

    Chaque objet comprend les champs suivants :
    + **name** (String, obligatoire) — Nom du paramètre du composant.
    + **value** (String, obligatoire) — La valeur à transmettre au document du composant pour le paramètre nommé.

    Pour en savoir plus sur les paramètres des composants, consultez la section **Paramètres** de la [Utiliser des variables dans votre document de composant personnalisé](toe-user-defined-variables.md) page.
+ **ExecutonId** (String) — Il s'agit de l'identifiant unique qui s'applique à l'exécution de la commande en cours. **run** Cet identifiant est inclus dans les noms des fichiers de sortie et des fichiers journaux, afin d'identifier ces fichiers de manière unique et de les lier à l'exécution de la commande en cours. Si ce paramètre est omis, AWSTOE génère un GUID.
+ **LogDirectory** (String) — Le répertoire de destination où sont AWSTOE stockés tous les fichiers journaux de l'exécution de cette commande. Par défaut, ce répertoire se trouve dans le répertoire parent suivant :`TOE_<DATETIME>_<EXECUTIONID>`. Si vous ne spécifiez pas le répertoire du journal, AWSTOE utilise le répertoire de travail actuel (`.`).
+ **LogS3 BucketName** (chaîne) : si les journaux des composants sont stockés dans Amazon S3 (recommandé), AWSTOE télécharge les journaux des applications des composants dans le compartiment S3 nommé dans ce paramètre.
+ **LogS3 BucketOwner** (chaîne) — Si les journaux des composants sont stockés dans Amazon S3 (recommandé), il s'agit de l'ID de compte propriétaire du compartiment dans lequel AWSTOE les fichiers journaux sont écrits.
+ **LogS3 KeyPrefix** (chaîne) — Si les journaux des composants sont stockés dans Amazon S3 (recommandé), il s'agit du préfixe de clé d'objet S3 pour l'emplacement du journal dans le compartiment.
+ **paramètres** (tableau d'objets) — Tableau d'objets d'une paire clé-valeur qui représente des paramètres qui s'appliquent globalement à tous les composants inclus dans l'exécution de la **run** commande en cours.
  + **name** (String, obligatoire) — Le nom du paramètre global.
  + **value** (String, obligatoire) — La valeur à transmettre à tous les documents du composant pour le paramètre nommé.
+ **phases** (String) — Liste séparée par des virgules qui spécifie les phases à exécuter à partir des documents du composant YAML. Si le document d'un composant inclut des phases supplémentaires, celles-ci ne seront pas exécutées.
+ **StateDirectory** (String) — Le chemin du fichier dans lequel les fichiers de suivi d'état sont stockés.
+ **trace** (booléen) — Active la journalisation détaillée sur la console.

**Exemples**  
L'exemple suivant montre un fichier de configuration d'entrée qui exécute les `test` phases `build` et pour deux documents de composants : `sampledoc.yaml` et`conversation-intro.yaml`. Chaque document composant possède un paramètre qui ne s'applique qu'à lui-même, et les deux utilisent un paramètre partagé. Le `project` paramètre s'applique aux deux documents du composant.

```
{
   "documents": [
     {
       "path": "<file path>/awstoe/sampledoc.yaml>",
       "parameters": [
         {
           "name": "dayofweek",
           "value": "Monday"
         }
       ]
     },
     {
       "path": "<file path>/awstoe/conversation-intro.yaml>",
       "parameters": [
         {
           "name": "greeting",
           "value": "Hello, HAL."
         }
       ]
     }
   ],
   "phases": "build,test",
   "parameters": [
     {
       "name": "project",
       "value": "examples"
     }
   ],
   "cwLogGroup": "<log_group_name>",
   "cwLogStream": "<log_stream_name>",
   "documentS3BucketOwner": "<owner_aws_account_number>",
   "executionId": "<id_number>",
   "logDirectory": "<local_directory_path>",
   "logS3BucketName": "<bucket_name_for_log_files>",
   "logS3KeyPrefix": "<key_prefix_for_log_files>",
   "logS3BucketOwner": "<owner_aws_account_number>"
 }
```