

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Uso de componentes para personalizar su imagen de Generador de imágenes
<a name="manage-components"></a>

Image Builder utiliza la aplicación de administración de componentes Ejecutor y orquestador de tareas de AWS (TOE de AWS) para organizar flujos de trabajo complejos. Los componentes de compilación y prueba que funcionan con la aplicación TOE de AWS se basan en documentos YAML que definen los scripts para personalizar o probar su imagen. Para las imágenes de AMI, Image Builder instala los componentes y la aplicación de administración de TOE de AWS componentes en sus instancias de compilación y prueba de Amazon EC2. En el caso de las imágenes de contenedores, los TOE de AWS componentes y la aplicación de administración de componentes se instalan dentro del contenedor en ejecución. 

Image Builder se utiliza TOE de AWS para realizar todas las actividades en la instancia. No se requiere ninguna configuración adicional con la que interactuar TOE de AWS al ejecutar comandos de Image Builder o utilizar la consola de Image Builder.

**nota**  
Cuando un componente administrado por Amazon llega al final de su vida útil de soporte, deja de recibir mantenimiento. Aproximadamente cuatro semanas antes de que esto ocurra, todas las cuentas que utilicen el componente recibirán una notificación de parte de su Panel de AWS Health y una lista de las recetas afectadas de su cuenta. Para obtener más información AWS Health, consulte la [Guía AWS Health del usuario](https://docs.aws.amazon.com/health/latest/ug/).

**Etapas del flujo de trabajo para compilar una nueva imagen**  
El flujo de trabajo de Generador de Imágenes para compilar nuevas imágenes incluye las siguientes dos etapas distintas.

1. **Etapa de compilación** (previa a la instantánea): durante la etapa de compilación, usted realiza cambios en la instancia de compilación de Amazon EC2 en la que se ejecuta su imagen base para crear la base de referencia de su nueva imagen. Por ejemplo, la receta puede incluir componentes que instalen una aplicación o modifiquen la configuración del firewall del sistema operativo.

   Las siguientes fases de su documento de componente se ejecutan durante la etapa de compilación:
   + build
   + validar

   Una vez que esta etapa se complete correctamente, Generador de Imágenes crea una instantánea o imagen de contenedor que utilizará para la etapa de prueba y posteriores.

1. **Etapa de prueba** (posterior a la instantánea): durante la etapa de prueba, existen algunas diferencias entre las imágenes que crean imágenes de AMI y de contenedor. En el caso de los flujos de trabajo de AMI, Generador de imágenes lanza una instancia de EC2 a partir de la instantánea que creó como paso final de la etapa de creación. Las pruebas se ejecutan en la nueva instancia para validar la configuración y garantizar que la instancia funcione según lo previsto. En el caso de los flujos de trabajo de contenedor, las pruebas se ejecutan en la misma instancia que se utilizó para la creación.

   La siguiente fase de su documento de componentes se ejecuta para cada componente incluido en la receta durante la etapa de prueba de creación de la imagen: 
   + prueba

   Esta fase de los componentes se aplica a los tipos de componentes de compilación y prueba. Una vez que esta etapa se complete correctamente, Generador de Imágenes podrá crear y distribuir su imagen final a partir de la instantánea o la imagen de contenedor.

**nota**  
Si bien el marco de la TOE de AWS aplicación le permite definir muchas fases en un documento de componentes, Image Builder tiene reglas estrictas sobre qué fases ejecuta y durante qué etapas las ejecuta. Para que un componente se ejecute durante la fase de compilación de imágenes, el documento del componente debe definir al menos una de estas fases: `build` o `validate`. Para que un componente se ejecute durante la etapa de prueba de imágenes, el documento del componente debe definir la fase `test` y no otras fases.  
Como Generador de Imágenes ejecuta las etapas de forma independiente, el encadenamiento de referencias en los documentos de los componentes no puede cruzar los límites de las etapas. No puede encadenar un valor de una fase que se ejecuta en la etapa de compilación a una fase que se ejecuta en la etapa de prueba. Sin embargo, puede definir los parámetros de entrada para el objetivo deseado y transferir los valores a través de la línea de comandos. Para obtener más información sobre cómo configurar los parámetros de los componentes en sus recetas de Generador de Imágenes, consulte [Tutorial: creación de un documento del componente con los parámetros de entrada](tutorial-component-parameters.md).

Para ayudar a solucionar problemas en la instancia de compilación o prueba, TOE de AWS crea una carpeta de registro que contiene el documento de entrada y los archivos de registro para realizar un seguimiento de lo que ocurre cada vez que se ejecuta un componente. Si configuró un bucket de Amazon S3 en la configuración de su canalización, los registros también se escriben allí. Para obtener más información acerca de los documentos YAML y la salida de registros, consulte [Utilice el marco de documentos de TOE de AWS componentes para componentes personalizados](toe-use-documents.md).

**sugerencia**  
Cuando tiene muchos componentes de los que realizar un seguimiento, el etiquetado le ayuda a identificar un componente o versión específicos en función de las etiquetas que les haya asignado. Para obtener más información sobre cómo etiquetar los recursos mediante los comandos de Image Builder de AWS CLI, consulte la [Etiquetar recursos](tag-resources.md) sección de esta guía.

En esta sección se explica cómo enumerar, ver, crear e importar componentes mediante la consola de Generador de Imágenes o los comandos de la AWS CLI.

**Topics**
+ [Enumeración y visualización de los detalles de los componentes](component-details.md)
+ [Utilice AWS Marketplace componentes para personalizar la imagen](use-marketplace-components.md)
+ [Utilice componentes administrados para personalizar su imagen de Generador de imágenes](use-managed-components.md)
+ [Desarrollo de componentes personalizados para su imagen de Generador de imágenes](create-custom-components.md)
+ [Cómo utiliza Image Builder la Ejecutor y orquestador de tareas de AWS aplicación para gestionar los componentes](toe-component-manager.md)

# Enumeración y visualización de los detalles de los componentes
<a name="component-details"></a>

En esta sección se describe cómo puede encontrar información y ver los detalles de los componentes que utiliza en sus recetas de EC2 Image Builder.

**Topics**
+ [Enumeración de componentes de Generador de imágenes](#list-components)
+ [Enumere las versiones de compilación de los componentes del AWS CLI](#cli-list-component-versions)
+ [Obtenga los detalles de los componentes en AWS CLI](#cli-get-component)
+ [Obtenga los detalles de la política de componentes en el AWS CLI](#cli-get-component-policy)

## Enumeración de componentes de Generador de imágenes
<a name="list-components"></a>

Puede utilizar uno de los métodos siguientes para enumerar y filtrar componentes de Generador de imágenes.

------
#### [ Consola de administración de AWS ]

Para mostrar una lista de los componentes de Consola de administración de AWS, siga estos pasos:

1. Abra la consola [https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/)EC2 Image Builder en.

1. En el panel de navegación, seleccione **Componentes**. De forma predeterminada, Generador de Imágenes muestra una lista de los componentes que pertenecen a su cuenta.

1. Si lo desea, puede filtrar según la propiedad de los componentes. Para ver los componentes que no son de su propiedad, pero a los que tiene acceso, amplíe la lista desplegable de tipos de propietario y seleccione uno de los valores. La lista de tipos de propietario se encuentra en la barra de búsqueda, junto al cuadro de texto de búsqueda. Puede seleccionar de entre los siguientes valores:
   + **AWS Marketplace**— Componentes que están asociados directamente a la suscripción de un AWS Marketplace producto.
   + **Inicio rápido (administrado por Amazon)**: componentes disponibles públicamente que Amazon crea y mantiene.
   + **De mi propiedad**: componentes que usted creó. Esta es la selección predeterminada.
   + **Compartido conmigo**: componentes que otros han creado y compartido contigo desde su cuenta.
   + **Administrados por terceros**: componentes que son propiedad de un tercero y a los que usted se ha suscrito. AWS Marketplace

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

En el siguiente ejemplo, se muestra cómo utilizar el comando de **[list-components](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/list-components.html)** para devolver una lista de los componentes de Generador de imágenes que son propiedad de su cuenta.

```
aws imagebuilder list-components
```

Si lo desea, puede filtrar según la propiedad de los componentes. El atributo de propietario define quién es el propietario de los componentes que desea enumerar. De forma predeterminada, esta solicitud devuelve una lista de los componentes que pertenecen a su cuenta. Para filtrar los resultados por propietario del componente, especifique uno de los siguientes valores con el parámetro `--owner` cuando ejecute el comando **list-components**.

**Valores del propietario del componente**
+ `AWSMarketplace`
+ `Amazon`
+ `Self`
+ `Shared`
+ `ThirdParty`

Los ejemplos siguientes muestran el comando **list-components** con el parámetro `--owner` para filtrar los resultados.

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

------

## Enumere las versiones de compilación de los componentes del AWS CLI
<a name="cli-list-component-versions"></a>

En el ejemplo siguiente se muestra cómo utilizar el comando **[list-component-build-versions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/list-component-build-versions.html)** para enumerar las versiones de creación de componentes que tienen una versión semántica específica. Para obtener más información sobre el control de versiones semántico para los recursos de Generador de Imágenes, consulte [Control de versiones semántico en Generador de imágenes](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"
            }
        }
    ]
}
```

## Obtenga los detalles de los componentes en AWS CLI
<a name="cli-get-component"></a>

El siguiente ejemplo muestra cómo utilizar el comando **[get-component](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/get-component.html)** para obtener los detalles del componente al especificar el nombre de recurso de Amazon (ARN) del componente.

```
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": {}
    }
}
```

## Obtenga los detalles de la política de componentes en el AWS CLI
<a name="cli-get-component-policy"></a>

En el ejemplo siguiente se muestra cómo utilizar el comando **[get-component-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/get-component-policy.html)** para obtener detalles de una política de componentes al especificar el ARN del componente.

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

# Utilice AWS Marketplace componentes para personalizar la imagen
<a name="use-marketplace-components"></a>

Además de una amplia selección de imágenes creadas por proveedores de software independientes (ISVs), AWS Marketplace ofrece componentes que puede utilizar para personalizar sus propias imágenes de Image Builder. Debe suscribirse a estos AWS Marketplace componentes antes de poder utilizarlos en su receta de imagen para crear una nueva imagen.

Al especificar un AWS Marketplace componente en una receta de imagen, Image Builder valida la suscripción y realiza comprobaciones de dependencias para garantizar que dispone de los recursos que necesita para utilizarla. Cuando la validación se realiza correctamente, Image Builder crea descargas seguras para el componente y sus artefactos para que las utilicen las compilaciones de Image Pipeline.

## Descubra los componentes AWS Marketplace
<a name="use-marketplace-components-discover"></a>

Puede encontrar los componentes de AWS Marketplace software que puede utilizar en sus recetas en la página **Descubra productos** de la consola Image Builder, de la siguiente manera.

1. Abra la consola [https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/)EC2 Image Builder en.

1. En el panel de navegación, elija **Descubrir productos** en la **AWS Marketplace**sección.

1. Seleccione la pestaña **Components** (Componentes). En esta pestaña se muestran todos los AWS Marketplace productos que utilizan la opción de entrega que incluye los componentes asociados AWS Marketplace.

1. Para buscar productos de software específicos que incluyan componentes, puede introducir parte del nombre en la barra de búsqueda o filtrar por `Status``Operating System`,`Publisher`, o`Categories`. La barra de búsqueda también contiene controles de paginación para los resultados.

### Resultados
<a name="w2aac13c26b7b7"></a>

Cada AWS Marketplace producto tiene su propio panel de detalles que incluye la siguiente información.

**El nombre y el logotipo del AWS Marketplace producto**  
El nombre del producto de software está vinculado a los detalles del producto en AWS Marketplace. Puede seleccionar el enlace para obtener más información sobre el producto en AWS Marketplace. Como alternativa, puedes ver un resumen de las opciones de suscripción y suscribirte directamente desde los resultados de la búsqueda con el botón **Ver opciones de suscripción** si ya has investigado.

**Versión**  
Contiene la versión principal del componente.

**Sistema operativo**  
El sistema operativo para el que está diseñado el componente.

**Publicador**  
El editor del componente. Está vinculado a la página de detalles del editor en AWS Marketplace. Se abrirá la página de detalles del publicador en una pestaña nueva en su navegador.

**Categorías**  
Una o más categorías de AWS Marketplace productos que se aplican al componente.

**Estado**  
Muestra si está suscrito a este producto. Si no está suscrito, puede seleccionar **Ver opciones de suscripción para ver un resumen de las opciones** de suscripción del AWS Marketplace producto y, si lo desea, suscribirse directamente desde la consola de Image Builder.

**Componentes asociados**  
Si el AWS Marketplace producto tiene una o más versiones incluidas en la suscripción, se muestran en la sección **Componentes asociados**. La sección se contrae inicialmente y muestra un recuento de los componentes asociados. Puede ampliar la sección para ver más detalles.

**nota**  
El componente Center for Internet Security (CIS) asociado a su producto de AWS Marketplace imagen no aparece en los resultados de **Discover Products**. Si te suscribes a su producto de imagen, el componente asociado se muestra en la página de **suscripciones** y, como componente de terceros, en el cuadro de diálogo **Crear receta de imagen**. Para obtener más información sobre el componente, consulte[Componentes de endurecimiento de CIS](toe-cis.md).

## Suscríbase a AWS Marketplace los componentes
<a name="use-marketplace-components-subscribe"></a>

Cuando hayas encontrado un AWS Marketplace producto con componentes que desees usar en tus recetas, puedes suscribirte a él directamente desde la consola de Image Builder, de la siguiente manera, o puedes suscribirte desde la AWS Marketplace consola.

1. Abra la consola [https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/)EC2 Image Builder en.

1. En el panel de navegación, elija **Descubrir productos** en la **AWS Marketplace**sección.

1. Seleccione la pestaña **Components** (Componentes). En esta pestaña se muestran todos los AWS Marketplace productos que utilizan la opción de entrega que incluye los componentes asociados AWS Marketplace.

1. Para buscar un AWS Marketplace producto específico, introduce parte del nombre en la barra de búsqueda. Si conoces al editor, pero no sabes el nombre exacto del producto ni cómo se escribe, también puedes filtrar por ellos `Publisher` para obtener una lista de los productos que el editor tiene disponibles.

1. Selecciona el producto al que quieres suscribirte en la lista de resultados y selecciona **Ver opciones de suscripción**. Aquí se muestra un resumen de las opciones de suscripción del AWS Marketplace producto.

1. Seleccione **Suscribirse** para suscribirse al producto sin salir de la consola de Image Builder. Se le notificará que la suscripción se está procesando. Una vez suscrito, el **estado** se actualiza a`Subscribed`.

Para obtener más información sobre los AWS Marketplace productos a los que está suscrito actualmente, consulte los pasos de la consola que se describen en. [AWS Marketplace suscripciones en Image Builder](integ-marketplace.md#integ-marketplace-subs)

## Uso de un AWS Marketplace componente en una receta de imagen de Image Builder
<a name="use-marketplace-components-recipe"></a>

Puede utilizar AWS Marketplace los componentes en las recetas de imágenes de Image Builder del mismo modo que utiliza otros tipos de componentes. Para la mayoría de los componentes asociados a un producto de AWS Marketplace imagen, la categoría de propiedad es`AWS Marketplace`. Por ejemplo, para usar un componente de compilación de un AWS Marketplace producto al que esté suscrito, elija **Agregar componentes de compilación** y selecciónelo `AWS Marketplace` de la lista. Esto abre un panel de selección en la parte derecha de la interfaz de la consola que muestra AWS Marketplace los componentes.

**nota**  
Si busca el componente de endurecimiento CIS`Third party managed`, seleccione uno de la lista de propietarios en lugar de`AWS Marketplace`.

Para obtener más información sobre cómo seleccionar, organizar y configurar los parámetros de los componentes, consulte[Creación de una nueva versión de una receta de imagen](create-image-recipes.md).

# Utilice componentes administrados para personalizar su imagen de Generador de imágenes
<a name="use-managed-components"></a>

Los componentes gestionados los crea una organización externa AWS, a veces en colaboración con ella, como el Center for Internet Security (CIS), por ejemplo. Cuando utilizas componentes gestionados en tus recetas de imagen o contenedor, Amazon proporciona las versiones más recientes de los componentes a las que se han aplicado parches y otras actualizaciones. Para obtener una lista de componentes o información sobre los componentes, consulte[Enumeración y visualización de los detalles de los componentes](component-details.md).

La siguiente lista de componentes AWS gestionados destacados incluye un componente que puede utilizar al suscribirse a CIS Hardened a AMIs través del AWS Marketplace.

**Topics**
+ [Instalación de una aplicación de componentes administrada por un paquete distribuidor para imágenes de Windows de Generador de imágenes](mgdcomponent-distributor-win.md)
+ [Componentes de endurecimiento de CIS](toe-cis.md)
+ [Componentes de endurecimiento de STIG administrados por Amazon para Generador de imágenes](ib-stig.md)

# Instalación de una aplicación de componentes administrada por un paquete distribuidor para imágenes de Windows de Generador de imágenes
<a name="mgdcomponent-distributor-win"></a>

AWS Systems Manager El distribuidor le ayuda a empaquetar y publicar software en los nodos AWS Systems Manager gestionados. Puede empaquetar y publicar su propio software o utilizar Distributor para buscar y publicar paquetes de software de agente proporcionados por AWS. Para obtener más información acerca de Systems Manager Distributor, consulte [AWS Systems Manager Distributor](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor.html) en la *Guía del usuario de AWS Systems Manager *.

**Componentes administrados por Distributor**  
Los siguientes componentes gestionados por Image Builder utilizan AWS Systems Manager Distributor para instalar paquetes de aplicaciones en instancias de Windows.
+ El componente administrado `distributor-package-windows` utiliza el Distribuidor de AWS Systems Manager para instalar los paquetes de aplicaciones que especifique en la instancia de creación de imágenes de Windows. Para configurar los parámetros al incluir este componente en la receta, consulte [Configuración de `distributor-package-windows` como componente independiente](#mgdcomponent-distributor-config-standalone).
+ El `aws-vss-components-windows` componente usa AWS Systems Manager Distributor para instalar el `AwsVssComponents` paquete en la instancia de compilación de imágenes de Windows. Para configurar los parámetros al incluir este componente en la receta, consulte [Configuración de `aws-vss-components-windows` como componente independiente](#mgdcomponent-vss-config-standalone).

Para obtener más información sobre cómo utilizar los componentes administrados en su receta de Generador de Imágenes, consulte [Creación de una nueva versión de una receta de imagen](create-image-recipes.md) para recetas de imagen o [Creación de una nueva versión de una receta de contenedor](create-container-recipes.md) para recetas de contenedor. Para obtener más información sobre el paquete de `AwsVssComponents`, consulte [Crear una instantánea coherente con la aplicación de VSS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/application-consistent-snapshots.html) en la *Guía del usuario de Amazon EC2*.

## Requisitos previos
<a name="mgdcomponent-distributor-prereq"></a>

Antes de utilizar los componentes de Generador de imágenes que dependen de Systems Manager Distributor para instalar paquetes de aplicaciones, debe asegurarse de que se cumplen los siguientes requisitos previos.
+ Los componentes de Generador de Imágenes que utilizan Systems Manager Distributor para instalar paquetes de aplicaciones en su instancia necesitan permiso para llamar a la API de Systems Manager. Antes de utilizar los componentes de una receta de Generador de Imágenes, debe crear el rol y la política de IAM que otorgan el permiso. Para configurar los permisos, consulte [Configuración de permisos para Systems Manager Distributor](#mgdcomponent-distributor-permissions).

**nota**  
Por el momento, Generador de Imágenes no admite los paquetes de Systems Manager Distributor que reinician la instancia. Por ejemplo, los paquetes `AWSNVMe`, `AWSPVDrivers` y `AwsEnaNetworkDriver` de Distributor reinician la instancia y, por lo tanto, no están permitidos.

## Configuración de permisos para Systems Manager Distributor
<a name="mgdcomponent-distributor-permissions"></a>

El componente `distributor-package-windows` y otros componentes que lo utilizan, por ejemplo `aws-vss-components-windows`, requieren un permiso adicional en la instancia de compilación para ejecutarse. La instancia de compilación debe poder llamar a la API de Systems Manager para iniciar la instalación de Distributor y sondear el resultado.

Siga estos procedimientos Consola de administración de AWS para crear una política y un rol de IAM personalizados que concedan permiso a los componentes de Image Builder para instalar paquetes de Systems Manager Distributor desde la instancia de compilación.

**Paso 1: cree una política**  
Cree una política de IAM para los permisos de Distributor.

1. Abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. En el panel de navegación, seleccione **Políticas** y, a continuación, **Crear política**.

1. En la página **Crear política**, elija la pestaña **JSON** y, a continuación, sustituya el contenido predeterminado por la siguiente política de JSON, sustituyendo la partición, la región y el identificador de cuenta según sea necesario, o bien utilizando caracteres comodín.

------
#### [ 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. Elija **Review policy**.

1. En **Name (Nombre)**, escriba un nombre para identificar la política, por ejemplo, `InvokeDistributor` u otro nombre que prefiera.

1. (Opcional) En **Description (Descripción)**, introduzca una descripción de la finalidad del rol.

1. Elija **Create Policy**.

**Paso 2: cree un rol**  
Cree un rol de IAM para los permisos de Distributor.

1. En el panel de navegación de la consola de IAM, elija **Roles** y, a continuación, elija **Crear rol**.

1. En **Select type of trusted entity** (Seleccionar el tipo de entidad de confianza), elija **Servicio de AWS**.

1. Justo debajo de **Choose the service that will use this role (Elegir el servicio que utilizará este rol)**, elija **EC2** y, a continuación, elija **Next: Permissions (Siguiente: Permisos)**.

1. En **Select your use case (Seleccione su caso de uso)**, elija **EC2** y, a continuación, **Next: Permissions (Siguiente: Permisos)**.

1. En la lista de políticas, selecciona la casilla de verificación situada junto a **Amazon SSMManaged InstanceCore**. (Escriba `SSM` en el cuadro de búsqueda si necesita reducir la lista.)

1. En esta lista de políticas, selecciona la casilla situada junto a **EC2InstanceProfileForImageBuilder**. (Escriba `ImageBuilder` en el cuadro de búsqueda si necesita reducir la lista.)

1. Elija **Next: Tags (Siguiente: Etiquetas)**.

1. (Opcional) Agregue uno o varios pares clave-valor de etiqueta para organizar, realizar un seguimiento o controlar el acceso a este rol y, a continuación, elija **Siguiente: revisar**.

1. En **Role name (Nombre del rol)**, escriba un nombre para el rol, por ejemplo, `InvokeDistributor` u otro nombre que prefiera.

1. (Opcional) En **Role description (Descripción de rol)**, sustituya el texto predeterminado por una descripción de este rol.

1. Elija **Create role**. El sistema le devuelve a la página **Roles**.

**Paso 3: asocie la política al rol**  
El último paso para configurar los permisos de Distributor es asociar la política de IAM al rol de IAM.

1. En la página **Roles** de la consola de IAM, seleccione el rol que acaba de crear. Se abre la página **Summary** (Resumen) del rol.

1. Seleccione **Attach policies (Asociar políticas)**.

1. Busque la política creada en el procedimiento anterior y seleccione la casilla junto al nombre.

1. Elija **Asociar política**.

Utilice este rol en el recurso de configuración de infraestructura de Generador de Imágenes para cualquier imagen que incluya componentes que utilicen de Systems Manager Distributor. Para obtener más información, consulte [Crear una configuración de infraestructura](create-infra-config.md).

## Configuración de `distributor-package-windows` como componente independiente
<a name="mgdcomponent-distributor-config-standalone"></a>

Para usar el componente `distributor-package-windows` en una receta, defina los siguientes parámetros que configuran el paquete que se va a instalar.

**nota**  
Antes de utilizar el componente `distributor-package-windows` en una receta, debe asegurarse de que se cumplan todos los [Requisitos previos](#mgdcomponent-distributor-prereq).
+ **Acción** (obligatorio): especifique si desea instalar o desinstalar el paquete. Los valores válidos son `Install` y `Uninstall`. Este valor se establece de forma predeterminada en `Install`.
+ **PackageName**(Obligatorio): el nombre del paquete del distribuidor que se va a instalar o desinstalar. Para obtener una lista de nombres de paquete válidos, consulte [Búsqueda de paquetes Distributor](#mgdcomponent-distributor-find-pkg).
+ **PackageVersion**(Opcional): la versión del paquete distribuidor que se va a instalar. PackageVersion toma de forma predeterminada la versión recomendada.
+ **AdditionalArguments**(Opcional): cadena JSON que contiene los parámetros adicionales que debe proporcionar al script para instalar, desinstalar o actualizar un paquete. Para obtener más información, consulte **additionalArguments** en la sección **Inputs (Entradas)** de [aws:configurePackage](https://docs.aws.amazon.com/systems-manager/latest/userguide/documents-command-ssm-plugin-reference.html#aws-configurepackage) de la página de **referencia del complemento del documento Systems Manager Command**.

## Configuración de `aws-vss-components-windows` como componente independiente
<a name="mgdcomponent-vss-config-standalone"></a>

Al utilizar el componente `aws-vss-components-windows` en una receta, tiene la opción de configurar el parámetro `PackageVersion` para utilizar una versión específica del paquete `AwsVssComponents`. Si omite este parámetro, el componente utilizará de forma predeterminada la versión recomendada del paquete `AwsVssComponents`.

**nota**  
Antes de utilizar el componente `aws-vss-components-windows` en una receta, debe asegurarse de que se cumplan todos los [Requisitos previos](#mgdcomponent-distributor-prereq).

## Búsqueda de paquetes Distributor
<a name="mgdcomponent-distributor-find-pkg"></a>

Amazon y terceros proporcionan paquetes públicos que puede instalar con Systems Manager Distributor.

Para ver los paquetes disponibles en Consola de administración de AWS, inicie sesión en la [AWS Systems Manager consola](https://console.aws.amazon.com/systems-manager/;) y seleccione **Distribuidor** en el panel de navegación. La página **Distributor** muestra todos los paquetes disponibles para usted. Para obtener más información sobre la lista de paquetes disponibles en el AWS CLI, consulte [Ver paquetes (línea de comandos)](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor-view-packages.html) en la *Guía del AWS Systems Manager usuario*.

También puede crear sus propios paquetes de Systems Manager Distributor privados. Para obtener más información, consulte [Crear un paquete](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor-working-with-packages-create.html) en la *Guía del usuario de AWS Systems Manager *.

# Componentes de endurecimiento de CIS
<a name="toe-cis"></a>

El Center for Internet Security (CIS, Centro para la seguridad de Internet) es una organización sin fines de lucro impulsada por la comunidad. Sus expertos en ciberseguridad trabajan juntos para desarrollar pautas de seguridad de TI que protejan a las organizaciones públicas y privadas contra las ciberamenazas. Su conjunto de mejores prácticas, reconocido a nivel mundial y conocido como Referencias del CIS, ayuda a las organizaciones de TI de todo el mundo a configurar sus sistemas de forma segura. Para ver artículos de actualidad, entradas de blog, podcasts, seminarios web y documentos técnicos, consulte [CIS Insights](https://www.cisecurity.org/insights) en el sitio web del *Center for Internet Security* (Centro para la seguridad de Internet).

**Referencias del CIS**  
CIS crea y mantiene un conjunto de pautas de configuración, conocidas como Referencias del CIS, que proporcionan las mejores prácticas de configuración para tecnologías específicas, incluidos los sistemas operativos, las plataformas en la nube, las aplicaciones, las bases de datos y más. Las Referencias del CIS se reconocen como un estándar de la industria por las organizaciones y estándares como PCI DSS, HIPAA, DoD Cloud Computing SRG, FISMA, DFARS y FEDRAMP. Para obtener más información, consulte [Referencias del CIS](https://www.cisecurity.org/benchmark) en el sitio web del *Center for Internet Security.*

**Componentes de endurecimiento de CIS**  
Cuando se suscribe a una imagen reforzada de CIS AWS Marketplace, también obtiene acceso al componente de refuerzo asociado que ejecuta un script para aplicar las directrices de nivel 1 de CIS Benchmarks para su configuración. La organización del CIS es propietaria y mantiene los componentes de endurecimiento del CIS para garantizar que reflejen las directrices más recientes.

**nota**  
Los componentes de endurecimiento del CIS no siguen las reglas de ordenación de componentes estándar de las recetas de Generador de Imágenes. Los componentes de endurecimiento del CIS siempre se ejecutan en último lugar para garantizar que las pruebas de referencia se ejecuten con la imagen de salida.

# Componentes de endurecimiento de STIG administrados por Amazon para Generador de imágenes
<a name="ib-stig"></a>

Las guías de implementación técnica de seguridad (STIGs) son estándares que refuerzan la configuración creados por la Agencia de Sistemas de Información de Defensa (DISA) para proteger los sistemas de información y el software. Para hacer nuestros sistemas de conformidad con los estándares de STIG, debe instalar, configurar y probar varias configuraciones de seguridad.

Generador de Imágenes proporciona componentes de endurecimiento de STIG para crear de manera más eficiente imágenes compatibles con los estándares de referencia de STIG. Estos componentes de STIG escanean en busca de configuraciones incorrectas y ejecutan un script de corrección. El uso de componentes que cumplen con STIG no conlleva cargos adicionales.

**importante**  
Con pocas excepciones, a menos que se especifique en los parámetros, los componentes de refuerzo de STIG no instalan paquetes de terceros. Si ya hay paquetes de terceros instalados en la instancia y si hay paquetes relacionados STIGs que Image Builder admite para ese paquete, el componente de refuerzo los aplica.

En esta página se enumeran todos los STIG compatibles con Generador de Imágenes que se aplican a las instancias de EC2 y que Generador de Imágenes lanza al crear y probar una imagen nueva. Si desea aplicar ajustes STIG adicionales a la imagen, puede crear un componente personalizado para configurarla. Para obtener más información sobre los componentes personalizados y cómo crearlos, consulte [Uso de componentes para personalizar su imagen de Generador de imágenes](manage-components.md).

Al crear una imagen, se aplica o se omite el registro de componentes de refuerzo de STIG, independientemente de si STIGs son compatibles. Le recomendamos que revise los registros de Generador de Imágenes para ver las imágenes que utilizan componentes de endurecimiento de STIG. Para obtener más información sobre cómo acceder y revisar los registros de Generador de Imágenes, consulte [Solución de problemas de canalizaciones](troubleshooting.md#troubleshooting-pipelines).

**Niveles de conformidad**
+ **Alto (Categoría I) **

  El riesgo más grave. Incluye cualquier vulnerabilidad que pueda resultar en la pérdida de confidencialidad, disponibilidad o integridad.
+ **Medio (Categoría II) **

  Incluye cualquier vulnerabilidad que pueda resultar en la pérdida de confidencialidad, disponibilidad o integridad, pero los riesgos se pueden mitigar.
+ **Bajo (Categoría III) **

  Cualquier vulnerabilidad que degrade las medidas de protección contra la pérdida de confidencialidad, disponibilidad o integridad.

**Topics**
+ [Componentes de endurecimiento de STIG de Windows](#windows-os-stig)
+ [Registro del historial de versiones de STIG para Windows](#ib-windows-version-hist)
+ [Componentes de endurecimiento de STIG de Linux](#linux-os-stig)
+ [Registro del historial de versiones de STIG para Linux](#ib-linux-version-hist)
+ [Componente validador de cumplimiento del SCAP](#scap-compliance)

## Componentes de endurecimiento de STIG de Windows
<a name="windows-os-stig"></a>

TOE de AWS Los componentes de refuerzo STIG de Windows están diseñados para servidores independientes y aplican una política de grupo local. Los componentes de endurecimiento compatibles con STIG instalan y actualizan los certificados del Departamento de Defensa (DoD). También eliminan los certificados innecesarios para mantener el cumplimiento del STIG. Actualmente, las líneas base de STIG son compatibles con las siguientes versiones de Windows Server: 2012 R2, 2016, 2019, 2022 y 2025.

En esta sección se muestra la configuración actual de cada uno de los componentes de endurecimiento de STIG de Windows, seguida de un registro del historial de versiones.

### STIG Low de Windows (Categoría III)
<a name="ib-windows-stig-low"></a>

La siguiente lista contiene la configuración de STIG que el componente de endurecimiento aplica a la infraestructura. Si una configuración compatible no es aplicable a la infraestructura, el componente de endurecimiento omite esa configuración y continúa. Por ejemplo, es posible que algunas configuraciones de STIG no se apliquen a los servidores independientes. Las políticas específicas de la organización también pueden afectar la configuración aplicada por el componente de endurecimiento como, por ejemplo, pedir requisitos a los administradores para revisar la configuración de los documentos.

[Para obtener una lista completa de Windows STIGs, consulte la STIGs biblioteca de documentos.](https://public.cyber.mil/stigs/downloads/?_dl_facet_stigs=windows) Para obtener información acerca de cómo ver la lista completa, consulte [Herramientas de visualización de STIG](https://public.cyber.mil/stigs/srg-stig-tools/).
+ **Windows Server 2025 STIG versión 1, versión 1**

  V-278082, V-278083, V-278084, V-278085, V-278098, V-278104, V-278110 y V-278231
+ **Windows Server 2022 STIG versión 2, versión 7**

  V-254335, V-254336, V-254337, V-254338, V-254351, V-254357, V-254363 y V-254481
+ **Windows Server 2019 STIG versión 3, versión 7**

  V-205691, V-205819, V-205858, V-205859, V-205860, V-205870, V-205871 y V-205923.
+ **Windows Server 2016 STIG versión 2, edición 10**

  V-224916, V-224917, V-224918, V-224919, V-224931, V-224942 y V-225060.
+ **Windows Server 2012 R2 MS STIG Version 3 Release 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 y V-225537
+ **Microsoft.NET Framework 4.0 STIG versión 2 versión 7**

  No se aplica ninguna configuración de STIG a Microsoft .NET Framework para vulnerabilidades de categoría III.
+ **Windows Firewall STIG versión 2, edición 2**

  V-241994, V-241995, V-241996, V-241999, V-242000, V-242001, V-242006, V-242007 y V-242008
+ **Internet Explorer 11 STIG versión 2 versión 6**

  V-223056 y V-223078
+ **Microsoft Edge STIG versión 2 versión 4 (solo para Windows Server 2022 y 2025)**

  V-235727, V-235731, V-235751, V-235752 y V-235765
+ **Microsoft Defender STIG versión 2, versión 7**

  No se aplica ninguna configuración STIG al Antivirus de Microsoft para las vulnerabilidades de categoría III.

### STIG Medium de Windows (Categoría II)
<a name="ib-windows-stig-medium"></a>

La siguiente lista contiene la configuración de STIG que el componente de endurecimiento aplica a la infraestructura. Si una configuración compatible no es aplicable a la infraestructura, el componente de endurecimiento omite esa configuración y continúa. Por ejemplo, es posible que algunas configuraciones de STIG no se apliquen a los servidores independientes. Las políticas específicas de la organización también pueden afectar la configuración aplicada por el componente de endurecimiento como, por ejemplo, pedir requisitos a los administradores para revisar la configuración de los documentos.

Para obtener una lista completa de Windows STIGs, consulte la [biblioteca de STIGs documentos](https://public.cyber.mil/stigs/downloads/?_dl_facet_stigs=windows). Para obtener información acerca de cómo ver la lista completa, consulte [Herramientas de visualización de STIG](https://public.cyber.mil/stigs/srg-stig-tools/).

**nota**  
Los componentes de protección STIG Medium de Windows incluyen todas las configuraciones STIG enumeradas que TOE de AWS se aplican a los componentes STIG de baja resistencia de Windows, además de las configuraciones STIG que se enumeran específicamente para las vulnerabilidades de categoría II.
+ **Windows Server 2025 STIG versión 1, versión 1**

  Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de categoría III (baja), además de:

  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-278086, 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-278193 194, V-278195, V-278198, V-278199, V-278200, V-278201, V-278202, V-278203, V-278204, V-278205, V-278206, 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-27992716, V-V-279917, V-279918, V-279919, V-279920, V-279921, V-279922 y V-279923
+ **Windows Server 2022 STIG versión 2, versión 7**

  Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de categoría III (baja), además de:

  V-254247, V-254269, V-254270, V-254271, V-254272, V-254273, V-254274, V-254275, V-254276, V-254277, V-254278, V-254285, V-254286, V-254287, V-254288, V-254289, V-254290, V-254291, V-254292, 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-254312, V-254313, V-254314, V-254315, V-254316, V-254319, V-254319 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-254333, 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-254364, V-254365, V-254366, V-254367, V-254368, V-254369, V-254369 4370, 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-254433, V-254434, V-254435, V-254436, V-254438, V-254439, V-254439 40, V-254442, V-254443, V-254445, V-254447, V-254448, V-254449, V-254450, V-254451, V-254452, V-254453, V-254454, V-254455, 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-254507, V-254508, V-254509, V-254510, V-254511, V-254512, V-278942, V-278943, V-278944, V-278945, V-278946, V-278947, V-278948 y V-278949
+ **Windows Server 2019 STIG versión 3 versión 7**

  Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de categoría III (baja), además de:

  V-205625, V-205626, V-205627, V-205629, V-205630, V-205633, V-205634, V-205635, V-205636, V-205637, V-205638, V-205639, V-205640, V-205641, V-205642, V-205643, V-205644, V-205648, V-205649, V-205649, V-205649 205650, V-205651, V-205652, 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-205683, V-205683, V-205683, V-205683 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-205717, 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-205755, 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-205775, V-205776, V-205777, V-205778, V-205779, V-205780, V-205781, V-205781 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-205813, V-205814, V-205815, V-205816, V-205817, V-205821, 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 y V-278941
+ **Windows Server 2016 STIG versión 2, edición 10**

  Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de categoría III (baja), además de:

  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-224878, V-224879, V-224880, 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-224901, V-224902, V-224903, 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-224951, 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-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-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-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-225059, 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-225088, V-225089, V-225092, V-225093 y V-257502
+ **Windows Server 2012 R2 MS STIG versión 3, versión 5**

  Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de categoría III (baja), además de:

  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 y V-225574
+ **Microsoft.NET Framework 4.0 STIG versión 2 versión 7**

  Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de categoría III (baja), además de:

  V-225223, V-225230, V-225235 y V-225238
+ **Windows Firewall STIG versión 2, edición 2**

  Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de categoría III (baja), además de:

  V-241989, V-241990, V-241991, V-241993, V-241998, V-242003, V-242004 y V-242005
+ **Internet Explorer 11 STIG versión 2 versión 6**

  Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de categoría III (baja), además de:

  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-223029, 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-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-223117, 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 y V-250541
+ **Microsoft Edge STIG versión 2 versión 4 (solo para Windows Server 2022 y 2025)**

  Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de categoría III (baja), además de:

  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 y V-246736
+ **Microsoft Defender STIG versión 2, versión 7**

  Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de categoría III (baja), además de:

  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-213445, V-213446, V-213447, V-213448, V-213449, 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-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 y V-278863

### STIG de Windows versión I (Categoría I)
<a name="ib-windows-stig-high"></a>

La siguiente lista contiene la configuración de STIG que el componente de endurecimiento aplica a la infraestructura. Si una configuración compatible no es aplicable a la infraestructura, el componente de endurecimiento omite esa configuración y continúa. Por ejemplo, es posible que algunas configuraciones de STIG no se apliquen a los servidores independientes. Las políticas específicas de la organización también pueden afectar la configuración aplicada por el componente de endurecimiento como, por ejemplo, pedir requisitos a los administradores para revisar la configuración de los documentos.

Para obtener una lista completa de Windows STIGs, consulte la biblioteca de [STIGs documentos](https://public.cyber.mil/stigs/downloads/?_dl_facet_stigs=windows). Para obtener información acerca de cómo ver la lista completa, consulte [Herramientas de visualización de STIG](https://public.cyber.mil/stigs/srg-stig-tools/).

**nota**  
Los componentes de protección STIG High de Windows incluyen todas las configuraciones de STIG enumeradas que TOE de AWS se aplican a los componentes de protección de Windows STIG Low y Windows STIG Medium, además de las configuraciones de STIG que se enumeran específicamente para las vulnerabilidades de categoría I.
+ **Windows Server 2025 STIG versión 1, versión 1**

  Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de las categorías II y III (media y baja), además de:

  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 y V-278250
+ **Windows Server 2022 STIG versión 2, versión 7**

  Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de las categorías II y III (media y baja), además de:

  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 y V-254500
+ **Windows Server 2019 STIG versión 3 versión 7**

  Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de las categorías II y III (media y baja), además de:

  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 y V-205919
+ **Windows Server 2016 STIG versión 2, edición 10**

  Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de las categorías II y III (media y baja), además de:

  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 y V-225091
+ **Windows Server 2012 R2 MS STIG versión 3, versión 5**

  Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de las categorías II y III (media y baja), además de:

  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 y V-225556
+ **Microsoft.NET Framework 4.0 STIG versión 2 versión 7**

  Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de las categorías II y III (media y baja) para Microsoft.NET Framework. No se aplica ninguna configuración de STIG adicional para vulnerabilidades de categoría I.
+ **Windows Firewall STIG versión 2, edición 2**

  Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de las categorías II y III (media y baja), además de:

  V-241992, V-241997 y V-242002
+ **Internet Explorer 11 STIG versión 2 versión 6**

  V-252910
+ **Microsoft Edge STIG versión 2 versión 4 (solo para Windows Server 2022 y 2025)**

  Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de las categorías II y III (media y baja), además de:

  V-235758 y V-235759
+ **Microsoft Defender STIG versión 2, versión 7**

  Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de las categorías II y III (media y baja), además de:

  V-213426, V-213428, V-213452 y V-213453

## Registro del historial de versiones de STIG para Windows
<a name="ib-windows-version-hist"></a>

Esta sección registra el historial de versiones de los componentes de endurecimiento de Windows para las actualizaciones trimestrales de STIG. Para ver los cambios y las versiones publicadas durante un trimestre, elija el título para ampliar la información.

### Cambios en el primer trimestre de 2026:3 de octubre de 2026:
<a name="2026-q1-windows"></a>

Se agregó soporte para Windows Server 2025 y se actualizó todo lo aplicable STIGs al primer trimestre de 2026.

**STIG-Build-Windows**
+ Windows Server 2025 STIG versión 1 versión 1
+ Windows Server 2022 STIG versión 2, versión 7
+ Windows Server 2019 STIG versión 3, versión 7
+ Windows Server 2016 STIG versión 2 edición 10
+ Windows Server 2012 R2 MS STIG Version 3 Release 5
+ Microsoft.NET Framework 4.0 STIG versión 2 versión 7
+ Windows Firewall STIG versión 2, edición 2
+ Internet Explorer 11 STIG versión 2 versión 8
+ Microsoft Edge STIG versión 2 versión 4 (solo para Windows Server 2022 y 2025)

### Cambios en el tercer trimestre de 2025: 4/9/2025 (sin cambios):
<a name="2025-q3-windows"></a>

No se produjeron cambios en el componente STIGS de Windows para la versión del tercer trimestre de 2025.

### Cambios en el segundo trimestre de 2025: 26/6/2025:
<a name="2025-q2-windows"></a>

Se actualizaron las versiones de STIG y se aplicó la STIG para la versión del segundo trimestre de 2025 de la siguiente manera:

**STIG-Build-Windows-Low versión 2025.2.x**
+ Windows Server 2022 STIG versión 2, edición 4
+ Windows Server 2019 STIG versión 3, edición 4
+ Windows Server 2016 STIG versión 2 edición 10
+ Windows Server 2012 R2 MS STIG Version 3 Release 5
+ Microsoft .NET Framework 4.0 STIG versión 2 edición 6
+ Windows Firewall STIG versión 2, edición 2
+ Internet Explorer 11 STIG versión 2, edición 5
+ Microsoft Edge STIG versión 2, edición 2 (solo Windows Server 2022)

**STIG-Build-Windows-Medium versión 2025.2.x**
+ Windows Server 2022 STIG versión 2, edición 4
+ Windows Server 2019 STIG versión 3, edición 4
+ Windows Server 2016 STIG versión 2 edición 10
+ Windows Server 2012 R2 MS STIG Version 3 Release 5
+ Microsoft .NET Framework 4.0 STIG versión 2 edición 6
+ Windows Firewall STIG versión 2, edición 2
+ Internet Explorer 11 STIG versión 2, edición 5
+ Microsoft Edge STIG versión 2, edición 2 (solo Windows Server 2022)
+ Defender STIG versión 2, edición 4

**STIG-Build-Windows-High versión 2025.2.x**
+ Windows Server 2022 STIG versión 2, edición 4
+ Windows Server 2019 STIG versión 3, edición 4
+ Windows Server 2016 STIG versión 2 edición 10
+ Windows Server 2012 R2 MS STIG Version 3 Release 5
+ Microsoft .NET Framework 4.0 STIG versión 2 edición 6
+ Windows Firewall STIG versión 2, edición 2
+ Internet Explorer 11 STIG versión 2, edición 5
+ Microsoft Edge STIG versión 2, edición 2 (solo Windows Server 2022)
+ Defender STIG versión 2, edición 4

### Cambios en el primer trimestre de 2025: 4/5/2025:
<a name="2025-q1-windows"></a>

Se actualizó la STIG para Internet Explorer 11 STIG versión 2, edición 5, para todos los componentes de STIG de la versión del primer trimestre de 2025.
+ STIG-Build-Windows-Low versión 2025.1.x
+ STIG-Build-Windows-Medium versión 2025.1.x
+ STIG-Build-Windows-High versión 2025.1.x

### Cambios en el cuarto trimestre de 2024:2 de abril de 2025:
<a name="2024-q4-windows"></a>

Se actualizaron las versiones de STIG y se aplicó la STIG para la versión del cuarto trimestre de 2024 de la siguiente manera:

**STIG-Build-Windows-Low versión 2024.4.0**
+ Windows Server 2022 STIG versión 2, edición 2
+ Windows Server 2019 STIG versión 3, edición 2
+ Windows Server 2016 STIG versión 2, edición 9
+ Windows Server 2012 R2 MS STIG versión 3, versión 5
+ Microsoft .NET Framework 4.0 STIG versión 2, versión 2
+ Windows Firewall STIG versión 2, edición 2
+ Internet Explorer 11 STIG versión 2, edición 5
+ Microsoft Edge STIG versión 2, edición 2 (solo Windows Server 2022)

**STIG-Build-Windows-Medium versión 2024.4.0**
+ Windows Server 2022 STIG versión 2, edición 2
+ Windows Server 2019 STIG versión 3, edición 2
+ Windows Server 2016 STIG versión 2, edición 9
+ Windows Server 2012 R2 MS STIG versión 3, versión 5
+ Microsoft .NET Framework 4.0 STIG versión 2, versión 2
+ Windows Firewall STIG versión 2, edición 2
+ Internet Explorer 11 STIG versión 2, edición 5
+ Microsoft Edge STIG versión 2, edición 2 (solo Windows Server 2022)
+ Defender STIG versión 2, edición 4

**STIG-Build-Windows-High versión 2024.4.0**
+ Windows Server 2022 STIG versión 2, edición 2
+ Windows Server 2019 STIG versión 3, edición 2
+ Windows Server 2016 STIG versión 2, edición 9
+ Windows Server 2012 R2 MS STIG versión 3, versión 5
+ Microsoft .NET Framework 4.0 STIG versión 2, versión 2
+ Windows Firewall STIG versión 2, edición 2
+ Internet Explorer 11 STIG versión 2, edición 5
+ Microsoft Edge STIG versión 2, edición 2 (solo Windows Server 2022)
+ Defender STIG versión 2, edición 4

### Cambios en el tercer trimestre de 2024:4 de octubre de 2023 (sin cambios):
<a name="2024-q3-windows"></a>

No se produjeron cambios en el componente STIGS de Windows para la versión del tercer trimestre de 2024.

### Cambios en el segundo trimestre de 2024: 10 de mayo de 2024 (sin cambios):
<a name="2024-q2-windows"></a>

No se produjeron cambios en el componente STIGS de Windows para la versión del segundo trimestre de 2024.

### Cambios en el primer trimestre de 2024: 6 de febrero de 2024 (sin cambios):
<a name="2024-q1-windows"></a>

No se produjeron cambios en el componente STIGS de Windows para la versión del primer trimestre de 2024.

### Cambios en el cuarto trimestre de 2023: 4 de diciembre de 2023 (sin cambios):
<a name="2023-q4-windows"></a>

No se produjeron cambios en el componente STIGS de Windows para la versión del cuarto trimestre de 2023.

### Cambios en el tercer trimestre de 2023: 4 de octubre de 2023 (sin cambios):
<a name="2023-q3-windows"></a>

No se produjeron cambios en el componente STIGS de Windows para la versión del tercer trimestre de 2023.

### Cambios en el segundo trimestre de 2023: 3 de mayo de 2023 (sin cambios):
<a name="2023-q2-windows"></a>

No se produjeron cambios en el componente STIGS de Windows para la versión del segundo trimestre de 2023.

### Cambios en el primer trimestre de 2023: 27 de marzo de 2023 (sin cambios):
<a name="2023-q1-windows"></a>

No se produjeron cambios en el componente STIGS de Windows para la versión del primer trimestre de 2023.

### Cambios en el cuarto trimestre de 2022: 1 de febrero de 2023:
<a name="2022-q4-windows"></a>

Se actualizaron las versiones de STIG y se aplicó el STIGS para la versión del cuarto trimestre de 2022 de la siguiente manera:

**STIG-Build-Windows-Low versión 2022.4.x**
+ Windows Server 2022 STIG versión 1, versión 1
+ Windows Server 2019 STIG versión 2, versión 5
+ Windows Server 2016 STIG versión 2, versión 5
+ Windows Server 2012 R2 MS STIG versión 3, versión 5
+ Microsoft .NET Framework 4.0 STIG versión 2, versión 2
+ Firewall de Windows STIG versión 2, versión 1
+ Internet Explorer 11 STIG versión 2, versión 3
+ STIG de Microsoft Edge versión 1, lanzamiento 6 (solo Windows Server 2022)

**STIG-Build-Windows-Medium versión 2022.4.x**
+ Windows Server 2022 STIG versión 1, versión 1
+ Windows Server 2019 STIG versión 2, versión 5
+ Windows Server 2016 STIG versión 2, versión 5
+ Windows Server 2012 R2 MS STIG versión 3, versión 5
+ Microsoft .NET Framework 4.0 STIG versión 2, versión 2
+ Firewall de Windows STIG versión 2, versión 1
+ Internet Explorer 11 STIG versión 2, versión 3
+ STIG de Microsoft Edge versión 1, lanzamiento 6 (solo Windows Server 2022)
+ STIG de Defender versión 2, lanzamiento 4 (solo Windows Server 2022)

**STIG-Build-Windows-High versión 2022.4.x**
+ Windows Server 2022 STIG versión 1, versión 1
+ Windows Server 2019 STIG versión 2, versión 5
+ Windows Server 2016 STIG versión 2, versión 5
+ Windows Server 2012 R2 MS STIG versión 3, versión 5
+ Microsoft .NET Framework 4.0 STIG versión 2, versión 2
+ Firewall de Windows STIG versión 2, versión 1
+ Internet Explorer 11 STIG versión 2, versión 3
+ STIG de Microsoft Edge versión 1, lanzamiento 6 (solo Windows Server 2022)
+ STIG de Defender versión 2, lanzamiento 4 (solo Windows Server 2022)

### Cambios en el tercer trimestre de 2022: 30 de septiembre de 2022 (sin cambios):
<a name="2022-q3-windows"></a>

No se produjeron cambios en el componente STIGS de Windows para la versión del tercer trimestre de 2022.

### Cambios en el segundo trimestre de 2022: 2 de agosto de 2022:
<a name="2022-q2-windows"></a>

Se actualizaron las versiones de STIG y se aplicó el STIGS para la versión del segundo trimestre de 2022.

**STIG-Build-Windows-Low versión 1.5.x**
+ Windows Server 2019 STIG versión 2, lanzamiento 4
+ Windows Server 2016 STIG versión 2, lanzamiento 4
+ Windows Server 2012 R2 MS STIG Version 3 Release 3
+ Microsoft .NET Framework 4.0 STIG Version 2 Release 1
+ Firewall de Windows STIG versión 2, versión 1
+ Internet Explorer 11 STIG Version 1 Release 19

**STIG-Build-Windows-Medium versión 1.5.x**
+ Windows Server 2019 STIG versión 2, lanzamiento 4
+ Windows Server 2016 STIG versión 2, lanzamiento 4
+ Windows Server 2012 R2 MS STIG Version 3 Release 3
+ Microsoft .NET Framework 4.0 STIG Version 2 Release 1
+ Firewall de Windows STIG versión 2, versión 1
+ Internet Explorer 11 STIG Version 1 Release 19

**STIG-Build-Windows-High versión 1.5.x**
+ Windows Server 2019 STIG versión 2, lanzamiento 4
+ Windows Server 2016 STIG versión 2, lanzamiento 4
+ Windows Server 2012 R2 MS STIG Version 3 Release 3
+ Microsoft .NET Framework 4.0 STIG Version 2 Release 1
+ Firewall de Windows STIG versión 2, versión 1
+ Internet Explorer 11 STIG Version 1 Release 19

### Cambios en el primer trimestre de 2022: 2 de agosto de 2022 (sin cambios):
<a name="2022-q1-windows"></a>

No se produjeron cambios en el componente STIGS de Windows para la versión del primer trimestre de 2022.

### Cambios en el cuarto trimestre de 2021: 20 de diciembre de 2021:
<a name="2021-q4-windows"></a>

Se actualizaron las versiones de STIG y se aplicó el STIGS para la versión del cuarto trimestre de 2021.

**STIG-Build-Windows-Low versión 1.5.x**
+ Windows Server 2019 STIG Version 2 Release 3
+ Windows Server 2016 STIG Version 2 Release 3
+ Windows Server 2012 R2 MS STIG Version 3 Release 3
+ Microsoft .NET Framework 4.0 STIG Version 2 Release 1
+ Firewall de Windows STIG versión 2, versión 1
+ Internet Explorer 11 STIG Version 1 Release 19

**STIG-Build-Windows-Medium versión 1.5.x**
+ Windows Server 2019 STIG Version 2 Release 3
+ Windows Server 2016 STIG Version 2 Release 3
+ Windows Server 2012 R2 MS STIG Version 3 Release 3
+ Microsoft .NET Framework 4.0 STIG Version 2 Release 1
+ Firewall de Windows STIG versión 2, versión 1
+ Internet Explorer 11 STIG Version 1 Release 19

**STIG-Build-Windows-High versión 1.5.x**
+ Windows Server 2019 STIG Version 2 Release 3
+ Windows Server 2016 STIG Version 2 Release 3
+ Windows Server 2012 R2 MS STIG Version 3 Release 3
+ Microsoft .NET Framework 4.0 STIG Version 2 Release 1
+ Firewall de Windows STIG versión 2, versión 1
+ Internet Explorer 11 STIG Version 1 Release 19

### Cambios en el tercer trimestre de 2021: 30 de septiembre de 2021:
<a name="2021-q3-windows"></a>

Se actualizaron las versiones de STIG y se aplicó el STIGS para la versión del tercer trimestre de 2021.

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

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

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

## Componentes de endurecimiento de STIG de Linux
<a name="linux-os-stig"></a>

Esta sección contiene información sobre los componentes de endurecimiento de STIG de Linux, seguida de un registro del historial de versiones. Si la distribución de Linux no tiene una configuración de STIG propia, el componente de endurecimiento aplica la configuración de RHEL.

Los componentes de Linux tienen parámetros de entrada opcionales que le ayudan a personalizar los siguientes comportamientos para su instancia de Linux.
+ **Nivel (cadena)** Si no se especifica ningún valor, el valor predeterminado es `High` y se aplicará a todas las configuraciones bajas, medias y altas aplicables.
+ **InstallPackages (cadena)** Si el valor es`No`, el componente no instala ningún paquete de software adicional. Si el valor es`Yes`, el componente instala los paquetes de software adicionales necesarios para garantizar la máxima conformidad. El valor predeterminado es `No`.
+ **SetDoDConsentBanner (cadena)** Si el valor es`No`, el banner de consentimiento del DoD no se muestra cuando se conecta a una instancia que tiene instalado uno de los componentes de STIG Linux. Si el valor es`Yes`, se muestra el banner de consentimiento del DoD antes de iniciar sesión cuando se conecta a una instancia que tiene instalado uno de los componentes de STIG Linux. Debe confirmar el banner antes de iniciar sesión. El valor predeterminado es `No`.

  Para ver un ejemplo del banner de consentimiento, consulte el [Aviso de exención de responsabilidad sobre privacidad y consentimiento del Departamento de Defensa](https://dso.dla.mil/) que aparece cuando accede al sitio web de DLA Document Services.

El componente de endurecimiento aplica la configuración de STIG compatible a la infraestructura basada en la distribución de Linux, de la siguiente manera:

**Configuración de STIG de Red Hat Enterprise Linux (RHEL) 7**
+ RHEL 7
+ CentOS 7
+ Amazon Linux (2AL2)

**Configuración de RHEL 8 STIG**
+ RHEL 8
+ CentOS 8

**Configuración de RHEL 9 STIG**
+ RHEL 9
+ CentOS Stream 9

### STIG de Linux versión III (Categoría III)
<a name="ib-linux-stig-low"></a>

La siguiente lista contiene la configuración de STIG que el componente de endurecimiento aplica a la infraestructura. Si una configuración compatible no es aplicable a la infraestructura, el componente de endurecimiento omite esa configuración y continúa. Por ejemplo, es posible que algunas configuraciones de STIG no se apliquen a los servidores independientes. Las políticas específicas de la organización también pueden afectar la configuración aplicada por el componente de endurecimiento como, por ejemplo, pedir requisitos a los administradores para revisar la configuración de los documentos.

Para obtener una lista completa, consulte la [biblioteca de STIGs documentos](https://public.cyber.mil/stigs/downloads/?_dl_facet_stigs=operating-systems%2Cunix-linux). Para obtener información acerca de cómo ver la lista completa, consulte [Herramientas de visualización de STIG](https://public.cyber.mil/stigs/srg-stig-tools/).

**RHEL 7 STIG versión 3, edición 15**
+ 

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

**RHEL 8 STIG versión 2 versión 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 y V-244527

**RHEL 9 STIG versión 2 versión 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 y V-258173

**Amazon Linux 2023 STIG versión 1 versión 2**

V-274141

**SLES 12 STIG versión 3, versión 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 y V-255915

**SLES 15 STIG versión 2, versión 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 y V-255921

**Ubuntu 18.04 STIG versión 2, versión 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 y V-219333

**Ubuntu 20.04 STIG versión 2, versión 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 y V-238373

**Ubuntu 22.04 STIG versión 2, versión 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 y V-260596

**Ubuntu 24.04 STIG versión 1, versión 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 y V-270820

### STIG de Linux versión II (Categoría II)
<a name="ib-linux-stig-medium"></a>

La siguiente lista contiene la configuración de STIG que el componente de endurecimiento aplica a la infraestructura. Si una configuración compatible no es aplicable a la infraestructura, el componente de endurecimiento omite esa configuración y continúa. Por ejemplo, es posible que algunas configuraciones de STIG no se apliquen a los servidores independientes. Las políticas específicas de la organización también pueden afectar la configuración aplicada por el componente de endurecimiento como, por ejemplo, pedir requisitos a los administradores para revisar la configuración de los documentos.

Para obtener una lista completa [STIGs , consulte](https://public.cyber.mil/stigs/downloads/?_dl_facet_stigs=operating-systems%2Cunix-linux) la Biblioteca de documentos. Para obtener información acerca de cómo ver la lista completa, consulte [Herramientas de visualización de STIG](https://public.cyber.mil/stigs/srg-stig-tools/).

**nota**  
Los componentes de protección STIG Medium de Linux incluyen todas las configuraciones de STIG que se indican en la lista y que TOE de AWS se aplican a los componentes de protección baja de STIG de Linux, además de las configuraciones de STIG que se enumeran específicamente para las vulnerabilidades de categoría II.

**RHEL 7 STIG versión 3, edición 15**

Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de categoría III (baja) de esta distribución de Linux, además de:
+ 

**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-204422, 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-204544, 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-204557, V-204558, V-204559, V-204560, V-204562, V-204563, V-204564, V-204565, V-204566, V-204567, V-204568, V-204572, V-2020V-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-202010 4611, V-204612, V-204613, V-204614, V-204615, V-204616, V-204617, V-204619, V-204622, V-204625, V-204630, V-204631, V-204633, V-233307, V-237634, V-237635, V-251703, V-255925, V-255927, V-255928 y V-256970

**RHEL 8 STIG, versión 2, versión 6**

Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de categoría III (baja) de esta distribución de Linux, además de:
+ 

**RHEL 8/CentOS 8**  
V-230222, V-230228, V-230231, V-230233, V-230236, V-230237, V-230238, V-230239, V-230240, 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-230311, V-230312, V-230313, V-230314, V-230315, V-230316, V-230318, V-230319, V-230320, V-230321, 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-230354, V-230356, V-230357, V-230358, V-230359, V-230360, 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-230393, V-230394, V-230396, V-230397, V-230398, V-230399, V-230400, V-230401, V-230402, V-230403, 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-230463, V-230464, V-230465, V-230466, V-230467, V-230470, V-230471, V-230472, V-230473, V-230474, V-230475, V-230478, V-230480, V-230481, V-230482, V-230483, V-230488, V-230489, V-230489, V-230489, 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-230547, 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-244524, V-244525, 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-24450, V-244551, V-244552, V-244553, V-244554, V-250315, 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 y V-279931

**RHEL 9 STIG versión 2, versión 7**

Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de categoría III (baja) de esta distribución de Linux, además de:
+ 

**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-257805, 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-257818, 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-257888, V-257889, V-257890, V-257891, V-257892, V-257893, V-257894, V-257895, V-257896, V-257897, V-257898, 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-257967, 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-257998, V-257999, V-258000, V-258001, V-258002, V-258003, V-258003 8004, V-258005, V-258006, V-258007, V-258008, V-258009, V-258010, V-258011, V-258028, V-258034, V-258035, V-258038, V-258039, V-258040, V-258041, V-258043, V-258046, V-258049, V-258052, V-258054, V-258055, V-258056, V-258057, V-258060, V-258063, V-258064, V-258065, V-258066, V-258068, V-258070, V-258071, V-258072, V-258073, V-258074, V-258075, 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-258099, 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-258120, 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-258146, 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-258167, 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-258183 184, V-258185, V-258186, V-258187, V-258188, V-258189, V-258190, V-258191, V-258192, V-258193, 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-258209, V-258210, V-258211, V-258212, V-258213, V-258214, V-258215, V-258215 258216, V-258217, V-258218, V-258219, V-258220, V-258221, V-258222, V-258223, V-258224, V-258225, V-258226, 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 y V-279936

**Amazon Linux 2023 STIG versión 1 versión 2**

Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de categoría III (baja) de esta distribución de Linux, además de:

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-274026, V-274027, V-274028, V-274030, V-274031, V-274032, V-274033, V-274034, V-274035, V-274036, V-274037, V-274040, V-274041, V-274042, V-274044, V-274044 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-274110, 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 y V-274187

**SLES 12 STIG versión 3 versión 4**

Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de categoría III (baja) de esta distribución de Linux, además de:

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-217126, 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-217167, 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-217207, V-217208, V-217210, V-217217, 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-217251, 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-217279, 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-237607, 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-237623, V-251720, V-251722, V-255914, y V-256981

**SLES 15 STIG versión 2 versión 6**

Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de categoría III (baja) de esta distribución de Linux, además de:

V-234802, V-234807, 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-234856, 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-234895, 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-235009, V-235010, V-235010, 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 y V-274879

**Ubuntu 18.04 STIG versión 2, versión 15**

Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de categoría III (baja) de esta distribución de Linux, además de:

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 y V-255906

**Ubuntu 20.04 STIG versión 2, versión 4**

Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de categoría III (baja) de esta distribución de Linux, además de:

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 y V-274853

**Ubuntu 22.04 STIG versión 2, versión 7**

Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de categoría III (baja) de esta distribución de Linux, además de:

V-260471, V-260473, V-260474, V-260475, 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-260510, V-260511, V-260512, V-260513, V-260514, V-260522, V-260527, V-260528, V-260530, V-260533, V-260534, V-260535, V-260537, V-260538, V-260540, V-260540, V-260542, V-260543, 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-260590, V-260591, V-260594, V-260597, 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-260615, V-260616, V-260617, V-260618, V-260619, V-260620, V-260620 21, 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 y V-274866

**Ubuntu 24.04 STIG versión 1 versión 4**

Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de categoría III (baja) de esta distribución de Linux, además de:

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 y V-274873

### STIG de Linux versión I (Categoría I)
<a name="ib-linux-stig-high"></a>

La siguiente lista contiene la configuración de STIG que el componente de endurecimiento aplica a la infraestructura. Si una configuración compatible no es aplicable a la infraestructura, el componente de endurecimiento omite esa configuración y continúa. Por ejemplo, es posible que algunas configuraciones de STIG no se apliquen a los servidores independientes. Las políticas específicas de la organización también pueden afectar la configuración aplicada por el componente de endurecimiento como, por ejemplo, pedir requisitos a los administradores para revisar la configuración de los documentos.

Para obtener una lista completa, consulte la biblioteca de [STIGs documentos](https://public.cyber.mil/stigs/downloads/?_dl_facet_stigs=operating-systems%2Cunix-linux). Para obtener información acerca de cómo ver la lista completa, consulte [Herramientas de visualización de STIG](https://public.cyber.mil/stigs/srg-stig-tools/).

**nota**  
Los componentes de protección STIG High de Linux incluyen todas las configuraciones de STIG enumeradas que TOE de AWS se aplican a los componentes de protección STIG Low y Linux STIG Medium, además de las configuraciones de STIG enumeradas que se aplican específicamente a las vulnerabilidades de categoría I.

**RHEL 7 STIG versión 3, edición 15**

Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de las categorías II y III (media y baja) de esta distribución de Linux, además de:
+ 

**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 y V-204621

**RHEL 8 STIG versión 2 versión 6**

Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de las categorías II y III (media y baja) de esta distribución de Linux, además de:
+ 

**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 y V-230531

**RHEL 9 STIG versión 2, versión 7**

Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de las categorías II y III (media y baja) de esta distribución de Linux, además de:
+ 

**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 y V-257785

**Amazon Linux 2023 STIG versión 1 versión 2**

Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de las categorías II y III (media y baja) de esta distribución de Linux, además de:

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

**SLES 12 STIG versión 3, versión 4**

Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de las categorías II y III (media y baja) de esta distribución de Linux, además de:

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

**SLES 15 STIG versión 2, versión 6**

Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de las categorías II y III (media y baja) de esta distribución de Linux, además de:

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 y V-251725

**Ubuntu 18.04 STIG versión 2, versión 15**

Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de las categorías II y III (media y baja) de esta distribución de Linux, además de:

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

**Ubuntu 20.04 STIG versión 2, versión 4**

Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de las categorías II y III (media y baja) de esta distribución de Linux, además de:

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

**Ubuntu 22.04 STIG versión 2, versión 7**

Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de las categorías II y III (media y baja) de esta distribución de Linux, además de:

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

**Ubuntu 24.04 STIG versión 1, versión 4**

Incluye todas las configuraciones de STIG compatibles que el componente de endurecimiento aplica a las vulnerabilidades de las categorías II y III (media y baja) de esta distribución de Linux, además de:

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

## Registro del historial de versiones de STIG para Linux
<a name="ib-linux-version-hist"></a>

Esta sección registra el historial de versiones de los componentes de Linux. Para ver los cambios y las versiones publicadas de un trimestre, elija el título para ampliar la información.

### Cambios en el primer trimestre de 2026:3 de octubre de 2026:
<a name="2026-q1-linux"></a>

Se actualizaron las siguientes versiones del STIG, que se aplicaron a la versión del primer trimestre de 2026 STIGs para todos los niveles de cumplimiento:

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

### Cambios en el tercer trimestre de 2025 - 4/9/2025:
<a name="2025-q3-linux"></a>

Se agregó compatibilidad con el sistema operativo SUSE Linux Enterprise Server (SLES) y Amazon Linux 2023. Se actualizaron las siguientes versiones de STIG y se aplicó el STIGS para la versión del tercer trimestre de 2025 para todos los niveles de cumplimiento (): low/medium/high
+ RHEL 7 STIG versión 3, edición 15
+ RHEL 8 STIG versión 2, edición 4
+ RHEL 9 STIG versión 2, edición 5
+ Amazon Linux 2023 STIG versión 1, edición 1
+ SLES 12 STIG versión 3, edición 3
+ SLES 15 STIG versión 2, edición 5
+ Ubuntu 18.04 STIG versión 2, edición 15
+ Ubuntu 20.04 STIG versión 2, edición 3
+ Ubuntu 22.04 STIG versión 2, edición 5
+ Ubuntu 24.04 STIG versión 1, edición 2

### Cambios en el segundo trimestre de 2025: 26/6/2025
<a name="2025-q2-linux"></a>

Se actualizaron las versiones de STIG y se aplicó la STIG para la versión del segundo trimestre de 2025:

**STIG-Build-Linux-Low versión 2025.2.x**
+ RHEL 7 STIG versión 3, edición 15
+ RHEL 8 STIG versión 2, edición 3
+ RHEL 9 STIG versión 2, edición 4
+ Ubuntu 18.04 STIG versión 2, edición 15
+ Ubuntu 20.04 STIG versión 2, edición 2
+ Ubuntu 22.04 STIG versión 2, edición 4
+ Ubuntu 24.04 versión 1, edición 1

**STIG-Build-Linux-Medium versión 2025.2.x**
+ RHEL 7 STIG versión 3, edición 15
+ RHEL 8 STIG versión 2, edición 3
+ RHEL 9 STIG versión 2, edición 4
+ Ubuntu 18.04 STIG versión 2, edición 15
+ Ubuntu 20.04 STIG versión 2, edición 2
+ Ubuntu 22.04 STIG versión 2, edición 4
+ Ubuntu 24.04 versión 1, edición 1

**STIG-Build-Linux-High versión 2025.2.x**
+ RHEL 7 STIG versión 3, edición 15
+ RHEL 8 STIG versión 2, edición 3
+ RHEL 9 STIG versión 2, edición 4
+ Ubuntu 18.04 STIG versión 2, edición 15
+ Ubuntu 20.04 STIG versión 2, edición 2
+ Ubuntu 22.04 STIG versión 2, edición 4
+ Ubuntu 24.04 versión 1, edición 1

### Cambios en el primer trimestre de 2025: 11/4/2025:
<a name="2025-q1-linux"></a>

Se actualizaron las siguientes versiones de STIG, se aplicó la STIG para la versión del primer trimestre de 2025 y se agregó compatibilidad para Ubuntu 24.04:

**STIG-Build-Linux-Low versión 2025.1.x**
+ RHEL 7 STIG versión 3, edición 15
+ RHEL 8 STIG versión 2, edición 2
+ RHEL 9 STIG versión 2, edición 3
+ Ubuntu 18.04 STIG versión 2, edición 15
+ Ubuntu 20.04 STIG versión 2, edición 2
+ Ubuntu 22.04 STIG versión 2, edición 3
+ Ubuntu 24.04 versión 1, edición 1

**STIG-Build-Linux-Medium versión 2025.1.x**
+ RHEL 7 STIG versión 3, edición 15
+ RHEL 8 STIG versión 2, edición 2
+ RHEL 9 STIG versión 2, edición 3
+ Ubuntu 18.04 STIG versión 2, edición 15
+ Ubuntu 20.04 STIG versión 2, edición 2
+ Ubuntu 22.04 STIG versión 2, edición 3
+ Ubuntu 24.04 versión 1, edición 1

**STIG-Build-Linux-High versión 2025.1.x**
+ RHEL 7 STIG versión 3, edición 15
+ RHEL 8 STIG versión 2, edición 2
+ RHEL 9 STIG versión 2, edición 3
+ Ubuntu 18.04 STIG versión 2, edición 15
+ Ubuntu 20.04 STIG versión 2, edición 2
+ Ubuntu 22.04 STIG versión 2, edición 3
+ Ubuntu 24.04 versión 1, edición 1

### Cambios en el cuarto trimestre de 2024: 10/12/2024:
<a name="2024-q4-linux"></a>

Se actualizaron las siguientes versiones de STIG, se aplicó la STIG para la versión del cuarto trimestre de 2024 y se agregó información sobre dos nuevos parámetros de entrada para los componentes de Linux:

**STIG-Build-Linux-Low versión 2024.4.x**
+ RHEL 7 STIG versión 3, edición 15
+ RHEL 8 STIG versión 2, edición 1
+ RHEL 9 STIG versión 2, edición 2
+ Ubuntu 18.04 STIG versión 2, edición 15
+ Ubuntu 20.04 STIG versión 2, edición 1
+ Ubuntu 22.04 STIG versión 2, edición 2

**STIG-Build-Linux-Medium versión 2024.4.x**
+ RHEL 7 STIG versión 3, edición 15
+ RHEL 8 STIG versión 2, edición 1
+ RHEL 9 STIG versión 2, edición 2
+ Ubuntu 18.04 STIG versión 2, edición 15
+ Ubuntu 20.04 STIG versión 2, edición 1
+ Ubuntu 22.04 STIG versión 2, edición 2

**STIG-Build-Linux-High versión 2024.4.x**
+ RHEL 7 STIG versión 3, edición 15
+ RHEL 8 STIG versión 2, edición 1
+ RHEL 9 STIG versión 2, edición 2
+ Ubuntu 18.04 STIG versión 2, edición 15
+ Ubuntu 20.04 STIG versión 2, edición 1
+ Ubuntu 22.04 STIG versión 2, edición 2

### Cambios en el tercer trimestre de 2024: 4/10/2024 (sin cambios):
<a name="2024-q3-linux"></a>

No se produjeron cambios en el componente STIGS de Linux para la versión del tercer trimestre de 2024.

### Cambios en el segundo trimestre de 2024: 10 de mayo de 2024:
<a name="2024-q2-linux"></a>

Se actualizaron las versiones de STIG y se aplicó el STIGS para la versión del segundo trimestre de 2024. También se ha agregado soporte para RHEL 9, CentOS Stream 9 y Ubuntu 22.04, como sigue:

**STIG-Build-Linux-Low versión 2024.2.x**
+ RHEL 7 STIG versión 3, edición 14
+ RHEL 8 STIG versión 1, edición 14
+ RHEL 9 STIG versión 1, edición 3
+ Ubuntu 18.04 STIG versión 2, edición 14
+ Ubuntu 20.04 versión 1, edición 12
+ Ubuntu 22.04 versión 1, edición 1

**STIG-Build-Linux-Medium versión 2024.2.x**
+ RHEL 7 STIG versión 3, edición 14
+ RHEL 8 STIG versión 1, edición 14
+ RHEL 9 STIG versión 1, edición 3
+ Ubuntu 18.04 STIG versión 2, edición 14
+ Ubuntu 20.04 versión 1, edición 12
+ Ubuntu 22.04 versión 1, edición 1

**STIG-Build-Linux-High versión 2024.2.x**
+ RHEL 7 STIG versión 3, edición 14
+ RHEL 8 STIG versión 1, edición 14
+ RHEL 9 STIG versión 1, edición 3
+ Ubuntu 18.04 STIG versión 2, edición 14
+ Ubuntu 20.04 versión 1, edición 12
+ Ubuntu 22.04 versión 1, edición 1

### Cambios en el primer trimestre de 2024 (06/02/2024):
<a name="2024-q1-linux"></a>

Se actualizaron las versiones de STIG y se aplicó el STIGS para la versión del primer trimestre de 2024 de la siguiente manera:

**STIG-Build-Linux-Low versión 2024.1.x**
+ RHEL 7 STIG versión 3, edición 14
+ RHEL 8 STIG versión 1, edición 13
+ Ubuntu 18.04 STIG versión 2, edición 13
+ Ubuntu 20.04 STIG versión 1, edición 11

**STIG-Build-Linux-Medium versión 2024.1.x**
+ RHEL 7 STIG versión 3, edición 14
+ RHEL 8 STIG versión 1, edición 13
+ Ubuntu 18.04 STIG versión 2, edición 13
+ Ubuntu 20.04 STIG versión 1, edición 11

**STIG-Build-Linux-High versión 2024.1.x**
+ RHEL 7 STIG versión 3, edición 14
+ RHEL 8 STIG versión 1, edición 13
+ Ubuntu 18.04 STIG versión 2, edición 13
+ Ubuntu 20.04 STIG versión 1, edición 11

### Cambios en el cuarto trimestre de 2023: 7 de diciembre de 2023:
<a name="2023-q4-linux"></a>

Se actualizaron las versiones de STIG y se aplicó el STIGS para la versión del cuarto trimestre de 2023 de la siguiente manera:

**STIG-Build-Linux-Low versión 2023.4.x**
+ RHEL 7 STIG versión 3, edición 13
+ RHEL 8 STIG versión 1, edición 12
+ Ubuntu 18.04 STIG versión 2, edición 12
+ Ubuntu 20.04 STIG versión 1, edición 10

**STIG-Build-Linux-Medium versión 2023.4.x**
+ RHEL 7 STIG versión 3, edición 13
+ RHEL 8 STIG versión 1, edición 12
+ Ubuntu 18.04 STIG versión 2, edición 12
+ Ubuntu 20.04 STIG versión 1, edición 10

**STIG-Build-Linux-High versión 2023.4.x**
+ RHEL 7 STIG versión 3, edición 13
+ RHEL 8 STIG versión 1, edición 12
+ Ubuntu 18.04 STIG versión 2, edición 12
+ Ubuntu 20.04 STIG versión 1, edición 10

### Cambios en el tercer trimestre de 2023: 4 de octubre de 2023:
<a name="2023-q3-linux"></a>

Se actualizaron las versiones de STIG y se aplicó el STIGS para la versión del tercer trimestre de 2023 de la siguiente manera:

**STIG-Build-Linux-Low versión 2023.3.x**
+ RHEL 7 STIG versión 3, lanzamiento 12
+ RHEL 8 STIG versión 1, lanzamiento 11
+ Ubuntu 18.04 STIG versión 2, edición 11
+ versión 1 de Ubuntu 20.04 versión 1, lanzamiento 9

**STIG-Build-Linux-Medium versión 2023.3.x**
+ RHEL 7 STIG versión 3, lanzamiento 12
+ RHEL 8 STIG versión 1, lanzamiento 11
+ Ubuntu 18.04 STIG versión 2, edición 11
+ versión 1 de Ubuntu 20.04 versión 1, lanzamiento 9

**STIG-Build-Linux-High versión 2023.3.x**
+ RHEL 7 STIG versión 3, lanzamiento 12
+ RHEL 8 STIG versión 1, lanzamiento 11
+ Ubuntu 18.04 STIG versión 2, edición 11
+ versión 1 de Ubuntu 20.04 versión 1, lanzamiento 9

### Cambios en el segundo trimestre de 2023: 3 de mayo de 2023:
<a name="2023-q2-linux"></a>

Se actualizaron las versiones de STIG y se aplicó el STIGS para la versión del segundo trimestre de 2023 de la siguiente manera:

**STIG-Build-Linux-Low versión 2023.2.x**
+ RHEL 7 STIG versión 3, lanzamiento 11
+ RHEL 8 STIG versión 1, lanzamiento 10
+ Ubuntu 18.04 STIG versión 2, edición 11
+ versión 1 de Ubuntu 20.04 versión 1, lanzamiento 8

**STIG-Build-Linux-Medium versión 2023.2.x**
+ RHEL 7 STIG versión 3, lanzamiento 11
+ RHEL 8 STIG versión 1, lanzamiento 10
+ Ubuntu 18.04 STIG versión 2, edición 11
+ versión 1 de Ubuntu 20.04 versión 1, lanzamiento 8

**STIG-Build-Linux-High versión 2023.2.x**
+ RHEL 7 STIG versión 3, lanzamiento 11
+ RHEL 8 STIG versión 1, lanzamiento 10
+ Ubuntu 18.04 STIG versión 2, edición 11
+ versión 1 de Ubuntu 20.04 versión 1, lanzamiento 8

### Cambios en el primer trimestre de 2023: 27 de marzo de 2023:
<a name="2023-q1-linux"></a>

Se actualizaron las versiones de STIG y se aplicó el STIGS para la versión del primer trimestre de 2023 de la siguiente manera:

**STIG-Build-Linux-Low versión 2023.1.x**
+ RHEL 7 STIG versión 3, lanzamiento 10
+ RHEL 8 STIG versión 1, lanzamiento 9
+ Ubuntu 18.04 STIG versión 2, edición 10
+ versión 1 de Ubuntu 20.04 versión 1, lanzamiento 7

**STIG-Build-Linux-Medium versión 2023.1.x**
+ RHEL 7 STIG versión 3, lanzamiento 10
+ RHEL 8 STIG versión 1, lanzamiento 9
+ Ubuntu 18.04 STIG versión 2, edición 10
+ versión 1 de Ubuntu 20.04 versión 1, lanzamiento 7

**STIG-Build-Linux-High versión 2023.1.x**
+ RHEL 7 STIG versión 3, lanzamiento 10
+ RHEL 8 STIG versión 1, lanzamiento 9
+ Ubuntu 18.04 STIG versión 2, edición 10
+ versión 1 de Ubuntu 20.04 versión 1, lanzamiento 7

### Cambios en el cuarto trimestre de 2022: 1 de febrero de 2023:
<a name="2022-q4-linux"></a>

Se actualizaron las versiones de STIG y se aplicó el STIGS para la versión del cuarto trimestre de 2022 de la siguiente manera:

**STIG-Build-Linux-Low versión 2022.4.x**
+ RHEL 7 STIG versión 3, lanzamiento 9
+ RHEL 8 STIG versión 1, lanzamiento 8
+ Ubuntu 18.04 STIG versión 2, edición 9
+ Ubuntu 20.04 versión 1, lanzamiento 6

**STIG-Build-Linux-Medium versión 2022.4.x**
+ RHEL 7 STIG versión 3, lanzamiento 9
+ RHEL 8 STIG versión 1, lanzamiento 8
+ Ubuntu 18.04 STIG versión 2, edición 9
+ Ubuntu 20.04 versión 1, lanzamiento 6

**STIG-Build-Linux-High versión 2022.4.x**
+ RHEL 7 STIG versión 3, lanzamiento 9
+ RHEL 8 STIG versión 1, lanzamiento 8
+ Ubuntu 18.04 STIG versión 2, edición 9
+ Ubuntu 20.04 versión 1, lanzamiento 6

### Cambios en el tercer trimestre de 2022: 30 de septiembre de 2022 (sin cambios):
<a name="2022-q3-linux"></a>

No se produjeron cambios en el componente STIGS de Linux para la versión del tercer trimestre de 2022.

### Cambios en el segundo trimestre de 2022: 2 de agosto de 2022:
<a name="2022-q2-linux"></a>

Introdujimos el soporte para Ubuntu, actualizamos las versiones de STIG y aplicamos el STIGS para la versión del segundo trimestre de 2022 de la siguiente manera:

**STIG-Build-Linux-Low versión 2022.2.x**
+ RHEL 7 STIG versión 3, lanzamiento 7
+ RHEL 8 STIG versión 1, lanzamiento 6
+ Ubuntu 18.04 STIG versión 2, versión 6 (nueva)
+ Ubuntu 20.04 STIG versión 1, versión 4 (nueva)

**STIG-Build-Linux-Medium versión 2022.2.x**
+ RHEL 7 STIG versión 3, lanzamiento 7
+ RHEL 8 STIG versión 1, lanzamiento 6
+ Ubuntu 18.04 STIG versión 2, versión 6 (nueva)
+ Ubuntu 20.04 STIG versión 1, versión 4 (nueva)

**STIG-Build-Linux-High versión 2022.2.x**
+ RHEL 7 STIG versión 3, lanzamiento 7
+ RHEL 8 STIG versión 1, lanzamiento 6
+ Ubuntu 18.04 STIG versión 2, versión 6 (nueva)
+ Ubuntu 20.04 STIG versión 1, versión 4 (nueva)

### Cambios en el primer trimestre de 2022: 26 de abril de 2022:
<a name="2022-q1-linux"></a>

Refactorizado para incluir un mejor soporte para los contenedores. Combinó el AL2 script anterior con RHEL 7. Se actualizaron las versiones de STIG y se aplicó el STIGS para la versión del primer trimestre de 2022 de la siguiente manera:

**STIG-Build-Linux-Low versión 3.6.x**
+ RHEL 7 STIG versión 3, lanzamiento 6
+ RHEL 8 STIG versión 1, lanzamiento 5

**STIG-Build-Linux-Medium versión 3.6.x**
+ RHEL 7 STIG versión 3, lanzamiento 6
+ RHEL 8 STIG versión 1, lanzamiento 5

**STIG-Build-Linux-High versión 3.6.x**
+ RHEL 7 STIG versión 3, lanzamiento 6
+ RHEL 8 STIG versión 1, lanzamiento 5

### Cambios en el cuarto trimestre de 2021: 20 de diciembre de 2021:
<a name="2021-q4-linux"></a>

Se actualizaron las versiones de STIG y se aplicó el STIGS para la versión del cuarto trimestre de 2021 de la siguiente manera:

**STIG-Build-Linux-Low versión 3.5.x**
+ RHEL 7 STIG versión 3, lanzamiento 5
+ RHEL 8 STIG versión 1, lanzamiento 4

**STIG-Build-Linux-Medium versión 3.5.x**
+ RHEL 7 STIG versión 3, lanzamiento 5
+ RHEL 8 STIG versión 1, lanzamiento 4

**STIG-Build-Linux-High versión 3.5.x**
+ RHEL 7 STIG versión 3, lanzamiento 5
+ RHEL 8 STIG versión 1, lanzamiento 4

### Cambios en el tercer trimestre de 2021: 30 de septiembre de 2021:
<a name="2021-q3-linux"></a>

Se actualizaron las versiones de STIG y se aplicó el STIGS para la versión del tercer trimestre de 2021 de la siguiente manera:

**STIG-Build-Linux-Low versión 3.4.x**
+ RHEL 7 STIG versión 3, lanzamiento 4
+ RHEL 8 STIG versión 1, lanzamiento 3

**STIG-Build-Linux-Medium versión 3.4.x**
+ RHEL 7 STIG versión 3, lanzamiento 4
+ RHEL 8 STIG versión 1, lanzamiento 3

**STIG-Build-Linux-High versión 3.4.x**
+ RHEL 7 STIG versión 3, lanzamiento 4
+ RHEL 8 STIG versión 1, versión 3

## Componente validador de cumplimiento del SCAP
<a name="scap-compliance"></a>

El Protocolo de automatización de contenido de seguridad (SCAP) es un conjunto de estándares que los profesionales de TI pueden utilizar para identificar las vulnerabilidades de seguridad de las aplicaciones a fin de garantizar la conformidad. El Comprobador de cumplimiento de SCAP (SCC) es una herramienta de escaneo validada por SCAP y lanzada por el Centro de Asuntos de Guerra Aérea Naval (NIWC) Atlántico. Para obtener más información, consulte [Security Content Automation Protocol (SCAP) Compliance Checker (SCC)](https://www.niwcatlantic.navy.mil/Technology/SCAP/) en el sitio web de *NIWC Atlantic*.

Los `scap-compliance-checker-linux` componentes TOE de AWS `scap-compliance-checker-windows` y B descargan e instalan el escáner SCC en las instancias de creación y prueba en proceso. Cuando el escáner se ejecuta, realiza escaneos de configuración autenticados utilizando los puntos de referencia SCAP de DISA y proporciona un informe que incluye la siguiente información. TOE de AWS también escribe la información en los registros de la aplicación.
+ Configuración de STIG que se aplica a la instancia.
+ Una puntuación de conformidad general de la instancia.

Le recomendamos que ejecute la validación del SCAP como último paso del proceso de compilación, para garantizar que los resultados de la validación de conformidad son precisos.

**nota**  
Puede revisar los informes con una de las [herramientas de visualización de STIG](https://public.cyber.mil/stigs/srg-stig-tools/). Estas herramientas están disponibles en línea a través de DoD Cyber Exchange.

En las siguientes secciones, se describen los puntos de referencia que incluyen los componentes de validación del SCAP.

### scap-compliance-checker-windows versión 2024.03.0
<a name="scap-component-windows"></a>

El `scap-compliance-checker-windows` componente se ejecuta en las instancias EC2 que Image Builder crea para crear y probar la imagen. TOE de AWS registra tanto el informe como la puntuación que produce la aplicación SCC.

El componente realiza los siguientes pasos del flujo de trabajo: 

1. Descarga e instala la aplicación SCC.

1. Importa los puntos de referencia de conformidad.

1. Ejecuta la validación mediante la aplicación SCC.

1. Guarda el informe de conformidad y la puntuación de forma local en el escritorio de la instancia de compilación.

1. Registra la puntuación de conformidad del informe local en los archivos de registro de la TOE de AWS aplicación.

**nota**  
TOE de AWS actualmente admite la validación de conformidad del SCAP para Windows Server 2012 R2 MS, 2016, 2019 y 2022.

El componente del comprobador de conformidad de SCAP para Windows incluye los siguientes puntos de referencia:

**Versión SCC: 5.10**  
Parámetros de referencia del cuarto trimestre de 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 IE11 \$1V2R6\$1STIG\$1SCAP\$11-2\$1benchmark
+ U\$1MS\$1Windows\$12012\$1y\$12012\$1R2\$1DC\$1V3R5\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1MS\$1Windows\$12012\$1y\$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 versión 2021.04.0
<a name="scap-component-linux"></a>

El `scap-compliance-checker-linux` componente se ejecuta en las instancias EC2 que Image Builder crea para crear y probar la imagen. TOE de AWS registra tanto el informe como la puntuación que produce la aplicación SCC.

El componente realiza los siguientes pasos del flujo de trabajo:

1. Descarga e instala la aplicación SCC.

1. Importa los puntos de referencia de conformidad.

1. Ejecuta la validación mediante la aplicación SCC.

1. Guarda el informe de conformidad y la puntuación de forma local, en la siguiente ubicación de la instancia de compilación: `/opt/scc/SCCResults`.

1. Registra la puntuación de conformidad del informe local en los archivos de registro de la TOE de AWS aplicación.

**nota**  
TOE de AWS actualmente admite la validación de conformidad del SCAP para RHEL 7/8 y Ubuntu 18.04/20.04. La aplicación SCC actualmente es compatible con la arquitectura x86 para la validación.

El componente del comprobador de conformidad de SCAP para Linux incluye los siguientes puntos de referencia:

**Versión SCC: 5.10**  
Parámetros de referencia del cuarto trimestre de 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 IE11 \$1V2R6\$1STIG\$1SCAP\$11-2\$1benchmark
+ U\$1MS\$1Windows\$12012\$1y\$12012\$1R2\$1DC\$1V3R5\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1MS\$1Windows\$12012\$1y\$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

### Historial de versiones de SCAP
<a name="ib-scap-version-hist"></a>

En la siguiente tabla se describen cambios importantes en el entorno de SCAP y las configuraciones descritas en este documento.


| Cambio | Descripción | Fecha | 
| --- | --- | --- | 
|  Actualizaciones del SCAP del primer trimestre de 2025  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/imagebuilder/latest/userguide/ib-stig.html)  | 11 de abril de 2025 | 
|  Actualizaciones de SCAP del cuarto trimestre de 2023  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/imagebuilder/latest/userguide/ib-stig.html)  | 20 de diciembre de 2021 | 
|  Actualizaciones de SCAP del tercer trimestre de 2023  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/imagebuilder/latest/userguide/ib-stig.html)  | 13 de noviembre de 2023 | 
|  Componentes de SCAP agregados  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/imagebuilder/latest/userguide/ib-stig.html)  | 20 de diciembre de 2021 | 

# Desarrollo de componentes personalizados para su imagen de Generador de imágenes
<a name="create-custom-components"></a>

Puede crear sus propios componentes para personalizar las imágenes de Generador de imágenes de acuerdo con sus especificaciones exactas. Siga estos pasos para desarrollar componentes personalizados para sus recetas de contenedores o imágenes de Generador de imágenes.

1. Si desea desarrollar el documento de componentes y validarlo localmente, puede instalar la aplicación Ejecutor y orquestador de tareas de AWS (TOE de AWS) y configurarla en su máquina local. Para obtener más información, consulte [Configuración manual para desarrollar componentes personalizados con TOE de AWS](toe-get-started.md).

1. Cree un documento de componentes que utilice el marco de documentos de TOE de AWS componentes. Para obtener más información sobre el marco de documentos, consulte [Utilice el marco de documentos de TOE de AWS componentes para componentes personalizados](toe-use-documents.md).

1. Especifique el documento de componentes al crear un componente personalizado. Para obtener más información, consulte [Cree un componente personalizado con Generador de imágenes](create-component.md).

**Topics**
+ [Creación de un documento del componente YAML para componentes personalizados en Generador de imágenes](create-component-yaml.md)
+ [Cree un componente personalizado con Generador de imágenes](create-component.md)

# Creación de un documento del componente YAML para componentes personalizados en Generador de imágenes
<a name="create-component-yaml"></a>

Para crear un componente, debe proporcionar un documento del componente de la aplicación YAML o JSON. El documento contiene el código que se ejecuta durante las fases y los pasos que defina para personalizar la imagen.

Algunos de los ejemplos de esta sección crean un componente de compilación que llama al módulo de `UpdateOS` acción en la aplicación de administración de TOE de AWS componentes. El módulo actualiza el sistema operativo. Para obtener más información sobre el módulo de acción `UpdateOS`, consulte [Actualizar OS](toe-action-modules.md#action-modules-updateos).

El ejemplo del sistema operativo macOS usa el módulo de acción `ExecuteBash` para instalar y verificar la utilidad `wget`. El módulo de acción `UpdateOS` no es compatible con macOS. Para obtener más información sobre el módulo de acción `ExecuteBash`, consulte [ExecuteBash](toe-action-modules.md#action-modules-executebash). Para obtener más información sobre las fases, los pasos y la sintaxis de los documentos del componente de la aplicación TOE de AWS , consulte [Cómo usar documentos en TOE de AWS](https://docs.aws.amazon.com/imagebuilder/latest/userguide/toe-use-documents.html).

**nota**  
Generador de imágenes determina el tipo de componente a partir de las fases definidas en el documento del componente de la siguiente manera:  
**Compilación**: este es el tipo de componente por defecto. Todo lo que no esté clasificado como componente de prueba es un componente de compilación. Este tipo de componente se ejecuta durante la *etapa de compilación* de la imagen. Si este componente de compilación tiene una fase de `test` definida, esa fase se ejecuta durante la *etapa de prueba*.
**Prueba**: para ser considerado un componente de prueba, el documento del componente debe incluir solo una fase, denominada `test`. Para las pruebas relacionadas con las configuraciones de los componentes de compilación, le recomendamos que no utilice un componente de prueba independiente. En su lugar, utilice la fase `test` en el componente de compilación asociado.
Para obtener más información sobre cómo Generador de Imágenes utiliza las etapas y fases para administrar el flujo de trabajo de los componentes en su proceso de compilación, consulte [Uso de componentes para personalizar su imagen de Generador de imágenes](manage-components.md).

Para crear un documento de componentes de una aplicación YAML para una aplicación de ejemplo, siga los pasos de la pestaña correspondiente al sistema operativo de su imagen. 

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

**Creación de un archivo de componentes YAML**  
Utilice una herramienta de edición de archivos para crear el documento de componente. Los ejemplos de documentación utilizan un archivo denominado `update-linux-os.yaml`, con el siguiente contenido:

```
# 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
```

**sugerencia**  
Utilice una herramienta como este [Validador YAML](https://jsonformatter.org/yaml-validator) en línea o una extensión YAML lint en su entorno de código para verificar que su YAML está bien formado.

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

**Creación de un archivo de componentes YAML**  
Utilice una herramienta de edición de archivos para crear el documento de componente. Los ejemplos de documentación utilizan un archivo denominado `update-windows-os.yaml`, con el siguiente contenido:

```
# 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
```

**sugerencia**  
Utilice una herramienta como este [Validador YAML](https://jsonformatter.org/yaml-validator) en línea o una extensión YAML lint en su entorno de código para verificar que su YAML está bien formado.

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

**Creación de un archivo de componentes YAML**  
Utilice una herramienta de edición de archivos para crear el documento de componente. Los ejemplos de documentación utilizan un archivo denominado `wget-macos.yaml`, con el siguiente contenido:

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

**sugerencia**  
Utilice una herramienta como este [Validador YAML](https://jsonformatter.org/yaml-validator) en línea o una extensión YAML lint en su entorno de código para verificar que su YAML está bien formado.

------

# Cree un componente personalizado con Generador de imágenes
<a name="create-component"></a>

Una vez que haya completado el documento de componentes, puede usarlo para crear un componente personalizado que puedan usar sus recetas de Generador de imágenes. Puede crear un componente personalizado desde la consola de Image Builder, desde la API o SDKs desde la línea de comandos. Para obtener más información sobre cómo crear un componente personalizado con parámetros de entrada y usarlo en sus recetas, consulte [Tutorial: creación de un documento del componente con los parámetros de entrada](tutorial-component-parameters.md).

En las siguientes secciones se muestra cómo crear componentes desde la consola o la AWS CLI.

**Topics**
+ [Creación de un componente personalizado de la consola](#create-component-ib-console)
+ [Cree un componente personalizado a partir del AWS CLI](#create-component-ib-cli)
+ [Importe un script para crear un componente desde AWS CLI](#import-component-cli)
+ [Administración automática de versiones de compilación](#auto-build-version-management)
+ [Uso de referencias de versión](#using-version-references)

## Creación de un componente personalizado de la consola
<a name="create-component-ib-console"></a>

Para crear un componente de TOE de AWS aplicación desde la consola de Image Builder, siga estos pasos:

1. Abra la consola [https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/)EC2 Image Builder en.

1. En el panel de navegación, seleccione **Componentes**. A continuación, seleccione **Crear componente**.

1. En la página **Crear componente**, en **Detalles del componente**, introduzca lo siguiente:

   1. **Sistema operativo (SO) de imágenes**. Especifique el sistema operativo con el que es compatible el componente.

   1. **Categoría de componente**. En el menú desplegable, seleccione el tipo de componente de compilación o prueba que va a crear.

   1. **Nombre del componente**. Introduzca un nombre para el componente.

   1. **versión del componente**. Introduzca el número de versión del componente.

   1. **Descripción**. Proporcione una descripción opcional que le ayude a identificar el componente.

   1. **Descripción del cambio**. Proporcione una descripción opcional que le ayude a comprender los cambios realizados en esta versión del componente.

1. En la sección **Documento de definición**, la opción predeterminada es **Definir el contenido del documento**. El documento del componente define las acciones que Generador de Imágenes realiza en las instancias de compilación y prueba para crear su imagen.

   En el cuadro **Contenido**, introduzca el contenido del documento de componente YAML. Para empezar con un ejemplo de *Hello World* para Linux, seleccione la opción **Usar ejemplo**. Para obtener más información sobre cómo crear un documento de componente YAML o cómo copiar y pegar el ejemplo de *UpdateOS* de esa página, consulte [Creación de un documento del componente YAML para componentes personalizados en Generador de imágenes](create-component-yaml.md).

1. Tras introducir los detalles del componente, seleccione **Crear componente**.
**nota**  
Para ver el nuevo componente al crear o actualizar una receta, aplique el filtro **Owned by me** a la lista de componentes de compilación o prueba. El filtro se encuentra en la parte superior de la lista de componentes, junto al cuadro de búsqueda.

1. Para eliminar un componente, en la página **Componentes**, seleccione la casilla al componente que desea eliminar. En el menú desplegable **Acciones**, seleccione **Eliminar componente**.

**Actualización de un componente**  
Para crear una nueva versión del componente, siga estos pasos:

1. En función de dónde empiece:
   + Desde la página de la lista de **componentes**: seleccione la casilla junto al nombre del componente y, a continuación, seleccione **Crear nueva versión** en el menú **Acciones**.
   + En la página de detalles del componente: pulse el botón **Crear nueva versión** situado en la esquina superior derecha del encabezado.

1. La información del componente ya está rellenada con los valores actuales cuando aparece la página **Crear componente**. Siga los pasos de creación de un componente para actualizar el componente. Esto garantiza que introduzca una versión semántica única en la **versión del componente**. Para obtener más información sobre el control de versiones semántico para los recursos de Generador de Imágenes, consulte [Control de versiones semántico en Generador de imágenes](ibhow-semantic-versioning.md).

## Cree un componente personalizado a partir del AWS CLI
<a name="create-component-ib-cli"></a>

En esta sección, aprenderá a configurar y utilizar los comandos de Image Builder AWS CLI para crear un componente de TOE de AWS aplicación, de la siguiente manera.
+ Suba el documento de componente YAML a un bucket de S3 al que pueda hacer referencia desde la línea de comandos.
+ Cree el componente de la TOE de AWS aplicación con el **create-component** comando.
+ Enumere las versiones de los componentes con el comando **list-components** y un filtro de nombres para ver qué versiones ya existen. Puede usar el resultado para determinar cuál debe ser la próxima versión para las actualizaciones.

Para crear un componente de TOE de AWS aplicación a partir de un documento YAML de entrada, siga los pasos que coincidan con la plataforma de sistema operativo de su imagen.

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

**Almacene el documento del componente de la aplicación en Amazon S3.**

Puede usar un bucket de S3 como repositorio para el documento fuente del componente de TOE de AWS la aplicación. Para almacenar el documento del componente, siga estos pasos:
+ 

**Cargue del documento en Amazon S3**

  *Si el documento ocupa menos de 64 KB, puede omitir este paso.* Los documentos con un tamaño de 64 KB o más deben almacenarse en Amazon S3.

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

**Creación de un componente a partir del documento YAML**

Para simplificar el **create-component** comando que utiliza en el AWS CLI, cree un archivo JSON que contenga todos los parámetros de los componentes que desee pasar al comando. Incluya la ubicación del documento `update-linux-os.yaml` que creó en los pasos anteriores. El par clave-valor `uri` contiene la referencia del archivo.
**nota**  
La convención de nomenclatura de los valores de datos del archivo JSON sigue el patrón que se especifica para los parámetros de solicitud de operación de la API Image Builder. Para revisar los parámetros de solicitud de comandos de la API, consulte el comando [CreateComponent](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html) en la referencia de la *API de Generador de Imágenes de EC2*.  
Para proporcionar los valores de los datos como parámetros de la línea de comandos, consulte los nombres de los parámetros especificados en la *referencia de comandos de la AWS CLI *.

1. 

**Creación de un archivo JSON de entrada de la CLI**

   Utilice una herramienta de edición de archivos para crear un archivo llamado `create-update-linux-os-component.json`. Incluya el siguiente contenido:

   ```
   {
   	"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. 

**Creación de un componente**

   Utilice el siguiente comando para crear el componente, haciendo referencia al nombre del archivo JSON que creó en el paso anterior:

   ```
   aws imagebuilder create-component --cli-input-json file://create-update-linux-os-component.json
   ```
**nota**  
Debe incluir la notación `file://` al principio de la ruta del archivo JSON.
La ruta del archivo JSON debe seguir la convención apropiada para el sistema operativo base donde se está ejecutando el comando. Por ejemplo, Windows utiliza la barra diagonal inversa (\$1) para referirse a la ruta de directorios, mientras que Linux y macOS usan la barra diagonal (/).

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

**Almacene el documento del componente de la aplicación en Amazon S3.**

Puede usar un bucket de S3 como repositorio para el documento fuente del componente de la TOE de AWS aplicación. Para almacenar el documento del componente, siga estos pasos:
+ 

**Cargue del documento en Amazon S3**

  *Si el documento ocupa menos de 64 KB, puede omitir este paso.* Los documentos con un tamaño de 64 KB o más deben almacenarse en Amazon S3.

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

**Creación de un componente a partir del documento YAML**

Para simplificar el **create-component** comando que utiliza en el AWS CLI, cree un archivo JSON que contenga todos los parámetros de los componentes que desee pasar al comando. Incluya la ubicación del documento `update-windows-os.yaml` que creó en los pasos anteriores. El par clave-valor `uri` contiene la referencia del archivo.
**nota**  
La convención de nomenclatura de los valores de datos del archivo JSON sigue el patrón que se especifica para los parámetros de solicitud de operación de la API Image Builder. Para revisar los parámetros de solicitud de comandos de la API, consulte el comando [CreateComponent](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html) en la referencia de la *API de Generador de Imágenes de EC2*.  
Para proporcionar los valores de los datos como parámetros de la línea de comandos, consulte los nombres de los parámetros especificados en la *referencia de comandos de la AWS CLI *.

1. 

**Creación de un archivo JSON de entrada de la CLI**

   Utilice una herramienta de edición de archivos para crear un archivo llamado `create-update-windows-os-component.json`. Incluya el siguiente contenido:

   ```
   {
   	"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"
   	}
   }
   ```
**nota**  
Debe incluir la notación `file://` al principio de la ruta del archivo JSON.
La ruta del archivo JSON debe seguir la convención apropiada para el sistema operativo base donde se está ejecutando el comando. Por ejemplo, Windows utiliza la barra diagonal inversa (\$1) para referirse a la ruta de directorios, mientras que Linux y macOS usan la barra diagonal (/).

1. 

**Creación de un componente**

   Utilice el siguiente comando para crear el componente, haciendo referencia al nombre del archivo JSON que creó en el paso anterior:

   ```
   aws imagebuilder create-component --cli-input-json file://create-update-windows-os-component.json
   ```
**nota**  
Debe incluir la notación `file://` al principio de la ruta del archivo JSON.
La ruta del archivo JSON debe seguir la convención apropiada para el sistema operativo base donde se está ejecutando el comando. Por ejemplo, Windows utiliza la barra diagonal inversa (\$1) para referirse a la ruta de directorios, mientras que Linux y macOS usan la barra diagonal (/).

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

**Almacene el documento del componente de la aplicación en Amazon S3.**

Puede usar un bucket de S3 como repositorio para el documento fuente del componente de la TOE de AWS aplicación. Para almacenar el documento del componente, siga estos pasos:
+ 

**Cargue del documento en Amazon S3**

  *Si el documento ocupa menos de 64 KB, puede omitir este paso.* Los documentos con un tamaño de 64 KB o más deben almacenarse en Amazon S3.

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

**Creación de un componente a partir del documento YAML**

Para simplificar el **create-component** comando que utiliza en el AWS CLI, cree un archivo JSON que contenga todos los parámetros de los componentes que desee pasar al comando. Incluya la ubicación del documento `wget-macos.yaml` que creó en los pasos anteriores. El par clave-valor `uri` contiene la referencia del archivo.
**nota**  
La convención de nomenclatura de los valores de datos del archivo JSON sigue el patrón que se especifica para los parámetros de solicitud de operación de la API Image Builder. Para revisar los parámetros de solicitud de comandos de la API, consulte el comando [CreateComponent](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html) en la referencia de la *API de Generador de Imágenes de EC2*.  
Para proporcionar los valores de los datos como parámetros de la línea de comandos, consulte los nombres de los parámetros especificados en la *referencia de comandos de la AWS CLI *.

1. 

**Creación de un archivo JSON de entrada de la CLI**

   Utilice una herramienta de edición de archivos para crear un archivo llamado `install-wget-macos-component.json`. Incluya el siguiente contenido:

   ```
   {
   	"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. 

**Creación de un componente**

   Utilice el siguiente comando para crear el componente, haciendo referencia al nombre del archivo JSON que creó en el paso anterior:

   ```
   aws imagebuilder create-component --cli-input-json file://install-wget-macos-component.json
   ```
**nota**  
Debe incluir la notación `file://` al principio de la ruta del archivo JSON.
La ruta del archivo JSON debe seguir la convención apropiada para el sistema operativo base donde se está ejecutando el comando. Por ejemplo, Windows utiliza la barra diagonal inversa (\$1) para referirse a la ruta de directorios, mientras que Linux y macOS usan la barra diagonal (/).

------

### TOE de AWS el control de versiones de los componentes para las actualizaciones desde AWS CLI
<a name="component-update-cli"></a>

TOE de AWS los nombres y las versiones de los componentes están incrustados en el Amazon Resource Name (ARN) del componente, después del prefijo del componente. Cada nueva versión de un componente tiene su propio ARN único. Los pasos para crear una nueva versión son exactamente los mismos que para crear un nuevo componente, siempre que la versión semántica sea única para el nombre de ese componente. Para obtener más información sobre el control de versiones semántico para los recursos de Generador de Imágenes, consulte [Control de versiones semántico en Generador de imágenes](ibhow-semantic-versioning.md).

Para asegurarse de asignar la siguiente versión lógica, primero obtenga una lista de las versiones existentes del componente que desee cambiar. Utilice el **list-components** comando con el nombre AWS CLI y filtre por él.

En este ejemplo, filtre por el nombre del componente que creó en los ejemplos anteriores de Linux. Para mostrar el componente que ha creado, utilice el valor del parámetro `name` del archivo JSON que utilizó en el comando **create-component**.

```
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"
        }
    ]
}
```

En función de los resultados, puede determinar cuál debe ser la próxima versión.

## Importe un script para crear un componente desde AWS CLI
<a name="import-component-cli"></a>

En algunos casos, puede ser más fácil empezar con un script preexistente. En este caso, puede utilizar el siguiente ejemplo: 

En este ejemplo se supone que usted tiene un archivo llamado `import-component.json` (como se muestra). Tenga en cuenta que el archivo hace referencia directamente a un PowerShell script denominado `AdminConfig.ps1` que ya está cargado en`amzn-s3-demo-source-bucket`. Actualmente, `SHELL` es compatible con el componente `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"
}
```

Para crear el componente de un script importado, ejecute el siguiente comando.

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

## Administración automática de versiones de compilación
<a name="auto-build-version-management"></a>

Al crear un componente con el mismo nombre y la misma versión semántica que un componente existente, Image Builder incrementa automáticamente la versión de compilación (por ejemplo, de `/1` a`/2`, a`/3`, etc.). Esto le permite realizar actualizaciones iterativas de sus componentes sin tener que gestionar manualmente los números de versión, lo que resulta especialmente útil en CI/CD procesos e implementaciones. infrastructure-as-code Si el contenido del componente es idéntico al de la versión de compilación anterior, Image Builder vuelve `ResourceAlreadyExistsException` para evitar que los componentes duplicados consuman la cuota de servicio. 

## Uso de referencias de versión
<a name="using-version-references"></a>

Al crear o recuperar un componente, Image Builder proporciona automáticamente patrones de versión preconstruidos ARNs con caracteres comodín en el latestVersionReferences objeto. Estas referencias facilitan el uso de las versiones más recientes de sus componentes en recetas y canalizaciones sin necesidad de analizarlas manualmente. ARNs 

**Elegir la referencia de versión correcta**
+ latestVersionArn (x.x.x): utilice siempre la versión más reciente del componente.
+ atestMajorVersionArn (1.x.x): utilice las versiones secundarias y de parche más recientes dentro de una versión principal.
+ latestMinorVersionArn (1.2.x): utilice únicamente la última versión del parche.
+ latestPatchVersionArn (1.2.3): haga referencia a una versión semántica específica, pero obtenga la versión de compilación más reciente.

**nota**  
Para evitar cargos inesperados, asegúrese de limpiar los recursos y canalizaciones que haya creado a partir de los ejemplos de esta guía. Para obtener más información sobre cómo eliminar recursos en Generador de Imágenes, consulte [Eliminación de recursos de Generador de imágenes obsoletos o no utilizados](delete-resources.md).

# Cómo utiliza Image Builder la Ejecutor y orquestador de tareas de AWS aplicación para gestionar los componentes
<a name="toe-component-manager"></a>

EC2 Image Builder utiliza la aplicación Ejecutor y orquestador de tareas de AWS (TOE de AWS) para organizar flujos de trabajo complejos, modificar las configuraciones del sistema y probar las imágenes sin necesidad de códigos o scripts de DevOps adicionales. Esta aplicación administra y ejecuta los componentes que implementan su esquema de documento declarativo.

TOE de AWS es una aplicación independiente que Image Builder instala en sus instancias de compilación y prueba al crear una imagen. También puede instalarla manualmente en las EC2 instancias para crear sus propios componentes personalizados. No requiere ninguna configuración adicional y también se puede ejecutar en las instalaciones.

**Topics**
+ [TOE de AWS descargas](#toe-downloads)
+ [Regiones compatibles](#toe-supported-regions)
+ [TOE de AWS referencia de comando](#toe-commands)
+ [Configuración manual para desarrollar componentes personalizados con TOE de AWS](toe-get-started.md)
+ [Utilice el marco de documentos de TOE de AWS componentes para componentes personalizados](toe-use-documents.md)
+ [Módulos de acción compatibles con el administrador de TOE de AWS componentes](toe-action-modules.md)
+ [Configurar la entrada para el comando TOE de AWS run](toe-run-config-input.md)

## TOE de AWS descargas
<a name="toe-downloads"></a>

Para instalarlo TOE de AWS, elija el enlace de descarga correspondiente a su arquitectura y plataforma. Si se conecta a un punto final de VPC para su servicio (Image Builder, por ejemplo), debe tener una política de punto final personalizada adjunta que incluya el acceso al depósito de S3 para TOE de AWS las descargas. De lo contrario, las instancias de compilación y prueba no podrán descargar el script de arranque (`bootstrap.sh`) ni instalar la TOE de AWS aplicación. Para obtener más información, consulte [Creación de una política de puntos de conexión de VPC para Generador de Imágenes](vpc-interface-endpoints.md#vpc-endpoint-policy).

**importante**  
AWS está eliminando gradualmente la compatibilidad con las versiones 1.0 y 1.1 de TLS. Para acceder al depósito de S3 para realizar TOE de AWS descargas, el software de su cliente debe usar la versión 1.2 o posterior de TLS. Para obtener más información, consulte esta [entrada de blog de seguridad de AWS](https://aws.amazon.com/blogs/security/tls-1-2-required-for-aws-endpoints/).


| Arquitectura | Plataforma | Enlace de descarga | Ejemplo | 
| --- | --- | --- | --- | 
| 386 |  AL 2 y 2023 RHEL 7, 8 y 9 Ubuntu 16.04, 18.04, 20.04, 22.04 y 24.04 CentOS 7 y 8 SUSE 12 y 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 y 2023 RHEL 7, 8 y 9 Ubuntu 16.04, 18.04, 20.04, 22.04 y 24.04 CentOS 7 y 8 Flujo 8 de CentOS SUSE 12 y 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 y 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 y 2023 RHEL 7, 8 y 9 Ubuntu 16.04, 18.04, 20.04, 22.04 y 24.04 CentOS 7 y 8 Flujo 8 de CentOS SUSE 12 y 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) | 

## Regiones compatibles
<a name="toe-supported-regions"></a>

TOE de AWS se admite como aplicación independiente en las siguientes regiones.


| Región de AWS nombre | Región de AWS | 
| --- | --- | 
|  Este de EE. UU. (Ohio)  |  us-east-2  | 
|  Este de EE. UU. (Norte de Virginia)  |  us-east-1  | 
|  AWS GovCloud (Este de EE. UU.)  |  us-gov-east-1  | 
|  AWS GovCloud (Estados Unidos-Oeste)  |  us-gov-west-1  | 
|  Oeste de EE. UU. (Norte de California)  | us-west-1 | 
|  Oeste de EE. UU. (Oregón)  | us-west-2 | 
|  África (Ciudad del Cabo)  | af-south-1 | 
|  Asia-Pacífico (Hong Kong)  | ap-east-1 | 
|  Asia Pacífico (Osaka)  | ap-northeast-3 | 
|  Asia-Pacífico (Seúl)  | ap-northeast-2 | 
|  Asia Pacífico (Mumbai)  | ap-south-1 | 
|  Asia-Pacífico (Hyderabad)  | ap-south-2 | 
|  Asia-Pacífico (Singapur)  | ap-southeast-1 | 
|  Asia-Pacífico (Sídney)  | ap-southeast-2 | 
|  Asia-Pacífico (Yakarta)  | ap-southeast-3 | 
|  Asia-Pacífico (Tokio)  | ap-northeast-1 | 
|  Canadá (centro)  | ca-central-1 | 
|  Europa (Fráncfort)  | eu-central-1 | 
|  Europa (Zúrich)  | eu-central-2 | 
|  Europa (Estocolmo)  | eu-north-1 | 
|  Europa (Milán)  | eu-south-1 | 
|  Europa (España)  | eu-south-2 | 
|  Europa (Irlanda)  | eu-west-1 | 
|  Europa (Londres)  | eu-west-2 | 
|  Europa (París)  | eu-west-3 | 
|  Israel (Tel Aviv)  | il-central-1 | 
|  Medio Oriente (EAU)  | me-central-1 | 
|  Medio Oriente (Baréin)  | me-south-1 | 
|  América del Sur (São Paulo)  | sa-east-1 | 
|  China (Pekín)  | cn-north-1 | 
|  China (Ningxia)  | cn-northwest-1 | 

## TOE de AWS referencia de comando
<a name="toe-commands"></a>

TOE de AWS es una aplicación de administración de componentes de línea de comandos que se ejecuta en EC2 instancias de Amazon. Cuando Image Builder lanza una instancia de EC2 compilación o prueba, se instala TOE de AWS en la instancia. A continuación, ejecuta TOE de AWS los comandos AWS CLI para instalar o validar los componentes que se especifican en la receta de la imagen o del contenedor.

**nota**  
Algunos módulos de TOE de AWS acción requieren permisos elevados para ejecutarse en un servidor Linux. Para usar permisos elevados, añada el prefijo a la sintaxis del comando con **sudo** o ejecute el comando **sudo su** una vez al iniciar sesión antes de ejecutar los comandos que aparecen a continuación. Para obtener más información sobre los módulos de TOE de AWS acción, consulte[Módulos de acción compatibles con el administrador de TOE de AWS componentes](toe-action-modules.md).

***[ejecutar](#cmd-run)***  
Use el comando **run** para ejecutar los scripts de documentos de YAML para uno o más documentos componentes.

***[validar](#cmd-validate)***  
Ejecute el comando **validate** para validar la sintaxis del documento YAML de uno o más documentos componentes.

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

Este comando ejecuta los scripts de los documentos de componentes de YAML en el orden en que se incluyen en el archivo de configuración especificado por el parámetro `--config` o en la lista de documentos de componentes especificada por el parámetro `--documents`.

**nota**  
Debe especificar exactamente uno de los siguientes parámetros, nunca ambos:  
--config  
--documents

#### Sintaxis
<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]
```

#### Parámetros y opciones
<a name="run-parameters"></a>Parámetros

**--config *`./config-example.json`***  
Forma abreviada: -c *`./config-example.json`*  
El archivo de configuración *(condicional).* Este parámetro contiene la ubicación del archivo JSON que contiene los ajustes de configuración de los componentes que ejecuta este comando. Si especifica los ajustes del comando **run** en un archivo de configuración, no debe especificar el parámetro `--documents`. Para obtener más información sobre la configuración de entrada, consulte [Configurar la entrada para el comando TOE de AWS run](toe-run-config-input.md).  
Los campos de ubicación válidos se incluyen:  
+ Una ruta de archivo local (*`./config-example.json`*)
+ Un URI de S3 (`s3://bucket/key`)

**--cw-ignore-failures**  
Forma abreviada: N/A  
Ignore los errores de registro de los CloudWatch registros.

**--cw-log-group**  
Forma abreviada: N/A  
El `LogGroup` nombre de los CloudWatch registros.

**--cw-log-region**  
Forma abreviada: N/A  
La AWS región que se aplica a los CloudWatch registros.

**--cw-log-stream**  
Forma abreviada: N/A  
El `LogStream` nombre de los CloudWatch registros, que indica TOE de AWS dónde transmitir el `console.log` archivo.

**--document-s3-bucket-owner**  
Forma abreviada: N/A  
ID de cuenta de propietario del bucket de documentos basados en URI de S3.

**--documentos *`./doc-1.yaml`,`./doc-n.yaml`***  
Forma abreviada: -d *`./doc-1.yaml`*,*`./doc-n`*  
Los documentos componentes *(condicionales).* Este parámetro contiene una lista de ubicaciones de archivos separadas por comas para que se ejecuten los documentos del componente YAML. Si especifica documentos YAML para el comando **run** mediante el parámetro `--documents`, no debe especificar el parámetro `--config`.  
Los campos de ubicación válidos se incluyen:  
+ rutas de archivos locales (*./component-doc-example.yaml*).
+ S3 URIs (`s3://bucket/key`).
+ Versión de compilación del componente Image Builder ARNs (arn:aws:imagebuilder:us-west-:component/ /2021.12.02/1). *2:123456789012* *my-example-component*
No hay espacios entre los elementos de la lista, solo comas.

**--execution-id**  
Forma abreviada: -i  
Este es el identificador único que se aplica a la ejecución del comando **run** actual. Este identificador se incluye en los nombres de los archivos de salida y de registro para identificarlos de forma exclusiva y vincularlos a la ejecución del comando actual. Si se omite esta configuración, genera TOE de AWS un GUID.

**--log-directory**  
Forma abreviada: -i  
El directorio de destino donde se TOE de AWS almacenan todos los archivos de registro de la ejecución de este comando. De forma predeterminada, este directorio está ubicado en el siguiente directorio principal: `TOE_<DATETIME>_<EXECUTIONID>`. Si no especifica el directorio de registro, TOE de AWS utiliza el directorio de trabajo actual (`.`).

**--log-s3-nombre de bucket**  
Forma abreviada: -b  
Si los registros de los componentes se almacenan en Amazon S3 (recomendado), TOE de AWS carga los registros de las aplicaciones de los componentes en el bucket de S3 mencionado en este parámetro.

**--log-s3-bucket-owner**  
Forma abreviada: N/A  
Si los registros de los componentes se almacenan en Amazon S3 (recomendado), este es el ID de la cuenta del propietario del depósito en el que se TOE de AWS escriben los archivos de registro.

**--log-s3-key-prefix**  
Forma abreviada: -k  
Si los registros de los componentes se almacenan en Amazon S3 (recomendado), este es el prefijo de clave de objeto S3 para la ubicación del registro en el bucket.

**--parameters *name1* =*value1*, *name2* =*value2*...**  
Forma abreviada: N/A  
Los parámetros son variables mutables que se definen en el documento del componente, con ajustes que la aplicación que realiza la llamada puede proporcionar en el tiempo de ejecución.

**--phases**  
Forma abreviada: -p  
Una lista separada por comas que especifica qué fases se van a ejecutar desde los documentos de los componentes de YAML. Si un documento de componentes incluye fases adicionales, no se ejecutarán.

**--directorio de estados**  
Forma abreviada: -s  
La ruta del archivo donde se almacenan los archivos de seguimiento de estado.

**--version**  
Forma abreviada: -v  
Especifica la versión de la aplicación del componente.Opciones

**--help**  
Forma abreviada: -h  
Muestra un manual de ayuda para utilizar las opciones de la aplicación de administración de componentes.

**--trace**  
Forma abreviada: -t  
Permite el registro detallado en la consola.

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

Al ejecutar este comando, valida la sintaxis del documento YAML para cada uno de los documentos componentes especificados por el parámetro `--documents`.

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

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

#### Parámetros y opciones
<a name="validate-parameters"></a>Parámetros

**--document-s3-bucket-owner**  
Forma abreviada: N/A  
Se proporcionó el identificador de cuenta de origen de los documentos basados en la URI de S3.

**--documentos *`./doc-1.yaml`,`./doc-n.yaml`***  
Forma abreviada: -d *`./doc-1.yaml`*,*`./doc-n`*  
Los documentos que lo componen *(obligatorios).* Este parámetro contiene una lista de ubicaciones de archivos separadas por comas para que se ejecuten los documentos del componente YAML. Los campos de ubicación válidos se incluyen:  
+ rutas de archivos locales () *./component-doc-example.yaml*
+ S3 URIs (`s3://bucket/key`)
+ Versión de compilación del componente Image Builder ARNs (arn:aws:imagebuilder:us-west-:component/ /2021.12.02/1) *2:123456789012* *my-example-component*
No hay espacios entre los elementos de la lista, solo comas.Opciones

**--help**  
Forma abreviada: -h  
Muestra un manual de ayuda para utilizar las opciones de la aplicación de administración de componentes.

**--trace**  
Forma abreviada: -t  
Permite el registro detallado en la consola.

# Configuración manual para desarrollar componentes personalizados con TOE de AWS
<a name="toe-get-started"></a>

La aplicación Ejecutor y orquestador de tareas de AWS (TOE de AWS) es una aplicación independiente que crea, valida y ejecuta comandos dentro de un marco de definición de componentes. AWS los servicios se pueden utilizar TOE de AWS para organizar los flujos de trabajo, instalar software, modificar las configuraciones del sistema y probar compilaciones de imágenes.

Siga estos pasos para instalar manualmente la TOE de AWS aplicación y utilizarla como una aplicación independiente para desarrollar componentes personalizados. Image Builder se encarga de estos pasos si utiliza la consola o los AWS CLI comandos de Image Builder para crear componentes personalizados. Para obtener más información, consulte [Cree componentes personalizados con Generador de imágenes](create-component.md).

# Verificar la firma de la descarga de la TOE de AWS instalación
<a name="awstoe-verify-sig"></a>

En esta sección se describe el proceso recomendado para comprobar la validez de la descarga de la instalación en sistemas operativos basados TOE de AWS en Linux, macOS y Windows.

**Topics**
+ [Verificar la firma de la descarga de la TOE de AWS instalación en Linux o macOS](#awstoe-verify-sig-linux)
+ [Compruebe la firma de la descarga de la TOE de AWS instalación en Windows](#awstoe-verify-sig-win)

## Verificar la firma de la descarga de la TOE de AWS instalación en Linux o macOS
<a name="awstoe-verify-sig-linux"></a>

En este tema se describe el proceso recomendado para comprobar la validez de la descarga de la instalación en sistemas operativos basados TOE de AWS en Linux o macOS.

Siempre que descargue una aplicación de Internet, le recomendamos que autentique la identidad del publicador del software. Además, compruebe que la aplicación no esté alterada o dañada desde su publicación. Esto le protege ante una posible instalación de una versión de la aplicación que contenga un virus u otro código malintencionado.

Si después de seguir los pasos descritos en este tema determina que el software de la aplicación de TOE de AWS ha sido modificado o está dañado, no ejecute el archivo de instalación. En su lugar, póngase en contacto con Soporte Si desea obtener más información sobre sus opciones de soporte, consulte. [Soporte](https://aws.amazon.com/premiumsupport/)

TOE de AWS los archivos de los sistemas operativos basados en Linux y macOS se firman mediante `GnuPG` una implementación de código abierto del estándar Pretty Good Privacy (OpenPGP) para firmas digitales seguras. `GnuPG`(también conocido como`GPG`) permite comprobar la autenticación y la integridad mediante una firma digital. Amazon EC2 publica una clave pública y firmas que puede usar para verificar las herramientas de CLI de Amazon EC2 descargadas. Para obtener más información acerca de `PGP` y `GnuPG` (`GPG`), consulte [http://www.gnupg.org](https://www.gnupg.org/).

El primer paso consiste en establecer una relación de confianza con el editor del software. Descargue la clave pública del editor de software, compruebe que el propietario de la clave pública es quien afirma ser y, a continuación, agregue la clave pública a su *llavero*. Su llavero es una colección de claves públicas conocidas. Tras establecer la autenticidad de la clave pública, puede usarla para verificar la firma de la aplicación.

**Topics**
+ [Instalación de las herramientas de la GPG](#awstoe-verify-signature-of-binary-download-install-tools)
+ [Autenticación e importación de la clave pública](#awstoe-verify-signature-of-binary-download-authenticate-import-public-key)
+ [Verificar la firma del paquete](#awstoe-verify-signature-of-binary-package)

### Instalación de las herramientas de la GPG
<a name="awstoe-verify-signature-of-binary-download-install-tools"></a>

Si su sistema operativo es Linux, Unix o macOS, las herramientas GPG probablemente ya estarán instaladas. Para comprobar si las herramientas están instaladas en el sistema, escriba **gpg** en un símbolo del sistema. Si las herramientas de GPG están instaladas, verá un símbolo del sistema de GPG. Si las herramientas de GPG no están instaladas, verá un mensaje de error que afirma que no se puede encontrar el comando. Puede instalar el paquete GnuPG desde un repositorio.

Para instalar las herramientas de GPG, seleccione el sistema operativo que coincida con su instancia.

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

En un terminal, ejecute el comando siguiente:

```
apt-get install gnupg
```

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

En un terminal, ejecute el comando siguiente:

```
yum install gnupg
```

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

En un terminal, ejecute el comando siguiente:

```
brew install gnupg
```

------

### Autenticación e importación de la clave pública
<a name="awstoe-verify-signature-of-binary-download-authenticate-import-public-key"></a>

El siguiente paso del proceso consiste en autenticar la clave TOE de AWS pública y añadirla como clave de confianza al conjunto de `GPG` claves.

**Para autenticar e importar la clave pública TOE de AWS**

1. Obtenga una copia de la clave pública de `GPG` siguiendo uno de estos métodos:
   + Descargue la clave desde

      https://awstoe - **<region>** .s3. **<region>**.amazonaws. com/assets/awstoe.gpg. Por ejemplo, [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).
   + Copie la clave desde el siguiente texto y péguela en un archivo llamado `awstoe.gpg`. Asegúrese de incluir todo lo que se indica a continuación:

     ```
     -----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. En una línea de comandos del directorio en el que guardó **awstoe.gpg**, utilice el siguiente comando para importar la clave pública a su conjunto de TOE de AWS claves.

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

   El comando devuelve resultados similares a los siguientes:

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

   Anote el valor de clave, lo necesitará en el siguiente paso. En el ejemplo anterior, el valor de la clave es `F5AEBC52`.

1. Verifique la huella digital ejecutando el siguiente comando, sustituyendo el *valor de la clave* por el valor del paso anterior:

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

   Este comando devuelve resultados similares a los siguientes:

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

   Además, la huella digital debe ser idéntica a la cadena `F6DD E01C 869F D639 15E5 5742 DEBD C156 F5AE BC52` que se muestra en el ejemplo anterior. Compare la huella digital devuelta con la publicada en esta página. Deberían coincidir. Si no coinciden, no instale el script de TOE de AWS instalación y póngase en contacto con nosotros. Soporte

### Verificar la firma del paquete
<a name="awstoe-verify-signature-of-binary-package"></a>

Después instalar las herramientas de `GPG`, autenticar e importar la clave pública de TOE de AWS y comprobar la clave pública es de confianza, estará listo para verificar la firma del script de instalación. 

**Para verificar la firma del script de instalación de**

1. En un símbolo del sistema, ejecute el siguiente comando para descargar el archivo binario de la aplicación:

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

   Por ejemplo:

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

   Los valores admitidos para la **architecture** pueden ser `amd64`, `386` y `arm64`.

1. En un símbolo del sistema, ejecute el siguiente comando para descargar el archivo de firma para el archivo binario de aplicación correspondiente desde la misma ruta de prefijo de clave S3:

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

   Por ejemplo:

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

   Los valores admitidos para la **architecture** pueden ser `amd64`, `386` y `arm64`.

1. Compruebe la firma ejecutando el siguiente comando en una línea de comandos en el directorio donde guardó `awstoe.sig` y en el archivo TOE de AWS de instalación. Ambos archivos deben estar presentes.

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

   El resultado debería tener un aspecto similar al siguiente:

   ```
   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 el resultado contiene la expresión `Good signature from "AWSTOE <awstoe@amazon.com>"`, significa que la firma se ha verificado correctamente y que se puede ejecutar el script de instalación de TOE de AWS .

   Si el resultado incluye la expresión `BAD signature`, compruebe si ha realizado el procedimiento correctamente. Si sigue recibiendo esta respuesta, no ejecute el archivo de instalación descargado anteriormente y póngase en contacto con Soporte.

A continuación, se describen en detalle las advertencias que podría recibir: 
+ **ADVERTENCIA: Esta clave no está certificada con una firma de confianza. Nada indica que la firma pertenezca al propietario.** Lo ideal sería que visitara una AWS oficina y recibiera la clave en persona. Sin embargo, lo habitual es que la descargue desde un sitio web. En este caso, el sitio web es un AWS sitio web. 
+ **gpg: no se han encontrado claves en las que se pueda confiar de forma definitiva.** Esto significa que la clave específica no es "definitivamente fiable" para usted (o para otras personas en las que usted confía).

Para obtener más información, consulte [http://www.gnupg.org](http://www.gnupg.org).

## Compruebe la firma de la descarga de la TOE de AWS instalación en Windows
<a name="awstoe-verify-sig-win"></a>

En este tema se describe el proceso recomendado para comprobar la validez del archivo de instalación de la Ejecutor y orquestador de tareas de AWS aplicación en sistemas operativos basados en Windows. 

Siempre que descargue una aplicación de Internet, le recomendamos que compruebe la identidad del editor del software y verifique que la aplicación no ha sido alterada ni se ha visto corrompida desde que se publicó. Esto le protege ante una posible instalación de una versión de la aplicación que contenga un virus u otro código malintencionado.

Si después de seguir los pasos descritos en este tema determina que el software de la aplicación de TOE de AWS ha sido modificado o está dañado, no ejecute el archivo de instalación. En su lugar, póngase en contacto con. Soporte

Para verificar la validez del archivo binario de awstoe descargado en los sistemas operativos basados en Windows, debe asegurarse de que la huella digital de su certificado de firma de Amazon Services LLC sea igual a este valor:

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

**nota**  
Durante el período de despliegue de un nuevo binario, es posible que el certificado de firmante no coincida con la nueva huella digital. Si el certificado del firmante no coincide, verifique que el valor de la huella digital sea:   
**BA 81 25 EE AC 64 2E A9 F3 C5 93 CA 6D 3E B7 93 7D 68 75 74**

Para verificar este valor, siga este procedimiento: 

1. Haga clic con el botón derecho en el archivo `awstoe.exe` descargado y abra la ventana **Properties (Propiedades)**.

1. Elija la pestaña **Firmas digitales**.

1. En **Signature List**, elija **Amazon Services LLC** y, a continuación, **Details**.

1. Elija la pestaña **General** si aún no lo ha hecho, y luego elija **Ver certificado**.

1. Elija la pestaña **Detalles** y luego elija **Todos** en la lista desplegable **Mostrar**, si aún no está seleccionada.

1. Desplácese hacia abajo hasta que vea el campo **Huella digital** y, a continuación, seleccione **Huella digital**. Así se muestra el valor completo de la huella digital en la ventana inferior.
   + Si el valor de la huella digital en la ventana inferior es idéntico a este valor:

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

     entonces el TOE de AWS binario descargado es auténtico y se puede instalar de forma segura.
   + Si el valor de la huella digital en la ventana de detalles inferior no coincide con el valor anterior, no ejecute `awstoe.exe`.

**Topics**
+ [Verificar la firma de la descarga de la TOE de AWS instalación](awstoe-verify-sig.md)
+ [Paso 1: Instalar TOE de AWS](#toe-start-install)
+ [Paso 2: Defina AWS las credenciales](#toe-start-credentials)
+ [Paso 3: desarrollar los documentos de los componentes a nivel local](#toe-start-develop)
+ [Paso 4: Validar TOE de AWS los componentes](#toe-start-validate)
+ [Paso 5: ejecutar TOE de AWS los componentes](#toe-start-run)

## Paso 1: Instalar TOE de AWS
<a name="toe-start-install"></a>

Para desarrollar componentes localmente, descargue e instale la TOE de AWS aplicación.

1. 

**Descargue la TOE de AWS aplicación**

   Para instalarla TOE de AWS, elija el enlace de descarga adecuado para su arquitectura y plataforma. Para ver la lista completa de los enlaces de descarga de las aplicaciones, consulte [TOE de AWS descargas](toe-component-manager.md#toe-downloads)
**importante**  
AWS está eliminando gradualmente la compatibilidad con las versiones 1.0 y 1.1 de TLS. Para acceder al depósito de S3 para realizar TOE de AWS descargas, el software de su cliente debe usar la versión 1.2 o posterior de TLS. Para obtener más información, consulte esta [entrada de blog de seguridad de AWS](https://aws.amazon.com/blogs/security/tls-1-2-required-for-aws-endpoints/).

1. 

**Verificación de la firma**

   Los pasos para verificar la descarga dependen de la plataforma de servidor en la que ejecute la TOE de AWS aplicación después de instalarla. Para verificar la descarga en un servidor Linux, consulte [Verificación de la firma en Linux o macOS](awstoe-verify-sig.md#awstoe-verify-sig-linux). Para comprobar la descarga en un servidor Windows, consulte [Verificación de la firma en Windows](awstoe-verify-sig.md#awstoe-verify-sig-win).

**nota**  
TOE de AWS se invoca directamente desde su ubicación de descarga. No es necesario realizar un paso de instalación independiente. Esto también significa que TOE de AWS puede realizar cambios en el entorno local.  
Para asegurarse de aislar los cambios durante el desarrollo de los componentes, le recomendamos que utilice una EC2 instancia para desarrollar y probar TOE de AWS los componentes.

## Paso 2: Defina AWS las credenciales
<a name="toe-start-credentials"></a>

 TOE de AWS requiere AWS credenciales para conectarse a otros Servicios de AWS, como Amazon S3 y Amazon CloudWatch, al ejecutar tareas, como: 
+ Descargar TOE de AWS documentos desde una ruta de Amazon S3 proporcionada por el usuario.
+ Ejecutar módulos de acción `S3Download` o `S3Upload`.
+ La transmisión de registros a CloudWatch, cuando está habilitada.

Si TOE de AWS ejecutas una EC2 instancia, la ejecución TOE de AWS utiliza los mismos permisos que la función de IAM asociada a la EC2 instancia.

Para obtener más información sobre las funciones de IAM para EC2, consulte [Funciones de IAM para Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html). EC2

Los siguientes ejemplos muestran cómo configurar las AWS credenciales mediante las variables de `AWS_SECRET_ACCESS_KEY` entorno `AWS_ACCESS_KEY_ID` y. 

Para establecer estas variables en Linux, MacOS, o Unix, utilice `export`:

```
export AWS_ACCESS_KEY_ID=your_access_key_id
```

```
export AWS_SECRET_ACCESS_KEY=your_secret_access_key
```

Para configurar estas variables en Windows mediante PowerShell, utilice`$env`.

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

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

Para establecer estas variables en Windows con símbolo del sistema, utilice `set`.

```
set AWS_ACCESS_KEY_ID=your_access_key_id
```

```
set AWS_SECRET_ACCESS_KEY=your_secret_access_key
```

## Paso 3: desarrollar los documentos de los componentes a nivel local
<a name="toe-start-develop"></a>

Los componentes se crean con documentos YAML de texto simple. Para obtener más información sobre sintaxis de documentos, consulte [Utilice el marco de documentos de TOE de AWS componentes para componentes personalizados](toe-use-documents.md).

Los siguientes son ejemplos de documentos de componentes *Hola, mundo* que le ayudarán a empezar.

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

Algunos de los ejemplos de componentes de Linux de esta guía hacen referencia a un archivo de documento de componentes denominado `hello-world-linux.yml`. Puede utilizar el siguiente documento para empezar con esos ejemplos.

```
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 ]

Algunos de los ejemplos de componentes de Windows de esta guía hacen referencia a un archivo de documento de componentes denominado `hello-world-windows.yml`. Puede utilizar el siguiente documento para empezar con esos ejemplos.

```
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 ]

Algunos de los ejemplos de componentes de macOS de esta guía hacen referencia a un archivo de documento de componentes denominado `hello-world-macos.yml`. Puede utilizar el siguiente documento para empezar con esos ejemplos.

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

------

## Paso 4: Validar TOE de AWS los componentes
<a name="toe-start-validate"></a>

Puede validar la sintaxis de TOE de AWS los componentes localmente con la TOE de AWS aplicación. Los siguientes ejemplos muestran el `validate` comando de la TOE de AWS aplicación para validar la sintaxis de un componente sin ejecutarlo.

**nota**  
La TOE de AWS aplicación solo puede validar la sintaxis del componente para el sistema operativo actual. Por ejemplo, cuando se ejecuta `awstoe.exe` en Windows, no se puede validar la sintaxis de un documento de Linux que utilice el módulo de acción `ExecuteBash`.

Linux o macOS

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

Windows

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

## Paso 5: ejecutar TOE de AWS los componentes
<a name="toe-start-run"></a>

La TOE de AWS aplicación puede ejecutar una o más fases de documentos específicos mediante el argumento de la línea de `--phases` comandos. Los valores admitidos de `--phases` son `build`, `validate` y `test`. Se pueden introducir varios valores de fase como valores separados por comas.

Al proporcionar una lista de fases, la TOE de AWS aplicación ejecuta secuencialmente las fases especificadas de cada documento. Por ejemplo, TOE de AWS ejecuta las `validate` fases `build` y de`document1.yaml`, seguidas de `validate` las fases `build` y de`document2.yaml`.

Para garantizar que sus registros se almacenen de forma segura y se conserven para la solución de problemas, le recomendamos configurar el almacenamiento de registros en Amazon S3. En Generador de Imágenes, la ubicación de Amazon S3 para publicar los registros se especifica en la configuración de infraestructura. Para obtener más información acerca de la configuración de la infraestructura, consulte [Administre la configuración de la infraestructura de Generador de imágenes](manage-infra-config.md).

Si no se proporciona una lista de fases, la TOE de AWS aplicación ejecuta todas las fases en el orden indicado en el documento YAML.

Para ejecutar fases específicas en uno o varios documentos, utilice los siguientes comandos.

Fase única

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

Fases múltiples

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

**Ejecución de documentos**  
Ejecución de todas las fases en un solo documento

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

Ejecución de todas las fases en varios documentos

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

Introduzca la información de Amazon S3 para cargar TOE de AWS los registros desde una ruta local definida por el usuario (recomendado)

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

Ejecución de todas las fases en un solo documento y muestre todos los registros en la consola

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

Comando de ejemplo:

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

Ejecución del documento con un identificador único

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

Obtenga ayuda con TOE de AWS

```
awstoe --help
```

# Utilice el marco de documentos de TOE de AWS componentes para componentes personalizados
<a name="toe-use-documents"></a>

Para crear un componente mediante el marco de componentes Ejecutor y orquestador de tareas de AWS (TOE de AWS), debes proporcionar un documento basado en YAML que represente las fases y los pasos que se aplican al componente que crees. Servicios de AWS utilice su componente cuando creen una nueva imagen de máquina de Amazon (AMI) o imagen de contenedor.

**Topics**
+ [Flujo de trabajo de documentos de componentes](#component-doc-workflow)
+ [Registro de componentes](#component-logging)
+ [Encadenamiento de entrada y salida](#document-chaining)
+ [Esquema y definiciones del documento](#document-schema)
+ [Ejemplos de documento](#document-example)
+ [Uso de variables en su documento de componentes personalizados](toe-user-defined-variables.md)
+ [Utilice construcciones condicionales en TOE de AWS](toe-conditional-constructs.md)
+ [Utilice operadores de comparación en los documentos TOE de AWS de componentes](toe-comparison-operators.md)
+ [Utilice operadores lógicos en los documentos TOE de AWS de componentes](toe-logical-operators.md)
+ [Utilice construcciones en bucle en TOE de AWS](toe-looping-constructs.md)

## Flujo de trabajo de documentos de componentes
<a name="component-doc-workflow"></a>

El documento del TOE de AWS componente utiliza fases y pasos para agrupar las tareas relacionadas y organizar esas tareas en un flujo de trabajo lógico para el componente.

**sugerencia**  
El servicio que usa su componente para crear una imagen puede implementar reglas sobre qué fases usar en su proceso de compilación y cuándo se permite la ejecución de esas fases. Es importante tener esto en cuenta a la hora de diseñar el componente.

**Fases**  
Las fases representan la progresión del flujo de trabajo a lo largo del proceso de compilación de imágenes. Por ejemplo, el servicio Generador de Imágenes utiliza las fases `build` y `validate` durante la *etapa de compilación* para las imágenes que produce. Utiliza las fases `test` y `container-host-test` durante la *etapa de prueba* para garantizar que la instantánea de la imagen o la imagen del contenedor generen los resultados esperados antes de crear la AMI final o distribuir la imagen del contenedor.

Cuando se ejecuta el componente, los comandos asociados a cada fase se aplican en el orden en el que aparecen en el documento del componente.

**Reglas para las fases**
+ Cada nombre de fase debe ser único dentro de un documento.
+ Puede definir muchas fases en el documento.
+ Debe incluir al menos una de las siguientes fases en su documento:
  + **compilación**: en el caso de Generador de Imágenes, esta fase se suele utilizar durante la *etapa de compilación*.
  + **validación**: en el caso de Generador de Imágenes, esta fase se suele utilizar durante la *etapa de compilación*.
  + **prueba**: en el caso de Generador de Imágenes, esta fase se suele utilizar durante la *etapa de prueba*.
+ Las fases siempre se ejecutan en el orden en que están definidas en el documento. El orden en el que se especifican para TOE de AWS los comandos del no AWS CLI tiene ningún efecto.

**Steps**  
Los pasos son unidades de trabajo individuales que definen el flujo de trabajo dentro de cada fase. Los pasos se ejecutan en orden secuencial. Sin embargo, la entrada o salida de un paso también puede introducirse a un paso posterior como entrada. Esto se llama “encadenamiento”.

**Reglas para los pasos**
+ El nombre del paso debe ser único para la fase.
+ El paso debe usar una acción compatible (módulo de acción) que devuelva un código de salida.

  Para obtener una lista completa de los módulos de acción compatibles, su funcionamiento, input/output valores y ejemplos, consulte[Módulos de acción compatibles con el administrador de TOE de AWS componentes](toe-action-modules.md).

## Registro de componentes
<a name="component-logging"></a>

TOE de AWS crea una nueva carpeta de registro en las instancias de EC2 que se utilizan para crear y probar una nueva imagen cada vez que se ejecuta el componente. En el caso de las imágenes del contenedor, la carpeta de registro se almacena en el contenedor.

Para ayudar a solucionar problemas en caso de que algo vaya mal durante el proceso de creación de la imagen, el documento de entrada y todos los archivos de salida que se TOE de AWS crean al ejecutar el componente se almacenan en la carpeta de registro.

El nombre de la carpeta de registro consta de las siguientes partes:

1. **Directorio de registro**: cuando un servicio ejecuta un TOE de AWS componente, pasa al directorio de registro junto con otras configuraciones del comando. En los siguientes ejemplos, mostramos el formato de archivo de registro que utiliza Generador de Imágenes.
   + **Linux y macOS**: `/var/lib/amazon/toe/`
   + **Windows**: `$env:ProgramFiles\Amazon\TaskOrchestratorAndExecutor\`

1. **Prefijo del archivo**: se trata de un prefijo estándar que se utiliza para todos los componentes: “`TOE_`”.

1. Tiempo de **ejecución: es una marca de tiempo** en formato YYYY-MM-DD \$1HH-MM-SS\$1UTC-0.

1. **ID de ejecución: es el GUID** que se asigna cuando se ejecutan uno o más componentes. TOE de AWS 

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

TOE de AWS almacena los siguientes archivos principales en la carpeta de registro:

**Archivos de entrada**
+ **document.yaml**: el documento que se utiliza como entrada para el comando. Una vez ejecutado el componente, este archivo se almacena como un artefacto.

**Archivos de salida**
+ **application.log**: el registro de la aplicación contiene información a nivel de depuración con marca de tiempo de TOE de AWS sobre lo que ocurre mientras se ejecuta el componente.
+ **detailedoutput.json**: este archivo JSON contiene información detallada sobre el estado de la ejecución, las entradas, las salidas y los errores de todos los documentos, fases y pasos que se aplican al componente a medida que se ejecuta.
+ **console.log**: el registro de la consola contiene toda la información de salida estándar (stdout) y de error estándar (stderr) que TOE de AWS se graba en la consola mientras el componente está en ejecución.
+ **chaining.json**: este archivo JSON representa las optimizaciones que se aplicaron para resolver las expresiones de encadenamiento. TOE de AWS 

**nota**  
Es posible que la carpeta de registro también contenga otros archivos temporales que no se incluyen aquí.

## Encadenamiento de entrada y salida
<a name="document-chaining"></a>

La aplicación TOE de AWS de gestión de la configuración proporciona una función para encadenar entradas y salidas mediante la escritura de referencias en los siguientes formatos:

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

o

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

La característica de encadenamiento permite reciclar el código y mejorar la capacidad de mantenimiento del documento.

**Reglas de encadenamiento**
+ Las expresiones encadenadas solo se pueden usar en la sección de entradas de cada paso.
+ Las declaraciones con expresiones encadenadas deben ir entre comillas. Por ejemplo:
  + **Expresión no válida**: `echo {{ phase.step.inputs.variable }}`
  + **Expresión válida**: `"echo {{ phase.step.inputs.variable }}"`
  + **Expresión válida**: `'echo {{ phase.step.inputs.variable }}'`
+ Las expresiones encadenadas pueden hacer referencia a variables de otros pasos y fases del mismo documento. Sin embargo, el servicio que lleva a cabo las llamadas puede tener reglas que requieran que las expresiones encadenadas funcionen solo en el contexto de una sola etapa. Por ejemplo, Generador de Imágenes no admite el encadenamiento de la *etapa de compilación* a la *etapa de prueba*, ya que ejecuta cada etapa de forma independiente.
+ Los índices de las expresiones encadenadas siguen la indexación basada en cero. El índice comienza con cero (0) para hacer referencia al primer elemento.

**Ejemplos**

Para hacer referencia a la variable de origen en la segunda entrada del siguiente paso de ejemplo, el patrón de encadenamiento es `{{ 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'
```

Para hacer referencia a la variable de salida (igual a “Hola”) en el siguiente paso de ejemplo, el patrón de encadenamiento es `{{ build.SamplePowerShellStep.outputs.stdout }}`.

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

## Esquema y definiciones del documento
<a name="document-schema"></a>

El siguiente es el esquema YAML de un documento.

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

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

Las definiciones de esquema de un documento son las siguientes:


| Campo | Description (Descripción) | Tipo | Obligatorio/a | 
| --- | --- | --- | --- | 
| Nombre | Nombre del documento. | Cadena | No | 
| description | Descripción del documento. | Cadena |  No  | 
| schemaVersion | versión esquemática del documento, actualmente 1.0. | Cadena |  Sí  | 
| phases | Una lista de fases con sus pasos. |  Enumeración  |  Sí  | 

Las definiciones de esquema de una fase son las siguientes.


| Campo | Description (Descripción) | Tipo | Obligatorio/a | 
| --- | --- | --- | --- | 
| Nombre | Nombre de la fase. | Cadena | Sí | 
| pasos | Lista de los pasos de la fase. | Enumeración  |  Sí  | 

Las definiciones de esquema de un paso son las siguientes.


| Campo | Description (Descripción) | Tipo | Obligatorio/a | Predeterminado | 
| --- | --- | --- | --- | --- | 
| Nombre | Nombre definido por el usuario para el paso. | Cadena |  |  | 
| acción | Palabra clave relacionada con el módulo que ejecuta el paso. | Cadena |  |  | 
| timeoutSeconds |  Número de segundos que dura el paso antes de fallar o volver a intentar.  Además, admite el valor -1, que indica un tiempo de espera infinito. No se admiten valores 0 ni otros valores negativos.  | Entero |  No  | 7200 segundos (120 minutos) | 
| onFailure |  Especifica lo que debe hacer el paso en caso de error. Los valores válidos son los siguientes:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/imagebuilder/latest/userguide/toe-use-documents.html)  |  Cadena  |  No  | Anular | 
| maxAttempts | Número máximo de intentos permitidos antes del fallo del paso. | Entero |  No  | 1 | 
| inputs | Contiene los parámetros requeridos por el módulo de acción para ejecutar el paso. | Dict |  Sí  |  | 

## Ejemplos de documento
<a name="document-example"></a>

Los siguientes ejemplos muestran los documentos de los AWSTOE componentes que realizan tareas para el sistema operativo de destino.

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

**Ejemplo 1: ejecución de un archivo binario personalizado**  
El siguiente es un ejemplo de documento que descarga y ejecuta un archivo binario personalizado en una instancia 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 ]

**Ejemplo 1: instalación de actualizaciones de Windows**  
El siguiente es un ejemplo de documento que instala todas las actualizaciones disponibles de Windows, ejecuta un script de configuración, valida los cambios antes de crear la AMI y prueba los cambios después de crear la 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}}'
```

**Ejemplo 2: Instálelo AWS CLI en una instancia de Windows**  
El siguiente es un ejemplo de documento que lo instala AWS CLI en una instancia de Windows mediante el archivo de configuración.

```
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 }}'
```

**Ejemplo 3: Instálelo AWS CLI con el instalador MSI**  
El siguiente es un ejemplo de documento que lo instala AWS CLI con el instalador 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 ]

**Ejemplo 1: ejecución de un archivo binario de macOS personalizado**  
El siguiente es un ejemplo de documento que descarga y ejecuta un archivo binario personalizado en una instancia 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 }}'
```

------

# Uso de variables en su documento de componentes personalizados
<a name="toe-user-defined-variables"></a>

Las variables proporcionan una forma de etiquetar los datos con nombres significativos que se pueden usar en toda la aplicación. Puedes definir variables personalizadas con formatos sencillos y legibles para flujos de trabajo complejos y hacer referencia a ellas en el documento del componente de la aplicación YAML de un TOE de AWS componente.

En esta sección, se proporciona información que te ayudará a definir las variables de tu TOE de AWS componente en el documento de componentes de la aplicación YAML, incluida la sintaxis, las restricciones de nombres y algunos ejemplos.

## Constantes
<a name="user-defined-vars-constants"></a>

Las constantes son variables inmutables que no se pueden modificar ni anular una vez definidas. Las constantes se pueden definir mediante los valores de la `constants` sección de un TOE de AWS documento.

**Reglas de nomenclatura de constantes**
+ El nombre debe tener entre 3 y 128 caracteres de extensión.
+ El nombre solo puede contener caracteres alfanuméricos (a-z, A-Z y 0-9), guiones (-) o guiones bajos (\$1).
+ El nombre debe ser único dentro del documento.
+ El nombre debe estar especificado como una cadena YAML.

**Sintaxis**

```
constants:
  - <name>:
      type: <constant type>
      value: <constant value>
```


| Nombre de la clave | Obligatorio | Descripción | 
| --- | --- | --- | 
|  `name`  |  Sí  | Nombre de la constante. Debe ser único para el documento (no debe coincidir con ningún otro nombre de parámetro o constante). | 
| `value` | Sí | Valor de la constante. | 
| `type` | Sí | Tipo de la constante. El tipo admitido es string. | 

**Valores constantes de referencia en un documento**  
Puede hacer referencia a las constantes en entradas escalonadas o en bucle dentro de su documento YAML, de la siguiente manera:
+ Las referencias constantes distinguen mayúsculas y minúsculas y el nombre debe coincidir exactamente.
+ El nombre debe estar entre corchetes dobles. `{{` *MyConstant* `}}`
+ Se permiten espacios dentro de las llaves y se recortan automáticamente. Por ejemplo, todas las referencias siguientes son válidas:

  `{{ MyConstant }}`, `{{ MyConstant}}`, `{{MyConstant }}`, `{{MyConstant}}`
+ La referencia del documento YAML debe especificarse como una cadena (entre comillas simples o dobles).

  Por ejemplo: `- {{ MyConstant }}` no es válido, ya que no se identifica como una cadena.

  Sin embargo, las siguientes referencias son válidas: `- '{{ MyConstant }}'` y `- "{{ MyConstant }}"`.

**Ejemplos**  
Constante referenciada en las entradas escalonadas

```
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 referenciada en las entradas de bucle

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

Los parámetros son variables mutables, con ajustes que la aplicación que realiza la llamada puede proporcionar en el tiempo de ejecución. Puede definir los parámetros en la sección `Parameters` del documento YAML.

**Reglas para nombres de parámetros**
+ El nombre debe tener entre 3 y 128 caracteres de extensión.
+ El nombre solo puede contener caracteres alfanuméricos (a-z, A-Z y 0-9), guiones (-) o guiones bajos (\$1).
+ El nombre debe ser único dentro del documento.
+ El nombre debe estar especificado como una cadena YAML.

### Sintaxis
<a name="vars-parameters-syntax"></a>

```
parameters:
  - <name>:
      type: <parameter type>
      default: <parameter value>
      description: <parameter description>
```


| Nombre de la clave | Obligatorio | Descripción | 
| --- | --- | --- | 
| `name` | Sí | El nombre del parámetro. Debe ser único para el documento (no debe coincidir con ningún otro nombre de parámetro o constante). | 
| `type` | Sí | El tipo de datos del parámetro. Los tipos admitidos incluyen: `string`. | 
| `default` | No | El valor predeterminado para el parámetro. | 
| `description` | No | Describe el parámetro. | 

### Valores de parámetros de referencia en un documento
<a name="vars-parameters-referencing"></a>

Puede hacer referencia a los parámetros en entradas escalonadas o en bucle dentro de su documento YAML, de la siguiente manera:
+ Las referencias de parámetros distinguen mayúsculas y minúsculas y el nombre debe coincidir exactamente.
+ El nombre debe estar entre `{{` *MyParameter* `}}` corchetes dobles.
+ Se permiten espacios dentro de las llaves y se recortan automáticamente. Por ejemplo, todas las referencias siguientes son válidas:

  `{{ MyParameter }}`, `{{ MyParameter}}`, `{{MyParameter }}`, `{{MyParameter}}`
+ La referencia del documento YAML debe especificarse como una cadena (entre comillas simples o dobles).

  Por ejemplo: `- {{ MyParameter }}` no es válido, ya que no se identifica como una cadena.

  Sin embargo, las siguientes referencias son válidas: `- '{{ MyParameter }}'` y `- "{{ MyParameter }}"`.

**Ejemplos**  
En los siguientes ejemplos, se muestra cómo utilizar los parámetros del documento YAML:
+ Consulte un parámetro en las entradas escalonadas:

  ```
  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'
  ```
+ Consulte un parámetro en las entradas de bucle:

  ```
  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 }}
  ```

### Anulación de los parámetros en tiempo de ejecución
<a name="vars-parameters-set-at-runtime"></a>

Puede utilizar la `--parameters` opción AWS CLI con un par clave-valor para establecer el valor de un parámetro en tiempo de ejecución.
+ Especifique el par clave-valor del parámetro como nombre y valor, separados por un signo igual (<name>=<value>).
+ Varios parámetros deben estar separados por una coma.
+ Se ignoran los nombres de los parámetros que no se encuentran en el documento de componentes de YAML.
+ Tanto el nombre como el valor del parámetro son obligatorios.

**importante**  
Los parámetros del componente son valores de texto sin formato y se registran en AWS CloudTrail. Le recomendamos que utilice AWS Secrets Manager nuestro almacén de AWS Systems Manager parámetros para almacenar sus secretos. Para obtener más información sobre Secrets Manager, consulte [¿Qué es Secrets Manager?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) en la *Guía del usuario de AWS Secrets Manager *. Para obtener más información acerca del almacén de parámetros de AWS Systems Manager , consulte [Almacén de parámetros de AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) en la *Guía del usuario de AWS Systems Manager *.

#### Sintaxis
<a name="vars-runtime-parameters-syntax"></a>

```
--parameters name1=value1,name2=value2...
```


| Opción de la CLI | Obligatorio | Description (Descripción) | 
| --- | --- | --- | 
| --parámetros *name* =*value*,... | No | Esta opción toma una lista de pares clave-valor, con el nombre del parámetro como clave. | 

**Ejemplos**  
En los siguientes ejemplos, se muestra cómo utilizar los parámetros del documento YAML:
+ El par clave-valor del parámetro especificado en esta opción `--parameter` no es válido:

  ```
  --parameters ntp-server=
  ```
+ Establezca un par clave-valor de un parámetro con la opción `--parameter` en el AWS CLI:

  ```
  --parameters ntp-server=ntp-server-windows-qe.us-east1.amazon.com
  ```
+ Establezca varios pares clave-valor de parámetros con la opción `--parameter` en el AWS CLI:

  ```
  --parameters ntp-server=ntp-server.amazon.com,http-url=https://internal-us-east1.amazon.com
  ```

## Utilice los parámetros del almacén de parámetros de Systems Manager
<a name="toe-ssm-parameters"></a>

Puede hacer referencia a los AWS Systems Manager parámetros del almacén de parámetros (parámetros SSM) en los documentos de sus componentes añadiendo el prefijo a las variables. `aws:ssm` Por ejemplo: 

`{{ aws:ssm:/my/param }}`se resuelve en el valor del parámetro SSM. `/my/param`

Esta función admite los siguientes tipos de parámetros de SSM:
+ Cadena: se asigna al tipo de TOE de AWS cadena.
+ StringList — Se asigna al TOE de AWS `stringList` tipo.
+ SecureString — Se asigna al tipo de TOE de AWS cadena.

Para obtener más información sobre el almacén de parámetros, consulte el [almacén de AWS Systems Manager parámetros](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) en la *Guía del AWS Systems Manager usuario*.

También puede hacer referencia a AWS Secrets Manager los secretos mediante un parámetro `SecureString` SSM. Por ejemplo: `{{ aws:ssm:/aws/reference/secretsmanager/test/test-secret }}`. Para obtener más información, consulte Hacer [referencia a AWS Secrets Manager los secretos de los parámetros del almacén de parámetros](https://docs.aws.amazon.com/systems-manager/latest/userguide/integration-ps-secretsmanager.html).

**importante**  
Image Builder excluye la resolución de `SecureString` parámetros de sus registros. Sin embargo, también es responsable de garantizar que la información confidencial no se registre mediante los comandos incluidos en el documento del componente. Por ejemplo, si utiliza el `echo` comando con una cadena segura, el comando escribirá un valor de texto simple en el registro.

### Permisos de IAM necesarios
<a name="toe-ssm-parameters-permissions"></a>

Para usar los parámetros de Systems Manager en sus componentes, su rol de instancia debe tener el `ssm:GetParameter` permiso para el ARN del recurso de parámetros. Por ejemplo:

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

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Effect": "Allow",
			"Action": "ssm:GetParameter",
			"Resource": "arn:aws:ssm:*:111122223333:parameter/ImageBuilder-*"
		}
	]
}
```

------

Para acceder a los valores cifrados, también necesitarás los siguientes permisos:
+ Agregue `kms:Decrypt` `SecureString` parámetros o AWS Secrets Manager valores cifrados con un administrador por el cliente AWS KMS key.
+ `secretsmanager:GetSecretValue`Añádelo si haces referencia a un secreto de Secrets Manager.

### Haga referencia a un parámetro SSM en un documento de componentes
<a name="toe-ssm-parameters-example"></a>

El siguiente ejemplo muestra cómo hacer referencia a un parámetro del almacén de parámetros de Systems Manager de los parámetros de Systems Manager de un componente:

```
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 }}."
```

### Resolución dinámica de variables de tiempo de ejecución para los parámetros de SSM
<a name="toe-dynamic-vars"></a>

AWSTOE proporciona la siguiente función integrada que puede utilizar en las referencias de variables para manipular o transformar valores en tiempo de ejecución.

#### función de resolución
<a name="toe-function-resolve"></a>

La `resolve` función resuelve una referencia de variable dentro de otra referencia de variable, lo que permite hacer referencias dinámicas a nombres de variables. Esto resulta útil cuando se trabaja con parámetros de SSM, en los que parte de la ruta del parámetro puede ser variable y transferirse como parámetro del documento.

La `resolve` función solo admite la resolución dinámica de la parte del nombre de un parámetro de SSM.

##### Sintaxis
<a name="toe-function-resolve-syntax"></a>

El `dynamic_variable` ejemplo siguiente representa el nombre de un parámetro SSM y debe ser uno de los siguientes:
+ Una referencia de parámetro SSM (por ejemplo,) `aws:ssm:/my/param`
+ Una referencia de parámetros de un documento de componentes (por ejemplo,`parameter-name`)

```
{{ aws:ssm:resolve(dynamic_variable) }}
```

##### Ejemplo: resolver un parámetro SSM en tiempo de ejecución
<a name="toe-function-resolve-examples"></a>

En el siguiente ejemplo, se muestra cómo utilizar la `resolve` función en un documento de componentes de 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) }}"
```

# Utilice construcciones condicionales en TOE de AWS
<a name="toe-conditional-constructs"></a>

Los constructos condicionales realizan diferentes acciones en el documento componente en función de si la expresión condicional especificada se evalúa como `true` o `false`. Puede utilizar el constructo `if` para controlar el flujo de ejecución del documento del componente.

## Constructo if
<a name="toe-conditional-if"></a>

Puede utilizar el constructo `if` para evaluar si un paso debe ejecutarse o no. De forma predeterminada, cuando la expresión condicional `if` se evalúa como `true`, TOE de AWS ejecuta el paso y cuando la condición se evalúa como `false`, TOE de AWS se salta el paso. Si se omite un paso, se considera un paso correcto cuando TOE de AWS evalúa si la fase y el documento se han ejecutado correctamente.

**nota**  
Una instrucción `if` solo se evalúa una vez, incluso si el paso desencadena un reinicio. Si un paso se reinicia, reconoce que la instrucción `if` ya se ha evaluado y continúa donde la dejó.

### Sintaxis
<a name="toe-conditional-if-syntax"></a>

```
if:
  - <conditional expression>:
      [then: <step action>]
      [else: <step action>]
```


| Nombre de la clave | Obligatorio | Description (Descripción) | 
| --- | --- | --- | 
| expresión condicional | Sí |  La expresión condicional puede contener exactamente uno de los siguientes tipos de operadores en el nivel superior. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/imagebuilder/latest/userguide/toe-conditional-constructs.html) Si la expresión debe cumplir varias condiciones, utilice un operador lógico para especificarlas.  | 
| then | No |  Define la acción que se debe realizar si la expresión condicional se evalúa como `true`.  | 
| else | No |  Define la acción que se debe realizar si la expresión condicional se evalúa como `false`.  | 
| acción de paso | Condicional |  Al utilizar `then` o `else`, debe especificar una de las siguientes acciones de pasos: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/imagebuilder/latest/userguide/toe-conditional-constructs.html)  | 

**Ejemplo 1: instalación de un paquete**  
Los siguientes pasos de ejemplo de un documento de TOE de AWS componentes utilizan operadores lógicos para probar el valor de un parámetro y ejecutar los comandos del administrador de paquetes adecuados para instalar una aplicación si el paquete está descomprimido.

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

**Ejemplo 2: omisión de un paso**  
El siguiente ejemplo muestra dos formas de omitir un paso. Una usa un operador lógico y la otra usa un operador de comparación con la acción del paso `Skip`.

```
# 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'
```

# Utilice operadores de comparación en los documentos TOE de AWS de componentes
<a name="toe-comparison-operators"></a>

Puede utilizar los siguientes operadores de comparación con el módulo de acción **[Assert](toe-action-modules.md#action-modules-assertion)** y con las expresiones condicionales que utilizan [Constructo ifSintaxis](toe-conditional-constructs.md#toe-conditional-if). Un operador de comparación puede operar con un único valor, por ejemplo, `stringIsEmpty`, o puede comparar un valor de referencia con un segundo valor (valor variable) para determinar si la expresión condicional se evalúa como `true` o `false`.

Si la comparación funciona con dos valores, el segundo valor puede ser una variable encadenante.

Al comparar valores de un tipo diferente, se pueden producir las siguientes conversiones de valores antes de la comparación:
+ Para las comparaciones numéricas, si el valor de la variable es una cadena, TOE de AWS convierte la cadena en un número antes de la evaluación. Si la conversión no es posible, la comparación devuelve el resultado `false`. Por ejemplo, si el valor de la variable es `"1.0"`, la conversión funciona, pero si el valor de la variable es `"a10"`, la conversión falla.
+ Para las comparaciones de cadenas, si el valor de la variable es un número, lo TOE de AWS convierte en una cadena antes de la evaluación.

## Comparación de cadenas
<a name="toe-compare-strings"></a>

Los siguientes operadores de comparación funcionan con cadenas para comparar valores, comprobar si hay espacios o una cadena vacía, o para comparar un valor de entrada con un patrón de expresiones regulares. Las comparaciones de cadenas no distinguen entre mayúsculas y minúsculas y no recortan los espacios desde el principio o el final de las entradas de cadenas.

**Operadores de comparación de cadenas**
+ [stringIsEmpty](#stringIsEmpty)
+ [stringIsWhitespace](#stringIsWhitespace)
+ [stringEquals](#stringEquals)
+ [stringLessThan](#stringLessThan)
+ [stringLessThanEquals](#stringLessThanEquals)
+ [stringGreaterThan](#stringGreaterThan)
+ [stringGreaterThanEquals](#stringGreaterThanEquals)
+ [patternMatches](#patternMatches)

**stringIsEmpty**  
El operador `stringIsEmpty` devuelve `true` si la cadena especificada no contiene ningún carácter. Por ejemplo:  

```
# Evaluates to true
stringIsEmpty: ""

# Evaluates to false
stringIsEmpty: " "
				
# Evaluates to false
stringIsEmpty: "Hello."
```

**stringIsWhitespace**  
Comprueba si la cadena especificada para `stringIsWhitespace` contiene solo espacios. Por ejemplo:  

```
# Evaluates to true
stringIsWhitespace: "   "

# Evaluates to false
stringIsWhitespace: ""
				
# Evaluates to false
stringIsWhitespace: " Hello?"
```

**stringEquals**  
Comprueba si la cadena especificada para `stringEquals` coincide exactamente con la cadena especificada en el parámetro `value`. Por ejemplo:  

```
# 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**  
Comprueba si la cadena especificada para `stringLessThan` es inferior a la cadena especificada en el parámetro `value`. Por ejemplo:  

```
# 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'
```

**stringLessThanEs igual a**  
Comprueba si la cadena especificada para `stringLessThanEquals` es inferior o igual a la cadena especificada en el parámetro `value`. Por ejemplo:  

```
# 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**  
Comprueba si la cadena especificada para `stringGreaterThan` es superior a la cadena especificada en el parámetro `value`. Por ejemplo:  

```
# 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'
```

**stringGreaterThanIguales**  
Comprueba si la cadena especificada para `stringGreaterThanEquals` es superior o igual a la cadena especificada en el parámetro `value`. Por ejemplo:  

```
# 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'
```

**patternMatches**  
Comprueba si la cadena especificada en el parámetro `value` coincide con el patrón de expresiones regulares especificado para `patternMatches`. La comparación utiliza el [paquete de expresiones regulares de Golang](https://pkg.go.dev/regexp), que se ajusta a la sintaxis. RE2 Para obtener más información sobre RE2 las reglas, consulte el repositorio [google/](https://github.com/google/re2/wiki/Syntax) re2 en. *GitHub*  
En el siguiente ejemplo, se muestra una coincidencia de patrones que devuelve `true`:  

```
patternMatches: '^[a-z]+$'
value: 'ThisIsValue'
```

## Comparación de números
<a name="toe-compare-numbers"></a>

Los siguientes operadores de comparación funcionan con números. Los valores proporcionados para estos operadores deben ser de uno de los siguientes tipos, según la especificación YAML. La admisión de comparaciones numéricas utiliza el operador de comparación de paquetes grandes de Golang, por ejemplo: [func (\$1Float) Cmp](https://pkg.go.dev/math/big#Float.Cmp).
+ Entero
+ Float (basado en float64, admite números del -1,7e\$1308 al \$11,7e\$1308)
+ Cadena que coincide con el siguiente patrón de expresiones regulares: `^[-+]?([0-9]+[.])?[0-9]+$`

**Operadores de comparación de números**
+ [numberEquals](#numberEquals)
+ [numberLessThan](#numberLessThan)
+ [numberLessThanEquals](#numberLessThanEquals)
+ [numberGreaterThan](#numberGreaterThan)
+ [numberGreaterThanEquals](#numberGreaterThanEquals)

**numberEquals**  
Comprueba si el número especificado para `numberEquals` es igual al número especificado en el parámetro `value`. Todos los ejemplos de comparación siguientes devuelven `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**  
Comprueba si el número especificado para `numberLessThan` es inferior al número especificado en el parámetro `value`. Por ejemplo:  

```
# Evaluates to true
numberLessThan: 2
value: 1

# Evaluates to true
numberLessThan: 2
value: 1.9

# Evaluates to false
numberLessThan: 2
value: '2'
```

**numberLessThanEs igual a**  
Comprueba si el número especificado para `numberLessThanEquals` es inferior o igual al número especificado en el parámetro `value`. Por ejemplo:  

```
# 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**  
Comprueba si el número especificado para `numberGreaterThan` es superior al número especificado en el parámetro `value`. Por ejemplo:  

```
# Evaluates to true
numberGreaterThan: 1
value: 2

# Evaluates to true
numberGreaterThan: 1
value: 1.1

# Evaluates to false
numberGreaterThan: 1
value: '1'
```

**numberGreaterThanIguales**  
Comprueba si el número especificado para `numberGreaterThanEquals` es superior o igual al número especificado en el parámetro `value`. Por ejemplo:  

```
# 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
```

## Control de archivos
<a name="toe-check-files"></a>

Los siguientes operadores de comparación comprueban el hash del archivo o comprueban si existe un archivo o una carpeta.

**Operadores de archivos y carpetas**
+ [binaryExists](#binaryExists)
+ [fileExists](#fileExists)
+ [folderExists](#folderExists)
+ [fileMD5Equals](#fileMD5Equals)
+ [fileSHA1Equals](#fileSHA1Equals)
+ [fileSHA256Equals](#fileSHA256Equals)
+ [fileSHA512Equals](#fileSHA512Equals)

**binaryExists**  
Comprueba si una aplicación está disponible en la ruta actual. Por ejemplo:  

```
binaryExists: 'foo'
```
En los sistemas Linux y macOS, para una aplicación llamada*foo*, esto funciona igual que el siguiente comando bash:**type *foo* >/dev/null 2>&1**, donde **\$1? == 0** indica que la comparación se ha realizado correctamente.  
En los sistemas Windows, para una aplicación denominada*foo*, funciona igual que el PowerShell comando que **\$1LASTEXITCODE = 0** indica que la comparación **& C:\$1Windows\$1System32\$1where.exe /Q *foo*** se ha realizado correctamente.

**fileExists**  
Comprueba si un archivo existe en la ruta especificada. Puede proporcionar una ruta absoluta o relativa. Si la ubicación que especifique existe y es un archivo, la comparación se evaluará como `true`. Por ejemplo:  

```
fileExists: '/path/to/file'
```
En los sistemas Linux y macOS, funciona igual que el siguiente comando bash: **-d */path/to/file***, donde **\$1? == 0** indica que la comparación se ha realizado correctamente.  
En los sistemas Windows, funciona igual que el PowerShell comando**Test-Path -Path '*C:\$1path\$1to\$1file*' -PathType 'Leaf'**.

**folderExists**  
Comprueba si existe una carpeta en la ruta especificada. Puede proporcionar una ruta absoluta o relativa. Si la ubicación que especifique existe y es una carpeta, la comparación se evaluará como `true`. Por ejemplo:  

```
folderExists: '/path/to/folder'
```
En los sistemas Linux y macOS, funciona igual que el siguiente comando bash: **-d */path/to/folder***, donde **\$1? == 0** indica que la comparación se ha realizado correctamente.  
En los sistemas Windows, funciona igual que el PowerShell comando**Test-Path -Path '*C:\$1path\$1to\$1folder*' -PathType 'Container'**.

**el archivo MD5 es igual a**  
Comprueba si el MD5 hash de un archivo es igual a un valor especificado. Por ejemplo:  

```
fileMD5Equals: '<MD5Hash>'
path: '/path/to/file'
```

**el archivo SHA1 es igual a**  
Comprueba si el SHA1 hash de un archivo es igual a un valor especificado. Por ejemplo:  

```
fileSHA1Equals: '<SHA1Hash>'
path: '/path/to/file'
```

**el archivo SHA256 es igual a**  
Comprueba si el SHA256 hash de un archivo es igual a un valor especificado. Por ejemplo:  

```
fileSHA256Equals: '<SHA256Hash>'
path: '/path/to/file'
```

**el archivo SHA512 es igual a**  
Comprueba si el SHA512 hash de un archivo es igual a un valor especificado. Por ejemplo:  

```
fileSHA512Equals: '<SHA512Hash>'
path: '/path/to/file'
```

# Utilice operadores lógicos en los documentos TOE de AWS de componentes
<a name="toe-logical-operators"></a>

Puede utilizar los siguientes operadores lógicos para añadir o modificar expresiones condicionales en el documento componente. TOE de AWS evalúa las expresiones condicionales en el orden en que se especifican las condiciones. Para obtener más información sobre los operadores de comparación de los documentos de componentes, consulte [Utilice operadores de comparación en los documentos TOE de AWS de componentes](toe-comparison-operators.md).

**y**  
Con el operador `and`, puede evaluar dos o más comparaciones como una sola expresión. La expresión se evalúa como `true` cuando se cumplen todas las condiciones de la lista. De lo contrario, la expresión se evalúa como `false`.  
**Ejemplos:**  
En el siguiente ejemplo se realizan dos comparaciones: una cadena y un número. Ambas comparaciones son verdaderas, por lo que la expresión se evalúa como verdadera.

```
and:
  - stringEquals: 'test_string'
    value: 'test_string'
  - numberEquals: 1
    value: 1
```
En el siguiente ejemplo también se realizan dos comparaciones. La primera comparación es falsa, momento en el que se detiene la evaluación y se omite la segunda comparación. La expresión se evalúa como `false`.  

```
and:
  - stringEquals: 'test_string'
    value: 'Hello world!'
  - numberEquals: 1
    value: 1
```

**o bien**  
Con el operador `or`, puede evaluar dos o más comparaciones como una sola expresión. La expresión se evalúa como `true` cuando una de las comparaciones especificadas es verdadera. Si ninguna de las comparaciones especificadas se evalúa como `true`, la expresión se evalúa como `false`.  
**Ejemplos:**  
En el siguiente ejemplo se realizan dos comparaciones: una cadena y un número. La primera comparación es verdadera, por lo que la expresión se evalúa como `true` y se omite la segunda comparación.

```
or:
  - stringEquals: 'test_string'
    value: 'test_string'
  - numberEquals: 1
    value: 3
```
En el siguiente ejemplo también se realizan dos comparaciones. La primera comparación es falsa y la evaluación continúa. La segunda comparación es verdadera, por lo que la expresión se evalúa como `true`.  

```
or:
  - stringEquals: 'test_string'
    value: 'Hello world!'
  - numberEquals: 1
    value: 1
```
En el último ejemplo, ambas comparaciones son falsas, por lo que la expresión se evalúa como `false`.  

```
or:
  - stringEquals: 'test_string'
    value: 'Hello world!'
  - numberEquals: 1
    value: 3
```

**not**  
Con el operador `not`, puede anular una sola comparación. La expresión se evalúa como `true` si la comparación es falsa. Si la comparación es verdadera, la expresión se evalúa como `false`.  
**Ejemplos:**  
En el siguiente ejemplo, se realiza una comparación de cadenas. La comparación es falsa, por lo que la expresión se evalúa como `true`.

```
not:
  - stringEquals: 'test_string'
    value: 'Hello world!'
```
En el siguiente ejemplo también se realiza una comparación de cadenas. La comparación es verdadera, por lo que la expresión se evalúa como `false`.  

```
not:
  - stringEquals: 'test_string'
    value: 'test_string'
```

# Utilice construcciones en bucle en TOE de AWS
<a name="toe-looping-constructs"></a>

En esta sección se proporciona información que le ayudará a crear constructos en bucle en TOE de AWS. Los constructos en bucle definen una secuencia repetida de instrucciones. Puede utilizar los siguientes tipos de constructos en bucle en TOE de AWS:
+ Constructos `for`: se repiten en iteraciones sobre una secuencia acotada de números enteros.
+ Constructos `forEach`
  + Bucle `forEach` con lista de entradas: se repite en iteraciones sobre una colección finita de cadenas. 
  + Bucle `forEach` con lista delimitada: repite una colección finita de cadenas unidas por un delimitador.

**nota**  
Los constructos en bucle solo admiten tipos de datos de cadena.

**Topics**
+ [Variables de iteración de referencia](#toe-loop-iteration-variables)
+ [Tipos de constructos en bucle](#toe-loop-types)
+ [Campos de pasos](#toe-loop-step-fields)
+ [Salidas de paso e iteración](#toe-loop-step-output)

## Variables de iteración de referencia
<a name="toe-loop-iteration-variables"></a>

Para hacer referencia al índice y al valor de la variable de iteración actual, la expresión de referencia `{{ loop.* }}` debe usarse en el cuerpo de entrada de un paso que contenga un constructo en bucle. Esta expresión no se puede utilizar para hacer referencia a las variables de iteración del constructo en bucle de otro paso.

La expresión de referencia consta de los siguientes miembros:
+ `{{ loop.index }}`: la posición ordinal de la iteración actual, que está indexada en `0`. 
+ `{{ loop.value }}`: el valor asociado a la variable de iteración actual. 

### Nombres de bucles
<a name="toe-loop-iteration-variables-names"></a>

 Todos los constructos en bucle tienen un campo de nombre opcional para su identificación. Si se proporciona un nombre de bucle, este se puede utilizar para hacer referencia a las variables de iteración del cuerpo de entrada del paso. Para hacer referencia a los índices y valores de iteración de un bucle denominado, utilice `{{ <loop_name>.* }}` con `{{ loop.* }}` en el cuerpo de entrada del paso. Esta expresión no se puede utilizar para hacer referencia al constructo en bucle denominado de otro paso. 

La expresión de referencia consta de los siguientes miembros:
+ `{{ <loop_name>.index }}`: la posición ordinal de la iteración actual del bucle denominado, que está indexada en `0`.
+ `{{ <loop_name>.value }}` : el valor asociado a la variable de iteración actual del bucle denominado.

### Resolución de expresiones de referencia
<a name="toe-loop-iteration-variables-expressions"></a>

 TOE de AWS Resuelve las expresiones de referencia de la siguiente manera: 
+ `{{ <loop_name>.* }}`— TOE de AWS resuelve esta expresión mediante la siguiente lógica:
  + Si el bucle del paso que se está ejecutando actualmente coincide con el valor `<loop_name>`, la expresión de referencia se convierte en el constructo en bucle del paso que se está ejecutando actualmente.
  + `<loop_name>` se resuelve en el constructo de bucle denominado si aparece dentro del paso que se está ejecutando actualmente.
+ `{{ loop.* }}`— TOE de AWS resuelve la expresión mediante la construcción de bucle definida en el paso que se está ejecutando actualmente.

Si se utilizan expresiones de referencia en un paso que no contiene un bucle, TOE de AWS no resuelve las expresiones y aparecen en el paso sin sustituirlas. 

**nota**  
Las expresiones de referencia deben estar entre comillas dobles para que el compilador YAML las interprete correctamente.

## Tipos de constructos en bucle
<a name="toe-loop-types"></a>

Esta sección contiene información y ejemplos sobre los tipos de constructos en bucle que se pueden utilizar en TOE de AWS.

**Topics**
+ [Bucle `for`](#toe-loop-types-for)
+ [Bucle `forEach` con lista de entradas](#toe-loop-types-foreach)
+ [Bucle `forEach` con lista delimitada](#toe-loop-types-foreach-delimited)

### Bucle `for`
<a name="toe-loop-types-for"></a>

El bucle `for` itera en un rango de enteros especificado dentro de un límite delimitado por el inicio y el final de las variables. Los valores iterativos están en el conjunto `[start, end]` e incluyen los valores límite.

TOE de AWS verifica los `updateBy` valores `start``end`, y para garantizar que la combinación no dé como resultado un bucle infinito.

Esquema de bucle `for`

```
  - name: "StepName"
    action: "ActionModule"
    loop:
      name: "string"
      for:
        start: int
        end: int
        updateBy: int
inputs:
  ...
```


**Entrada de bucle `for`**  

| Campo | Description (Descripción) | Tipo | Obligatorio/a | Predeterminado | 
| --- | --- | --- | --- | --- | 
|  `name`  | Nombre único del bucle. Debe ser único en comparación con otros nombres de bucles de la misma fase. |  Cadena  |  No  |  ""  | 
|  `start`  | Valor inicial de la iteración. No acepta expresiones encadenadas.  |  Entero  |  Sí  |  n/a  | 
| `end` | Valor final de la iteración. No acepta expresiones encadenadas.  | Entero | Sí | n/a | 
| `updateBy` | Diferencia por la que un valor iterativo se actualiza mediante la adición. Debe ser un valor negativo o positivo distinto de cero. No acepta expresiones encadenadas.  | Entero | Sí | n/a | 

Ejemplo de entrada de bucle `for`

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

### Bucle `forEach` con lista de entradas
<a name="toe-loop-types-foreach"></a>

El bucle `forEach` itera en una lista explícita de valores, que pueden ser cadenas y expresiones encadenadas. 

Bucle `forEach` con esquema de lista de entrada

```
  - name: "StepName"
    action: "ActionModule"
    loop:
      name: "string"
      forEach:
        - "string"
    inputs:
  ...
```


**Bucle `forEach` con entrada de lista de entrada**  

| Campo | Description (Descripción) | Tipo | Obligatorio/a | Predeterminado | 
| --- | --- | --- | --- | --- | 
|  `name`  | Nombre único del bucle. Debe ser único en comparación con otros nombres de bucles de la misma fase. |  Cadena  |  No  |  ""  | 
|  Lista de cadenas de bucle `forEach`  |  Lista de cadenas para la iteración. Acepta expresiones encadenadas como cadenas en la lista. Las expresiones encadenadas deben estar entre comillas dobles para que el compilador YAML las interprete correctamente.  |  Lista de cadenas  |  Sí  |  n/a  | 

Bucle `forEach` con lista de entradas (ejemplo 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
```

Bucle `forEach` con lista de entradas (ejemplo 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 }}"
```

Bucle `forEach` con lista de entradas (ejemplo 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 }}"
```

### Bucle `forEach` con lista delimitada
<a name="toe-loop-types-foreach-delimited"></a>

El bucle itera sobre una cadena que contiene valores separados por un delimitador. Para recorrer en iteración los componentes de la cadena, TOE de AWS utiliza el delimitador para dividir la cadena en una matriz adecuada para la iteración. 

Bucle `forEach` con esquema de lista delimitada

```
  - name: "StepName"
    action: "ActionModule"
    loop:
      name: "string"
      forEach:
        list: "string"
        delimiter: ".,;:\n\t -_"
    inputs:
  ...
```


**Bucle `forEach` con entrada de lista delimitada**  

| Campo | Description (Descripción) | Tipo | Obligatorio/a | Predeterminado | 
| --- | --- | --- | --- | --- | 
|  `name`  | Nombre único del bucle. Debe ser único en comparación con otros nombres de bucles de la misma fase. |  Cadena  |  No  |  ""  | 
|  `list`  | Cadena compuesta por cadenas constitutivas unidas por un carácter delimitador común. También acepta expresiones encadenadas. En el caso de expresiones encadenadas, asegúrese de que estén entre comillas dobles para que el compilador de YAML las interprete correctamente. | Cadena |  Sí  |  n/a  | 
| `delimiter` | Carácter que se usa para separar las cadenas dentro de un bloque. El valor predeterminado es el carácter de coma. Solo se permite un carácter delimitador de la lista dada: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/imagebuilder/latest/userguide/toe-looping-constructs.html) No se pueden utilizar expresiones encadenadas. | Cadena | No | Coma: "," | 

**nota**  
El valor de `list` se trata como una cadena inmutable. Si la fuente de `list` se cambia durante el tiempo de ejecución, no se reflejará durante la ejecución.

Bucle `forEach` con lista delimitada (ejemplo 1)

Este ejemplo utiliza el siguiente patrón de expresión de encadenamiento para hacer referencia al resultado de otro paso: `<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 }}"
```

Bucle `forEach` con lista delimitada (ejemplo 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 }}"
```

## Campos de pasos
<a name="toe-loop-step-fields"></a>

Los bucles son parte de un paso. Los campos relacionados con la ejecución de un paso no se aplican a las iteraciones individuales. Los campos de paso se aplican solo a nivel del paso, de la siguiente manera:
+ *timeoutSeconds*: todas las iteraciones del bucle deben ejecutarse dentro del período de tiempo especificado en este campo. Si se agota el tiempo de espera del bucle, TOE de AWS ejecuta la política de reintentos del paso y restablece el parámetro de tiempo de espera para cada nuevo intento. Si la ejecución del bucle supera el valor de tiempo de espera tras alcanzar el número máximo de reintentos, el mensaje de error del paso indica que se ha agotado el tiempo de espera de la ejecución del bucle. 
+ *onFailure*: la administración de errores se aplica al paso de la siguiente manera:
  + Si *OnFailure* está establecido en`Abort`, TOE de AWS sale del bucle y vuelve a intentar el paso de acuerdo con la política de reintentos. Tras el número máximo de reintentos, TOE de AWS marca el paso actual como fallido y detiene la ejecución del proceso.

    TOE de AWS establece el código de estado de la fase principal y el documento en. `Failed`
**nota**  
No se ejecutarán más pasos después del paso con errores.
  + Si *onFailure* está establecido como `Continue`, TOE de AWS sale del bucle y vuelve a intentar el paso de acuerdo con la política de reintentos. Tras el número máximo de reintentos, TOE de AWS marca el paso actual como fallido y continúa con el paso siguiente.

    TOE de AWS establece el código de estado de la fase principal y el documento en. `Failed`
  + Si *onFailure* está establecido como `Ignore`, TOE de AWS sale del bucle y vuelve a intentar el paso de acuerdo con la política de reintentos. Tras el número máximo de reintentos, TOE de AWS marca el paso actual como `IgnoredFailure` y continúa hasta ejecutar el paso siguiente.

    TOE de AWS establece el código de estado de la fase principal y el documento en. `SuccessWithIgnoredFailure`
**nota**  
Esto sigue considerándose una ejecución correcta, pero incluye información que le permite saber que uno o más pasos tienen errores y se ignoraron.
+ *maxAttempts*: para cada reintento, todo el paso y todas las iteraciones se ejecutan desde el principio.
+ *status*: el estado general de la ejecución de un paso. `status` no representa el estado de las iteraciones individuales. El estado de un paso con bucles se determina de la siguiente manera:
  + Si no se puede ejecutar una sola iteración, el estado de un paso indica que se ha producido un error.
  + Si todas las iteraciones se realizan correctamente, el estado de un paso indica que se ha realizado correctamente.
+ *startTime*: hora de inicio general de la ejecución de un paso. No representa la hora de inicio de las iteraciones individuales.
+ *endTime*: la hora de finalización general de la ejecución de un paso. No representa la hora de finalización de las iteraciones individuales.
+ *failureMessage*: incluye los índices de iteración que fallaron en caso de errores sin tiempo de espera. En caso de errores de tiempo de espera, el mensaje indica que se produjo un error en la ejecución del bucle. No se proporcionan mensajes de error individuales para cada iteración para minimizar el tamaño de los mensajes de error.

## Salidas de paso e iteración
<a name="toe-loop-step-output"></a>

Cada iteración contiene una salida. Al final de una ejecución en bucle, TOE de AWS consolida todos los resultados de la iteración correcta. `detailedOutput.json` Las salidas consolidadas son una recopilación de valores que pertenecen a las claves de salida correspondientes, como se define en el esquema de salida del módulo de acción. El siguiente ejemplo muestra cómo se consolidan las salidas:

**Salida de `ExecuteBash` para la iteración 1**

```
{
	"stdout":"Hello"
}
```

**Salida de `ExecuteBash` para la iteración 2**

```
{
	"stdout":"World"
}
```

**Salida de `ExecuteBash` para el paso**

```
{
	"stdout":"Hello\nWorld"
}
```

Por ejemplo, `ExecuteBash`, `ExecutePowerShell` y `ExecuteBinary` son módulos de acción que se devuelven `STDOUT` como salida del módulo de acción. Los mensajes `STDOUT` se unen con el carácter de la nueva línea para producir la salida general del paso en `detailedOutput.json`.

TOE de AWS no consolidará los resultados de las iteraciones fallidas.

# Módulos de acción compatibles con el administrador de TOE de AWS componentes
<a name="toe-action-modules"></a>

Los servicios de creación de imágenes, como Image Builder de EC2, TOE de AWS utilizan módulos de acción para ayudar a configurar las instancias de EC2 que se utilizan para crear y probar imágenes de máquinas personalizadas. En esta sección se describen las características de los módulos de TOE de AWS acción más utilizados y cómo configurarlos, e incluye ejemplos.

los componentes se crean con documentos YAML de texto simple. Para obtener más información sobre sintaxis de documentos, consulte [Utilice el marco de documentos de TOE de AWS componentes para componentes personalizados](toe-use-documents.md).

**nota**  
Todos los módulos de acción utilizan la misma cuenta que Systems Manager Agent cuando se ejecutan: `root` en Linux y `NT Authority\SYSTEM` en Windows.

La siguiente referencia cruzada clasifica los módulos de acción por el tipo de acciones que realizan.

 

**Ejecución general**
+ [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 (Windows)](#action-modules-executepowershell)

 

**Módulos de descarga y carga de archivos**
+ [S3Download (Linux, Windows, macOS)](#action-modules-s3download)
+ [S3Upload (Linux, Windows, macOS)](#action-modules-s3upload)
+ [WebDownload (Linux, Windows, macOS)](#action-modules-webdownload)

 

**Operaciones del sistema de archivos**
+ [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)

 

**Acciones de instalación de software**
+ [InstallMSI (Windows)](#action-modules-install-msi)
+ [UninstallMSI (Windows)](#action-modules-uninstall-msi)

 

**Acciones del sistema**
+ [Reboot (Linux, Windows)](#action-modules-reboot)
+ [SetRegistry (Windows)](#action-modules-setregistry)
+ [UpdateOS (Linux, Windows)](#action-modules-updateos)

## Módulos de ejecución general
<a name="action-modules-general-execution"></a>

La siguiente sección contiene detalles sobre los módulos de acción que ejecutan comandos y controlan el flujo de trabajo de ejecución.

**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 (Windows)](#action-modules-executepowershell)

### Assert (Linux, Windows, macOS)
<a name="action-modules-assertion"></a>

El módulo de acción **Assert** realiza comparaciones de valores utilizando [Operadores de comparación](toe-comparison-operators.md) o [Logical operators (Operadores lógicos)](toe-logical-operators.md) como entrada. El resultado de la expresión del operador (verdadero o falso) indica el estado general de éxito o fracaso del paso.

Si la expresión del operador lógico o de comparación se evalúa como `true`, el paso se marca como `Success`. De lo contrario, el paso se marca como `Failed`. Si el paso falla, el parámetro `onFailure` decide el resultado del paso.


**Input**  

| Nombre de la clave | Description (Descripción) | Tipo | Obligatorio/a | 
| --- | --- | --- | --- | 
| input | Contiene un único operador lógico o de comparación. Tenga en cuenta que los operadores lógicos pueden contener más de un operador de comparación. | Varía en función del operador | Sí | 

**Ejemplo de entrada: una comparación sencilla con el operador de comparación `stringEquals`**

En este ejemplo se obtiene el resultado `true`.

```
- name: StringComparison
  action: Assert
  inputs:
    stringEquals: '2.1.1'
    value: '{{ validate.ApplicationVersion.outputs.stdout }}'
```

**Ejemplo de entrada: comparaciones de expresiones regulares mediante el operador de comparación `patternMatches`**

Todos estos ejemplos dan como resultado `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'
```

**Ejemplo de entrada: comparaciones anidadas con operadores lógicos y variables encadenadas**

El siguiente ejemplo muestra las comparaciones anidadas con operadores lógicos que utilizan comparaciones con variables encadenadas. `Assert` evalúa `true` si se cumple alguna de las siguientes condiciones:
+ La `ApplicationVersion` es mayor que `2.0` y la `CPUArchitecture` igual a `arm64`.
+ La `CPUArchitecture` es igual a `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 }}'
```

**Salida:**

El resultado de un paso `Assert` es el éxito o el fracaso del paso.

### ExecuteBash (Linux, macOS)
<a name="action-modules-executebash"></a>

El módulo de **ExecuteBash**acción le permite ejecutar scripts bash con códigos/comandos de shell integrados. Este módulo es compatible con Linux. 

Todos los comandos e instrucciones que especifique en el bloque de comandos se convierten en un archivo (por ejemplo `input.sh`) y se ejecutan con el intérprete de comandos bash. El resultado de ejecutar el archivo del intérprete de comandos es el código de salida del paso. 

El **ExecuteBash**módulo gestiona los reinicios del sistema si el script se cierra con un código de salida de. `194` Cuando esto ocurre, la aplicación realiza una de las siguientes acciones:
+ La aplicación entrega el código de salida a la persona que llama si lo ejecuta Systems Manager Agent. Systems Manager Agent gestiona el reinicio del sistema y ejecuta el mismo paso que lo inició, tal y como se describe en [Reiniciar una instancia gestionada desde scripts](https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-reboot.html).
+ La aplicación guarda el `executionstate` actual, configura un activador de reinicio para volver a ejecutar la aplicación y reinicia el sistema.

Tras reiniciar el sistema, la aplicación ejecuta el mismo paso que inició el reinicio. Si necesita esta funcionalidad, debe escribir scripts idempotentes que puedan gestionar múltiples invocaciones del mismo comando del intérprete de comandos.


**Input**  

| Nombre de la clave | Description (Descripción) | Tipo | Obligatorio/a | 
| --- | --- | --- | --- | 
| commands | Contiene una lista de instrucciones o comandos para ejecutar según la sintaxis de bash. Se permite el YAML multilínea. | Enumeración | Sí | 

**Ejemplo de entrada: antes y después de un reinicio**

```
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**  

| Campo | Description (Descripción) | Tipo | 
| --- | --- | --- | 
| stdout | Resultado estándar de la ejecución de comandos. | cadena | 

Si inicia un reinicio y devuelve el código de salida `194` como parte del módulo de acción, la compilación se reanudará en el mismo paso del módulo de acción en el que se inició el reinicio. Si inicia un reinicio sin el código de salida, es posible que se produzca un error en el proceso de compilación.

**Ejemplo de resultado: antes del reinicio (primera vez a través del documento)**

```
{
	“stdout”: “The reboot file does not exist. Creating it and triggering a restart."
}
```

**Ejemplo de resultado: después del reinicio (segunda vez a través del documento)**

```
{
	“stdout”: “The reboot file exists. Deleting it and exiting with success."
}
```

### ExecuteBinary (Linux, Windows, macOS)
<a name="action-modules-executebinary"></a>

El módulo de **ExecuteBinary**acción permite ejecutar archivos binarios con una lista de argumentos de línea de comandos.

El **ExecuteBinary**módulo gestiona los reinicios del sistema si el archivo binario se cierra con un código de salida de `194` (Linux) o `3010` (Windows). Cuando esto ocurre, la aplicación realiza una de las siguientes acciones:
+ La aplicación entrega el código de salida a la persona que llama si lo ejecuta Systems Manager Agent. Systems Manager Agent gestiona el reinicio del sistema y ejecuta el mismo paso que lo inició, tal y como se describe en [Reiniciar una instancia gestionada desde scripts](https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-reboot.html).
+ La aplicación guarda el `executionstate` actual, configura un activador de reinicio para volver a ejecutar la aplicación y reinicia el sistema.

Una vez reiniciado el sistema, la aplicación ejecuta el mismo paso que inició el reinicio. Si necesita esta funcionalidad, debe escribir scripts idempotentes que puedan gestionar múltiples invocaciones del mismo comando del intérprete de comandos.


**Input**  

| Nombre de la clave | Description (Descripción) | Tipo | Obligatorio/a | 
| --- | --- | --- | --- | 
| path | La ruta de acceso al archivo binario que se va a ejecutar. | Cadena | Sí | 
| arguments | Contiene una lista de argumentos de la línea de comandos que se utilizarán al ejecutar el archivo binario. | Lista de cadenas | No | 

**Ejemplo de entrada: install.NET**

```
  - name: "InstallDotnet"
    action: ExecuteBinary
    inputs:
      path: C:\PathTo\dotnet_installer.exe
      arguments:
        - /qb
        - /norestart
```


**Output**  

| Campo | Description (Descripción) | Tipo | 
| --- | --- | --- | 
| stdout | Resultado estándar de la ejecución de comandos. | cadena | 

**Ejemplo de resultados**

```
{
	"stdout": "success"
}
```

### ExecuteDocument (Linux, Windows, macOS)
<a name="action-modules-executedocument"></a>

El módulo de **ExecuteDocument**acción añade soporte para documentos de componentes anidados, al ejecutar varios documentos de componentes desde un documento. TOE de AWS valida el documento que se pasa en el parámetro de entrada en tiempo de ejecución.

**Restricciones**
+ Este módulo de acción se ejecuta una vez, no se permiten reintentos y no existe la opción de establecer límites de tiempo de espera. **ExecuteDocument**establece los siguientes valores predeterminados y devuelve un error si intenta cambiarlos.
  + `timeoutSeconds`: -1
  + `maxAttempts`: 1
**nota**  
Puede dejar estos valores en blanco y TOE de AWS utilizar los valores predeterminados.
+ Se permite la anidación de documentos con una profundidad de hasta tres niveles, pero no más. Tres niveles de anidación se traducen en cuatro niveles de documento, ya que el nivel superior no está anidado. En este escenario, el documento de nivel inferior no debe incluir a ningún otro documento.
+ No se permite la ejecución cíclica de los documentos componentes. Cualquier documento que se llame a sí mismo fuera de una construcción en bucle, o que llame a otro documento en un nivel superior de la cadena de ejecución actual, inicia un ciclo que puede dar como resultado un bucle sin fin. Cuando TOE de AWS detecta una ejecución cíclica, la detiene y registra el error.

![\[Restricciones de nivel de anidación para el módulo de ExecuteDocument acción.\]](http://docs.aws.amazon.com/es_es/imagebuilder/latest/userguide/images/toe-component-document-nesting.png)


Si un documento componente intenta ejecutarse por sí mismo o ejecutar alguno de los documentos componentes que se encuentran más arriba en la cadena de ejecución actual, se produce un error en la ejecución.

**Entrada**


| Nombre de la clave | Description (Descripción) | Tipo | Obligatorio/a | 
| --- | --- | --- | --- | 
| document |  Ruta del documento componente. Entre las opciones válidas se incluyen: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/imagebuilder/latest/userguide/toe-action-modules.html)  | Cadena | Sí | 
| document-s3-bucket-owner |  ID de la cuenta del propietario del bucket de S3 para el bucket de S3 donde se almacenan los documentos de los componentes. *(Se recomienda si utiliza S3 URIs en el documento de componentes).*  | Cadena | No | 
| phases |  Fases que se ejecutarán en el documento de componentes, expresadas como una lista separada por comas. Si no se especifica ninguna fase, se ejecutan todas las fases.  | Cadena | No | 
| parameters |  Parámetros de entrada que se pasan al documento del componente en tiempo de ejecución como pares de valores clave.  | Lista de mapas de parámetros | No | 

**Entrada de mapa de parámetros**


| Nombre de la clave | Description (Descripción) | Tipo | Obligatorio/a | 
| --- | --- | --- | --- | 
| name |  El nombre del parámetro de entrada que se va a pasar al documento del componente que está ejecutando el módulo de **ExecuteDocument**acción.  | Cadena | Sí | 
| value |  El valor de un parámetro de entrada.  | Cadena | Sí | 

**Ejemplos de entradas**  
Los ejemplos siguientes muestran variaciones de las entradas del documento de componentes, en función de la ruta de instalación.

**Ejemplo de entrada: ruta del documento 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
```

**Ejemplo de entrada: URI de S3 como ruta de documento**

```
# 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
```

**Ejemplo de entrada: ARN del componente Generador de Imágenes de EC2 como ruta de documento**

```
# 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
```

**Uso de un ForEach bucle para ejecutar documentos**

```
# 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
```

**Uso de un bucle For para ejecutar documentos**

```
# 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**  
TOE de AWS crea un archivo de salida llamado `detailedoutput.json` cada vez que se ejecuta. El archivo contiene detalles sobre cada fase y paso de cada documento componente que se invoca mientras se está ejecutando. Para el módulo de **ExecuteDocument**acciones, encontrará un breve resumen del tiempo de ejecución en el `outputs` campo y detalles sobre las fases, los pasos y los documentos en los que se ejecuta`detailedOutput`.

```
{
	\"executedStepCount\":1,\"executionId\":\"97054e22-06cc-11ec-9b14-acde48001122\",\"failedStepCount\":0,\"failureMessage\":\"\",\"ignoredFailedStepCount\":0,\"logUrl\":\"\",\"status\":\"success\"
}",
```

El objeto de resumen de resultados de cada documento componente contiene los siguientes detalles, como se muestra aquí, con valores de ejemplo:
+ executedStepCount«:1
+ "executionId":"12345a67-89bc-01de-2f34-abcd56789012"
+ «failedStepCount«:0
+ "failureMessage":""
+ «ignoredFailedStepContar»: 0
+ "logUrl":""
+ "status":"success"

**Ejemplo de resultados**  
El siguiente ejemplo muestra el resultado del módulo de **ExecuteDocument**acciones cuando se produce una ejecución anidada. En este ejemplo, el documento componente `main.yaml` ejecuta correctamente el documento componente `Sample-1.yaml`.

```
{
    "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 (Windows)
<a name="action-modules-executepowershell"></a>

El módulo de **ExecutePowerShell**acción permite ejecutar PowerShell scripts con códigos o comandos de shell integrados. Este módulo es compatible con la plataforma Windows y Windows. PowerShell

Todo lo commands/instructions especificado en el bloque de comandos se convierte en un archivo de script (por ejemplo`input.ps1`) y se ejecuta con WindowsPowerShell. El resultado de ejecutar el archivo del intérprete de comandos es el código de salida.

El **ExecutePowerShell**módulo gestiona los reinicios del sistema si el comando shell se cierra con un código de salida de. `3010` Cuando esto ocurre, la aplicación realiza una de las siguientes acciones: 
+ La aplicación entrega el código de salida a la persona que llama si lo ejecuta el Systems Manager Agent. Systems Manager Agent gestiona el reinicio del sistema y ejecuta el mismo paso que lo inició, tal y como se describe en [Reiniciar una instancia gestionada desde scripts](https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-reboot.html).
+ La aplicación guarda el `executionstate` actual, configura un activador de reinicio para volver a ejecutar la aplicación y reinicia el sistema.

Tras reiniciar el sistema, la aplicación ejecuta el mismo paso que inició el reinicio. Si necesita esta funcionalidad, debe escribir scripts idempotentes que puedan gestionar múltiples invocaciones del mismo comando del intérprete de comandos.


**Input**  

| Nombre de la clave | Description (Descripción) | Tipo | Obligatorio/a | 
| --- | --- | --- | --- | 
| commands | Contiene una lista de instrucciones o comandos que se deben ejecutar según PowerShell la sintaxis. Se permite el YAML multilínea. | Lista de cadenas | Sí. Debe especificar los `commands` o el `file` no ambos.  | 
| file | Contiene la ruta a un archivo de PowerShell script. PowerShell se ejecutará en este archivo mediante el argumento de la línea de -file comandos. La ruta debe apuntar a un archivo .ps1. | Cadena | Sí. Debe especificar los `commands` o el `file` no ambos.  | 

**Ejemplo de entrada: antes y después de un reinicio**

```
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**  

| Campo | Description (Descripción) | Tipo | 
| --- | --- | --- | 
| stdout | Resultado estándar de la ejecución de comandos. | cadena | 

Si ejecuta un reinicio y devuelve el código de salida `3010` como parte del módulo de acción, la compilación se reanudará en el mismo paso del módulo de acción en el que se inició el reinicio. Si ejecuta un reinicio sin el código de salida, es posible que se produzca un error en el proceso de compilación.

**Ejemplo de resultado: antes del reinicio (primera vez a través del documento)**

```
{
	“stdout”: “The reboot file does not exist. Creating it and triggering a restart."
}
```

**Ejemplo de resultado: después del reinicio (segunda vez a través del documento)**

```
{
	“stdout”: “The reboot file exists. Deleting it and exiting with success."
}
```

## Módulos de descarga y carga de archivos
<a name="action-modules-download-upload"></a>

La siguiente sección contiene detalles sobre los módulos de acción que cargan o descargan archivos.

**Topics**
+ [S3Download (Linux, Windows, macOS)](#action-modules-s3download)
+ [S3Upload (Linux, Windows, macOS)](#action-modules-s3upload)
+ [WebDownload (Linux, Windows, macOS)](#action-modules-webdownload)

### S3Download (Linux, Windows, macOS)
<a name="action-modules-s3download"></a>

Con el módulo de acción `S3Download`, puede descargar un objeto de Amazon S3, o un conjunto de objetos, a un archivo o carpeta local que especifique con la ruta `destination`. Si ya existe algún archivo en la ubicación especificada y el indicador `overwrite` está establecido como true, `S3Download` sobrescribe el archivo.

Su ubicación `source` puede apuntar a un objeto específico en Amazon S3, o puede usar un prefijo de clave con un asterisco como comodín (`*`) para descargar un conjunto de objetos que coincidan con la ruta del prefijo de clave. Al especificar un prefijo de clave en su ubicación `source`, el módulo de acción `S3Download` descarga todo lo que coincida con el prefijo (archivos y carpetas incluidos). Asegúrese de que el prefijo de clave termine con una barra diagonal seguida de un asterisco (`/*`), para descargar todo lo que coincida con el prefijo. Por ejemplo: `s3://my-bucket/my-folder/*`.

Si la acción `S3Download` de un prefijo de clave especificado falla durante una descarga, el contenido de la carpeta no vuelve a su estado anterior al error. La carpeta de destino permanece tal y como estaba en el momento del error.

**Casos de uso admitidos**  
El módulo de acción `S3Download` admite los siguientes casos de uso:
+ El objeto Amazon S3 se descarga en una carpeta local, tal y como se especifica en la ruta de descarga.
+ Los objetos de Amazon S3 (con un prefijo de clave en la ruta del archivo de Amazon S3) se descargan en la carpeta local especificada, que copia de forma recursiva todos los objetos de Amazon S3 que coincidan con el prefijo de la clave en la carpeta local.

**Requisitos de IAM**  
El rol de IAM que asocie al perfil de instancia debe tener permiso para ejecutar el módulo de acción `S3Download`. Las siguientes políticas de IAM se deben adjuntar al rol de IAM asociado al perfil de instancia:
+ **Archivo único**: `s3:GetObject` contra bucket/object (por ejemplo,`arn:aws:s3:::BucketName/*`).
+ **Varios archivos**: `s3:ListBucket` contra bucket/object (por ejemplo,`arn:aws:s3:::BucketName`) y `s3:GetObject` contra bucket/object (por ejemplo,`arn:aws:s3:::BucketName/*`).


**Input**  

|  Key  |  Description (Descripción)  |  Tipo  |  Obligatorio/a  |  Predeterminado  | 
| --- | --- | --- | --- | --- | 
|  `source`  |  El bucket de Amazon S3 que es el origen de la descarga. Puede especificar una ruta a un objeto específico o utilizar un prefijo de clave que termine con una barra diagonal seguida de un asterisco comodín (`/*`), para descargar un conjunto de objetos que coincidan con el prefijo de clave.  |  Cadena  |  Sí  |  N/A  | 
|  `destination`  |  La ruta local en la que se descargan los objetos de Amazon S3. Para descargar un solo archivo, debe especificarse el nombre del archivo como parte de la ruta. Por ejemplo, `/myfolder/package.zip`.  |  Cadena  |  Sí  |  N/A  | 
|  `expectedBucketOwner`  |  ID de la cuenta de propietario esperada del bucket proporcionado en la ruta `source`. Le recomendamos que compruebe la propiedad del bucket de Amazon S3 especificado en la fuente.  |  Cadena  |  No  |  N/A  | 
|  `overwrite`  |  Si se establece como true, si ya existe un archivo con el mismo nombre en la carpeta de destino de la ruta local especificada, el archivo de descarga sobrescribe el archivo local. Si se establece como false, el archivo existente en el sistema local está protegido para que no se sobrescriba y el módulo de acción falla y se produce un error de descarga. Por ejemplo, `Error: S3Download: File already exists and "overwrite" property for "destination" file is set to false. Cannot download.`  |  Booleano  |  No  |  true  | 

**nota**  
En los ejemplos siguientes, la ruta de la carpeta de Windows se puede reemplazar por una ruta de Linux. Por ejemplo, se puede sustituir `C:\myfolder\package.zip` por `/myfolder/package.zip`.

**Ejemplo de entrada: copia de un objeto de Amazon S3 a un archivo local**  
En el siguiente ejemplo, se muestra cómo copiar un objeto de Amazon S3 en un archivo 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
```

**Ejemplo de entrada: copia de todos los objetos de Amazon S3 de un bucket de Amazon S3 con el prefijo de clave a una carpeta local**  
Ejemplo de entrada: copia todos los objetos de Amazon S3 de un bucket de Amazon S3 con el prefijo de clave a una carpeta local. Amazon S3 no tiene el concepto de carpeta, por lo que se copian todos los objetos que coincidan con el prefijo de clave. El número máximo de objetos que se puede descargar es 1000.

```
  - 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**  
Ninguna.

### S3Upload (Linux, Windows, macOS)
<a name="action-modules-s3upload"></a>

Con el módulo de acción **S3Upload**, puede cargar un archivo desde un archivo o carpeta de origen a una ubicación de Amazon S3. Puede usar un comodín (`*`) en la ruta especificada para su ubicación de origen para cargar todos los archivos cuya ruta coincida con el patrón de comodín.

Si se produce un error en la acción recursiva **S3Upload**, los archivos que ya se hayan cargado permanecerán en el bucket de Amazon S3 de destino.

**Casos de uso admitidos**
+ Archivo local del objeto de Amazon S3.
+ Archivos locales en la carpeta (con comodín) con el prefijo de clave de Amazon S3.
+ Copie la carpeta local (`recurse` debe estar configurado como `true`) al prefijo de clave de Amazon S3.

**Requisitos de IAM**  
El rol de IAM que asocie al perfil de instancia debe tener permiso para ejecutar el módulo de acción `S3Upload`. La siguiente política de IAM debe estar asociada al rol de IAM que está asociado con el perfil de instancia. La política debe conceder permisos `s3:PutObject` al bucket de Amazon S3 de destino. Por ejemplo, `arn:aws:s3:::BucketName/*`).


**Input**  

|  Key  |  Description (Descripción)  |  Tipo  |  Obligatorio/a  |  Predeterminado  | 
| --- | --- | --- | --- | --- | 
|  `source`  |  La ruta local en la que se files/folders origina la fuente. `source` admite un asterisco como comodín (`*`).  |  Cadena  |  Sí  |  N/A  | 
|  `destination`  |  La ruta del bucket de Amazon S3 de destino en el que se cargan las carpetas o archivos de origen.  |  Cadena  |  Sí  |  N/A  | 
|  `recurse`  |  Cuando se establece como `true`, ejecuta **S3Upload** de forma recursiva.  |  Cadena  |  No  |  `false`  | 
|  `expectedBucketOwner`  |  El ID de cuenta del propietario esperado para el bucket de Amazon S3 especificado en la ruta de destino. Le recomendamos que compruebe la propiedad del bucket de Amazon S3 especificado en el destino.  |  Cadena  |  No  |  N/A  | 

**Ejemplo de entrada: copia de un objeto de Amazon S3 a un archivo local**  
En el siguiente ejemplo, se muestra cómo copiar un objeto de Amazon S3 en un archivo local.

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

**Ejemplo de entrada: copia de todos los objetos de Amazon S3 de un bucket de Amazon S3 con el prefijo de clave a una carpeta local**  
Ejemplo de entrada: copia todos los objetos de Amazon S3 de un bucket de Amazon S3 con el prefijo de clave a una carpeta local. En este ejemplo no se copian las subcarpetas ni su contenido porque el `recurse` no está especificado y su valor predeterminado es `false`.

```
  - name: MyS3UploadMultipleFiles
    action: S3Upload
    onFailure: Abort
    maxAttempts: 3
    inputs:
      - source: C:\myfolder\*
        destination: s3://amzn-s3-demo-destination-bucket/path/to/
        expectedBucketOwner: 123456789022
```

**Ejemplo de entrada: copiar de forma recursiva todos los archivos y carpetas de una carpeta local en un bucket de Amazon S3**  
El siguiente ejemplo muestra como copiar todos los archivos de forma recursiva de una carpeta local a un bucket de Amazon S3 con el prefijo de clave.

```
  - 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**  
Ninguna.

### WebDownload (Linux, Windows, macOS)
<a name="action-modules-webdownload"></a>

El módulo de **WebDownload**acción le permite descargar archivos y recursos desde una ubicación remota a través del HTTP/HTTPS protocolo (*se recomienda HTTPS*). No hay límites en cuanto al número ni al tamaño de las descargas. Este módulo gestiona la lógica de reintento y retroceso exponencial. 

A cada operación de descarga se le asigna un máximo de 5 intentos para que se realice correctamente según las entradas del usuario. Estos intentos difieren de los especificados en el campo `maxAttempts` del documento `steps` y están relacionados con errores en los módulos de acción.

Este módulo de acción gestiona los redireccionamientos de forma implícita. Todos los códigos de estado HTTP, excepto por `200`, generan un error.


**Input**  

| Nombre de la clave | Description (Descripción) | Tipo | Obligatorio/a | Predeterminado | 
| --- | --- | --- | --- | --- | 
| source | La HTTP/HTTPS URL válida (se recomienda HTTPS), que sigue el estándar RFC 3986. Se permiten expresiones de encadenamiento. | Cadena |  Sí  | N/A | 
| destination | Ruta absoluta o relativa de archivos o carpetas del sistema local. Las rutas de las carpetas deben terminar en /. Si no terminan en /, se tratarán como rutas de archivos. El módulo crea cualquier archivo o carpeta necesarios para que las descargas se realicen correctamente. Se permiten expresiones de encadenamiento. | Cadena | Sí | N/A | 
| overwrite | Cuando está activado, sobrescribe cualquier archivo existente en el sistema local con el archivo o recurso descargado. Si no está activado, los archivos existentes en el sistema local no se sobrescriben y el módulo de acción produce un error. Cuando la sobreescritura está habilitada y se especifican la suma de verificación y el algoritmo, el módulo de acción de descarga el archivo solo si la suma de verificación y la almohadilla de los archivos preexistentes no coinciden.  | Booleano | No | true | 
| checksum | Al especificar la suma de comprobación, se compara con la almohadilla del archivo descargado que se genera con el algoritmo suministrado. Para habilitar la verificación de archivos, se deben proporcionar tanto la suma de verificación como el algoritmo. Se permiten expresiones de encadenamiento.  | Cadena | No | N/A | 
| algorithm | El algoritmo utilizado para calcular la suma de control. Las opciones sonMD5, SHA1 SHA256, y. SHA512 Para habilitar la verificación de archivos, se deben proporcionar tanto la suma de verificación como el algoritmo. Se permiten expresiones de encadenamiento.  | Cadena | No | N/A | 
| ignoreCertificateErrors | La validación del certificado SSL se ignora cuando está habilitada. | Booleano | No | false | 


**Output**  

| Nombre de la clave | Description (Descripción) | Tipo | 
| --- | --- | --- | 
| destination | Cadena de nueva línea delimitada por caracteres que especifica la ruta de destino en la que se almacenan los archivos o recursos descargados. | Cadena | 

**Ejemplo de entrada: descarga del archivo remoto al destino local**

```
  - name: DownloadRemoteFile
    action: WebDownload
    maxAttempts: 3
    inputs:
      - source: https://testdomain/path/to/java14.zip
        destination: C:\testfolder\package.zip
```

**Salida:**

```
{
	"destination": "C:\\testfolder\\package.zip"
}
```

**Ejemplo de entrada: descarga de más de un archivo remoto a más de un destino local**

```
  - 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/
```

**Salida:**

```
{
	"destination": "/tmp/create_new_folder/java14_renamed.zip\n/tmp/create_new_folder_and_add_java14_as_zip/java14.zip"
}
```

**Ejemplo de entrada: descarga de un archivo remoto sin sobrescribir el destino local y descargar otro archivo remoto con verificación de archivos**

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

**Salida:**

```
{
	"destination": "C:\\create_new_folder\\java14_renamed.zip\nC:\\create_new_folder_and_add_java14_as_zip\\java14.zip"
}
```

**Ejemplo de entrada: descarga de un archivo remoto e ignore la validación de la certificación SSL**

```
  - name: DownloadRemoteIgnoreValidation
    action: WebDownload
    maxAttempts: 3
    inputs:
      - source: https://www.bad-ssl.com/resource
        destination: /tmp/downloads/
        ignoreCertificateErrors: true
```

**Salida:**

```
{
	"destination": "/tmp/downloads/resource"
}
```

## Módulos de operaciones del sistema de archivos
<a name="action-modules-file-system-operations"></a>

La siguiente sección contiene detalles sobre los módulos de acción que realizan operaciones en el sistema de archivos.

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

El módulo de **AppendFile**acción añade contenido específico al contenido preexistente de un archivo.

Si el valor de codificación del archivo es diferente del valor de codificación (`utf-8`) predeterminado, puede especificar el valor de codificación del archivo mediante la opción `encoding`. De forma predeterminada, se supone que `utf-16` y `utf-32` utilizan la codificación little-endian. 

El módulo de acción devuelve un error cuando ocurre lo siguiente:
+ El archivo especificado no existe en tiempo de ejecución.
+ No tiene permisos de escritura para modificar el contenido del archivo.
+ El módulo detecta un error durante la operación del archivo.


**Input**  

| Nombre de la clave | Description (Descripción) | Tipo | Obligatorio/a | Predeterminado | Valores aceptables | Compatible con todas las plataformas | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | La ruta del archivo. | Cadena | Sí | N/A | N/A | Sí | 
| content | El contenido que se va a adjuntar al archivo. | Cadena | No | Cadena vacía | N/A | Sí | 
| encoding | El estándar de la codificación. | Cadena | No | utf8 | utf8, utf-8, utf16,utf-16, utf16-LE, utf-16-LE utf16-BE, utf-16-BE, utf32, utf-32, utf32-LE,utf-32-LE, utf32-BE, y  utf-32-BE. El valor de la opción de codificación no distingue entre mayúsculas y minúsculas. | Sí | 

**Ejemplo de entrada: añadir un archivo sin codificar (Linux)**

```
  - name: AppendingFileWithOutEncodingLinux
    action: AppendFile
    inputs:
      - path: ./Sample.txt
        content: "The string to be appended to the file"
```

**Ejemplo de entrada: añadir un archivo sin codificar (Windows)**

```
  - name: AppendingFileWithOutEncodingWindows
    action: AppendFile
    inputs:
      - path: C:\MyFolder\MyFile.txt
        content: "The string to be appended to the file"
```

**Ejemplo de entrada: añadir un archivo con codificación (Linux)**

```
  - name: AppendingFileWithEncodingLinux
    action: AppendFile
    inputs:
      - path: /FolderName/SampleFile.txt
        content: "The string to be appended to the file"
        encoding: UTF-32
```

**Ejemplo de entrada: añadir un archivo con codificación (Windows)**

```
  - name: AppendingFileWithEncodingWindows
    action: AppendFile
    inputs:
      - path: C:\MyFolderName\SampleFile.txt
        content: "The string to be appended to the file"
        encoding: UTF-32
```

**Ejemplo de entrada: añadir un archivo con una cadena vacía (Linux)**

```
  - name: AppendingEmptyStringLinux
    action: AppendFile
    inputs:
      - path: /FolderName/SampleFile.txt
```

**Ejemplo de entrada: añadir un archivo con una cadena vacía (Windows)**

```
  - name: AppendingEmptyStringWindows
    action: AppendFile
    inputs:
      - path: C:\MyFolderName\SampleFile.txt
```

**Output**  
Ninguna.

### CopyFile (Linux, Windows, macOS)
<a name="action-modules-copyfile"></a>

El módulo de **CopyFile**acción copia los archivos de la fuente especificada al destino especificado. De forma predeterminada, el módulo crea de forma recursiva la carpeta de destino si no existe en tiempo de ejecución.

Si ya existe un archivo con el nombre especificado en la carpeta especificada, el módulo de acción, de forma predeterminada, sobrescribe el archivo existente. Puede anular este comportamiento al configurar la opción sobrescribir como `false`. Cuando la opción de sobreescritura esté establecida como `false` y ya haya un archivo en la ubicación especificada con el nombre especificado, el módulo de acción devolverá un error. Esta opción funciona igual que el comando de Linux `cp`, que se sobrescribe de forma predeterminada.

El nombre del archivo fuente puede incluir un comodín (`*`). Los caracteres comodín solo se aceptan después del último separador de ruta del archivo (`/` o `\`). Si se incluyen caracteres comodín en el nombre del archivo de origen, todos los archivos que coincidan con el comodín se copian en la carpeta de destino. Si desea mover más de un archivo con un carácter comodín, la entrada de la opción `destination` debe terminar con un separador de rutas de archivo (`/` o `\`), lo que indica que la entrada de destino es una carpeta.

Si el nombre del archivo de destino es diferente del nombre del archivo de origen, puede especificar el nombre del archivo de destino mediante la opción `destination`. Si no especifica un nombre de archivo de destino, se utilizará el nombre del archivo de origen para crear el archivo de destino. Cualquier texto que siga al separador (`/` o `\`) de la última ruta del archivo se trata como el nombre del archivo. Si desea utilizar el mismo nombre de archivo que el archivo de origen, la entrada de la opción `destination` debe terminar con un separador de rutas de archivo (`/` o `\`). 

El módulo de acción devuelve un error cuando ocurre lo siguiente:
+ No tiene permiso para crear un archivo en la carpeta especificada.
+ Los archivos de origen no existen en tiempo de ejecución.
+ Ya existe una carpeta con el nombre de archivo especificado y la opción `overwrite` está configurada como `false`.
+ El módulo de acción detecta un error al realizar la operación.


**Input**  

| Nombre de la clave | Description (Descripción) | Tipo | Obligatorio/a | Predeterminado | Valores aceptables | Compatible con todas las plataformas | 
| --- | --- | --- | --- | --- | --- | --- | 
| source | La ruta del archivo de origen. | Cadena | Sí | N/A | N/A | Sí | 
| destination | La ruta del archivo de destino. | Cadena | Sí | N/A | N/A | Sí | 
| overwrite | Si se establece como falso, los archivos de destino no se reemplazarán cuando ya haya un archivo en la ubicación especificada con el nombre especificado. | Booleano | No | true | N/A | Sí | 

**Ejemplo de entrada: copiar un archivo (Linux)**

```
  - name: CopyingAFileLinux
    action: CopyFile
    inputs:
      - source: /Sample/MyFolder/Sample.txt
        destination: /MyFolder/destinationFile.txt
```

**Ejemplo de entrada: copiar un archivo (Windows)**

```
  - name: CopyingAFileWindows
    action: CopyFile
    inputs:
      - source: C:\MyFolder\Sample.txt
        destination: C:\MyFolder\destinationFile.txt
```

**Ejemplo de entrada: copia un archivo con el nombre del archivo fuente (Linux)**

```
  - name: CopyingFileWithSourceFileNameLinux
    action: CopyFile
    inputs:
      - source: /Sample/MyFolder/Sample.txt
        destination: /MyFolder/
```

**Ejemplo de entrada: copia un archivo con el nombre del archivo fuente (Windows)**

```
  - name: CopyingFileWithSourceFileNameWindows
    action: CopyFile
    inputs:
      - source: C:\Sample\MyFolder\Sample.txt
        destination: C:\MyFolder\
```

**Ejemplo de entrada: copia un archivo con el carácter comodín (Linux)**

```
  - name: CopyingFilesWithWildCardLinux
    action: CopyFile
    inputs:
      - source: /Sample/MyFolder/Sample*
        destination: /MyFolder/
```

**Ejemplo de entrada: copia un archivo con el carácter comodín (Windows)**

```
  - name: CopyingFilesWithWildCardWindows
    action: CopyFile
    inputs:
      - source: C:\Sample\MyFolder\Sample*
        destination: C:\MyFolder\
```

**Ejemplo de entrada: copiar un archivo sin sobrescribirlo (Linux)**

```
  - name: CopyingFilesWithoutOverwriteLinux
    action: CopyFile
    inputs:
      - source: /Sample/MyFolder/Sample.txt
        destination: /MyFolder/destinationFile.txt
        overwrite: false
```

**Ejemplo de entrada: copiar un archivo sin sobrescribirlo (Windows)**

```
  - name: CopyingFilesWithoutOverwriteWindows
    action: CopyFile
    inputs:
      - source: C:\Sample\MyFolder\Sample.txt
        destination: C:\MyFolder\destinationFile.txt
        overwrite: false
```

**Output**  
Ninguna.

### CopyFolder (Linux, Windows, macOS)
<a name="action-modules-copyfolder"></a>

El módulo de **CopyFolder**acción copia una carpeta de la fuente especificada al destino especificado. La entrada de la opción `source` es la carpeta que se va a copiar y la entrada de la opción `destination` es la carpeta en la que se copia el contenido de la carpeta de origen. De forma predeterminada, el módulo crea de forma recursiva la carpeta de destino si no existe en tiempo de ejecución.

Si ya existe una carpeta con el nombre especificado en la carpeta especificada, el módulo de acción, de forma predeterminada, sobrescribe la carpeta existente. Puede anular este comportamiento al configurar la opción sobrescribir como `false`. Cuando la opción de sobreescritura esté establecida como `false` y ya haya una carpeta en la ubicación especificada con el nombre especificado, el módulo de acción devolverá un error.

El nombre de la carpeta fuente puede incluir un comodín (`*`). Los caracteres comodín solo se aceptan después del último separador de ruta del archivo (`/` o `\`). Si se incluyen caracteres comodín en el nombre de la carpeta de origen, todas las carpetas que coincidan con el comodín se copian en la carpeta de destino. Si desea mover más de una carpeta utilizando un carácter comodín, la entrada de la opción `destination` debe terminar con un separador de rutas de archivo (`/` o `\`), lo que indica que la entrada de destino es una carpeta.

Si el nombre de la carpeta de destino es diferente del nombre de la carpeta de origen, puede especificar el nombre de la carpeta de destino mediante la opción `destination`. Si no especifica un nombre de carpeta de destino, se utilizará el nombre de la carpeta de origen para crear la carpeta de destino. Cualquier texto que siga al separador (`/` o `\`) de la última ruta del archivo se trata como el nombre de la carpeta. Si desea utilizar el mismo nombre de carpeta que la carpeta de origen, la entrada de la opción `destination` debe terminar con un separador de rutas de archivo (`/` o `\`). 

El módulo de acción devuelve un error cuando ocurre lo siguiente:
+ No tiene permiso para crear una carpeta en la carpeta especificada.
+ Las carpetas de origen no existen en tiempo de ejecución.
+ Ya existe una carpeta con el nombre de carpeta especificado y la opción `overwrite` está configurada como `false`.
+ El módulo de acción detecta un error al realizar la operación.


**Input**  

| Nombre de la clave | Description (Descripción) | Tipo | Obligatorio/a | Predeterminado | Valores aceptables | Compatible con todas las plataformas | 
| --- | --- | --- | --- | --- | --- | --- | 
| source | La ruta de la carpeta de origen. | Cadena | Sí | N/A | N/A | Sí | 
| destination | La ruta de la carpeta de destino. | Cadena | Sí | N/A | N/A | Sí | 
| overwrite | Si se establece como falso, las carpetas de destino no se reemplazarán cuando ya haya una carpeta en la ubicación especificada con el nombre especificado. | Booleano | No | true | N/A | Sí | 

**Ejemplo de entrada: copiar una carpeta (Linux)**

```
  - name: CopyingAFolderLinux
    action: CopyFolder
    inputs:
      - source: /Sample/MyFolder/SampleFolder
        destination: /MyFolder/destinationFolder
```

**Ejemplo de entrada: copiar una carpeta (Windows)**

```
  - name: CopyingAFolderWindows
    action: CopyFolder
    inputs:
      - source: C:\Sample\MyFolder\SampleFolder
        destination: C:\MyFolder\destinationFolder
```

**Ejemplo de entrada: copiar una carpeta con el nombre de la carpeta de origen (Linux)**

```
  - name: CopyingFolderSourceFolderNameLinux
    action: CopyFolder
    inputs:
      - source: /Sample/MyFolder/SourceFolder
        destination: /MyFolder/
```

**Ejemplo de entrada: copiar una carpeta con el nombre de la carpeta de origen (Windows)**

```
  - name: CopyingFolderSourceFolderNameWindows
    action: CopyFolder
    inputs:
      - source: C:\Sample\MyFolder\SampleFolder
        destination: C:\MyFolder\
```

**Ejemplo de entrada: copiar una carpeta con el carácter comodín (Linux)**

```
  - name: CopyingFoldersWithWildCardLinux
    action: CopyFolder
    inputs:
      - source: /Sample/MyFolder/Sample*
        destination: /MyFolder/
```

**Ejemplo de entrada: copiar una carpeta con el carácter comodín (Windows)**

```
  - name: CopyingFoldersWithWildCardWindows
    action: CopyFolder
    inputs:
      - source: C:\Sample\MyFolder\Sample*
        destination: C:\MyFolder\
```

**Ejemplo de entrada: copiar una carpeta sin sobrescribirla (Linux)**

```
  - name: CopyingFoldersWithoutOverwriteLinux
    action: CopyFolder
    inputs:
      - source: /Sample/MyFolder/SourceFolder
        destination: /MyFolder/destinationFolder
        overwrite: false
```

**Ejemplo de entrada: copiar una carpeta sin sobrescribirla (Windows)**

```
  - name: CopyingFoldersWithoutOverwrite
    action: CopyFolder
    inputs:
      - source: C:\Sample\MyFolder\SourceFolder
        destination: C:\MyFolder\destinationFolder
        overwrite: false
```

**Output**  
Ninguna.

### CreateFile (Linux, Windows, macOS)
<a name="action-modules-createfile"></a>

El módulo de **CreateFile**acción crea un archivo en una ubicación específica. De forma predeterminada, si es necesario, el módulo también crea de forma recursiva las carpetas principales.

Si el archivo ya existe en la carpeta especificada, el módulo de acción, de forma predeterminada, trunca o sobrescribe el archivo existente. Puede anular este comportamiento al configurar la opción sobrescribir como `false`. Cuando la opción de sobreescritura esté establecida como `false` y ya haya un archivo en la ubicación especificada con el nombre especificado, el módulo de acción devolverá un error.

Si el valor de codificación del archivo es diferente del valor de codificación (`utf-8`) predeterminado, puede especificar el valor de codificación del archivo mediante la opción `encoding`. De forma predeterminada, se supone que `utf-16` y `utf-32` utilizan la codificación little-endian. 

`owner`, `group`, y `permissions` son entradas opcionales. La entrada para `permissions` debe ser un valor de cadena. Los archivos se crean con los valores predeterminados cuando no se proporcionan. Estas opciones no son compatibles con las plataformas Windows. Este módulo de acción valida y devuelve un error si `owner`, `group`, y `permissions` se utilizan en las plataformas Windows.

Este módulo de acción puede crear un archivo con los permisos definidos por el valor `umask` predeterminado del sistema operativo. Debe establecer el valor `umask` si quiere anular el valor predeterminado.

El módulo de acción devuelve un error cuando ocurre lo siguiente:
+ No tiene permiso para crear un archivo o una carpeta en la carpeta especificada.
+ El módulo de acción detecta un error al realizar la operación.


**Input**  

| Nombre de la clave | Description (Descripción) | Tipo | Obligatorio/a | Predeterminado | Valores aceptables | Compatible con todas las plataformas | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | La ruta del archivo. | Cadena | Sí | N/A | N/A | Sí | 
| content | El contenido de texto del archivo. | Cadena | No | N/A | N/A | Sí | 
| encoding | El estándar de la codificación. | Cadena | No | utf8 | utf8, utf-8, utf16,utf-16, utf16-LE, utf-16-LE utf16-BE, utf-16-BE, utf32, utf-32, utf32-LE,utf-32-LE, utf32-BE, y  utf-32-BE. El valor de la opción de codificación no distingue entre mayúsculas y minúsculas. | Sí | 
| owner | El nombre o el ID de usuario. | Cadena | No | N/A | N/A | No es compatible con Windows. | 
| group | El nombre o el ID del grupo. | Cadena | No | El usuario actual. | N/A | No es compatible con Windows. | 
| permissions | Permisos de archivos. | Cadena | No | 0666 | N/A | No es compatible con Windows. | 
| overwrite | Si el nombre del archivo especificado ya existe, si se establece este valor como false se impide que el archivo se trunque o sobrescriba de forma predeterminada. | Booleano | No | true | N/A | Sí | 

**Ejemplo de entrada: crear un archivo sin sobrescribirlo (Linux)**

```
  - name: CreatingFileWithoutOverwriteLinux
    action: CreateFile
    inputs:
      - path: /home/UserName/Sample.txt
        content: The text content of the sample file.
        overwrite: false
```

**Ejemplo de entrada: crear un archivo sin sobrescribirlo (Windows)**

```
  - name: CreatingFileWithoutOverwriteWindows
    action: CreateFile
    inputs:
      - path: C:\Temp\Sample.txt
        content: The text content of the sample file.
        overwrite: false
```

**Ejemplo de entrada: creación de un archivo con las propiedades del archivo**

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

**Ejemplo de entrada: creación de un archivo sin las propiedades de archivo**

```
  - name: CreatingFileWithoutFileProperties
    action: CreateFile
    inputs:
      - path: ./Sample.txt
      - path: Sample1.txt
```

**Ejemplo de entrada: creación de un archivo vacío para omitir una sección del script de limpieza de Linux**

```
  - name: CreateSkipCleanupfile
    action: CreateFile
    inputs:
      - path: <skip section file name>
```

Para obtener más información, consulte [Anule el script de limpieza de Linux.](security-best-practices.md#override-linux-cleanup-script).

**Output**  
Ninguna.

### CreateFolder (Linux, Windows, macOS)
<a name="action-modules-createfolder"></a>

El módulo de **CreateFolder**acción crea una carpeta en una ubicación específica. De forma predeterminada, si es necesario, el módulo también crea de forma recursiva las carpetas principales.

Si la carpeta ya existe en la carpeta especificada, el módulo de acción, de forma predeterminada, trunca o sobrescribe la carpeta existente. Puede anular este comportamiento al configurar la opción sobrescribir como `false`. Cuando la opción de sobreescritura esté establecida como `false` y ya haya una carpeta en la ubicación especificada con el nombre especificado, el módulo de acción devolverá un error.

`owner`, `group`, y `permissions` son entradas opcionales. La entrada para `permissions` debe ser un valor de cadena. Estas opciones no son compatibles con las plataformas Windows. Este módulo de acción valida y devuelve un error si `owner`, `group`, y `permissions` se utilizan en las plataformas Windows.

Este módulo de acción puede crear una carpeta con los permisos definidos por el valor predeterminado `umask` del sistema operativo. Debe establecer el valor `umask` si quiere anular el valor predeterminado.

El módulo de acción devuelve un error cuando ocurre lo siguiente:
+ No tiene permiso para crear una carpeta en la ubicación especificada.
+ El módulo de acción detecta un error al realizar la operación.


**Input**  

| Nombre de la clave | Description (Descripción) | Tipo | Obligatorio/a | Predeterminado | Valores aceptables | Compatible con todas las plataformas | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | La ruta de la carpeta. | Cadena | Sí | N/A | N/A | Sí | 
| owner | El nombre o el ID de usuario. | Cadena | No | El usuario actual. | N/A | No es compatible con Windows. | 
| group | El nombre o el ID del grupo. | Cadena | No | El grupo del usuario actual. | N/A | No es compatible con Windows. | 
| permissions | Permisos para carpetas. | Cadena | No | 0777 | N/A | No es compatible con Windows. | 
| overwrite | Si el nombre del archivo especificado ya existe, si se establece este valor como false se impide que el archivo se trunque o sobrescriba de forma predeterminada. | Booleano | No | true | N/A | Sí | 

**Ejemplo de entrada: crear una carpeta (Linux)**

```
  - name: CreatingFolderLinux
    action: CreateFolder
    inputs:
      - path: /Sample/MyFolder/
```

**Ejemplo de entrada: crear una carpeta (Windows)**

```
  - name: CreatingFolderWindows
    action: CreateFolder
    inputs:
      - path: C:\MyFolder
```

**Ejemplo de entrada: creación de una carpeta especificando las propiedades de la carpeta**

```
  - name: CreatingFolderWithFolderProperties
    action: CreateFolder
    inputs:
      - path: /Sample/MyFolder/Sample/
        owner: SampleOwnerName
        group: SampleGroupName
        permissions: 0777
      - path: /Sample/MyFolder/SampleFoler/
        permissions: 777
```

**Ejemplo de entrada: cree una carpeta que sobrescriba la carpeta existente, si la hay.**

```
  - name: CreatingFolderWithOverwrite
    action: CreateFolder
    inputs:
      - path: /Sample/MyFolder/Sample/
        overwrite: true
```

**Output**  
Ninguna.

### CreateSymlink (Linux, Windows, macOS)
<a name="action-modules-createsymlink"></a>

El módulo de **CreateSymlink**acción crea enlaces simbólicos o archivos que contienen una referencia a otro archivo. Este módulo no es compatible con las plataformas Windows. 

La entrada de las opciones `path` y `target` puede ser una ruta absoluta o relativa. Si la entrada de la opción `path` es una ruta relativa, se sustituye por la ruta absoluta cuando se crea el enlace.

De forma predeterminada, cuando ya existe un enlace con el nombre especificado en la carpeta especificada, el módulo de acción devuelve un error. Puede anular este comportamiento al configurar la opción `force` como `true`. Si la opción `force` se establece como `true`, el módulo sobrescribirá el enlace existente.

Si no existe una carpeta principal, el módulo de acción crea la carpeta de forma recursiva, de forma predeterminada.

El módulo de acción devuelve un error cuando ocurre lo siguiente:
+ El archivo de destino no existe en tiempo de ejecución.
+ Ya existe un archivo de enlace no simbólico con el nombre especificado.
+ El módulo de acción detecta un error al realizar la operación.


**Input**  

| Nombre de la clave | Description (Descripción) | Tipo | Obligatorio/a | Predeterminado | Valores aceptables | Compatible con todas las plataformas | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | La ruta del archivo. | Cadena | Sí | N/A | N/A | No es compatible con Windows. | 
| target | La ruta del archivo de destino al que apunta el enlace simbólico. | Cadena | Sí | N/A | N/A | No es compatible con Windows. | 
| force | Fuerza la creación de un enlace cuando ya existe un enlace con el mismo nombre. | Booleano | No | false | N/A | No es compatible con Windows. | 

**Ejemplo de entrada: creación de un enlace simbólico que obligue a crear un enlace**

```
  - name: CreatingSymbolicLinkWithForce
    action: CreateSymlink
    inputs:
      - path: /Folder2/Symboliclink.txt
        target: /Folder/Sample.txt
        force: true
```

**Ejemplo de entrada: creación de un enlace simbólico que no obligue a crear un enlace**

```
  - name: CreatingSymbolicLinkWithOutForce
    action: CreateSymlink
    inputs:
      - path: Symboliclink.txt
        target: /Folder/Sample.txt
```

**Output**  
Ninguna.

### DeleteFile (Linux, Windows, macOS)
<a name="action-modules-deletefile"></a>

El módulo de **DeleteFile**acción elimina uno o varios archivos en una ubicación específica.

La entrada de `path` debe ser una ruta de archivo válida o una ruta de archivo con un carácter comodín (`*`) en el nombre del archivo. Si se especifican caracteres comodín en el nombre del archivo, se eliminarán todos los archivos de la misma carpeta que coincidan con el comodín. 

El módulo de acción devuelve un error cuando ocurre lo siguiente:
+ No tiene permiso para realizar la operación de eliminación.
+ El módulo de acción detecta un error al realizar la operación.


**Input**  

| Nombre de la clave | Description (Descripción) | Tipo | Obligatorio/a | Predeterminado | Valores aceptables | Compatible con todas las plataformas | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | La ruta del archivo. | Cadena | Sí | N/A | N/A | Sí | 

**Ejemplo de entrada: eliminación de un solo archivo (Linux)**

```
  - name: DeletingSingleFileLinux
    action: DeleteFile
    inputs:
      - path: /SampleFolder/MyFolder/Sample.txt
```

**Ejemplo de entrada: eliminación de un solo archivo (Windows)**

```
  - name: DeletingSingleFileWindows
    action: DeleteFile
    inputs:
      - path: C:\SampleFolder\MyFolder\Sample.txt
```

**Ejemplo de entrada: eliminación de un archivo que termine en “log” (Linux)**

```
  - name: DeletingFileEndingWithLogLinux
    action: DeleteFile
    inputs:
      - path: /SampleFolder/MyFolder/*log
```

**Ejemplo de entrada: eliminación de un archivo que termine en “log” (Windows)**

```
  - name: DeletingFileEndingWithLogWindows
    action: DeleteFile
    inputs:
      - path: C:\SampleFolder\MyFolder\*log
```

**Ejemplo de entrada: eliminación de todos los archivos de una carpeta específica (Linux)**

```
  - name: DeletingAllFilesInAFolderLinux
    action: DeleteFile
    inputs:
      - path: /SampleFolder/MyFolder/*
```

**Ejemplo de entrada: eliminación de todos los archivos de una carpeta específica (Windows)**

```
  - name: DeletingAllFilesInAFolderWindows
    action: DeleteFile
    inputs:
      - path: C:\SampleFolder\MyFolder\*
```

**Output**  
Ninguna.

### DeleteFolder (Linux, Windows, macOS)
<a name="action-modules-deletefolder"></a>

El módulo de **DeleteFolder**acción elimina las carpetas.

Si la carpeta no está vacía, debe configurar la opción `force` como `true` para eliminar la carpeta y su contenido. Si no establece la `force` opción como `true` y la carpeta que intenta eliminar no está vacía, el módulo de acción mostrará un error. El valor predeterminado de la opción `force` es `false`.

El módulo de acción devuelve un error cuando ocurre lo siguiente:
+ No tiene permiso para realizar la operación de eliminación.
+ El módulo de acción detecta un error al realizar la operación.


**Input**  

| Nombre de la clave | Description (Descripción) | Tipo | Obligatorio/a | Predeterminado | Valores aceptables | Compatible con todas las plataformas | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | La ruta de la carpeta. | Cadena | Sí | N/A | N/A | Sí | 
| force | Elimina la carpeta esté vacía o no. | Booleano | No | false | N/A | Sí | 

**Ejemplo de entrada: elimine una carpeta que no esté vacía mediante la opción `force` (Linux)** 

```
  - name: DeletingFolderWithForceOptionLinux
    action: DeleteFolder
    inputs:
      - path: /Sample/MyFolder/Sample/
        force: true
```

**Ejemplo de entrada: elimine una carpeta que no esté vacía mediante la opción `force` (Windows)** 

```
  - name: DeletingFolderWithForceOptionWindows
    action: DeleteFolder
    inputs:
      - path: C:\Sample\MyFolder\Sample\
        force: true
```

**Ejemplo de entrada: eliminación de una carpeta (Linux)** 

```
  - name: DeletingFolderWithOutForceLinux
    action: DeleteFolder
    inputs:
      - path: /Sample/MyFolder/Sample/
```

**Ejemplo de entrada: eliminación de una carpeta (Windows)** 

```
  - name: DeletingFolderWithOutForce
    action: DeleteFolder
    inputs:
      - path: C:\Sample\MyFolder\Sample\
```

**Output**  
Ninguna.

### ListFiles (Linux, Windows, macOS)
<a name="action-modules-listfiles"></a>

El módulo de **ListFiles**acción muestra los archivos de una carpeta específica. Cuando la opción recursiva está establecida como `true`, muestra los archivos en subcarpetas. De forma predeterminada, este módulo no muestra los archivos de las subcarpetas.

Para enumerar todos los archivos con nombres que coincidan con un patrón específico, utilice la opción `fileNamePattern` para proporcionar el patrón. La opción `fileNamePattern` acepta el valor comodín (`*`). Cuando se proporciona el `fileNamePattern`, se devuelven todos los archivos que coincidan con el formato de nombre de archivo especificado. 

El módulo de acción devuelve un error cuando ocurre lo siguiente:
+ La carpeta especificada no existe en tiempo de ejecución.
+ No tiene permiso para crear un archivo o una carpeta en la carpeta especificada.
+ El módulo de acción detecta un error al realizar la operación.


**Input**  

| Nombre de la clave | Description (Descripción) | Tipo | Obligatorio/a | Predeterminado | Valores aceptables | Compatible con todas las plataformas | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | La ruta de la carpeta. | Cadena | Sí | N/A | N/A | Sí | 
| fileNamePattern | El patrón que debe coincidir para mostrar todos los archivos con nombres que coincidan con el patrón. | Cadena | No | N/A | N/A | Sí | 
| recursive | Muestra los archivos de la carpeta de forma recursiva. | Booleano | No | false | N/A | Sí | 

**Ejemplo de entrada: lista los archivos de la carpeta especificada (Linux)**

```
  - name: ListingFilesInSampleFolderLinux
    action: ListFiles
    inputs:
      - path: /Sample/MyFolder/Sample
```

**Ejemplo de entrada: lista los archivos de la carpeta especificada (Windows)**

```
  - name: ListingFilesInSampleFolderWindows
    action: ListFiles
    inputs:
      - path: C:\Sample\MyFolder\Sample
```

**Ejemplo de entrada: lista los archivos que terminan en “log” (Linux)**

```
  - name: ListingFilesWithEndingWithLogLinux
    action: ListFiles
    inputs:
      - path: /Sample/MyFolder/
        fileNamePattern: *log
```

**Ejemplo de entrada: lista los archivos que terminan en “log” (Windows)**

```
  - name: ListingFilesWithEndingWithLogWindows
    action: ListFiles
    inputs:
      - path: C:\Sample\MyFolder\
        fileNamePattern: *log
```

**Ejemplo de entrada: lista los archivos de forma recursiva**

```
  - name: ListingFilesRecursively
    action: ListFiles
    inputs:
      - path: /Sample/MyFolder/
        recursive: true
```


**Output**  

| Nombre de la clave | Description (Descripción) | Tipo | 
| --- | --- | --- | 
| files | La lista de archivos. | Cadena | 

**Ejemplo de resultados**

```
{
	"files": "/sample1.txt,/sample2.txt,/sample3.txt"
}
```

### MoveFile (Linux, Windows, macOS)
<a name="action-modules-movefile"></a>

El módulo de **MoveFile**acción mueve los archivos del origen especificado al destino especificado.

Si el archivo ya existe en la carpeta especificada, el módulo de acción sobrescribe el archivo existente de forma predeterminada. Puede anular este comportamiento al configurar la opción sobrescribir como `false`. Cuando la opción de sobreescritura esté establecida como `false` y ya haya un archivo en la ubicación especificada con el nombre especificado, el módulo de acción devolverá un error. Esta opción funciona igual que el comando de Linux `mv`, que se sobrescribe de forma predeterminada.

El nombre del archivo fuente puede incluir un comodín (`*`). Los caracteres comodín solo se aceptan después del último separador de ruta del archivo (`/` o `\`). Si se incluyen caracteres comodín en el nombre del archivo de origen, todos los archivos que coincidan con el comodín se copian en la carpeta de destino. Si desea mover más de un archivo con un carácter comodín, la entrada de la opción `destination` debe terminar con un separador de rutas de archivo (`/` o `\`), lo que indica que la entrada de destino es una carpeta.

Si el nombre del archivo de destino es diferente del nombre del archivo de origen, puede especificar el nombre del archivo de destino mediante la opción `destination`. Si no especifica un nombre de archivo de destino, se utilizará el nombre del archivo de origen para crear el archivo de destino. Cualquier texto que siga al separador (`/` o `\`) de la última ruta del archivo se trata como el nombre del archivo. Si desea utilizar el mismo nombre de archivo que el archivo de origen, la entrada de la opción `destination` debe terminar con un separador de rutas de archivo (`/` o `\`). 

El módulo de acción devuelve un error cuando ocurre lo siguiente:
+ No tiene permiso para crear un archivo en la carpeta especificada.
+ Los archivos de origen no existen en tiempo de ejecución.
+ Ya existe una carpeta con el nombre de archivo especificado y la opción `overwrite` está configurada como `false`.
+ El módulo de acción detecta un error al realizar la operación.


**Input**  

| Nombre de la clave | Description (Descripción) | Tipo | Obligatorio/a | Predeterminado | Valores aceptables | Compatible con todas las plataformas | 
| --- | --- | --- | --- | --- | --- | --- | 
| source | La ruta del archivo de origen. | Cadena | Sí | N/A | N/A | Sí | 
| destination | La ruta del archivo de destino. | Cadena | Sí | N/A | N/A | Sí | 
| overwrite | Si se establece como falso, los archivos de destino no se reemplazarán cuando ya haya un archivo en la ubicación especificada con el nombre especificado. | Booleano | No | true | N/A | Sí | 

**Ejemplo de entrada: mover un archivo (Linux)**

```
  - name: MovingAFileLinux
    action: MoveFile
    inputs:
      - source: /Sample/MyFolder/Sample.txt
        destination: /MyFolder/destinationFile.txt
```

**Ejemplo de entrada: mover un archivo (Windows)**

```
  - name: MovingAFileWindows
    action: MoveFile
    inputs:
      - source: C:\Sample\MyFolder\Sample.txt
        destination: C:\MyFolder\destinationFile.txt
```

**Ejemplo de entrada: mueva un archivo utilizando el nombre del archivo fuente (Linux)**

```
  - name: MovingFileWithSourceFileNameLinux
    action: MoveFile
    inputs:
      - source: /Sample/MyFolder/Sample.txt
        destination: /MyFolder/
```

**Ejemplo de entrada: mueva un archivo con el nombre del archivo fuente (Windows)**

```
  - name: MovingFileWithSourceFileNameWindows
    action: MoveFile
    inputs:
      - source: C:\Sample\MyFolder\Sample.txt
        destination: C:\MyFolder
```

**Ejemplo de entrada: mover un archivo con un carácter comodín (Linux)**

```
  - name: MovingFilesWithWildCardLinux
    action: MoveFile
    inputs:
      - source: /Sample/MyFolder/Sample*
        destination: /MyFolder/
```

**Ejemplo de entrada: mover un archivo con un carácter comodín (Windows)**

```
  - name: MovingFilesWithWildCardWindows
    action: MoveFile
    inputs:
      - source: C:\Sample\MyFolder\Sample*
        destination: C:\MyFolder
```

**Ejemplo de entrada: mover un archivo sin sobrescribirlo (Linux)**

```
  - name: MovingFilesWithoutOverwriteLinux
    action: MoveFile
    inputs:
      - source: /Sample/MyFolder/Sample.txt
        destination: /MyFolder/destinationFile.txt
        overwrite: false
```

**Ejemplo de entrada: mover un archivo sin sobrescribirlo (Windows)**

```
  - name: MovingFilesWithoutOverwrite
    action: MoveFile
    inputs:
      - source: C:\Sample\MyFolder\Sample.txt
        destination: C:\MyFolder\destinationFile.txt
        overwrite: false
```

**Output**  
Ninguna.

### MoveFolder (Linux, Windows, macOS)
<a name="action-modules-movefolder"></a>

El módulo de **MoveFolder**acción mueve las carpetas del origen especificado al destino especificado. La entrada de la opción `source` es la carpeta que se va a mover y la entrada de la opción `destination` es la carpeta en la que se mueve el contenido de la carpeta de origen.

Si la carpeta principal de destino o la entrada de la opción `destination` no existen en tiempo de ejecución, el comportamiento predeterminado del módulo es crear la carpeta de forma recursiva en el destino especificado.

Si ya existe una carpeta con el nombre especificado en la carpeta especificada, el módulo de acción, de forma predeterminada, sobrescribe la carpeta existente. Puede anular este comportamiento al configurar la opción sobrescribir como `false`. Cuando la opción de sobreescritura esté establecida como `false` y ya haya una carpeta en la ubicación especificada con el nombre especificado, el módulo de acción devolverá un error.

El nombre de la carpeta fuente puede incluir un comodín (`*`). Los caracteres comodín solo se aceptan después del último separador de ruta del archivo (`/` o `\`). Si se incluyen caracteres comodín en el nombre de la carpeta de origen, todas las carpetas que coincidan con el comodín se copian en la carpeta de destino. Si desea mover más de una carpeta con un carácter comodín, la entrada de la opción `destination` debe terminar con un separador de rutas de archivos (`/` o `\`), lo que indica que la entrada de destino es una carpeta.

Si el nombre de la carpeta de destino es diferente del nombre de la carpeta de origen, puede especificar el nombre de la carpeta de destino mediante la opción `destination`. Si no especifica un nombre de carpeta de destino, se utilizará el nombre de la carpeta de origen para crear la carpeta de destino. Cualquier texto que siga al separador (`/` o `\`) de la última ruta del archivo se trata como el nombre de la carpeta. Si desea utilizar el mismo nombre de carpeta que la carpeta de origen, la entrada de la opción `destination` debe terminar con un separador de rutas de archivo (`/` o `\`). 

El módulo de acción devuelve un error cuando ocurre lo siguiente:
+ No tiene permiso para crear una carpeta en la carpeta de destino.
+ Las carpetas de origen no existen en tiempo de ejecución.
+ Ya existe una carpeta con el nombre especificado y la opción `overwrite` está configurada como `false`.
+ El módulo de acción detecta un error al realizar la operación.


**Input**  

| Nombre de la clave | Description (Descripción) | Tipo | Obligatorio/a | Predeterminado | Valores aceptables | Compatible con todas las plataformas | 
| --- | --- | --- | --- | --- | --- | --- | 
| source | La ruta de la carpeta de origen. | Cadena | Sí | N/A | N/A | Sí | 
| destination | La ruta de la carpeta de destino. | Cadena | Sí | N/A | N/A | Sí | 
| overwrite | Si se establece como falso, las carpetas de destino no se reemplazarán cuando ya haya una carpeta en la ubicación especificada con el nombre especificado. | Booleano | No | true | N/A | Sí | 

**Ejemplo de entrada: mover una carpeta (Linux)**

```
  - name: MovingAFolderLinux
    action: MoveFolder
    inputs:
      - source: /Sample/MyFolder/SourceFolder
        destination: /MyFolder/destinationFolder
```

**Ejemplo de entrada: mover una carpeta (Windows)**

```
  - name: MovingAFolderWindows
    action: MoveFolder
    inputs:
      - source: C:\Sample\MyFolder\SourceFolder
        destination: C:\MyFolder\destinationFolder
```

**Ejemplo de entrada: mover una carpeta con el nombre de la carpeta de origen (Linux)**

```
  - name: MovingFolderWithSourceFolderNameLinux
    action: MoveFolder
    inputs:
      - source: /Sample/MyFolder/SampleFolder
        destination: /MyFolder/
```

**Ejemplo de entrada: mover una carpeta con el nombre de la carpeta de origen (Windows)**

```
  - name: MovingFolderWithSourceFolderNameWindows
    action: MoveFolder
    inputs:
      - source: C:\Sample\MyFolder\SampleFolder
        destination: C:\MyFolder\
```

**Ejemplo de entrada: mover una carpeta con un carácter comodín (Linux)**

```
  - name: MovingFoldersWithWildCardLinux
    action: MoveFolder
    inputs:
      - source: /Sample/MyFolder/Sample*
        destination: /MyFolder/
```

**Ejemplo de entrada: mover una carpeta con un carácter comodín (Windows)**

```
  - name: MovingFoldersWithWildCardWindows
    action: MoveFolder
    inputs:
      - source: C:\Sample\MyFolder\Sample*
        destination: C:\MyFolder\
```

**Ejemplo de entrada: mover una carpeta sin sobrescribirla (Linux)**

```
  - name: MovingFoldersWithoutOverwriteLinux
    action: MoveFolder
    inputs:
      - source: /Sample/MyFolder/SampleFolder
    destination: /MyFolder/destinationFolder
    overwrite: false
```

**Ejemplo de entrada: mover una carpeta sin sobrescribirla (Windows)**

```
  - name: MovingFoldersWithoutOverwriteWindows
    action: MoveFolder
    inputs:
      - source: C:\Sample\MyFolder\SampleFolder
        destination: C:\MyFolder\destinationFolder
        overwrite: false
```

**Output**  
Ninguna.

### ReadFile (Linux, Windows, macOS)
<a name="action-modules-readfile"></a>

El módulo de **ReadFile**acción lee el contenido de un archivo de texto de tipo cadena. Este módulo se puede utilizar para leer el contenido de un archivo y utilizarlo en los pasos siguientes mediante el encadenamiento o para leer los datos del archivo `console.log`. Si la ruta especificada es un enlace simbólico, este módulo devuelve el contenido del archivo de destino. Este módulo solo admite archivos de texto.

Si el valor de codificación del archivo es diferente del valor de codificación (`utf-8`) predeterminado, puede especificar el valor de codificación del archivo mediante la opción `encoding`. De forma predeterminada, se supone que `utf-16` y `utf-32` utilizan la codificación little-endian. 

De forma predeterminada, este módulo no puede imprimir el contenido del archivo en el archivo. `console.log` Puede anular esta configuración configurando la propiedad `printFileContent` como `true`.

Este módulo solo puede devolver el contenido de un archivo. No puede analizar archivos, como los archivos Excel o JSON.

El módulo de acción devuelve un error cuando ocurre lo siguiente:
+ El archivo no existe en el tiempo de ejecución.
+ El módulo de acción detecta un error al realizar la operación.


**Input**  

| Nombre de la clave | Description (Descripción) | Tipo | Obligatorio/a | Predeterminado | Valores aceptables | Compatible con todas las plataformas | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | La ruta del archivo. | Cadena | Sí | N/A | N/A | Sí | 
| encoding | El estándar de la codificación. | Cadena | No | utf8 | utf8, utf-8, utf16,utf-16, utf16-LE, utf-16-LE utf16-BE, utf-16-BE, utf32, utf-32, utf32-LE,utf-32-LE, utf32-BE, y  utf-32-BE. El valor de la opción de codificación no distingue entre mayúsculas y minúsculas. | Sí | 
| printFileContent | Imprime el contenido del archivo en el archivo console.log. | Booleano | No | false | N/A | Sí. | 

**Ejemplo de entrada: leer un archivo (Linux)**

```
  - name: ReadingFileLinux
    action: ReadFile
    inputs:
      - path: /home/UserName/SampleFile.txt
```

**Ejemplo de entrada: leer un archivo (Windows)**

```
  - name: ReadingFileWindows
    action: ReadFile
    inputs:
      - path: C:\Windows\WindowsUpdate.log
```

**Ejemplo de entrada: cómo leer un archivo y especificar el estándar de codificación**

```
  - name: ReadingFileWithFileEncoding
    action: ReadFile
    inputs:
      - path: /FolderName/SampleFile.txt
        encoding: UTF-32
```

**Ejemplo de entrada: cómo leer un archivo e imprimirlo en el archivo `console.log`**

```
  - name: ReadingFileToConsole
    action: ReadFile
    inputs:
      - path: /home/UserName/SampleFile.txt
        printFileContent: true
```


**Output**  

| Campo | Description (Descripción) | Tipo | 
| --- | --- | --- | 
| content | El contenido del archivo. | cadena | 

**Ejemplo de resultados**

```
{
	"content" : "The file content"
}
```

### SetFileEncoding (Linux, Windows, macOS)
<a name="action-modules-setfileencoding"></a>

El módulo de **SetFileEncoding**acción modifica la propiedad de codificación de un archivo existente. Este módulo puede convertir la codificación de archivos `utf-8` a un estándar de codificación específico. De forma predeterminada, `utf-16` y `utf-32` se supone que utilizan la codificación little-endian.

El módulo de acción devuelve un error cuando ocurre lo siguiente:
+ No tiene permiso para realizar la modificación especificada.
+ El archivo no existe en el tiempo de ejecución.
+ El módulo de acción detecta un error al realizar la operación.


**Input**  

| Nombre de la clave | Description (Descripción) | Tipo | Obligatorio/a | Predeterminado | Valores aceptables | Compatible con todas las plataformas | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | La ruta del archivo. | Cadena | Sí | N/A | N/A | Sí | 
| encoding | El estándar de la codificación. | Cadena | No | utf8 | utf8, utf-8, utf16,utf-16, utf16-LE, utf-16-LE utf16-BE, utf-16-BE, utf32, utf-32, utf32-LE,utf-32-LE, utf32-BE, y  utf-32-BE. El valor de la opción de codificación no distingue entre mayúsculas y minúsculas. | Sí | 

**Ejemplo de entrada: cómo establecer la propiedad de codificación del archivo**

```
  - name: SettingFileEncodingProperty
    action: SetFileEncoding
    inputs:
      - path: /home/UserName/SampleFile.txt
        encoding: UTF-16
```

**Output**  
Ninguna.

### SetFileOwner (Linux, Windows, macOS)
<a name="action-modules-setfileowner"></a>

El módulo de **SetFileOwner**acción modifica las propiedades de `group` propietario `owner` y las propiedades de un archivo existente. Si el archivo especificado es un enlace simbólico, el módulo modifica la propiedad `owner` del archivo fuente. Este módulo no es compatible con las plataformas Windows. 

Este módulo acepta nombres de usuarios y grupos como entradas. Si no se proporciona el nombre del grupo, el módulo asigna el propietario del archivo al grupo al que pertenece el usuario.

El módulo de acción devuelve un error cuando ocurre lo siguiente:
+ No tiene permiso para realizar la modificación especificada.
+ El nombre de usuario o grupo especificado no existe en el tiempo de ejecución.
+ El archivo no existe en el tiempo de ejecución.
+ El módulo de acción detecta un error al realizar la operación.


**Input**  

| Nombre de la clave | Description (Descripción) | Tipo | Obligatorio/a | Predeterminado | Valores aceptables | Compatible con todas las plataformas | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | La ruta del archivo. | Cadena | Sí | N/A | N/A | No es compatible con Windows. | 
| owner | El nombre de usuario. | cadena | Sí | N/A | N/A | No es compatible con Windows. | 
| group | El nombre del grupo de usuarios. | Cadena | No | El nombre del grupo al que pertenece el usuario. | N/A | No es compatible con Windows. | 

**Ejemplo de entrada: cómo establecer la propiedad del propietario del archivo sin especificar el nombre del grupo de usuarios**

```
  - name: SettingFileOwnerPropertyNoGroup
    action: SetFileOwner
    inputs:
      - path: /home/UserName/SampleText.txt
        owner: LinuxUser
```

**Ejemplo de entrada: establezca la propiedad del propietario del archivo especificando el propietario y el grupo de usuarios**

```
  - name: SettingFileOwnerProperty
    action: SetFileOwner
    inputs:
      - path: /home/UserName/SampleText.txt
        owner: LinuxUser
        group: LinuxUserGroup
```

**Output**  
Ninguna.

### SetFolderOwner (Linux, Windows, macOS)
<a name="action-modules-setfolderowner"></a>

El módulo de **SetFolderOwner**acción modifica de forma recursiva las propiedades del `group` propietario `owner` y las de los propietarios de una carpeta existente. De forma predeterminada, el módulo puede modificar la propiedad de todo el contenido de una carpeta. Para omitir este comportamiento, se puede configurar la opción `recursive` como `false`. Este módulo no es compatible con las plataformas Windows. 

Este módulo acepta nombres de usuarios y grupos como entradas. Si no se proporciona el nombre del grupo, el módulo asigna el propietario del archivo al grupo al que pertenece el usuario.

El módulo de acción devuelve un error cuando ocurre lo siguiente:
+ No tiene permiso para realizar la modificación especificada.
+ El nombre de usuario o grupo especificado no existe en el tiempo de ejecución.
+ La carpeta no existe en el tiempo de ejecución.
+ El módulo de acción detecta un error al realizar la operación.


**Input**  

| Nombre de la clave | Description (Descripción) | Tipo | Obligatorio/a | Predeterminado | Valores aceptables | Compatible con todas las plataformas | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | La ruta de la carpeta. | Cadena | Sí | N/A | N/A | No es compatible con Windows. | 
| owner | El nombre de usuario. | cadena | Sí | N/A | N/A | No es compatible con Windows. | 
| group | El nombre del grupo de usuarios. | Cadena | No | El nombre del grupo al que pertenece el usuario. | N/A | No es compatible con Windows. | 
| recursive | Anula el comportamiento predeterminado de modificar la propiedad de todo el contenido de una carpeta cuando se establece como false. | Booleano | No | true | N/A | No es compatible con Windows. | 

**Ejemplo de entrada: cómo establecer la propiedad del propietario de la carpeta sin especificar el nombre del grupo de usuarios**

```
  - name: SettingFolderPropertyWithOutGroup
    action: SetFolderOwner
    inputs:
      - path: /SampleFolder/
        owner: LinuxUser
```

**Ejemplo de entrada: cómo establecer la propiedad del propietario de la carpeta sin anular la propiedad de todo el contenido de una carpeta**

```
  - name: SettingFolderPropertyWithOutRecursively
    action: SetFolderOwner
    inputs:
      - path: /SampleFolder/
        owner: LinuxUser
        recursive: false
```

**Ejemplo de entrada: cómo establecer la propiedad del propietario del archivo especificando el nombre del grupo de usuarios**

```
  - name: SettingFolderPropertyWithGroup
    action: SetFolderOwner
    inputs:
      - path: /SampleFolder/
        owner: LinuxUser
        group: LinuxUserGroup
```

**Output**  
Ninguna.

### SetFilePermissions (Linux, Windows, macOS)
<a name="action-modules-setfilepermissions"></a>

El módulo de **SetFilePermissions**acción modifica el `permissions` de un archivo existente. Este módulo no es compatible con las plataformas Windows. 

La entrada para `permissions` debe ser un valor de cadena.

Este módulo de acción puede crear un archivo con los permisos definidos por el valor umask predeterminado del sistema operativo. Debe establecer el valor `umask` si quiere anular el valor predeterminado.

El módulo de acción devuelve un error cuando ocurre lo siguiente:
+ No tiene permiso para realizar la modificación especificada.
+ El archivo no existe en el tiempo de ejecución.
+ El módulo de acción detecta un error al realizar la operación.


**Input**  

| Nombre de la clave | Description (Descripción) | Tipo | Obligatorio/a | Predeterminado | Valores aceptables | Compatible con todas las plataformas | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | La ruta del archivo. | Cadena | Sí | N/A | N/A | No es compatible con Windows. | 
| permissions | Permisos de archivos. | Cadena | Sí | N/A | N/A | No es compatible con Windows. | 

**Ejemplo de entrada: modificación de los permisos de los archivos**

```
  - name: ModifyingFilePermissions
    action: SetFilePermissions
    inputs:
      - path: /home/UserName/SampleFile.txt
        permissions: 766
```

**Output**  
Ninguna.

### SetFolderPermissions (Linux, Windows, macOS)
<a name="action-modules-setfolderpermissions"></a>

El módulo de **SetFolderPermissions**acción modifica de forma recursiva `permissions` la carpeta existente y todos sus subarchivos y subcarpetas. De forma predeterminada, este módulo puede modificar los permisos para todo el contenido de la carpeta especificada. Para omitir este comportamiento, se puede configurar la opción `recursive` como `false`. Este módulo no es compatible con las plataformas Windows. 

La entrada para `permissions` debe ser un valor de cadena. 

Este módulo de acción puede modificar los permisos según el valor de umask predeterminado del sistema operativo. Debe establecer el valor `umask` si quiere anular el valor predeterminado.

El módulo de acción devuelve un error cuando ocurre lo siguiente:
+ No tiene permiso para realizar la modificación especificada.
+ La carpeta no existe en el tiempo de ejecución.
+ El módulo de acción detecta un error al realizar la operación.


**Input**  

| Nombre de la clave | Description (Descripción) | Tipo | Obligatorio/a | Predeterminado | Valores aceptables | Compatible con todas las plataformas | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | La ruta de la carpeta. | Cadena | Sí | N/A | N/A | No es compatible con Windows. | 
| permissions | Permisos para carpetas. | Cadena | Sí | N/A | N/A | No es compatible con Windows. | 
| recursive | Anula el comportamiento predeterminado de modificar los permisos de todo el contenido de una carpeta cuando se establece como false. | Booleano | No | true | N/A | No es compatible con Windows. | 

**Ejemplo de entrada: establecimiento de permisos de carpeta**

```
  - name: SettingFolderPermissions
    action: SetFolderPermissions
    inputs:
      - path: SampleFolder/
        permissions: 0777
```

**Ejemplo de entrada: cómo establecer los permisos de una carpeta sin modificar los permisos para todo el contenido de una carpeta**

```
  - name: SettingFolderPermissionsNoRecursive
    action: SetFolderPermissions
    inputs:
      - path: /home/UserName/SampleFolder/
        permissions: 777
        recursive: false
```

**Output**  
Ninguna.

## Acciones de instalación de software
<a name="action-modules-software-install-actions"></a>

En la siguiente sección se describen los módulos de acción que instalan o desinstalan software.

**Requisitos de IAM**  
Si la ruta de descarga de la instalación es un URI de S3, el rol de IAM que asocie al perfil de instancia debe tener permiso para ejecutar el módulo de acción `S3Download`. Para conceder el permiso necesario, adjunte la política de IAM `S3:GetObject` al rol de IAM asociado a su perfil de instancia y especifique la ruta de acceso a su bucket. Por ejemplo, `arn:aws:s3:::BucketName/*`).

**Entradas MSI complejas**  
Si las cadenas de entrada contienen caracteres entre comillas dobles (`"`), debe utilizar uno de los siguientes métodos para asegurarse de que se interpretan correctamente:
+ Puede utilizar comillas simples (') en la parte exterior de la cadena para contenerla y comillas dobles (") dentro de la cadena, como se muestra en el siguiente ejemplo.

  ```
  properties:
    COMPANYNAME: '"Acme ""Widgets"" and ""Gizmos."""'
  ```

  En este caso, si necesita usar un apóstrofo dentro de la cadena, debe evitarlo. Esto significa usar otra comilla simple (') antes del apóstrofo.
+ Puede usar comillas dobles (") en la parte exterior de la cadena para contenerla. Además, puede evitar las comillas dobles que haya dentro de la cadena utilizando el carácter de barra invertida (`\`), como se muestra en el siguiente ejemplo.

  ```
  properties:
    COMPANYNAME: "\"Acme \"\"Widgets\"\" and \"\"Gizmos.\"\"\""
  ```

Ambos métodos pasan el valor `COMPANYNAME="Acme ""Widgets"" and ""Gizmos."""` al comando **msiexec**.

**Topics**
+ [InstallMSI (Windows)](#action-modules-install-msi)
+ [UninstallMSI (Windows)](#action-modules-uninstall-msi)

### InstallMSI (Windows)
<a name="action-modules-install-msi"></a>

El módulo de acción `InstallMSI` instala una aplicación de Windows mediante un archivo MSI. Puede especificar el archivo MSI mediante una ruta local, un URI de objeto S3 o una URL web. La opción de reinicio configura el comportamiento de reinicio del sistema.

TOE de AWS genera el **msiexec** comando en función de los parámetros de entrada del módulo de acción. Los valores de los parámetros de entrada `path` (ubicación del archivo MSI) y `logFile` (ubicación del archivo de registro) deben escribirse entre comillas (").

Los siguientes códigos de salida MSI se consideran correctos:
+ 0 (Success)
+ 1614 (ERROR\$1PRODUCT\$1UNINSTALLED)
+ 1641 (reinicio iniciado)
+ 3010 (es necesario reiniciar)


**Input**  

| Nombre de la clave | Description (Descripción) | Tipo | Obligatorio/a | Predeterminado | Valores aceptables | 
| --- | --- | --- | --- | --- | --- | 
| path |  Especifique la ubicación del archivo MSI, usando una de las siguientes opciones: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/imagebuilder/latest/userguide/toe-action-modules.html) Se permite el encadenamiento de expresiones.  | Cadena | Sí | N/A | N/A | 
| reboot |  Configure el comportamiento de reinicio del sistema después de que el módulo de acción se ejecute correctamente. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/imagebuilder/latest/userguide/toe-action-modules.html)  | Cadena | No | Allow | Allow, Force, Skip | 
| logOptions |  Especifique las opciones que se van a utilizar para el registro de la instalación de MSI. Los indicadores especificados se pasan al instalador de MSI, junto con el parámetro de línea de comandos `/L` para habilitar el registro. Si no se especifica ningún indicador, TOE de AWS utiliza el valor predeterminado. Para obtener más información acerca de opciones de registro MSI, consulte [Opciones de línea de comandos](https://learn.microsoft.com/en-us/windows/win32/msi/command-line-options) en la documentación de del producto *Windows Installer* Microsoft.  | Cadena | No | \$1VX | i,w,e,a,r,u,c,m,o,p,v,x,\$1,\$1,\$1 | 
| logFile |  Una ruta absoluta o relativa a la ubicación del archivo de registro. Si la ruta del archivo de registro no existe, créela. Si no se proporciona la ruta del archivo de registro, TOE de AWS no almacena el registro de instalación de MSI.  | Cadena | No | N/A | N/A | 
| properties |  Los pares clave-valor de las propiedades de registro MSI, por ejemplo, `TARGETDIR: "C:\target\location"`   Nota: No se permite la modificación de las siguientes propiedades: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/imagebuilder/latest/userguide/toe-action-modules.html)  | Map[String]String | No | N/A | N/A | 
| ignoreAuthenticodeSignatureErrors |  Marcador para ignorar los errores de validación de la firma de Authenticode para el instalador especificado en la ruta. El comando **Get-AuthenticodeSignature** se utiliza para validar los instaladores. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/imagebuilder/latest/userguide/toe-action-modules.html)  | Booleano | No | false | true, false | 
| allowUnsignedInstaller |  Marca que permite ejecutar el instalador sin firma especificado en la ruta. El comando **Get-AuthenticodeSignature** se utiliza para validar los instaladores. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/imagebuilder/latest/userguide/toe-action-modules.html)  | Booleano | No | false | true, false | 

**Ejemplos**  
Los ejemplos siguientes muestran variaciones de la sección de entrada de su documento de componentes, en función de la ruta de instalación.

**Ejemplo de entrada: instalación de la ruta del documento 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
```

**Ejemplo de entrada: instalación de la ruta 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
```

**Ejemplo de entrada: instalación de una ruta 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**  
Véase a continuación un ejemplo de la salida del módulo de acción `InstallMSI`.

```
{
	"logFile": "web-path-install.log",
	"msiExitCode": 0,
	"stdout": ""
}
```

### UninstallMSI (Windows)
<a name="action-modules-uninstall-msi"></a>

Este módulo de acción `UninstallMSI` le permite desinstalar una aplicación de Windows utilizando un archivo MSI. Puede especificar la ubicación del archivo MSI mediante una ruta de archivo local, un URI de objeto S3 o una URL web. La opción de reinicio configura el comportamiento de reinicio del sistema.

TOE de AWS genera el **msiexec** comando en función de los parámetros de entrada del módulo de acción. La ubicación del archivo MSI (`path`) y la ubicación del archivo de registro (`logFile`) se escriben explícitamente entre comillas dobles (") al generar el comando **msiexec**.

Los siguientes códigos de salida MSI se consideran correctos:
+ 0 (Success)
+ 1605 (ERROR\$1UNKNOWN\$1PRODUCT)
+ 1614 (ERROR\$1PRODUCT\$1UNINSTALLED)
+ 1641 (reinicio iniciado)
+ 3010 (es necesario reiniciar)


**Input**  

| Nombre de la clave | Description (Descripción) | Tipo | Obligatorio/a | Predeterminado | Valores aceptables | 
| --- | --- | --- | --- | --- | --- | 
| path |  Especifique la ubicación del archivo MSI, usando una de las siguientes opciones: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/imagebuilder/latest/userguide/toe-action-modules.html) Se permite el encadenamiento de expresiones.  | Cadena | Sí | N/A | N/A | 
| reboot |  Configura el comportamiento de reinicio del sistema después de que el módulo de acción se ejecute correctamente. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/imagebuilder/latest/userguide/toe-action-modules.html)  | Cadena | No | Allow | Allow, Force, Skip | 
| logOptions |  Especifique las opciones que se van a utilizar para el registro de la instalación de MSI. Los indicadores especificados se pasan al instalador de MSI, junto con el parámetro de línea de comandos `/L` para habilitar el registro. Si no se especifica ningún indicador, TOE de AWS utiliza el valor predeterminado. Para obtener más información acerca de opciones de registro MSI, consulte [Opciones de línea de comandos](https://docs.microsoft.com/en-us/windows/win32/msi/command-line-options) en la documentación de del producto *Windows Installer* Microsoft.  | Cadena | No | \$1VX | i,w,e,a,r,u,c,m,o,p,v,x,\$1,\$1,\$1 | 
| logFile |  Una ruta absoluta o relativa a la ubicación del archivo de registro. Si la ruta del archivo de registro no existe, créela. Si no se proporciona la ruta del archivo de registro, TOE de AWS no almacena el registro de instalación de MSI.  | Cadena | No | N/A | N/A | 
| properties |  Los pares clave-valor de las propiedades de registro MSI, por ejemplo, `TARGETDIR: "C:\target\location"`   Nota: No se permite la modificación de las siguientes propiedades: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/imagebuilder/latest/userguide/toe-action-modules.html)  | Map[String]String | No | N/A | N/A | 
| ignoreAuthenticodeSignatureErrors |  Marcador para ignorar los errores de validación de la firma de Authenticode para el instalador especificado en la ruta. El comando **Get-AuthenticodeSignature** se utiliza para validar los instaladores. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/imagebuilder/latest/userguide/toe-action-modules.html)  | Booleano | No | false | true, false | 
| allowUnsignedInstaller |  Marca que permite ejecutar el instalador sin firma especificado en la ruta. El comando **Get-AuthenticodeSignature** se utiliza para validar los instaladores. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/imagebuilder/latest/userguide/toe-action-modules.html)  | Booleano | No | false | true, false | 

**Ejemplos**  
Los ejemplos siguientes muestran variaciones de la sección de entrada de su documento de componentes, en función de la ruta de instalación.

**Ejemplo de entrada: eliminación de la instalación de la ruta del documento 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
```

**Ejemplo de entrada: eliminación de la instalación de la ruta 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
```

**Ejemplo de entrada: eliminación de la instalación de una ruta 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**  
Véase a continuación un ejemplo de la salida del módulo de acción `UninstallMSI`.

```
{
	"logFile": "web-path-uninstall.log",
	"msiExitCode": 0,
	"stdout": ""
}
```

## Módulos de acción del sistema
<a name="action-modules-system-actions"></a>

En la siguiente sección se describen los módulos de acción que ejecutan acciones del sistema o actualizan la configuración del sistema.

**Topics**
+ [Reboot (Linux, Windows)](#action-modules-reboot)
+ [SetRegistry (Windows)](#action-modules-setregistry)
+ [UpdateOS (Linux, Windows)](#action-modules-updateos)

### Reboot (Linux, Windows)
<a name="action-modules-reboot"></a>

El módulo de acción **Reboot** reinicia la instancia. Tiene una opción configurable para retrasar el inicio del reinicio. De forma predeterminada, `delaySeconds` está configurada como `0`, lo que significa que no hay ningún retraso. El tiempo de espera por pasos no es compatible con el módulo de acción de reinicio, ya que no se aplica cuando se reinicia la instancia.

Si Systems Manager Agent invoca la aplicación, entrega el código de salida (`3010` para Windows o `194` Linux) a Systems Manager Agent. Systems Manager Agent gestiona el reinicio del sistema tal y como se describe en [Reiniciar una instancia gestionada desde scripts](https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-reboot.html).

Si la aplicación se invoca en el host como un proceso independiente, guarda el estado de ejecución actual, configura un activador de ejecución automática posterior al reinicio para volver a ejecutar la aplicación después del reinicio y, a continuación, reinicia el sistema.

**Activador de ejecución automática posterior al reinicio:**
+ **Windows.** TOE de AWS crea una entrada del programador de tareas de Windows con un activador que se ejecuta automáticamente en `SystemStartup`
+ **Linux.** TOE de AWS agrega un trabajo en crontab que se ejecuta automáticamente después de que el sistema se reinicie.

```
@reboot /download/path/awstoe run --document s3://bucket/key/doc.yaml
```

Este activador se borra cuando se inicia la aplicación.

**Reintentos**  
De forma predeterminada, el número máximo de reintentos se establece en `CommandRetryLimit` de Systems Manager. Si el número de reinicios supera el límite de reintentos, se produce un error en la automatización. Para cambiar el límite, puede editar el archivo de configuración del agente de Systems Manager (`Mds.CommandRetryLimit`). Consulte [Runtime Configuration](https://github.com/aws/amazon-ssm-agent/blob/mainline/README.md#runtime-configuration) en el código abierto del agente de Systems Manager.

Para utilizar el módulo de acción **reinicio**, para los pasos que contienen el reinicio `exitcode` (por ejemplo, `3010`), debe ejecutar la aplicación binaria como `sudo user`.


**Input**  

| Nombre de la clave | Description (Descripción) | Tipo | Obligatorio/a | Predeterminado | 
| --- | --- | --- | --- | --- | 
| delaySeconds | Retrasa un tiempo específico antes de iniciar un reinicio. | Entero |  No  |  `0`  | 

**Ejemplo de entrada: paso de reinicio**

```
  - name: RebootStep
    action: Reboot
    onFailure: Abort
    maxAttempts: 2
    inputs:
      delaySeconds: 60
```

**Salida**

Ninguna.

Cuando finalice el módulo **Reboot**, Generador de Imágenes continúa con el siguiente paso de la compilación.

### SetRegistry (Windows)
<a name="action-modules-setregistry"></a>

El módulo de **SetRegistry**acción acepta una lista de entradas y permite establecer el valor de la clave de registro especificada. Si no existe una clave de registro, se crea en la ruta definida. Esta característica solo se aplica a los clientes de Windows.


**Input**  

| Nombre de la clave | Description (Descripción) | Tipo | Obligatorio/a | 
| --- | --- | --- | --- | 
| path | Ruta de la clave de registro. | Cadena | Sí | 
| name | Nombre de la clave de registro. | Cadena | Sí | 
| value | Valor de la clave de registro. | String/Number/Array | Sí | 
| type | Valor de la clave de registro. | Cadena | Sí | 

**Prefijos de ruta admitidos**
+ `HKEY_CLASSES_ROOT / HKCR:`
+ `HKEY_USERS / HKU:`
+ `HKEY_LOCAL_MACHINE / HKLM:`
+ `HKEY_CURRENT_CONFIG / HKCC:`
+ `HKEY_CURRENT_USER / HKCU:`

**Tipos admitidos**
+ `BINARY`
+ `DWORD`
+ `QWORD`
+ `SZ`
+ `EXPAND_SZ`
+ `MULTI_SZ`

**Ejemplo de entrada: cómo establecer los valores de las claves de registro**

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

**Salida**

Ninguna.

### UpdateOS (Linux, Windows)
<a name="action-modules-updateos"></a>

El módulo de acción **UpdateOS** añade soporte para instalar actualizaciones de Windows y Linux. Instala todas las actualizaciones disponibles de forma predeterminada. Como alternativa, puede configurar una lista de una o más actualizaciones específicas para que las instale el módulo de acción. También puede especificar las actualizaciones para excluirlas de la instalación.

Si se proporcionan listas de "incluir" y "excluir", la lista de actualizaciones resultante solo podrá incluir las incluidas en la lista de "inclusión" que no estén incluidas en la lista de "excluidas".

**nota**  
**UpdateOS** no es compatible con Amazon Linux 2023 (AL2023). Le recomendamos que actualice la AMI base a la nueva versión que viene con cada versión. Para ver otras alternativas, consulte [Controlar las actualizaciones recibidas de las versiones principales y secundarias](https://docs.aws.amazon.com/linux/al2023/ug/deterministic-upgrades.html#controlling-release-updates) en la *Guía del usuario de Amazon Linux 2023*.
+ **Windows**. Las actualizaciones se instalan desde la fuente de actualización configurada en la máquina de destino.
+ **Linux**. La aplicación busca el administrador de paquetes compatible en la plataforma Linux y utiliza un administrador de paquetes `yum` o `apt-get`. Si ninguna de las opciones es compatible, se devuelve un error. Debe tener permisos `sudo` para ejecutar el módulo de acción **UpdateOS**. Si no tiene permisos `sudo` se devuelve un `error.Input`.


**Input**  

| Nombre de la clave | Description (Descripción) | Tipo | Obligatorio/a | 
| --- | --- | --- | --- | 
| include |  Para Windows puede especificar lo siguiente: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/imagebuilder/latest/userguide/toe-action-modules.html) Para Linux, puede especificar uno o más paquetes para incluirlos en la lista de actualizaciones para su instalación.  | Lista de cadenas | No | 
| exclude |  Para Windows puede especificar lo siguiente: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/imagebuilder/latest/userguide/toe-action-modules.html) Para Linux, puede especificar uno o más paquetes para incluirlos en la lista de actualizaciones para su instalación.  | Lista de cadenas | No | 

**Ejemplo de entrada: cómo añadir soporte para instalar actualizaciones de Linux**

```
  - name: UpdateMyLinux
    action: UpdateOS
    onFailure: Abort
    maxAttempts: 3
    inputs:
      exclude:
        - ec2-hibinit-agent
```

**Ejemplo de entrada: cómo añadir soporte para instalar actualizaciones de Windows**

```
  - name: UpdateWindowsOperatingSystem
    action: UpdateOS
    onFailure: Abort
    maxAttempts: 3
    inputs:
      include:
        - KB1234567
        - '*Security*'
```

**Salida**

Ninguna.

# Configurar la entrada para el comando TOE de AWS run
<a name="toe-run-config-input"></a>

Para agilizar la introducción de los comandos desde la línea de TOE de AWS **run** comandos, puede incluir los ajustes de los parámetros y las opciones de los comandos en un archivo de configuración de entrada en formato JSON con una extensión de `.json` archivo. TOE de AWS puede leer el archivo desde una de las siguientes ubicaciones:
+ Una ruta de archivo local (*./config.json*).
+ Un bucket de S3 (*s3://<bucket-path>/<bucket-name>/config.json*).

Cuando introduce el comando **run**, puede especificar el archivo de configuración de entrada mediante el parámetro **--config**. Por ejemplo:

```
awstoe run --config <file-path>/config.json
```

**Archivo de configuración de entrada**  
El archivo JSON de configuración de entrada incluye pares clave-valor para todos los ajustes que puede proporcionar directamente a través de los parámetros y las opciones de los comandos **run**. Si especifica un ajuste tanto en el archivo de configuración de entrada como en el comando **run**, como parámetro u opción, se aplicarán las siguientes reglas de prioridad:

**Reglas de prioridad**

1. Un ajuste que se proporciona directamente al **run** comando en el AWS CLI, mediante un parámetro o una opción, anula cualquier valor que esté definido en el archivo de configuración de entrada para el mismo ajuste.

1. Un parámetro del archivo de configuración de entrada anula el valor predeterminado de un componente.

1. Si no se pasa ninguna otra configuración al documento del componente, se puede aplicar un valor por defecto, si lo hay.

Hay dos excepciones a esta regla: los documentos y los parámetros. Estos ajustes funcionan de forma diferente en la configuración de entrada y como parámetros de comando. Si utiliza el archivo de configuración de entrada, no debe especificar estos parámetros directamente en el comando **run**. Si lo hace, se generará un error.

**Ajustes de los componentes**  
El archivo de configuración de entrada contiene los siguientes ajustes. Para simplificar el archivo, puede omitir cualquier configuración opcional que no sea necesaria. Todos los ajustes son opcionales, a menos que se indique lo contrario.
+ **cwIgnoreFailures**(Booleano): ignore los errores de registro de los registros. CloudWatch 
+ **cwLogGroup**(String): el `LogGroup` nombre de los CloudWatch registros.
+ **cwLogRegion**(Cadena): la AWS región que se aplica a los CloudWatch registros.
+ **cwLogStream**(Cadena): el `LogStream` nombre de los CloudWatch registros, que indica TOE de AWS dónde se debe transmitir el `console.log` archivo.
+ **DocumentS3 BucketOwner** (String): el ID de cuenta del propietario del bucket para los documentos basados en URI de S3.
+ **documentos** (conjunto de objetos, obligatorio): conjunto de objetos JSON que representa los documentos del componente YAML que ejecuta el TOE de AWS **run** comando. Debe especificarse al menos un documento componente.

  Cada objeto consiste en los siguientes campos:
  + **Ruta** (cadena, obligatoria): la ubicación del archivo del documento del componente YAML. Este debe ser uno de los siguientes:
    + Una ruta de archivo local (*./component-doc-example.yaml*).
    + Un URI de S3 (`s3://bucket/key`).
    + Un componente de Image Builder compiló la versión ARN (arn:aws:imagebuilder:us-west-:component/ /2021.12.02/1). *2:123456789012* *my-example-component*
  + **Parámetros** (matriz de objetos): matriz de objetos de pares clave-valor, cada uno de los cuales representa un parámetro específico del componente que el comando **run** transfiere al ejecutar el documento del componente. Los parámetros son opcionales para los componentes. El documento componente puede o no tener parámetros definidos.

    Cada objeto consiste en los siguientes campos:
    + **Nombre** (cadena, obligatorio): el nombre del parámetro del componente.
    + **Valor** (cadena, obligatorio): el valor que se va a transferir al documento del componente para el parámetro nombrado.

    Para obtener más información sobre los parámetros de los componentes, consulte la sección **Parámetros** de la página [Uso de variables en su documento de componentes personalizados](toe-user-defined-variables.md).
+ **executonID** (cadena): este es el identificador único que se aplica a la ejecución del comando **run** actual. Este identificador se incluye en los nombres de los archivos de salida y de registro para identificarlos de forma exclusiva y vincularlos a la ejecución del comando actual. Si se omite TOE de AWS esta configuración, genera un GUID.
+ **LogDirectory** (String): el directorio de destino donde se TOE de AWS almacenan todos los archivos de registro de la ejecución de este comando. De forma predeterminada, este directorio está ubicado en el siguiente directorio principal: `TOE_<DATETIME>_<EXECUTIONID>`. Si no especifica el directorio de registro, TOE de AWS utiliza el directorio de trabajo actual (`.`).
+ **LogS3 BucketName** (String): si los registros de los componentes están almacenados en Amazon S3 (recomendado), TOE de AWS carga los registros de las aplicaciones de los componentes en el bucket de S3 mencionado en este parámetro.
+ **LogS3 BucketOwner** (String): si los registros de los componentes se almacenan en Amazon S3 (recomendado), este es el ID de cuenta propietario del depósito donde se TOE de AWS escriben los archivos de registro.
+ **LogS3 KeyPrefix** (String): si los registros de los componentes se almacenan en Amazon S3 (recomendado), este es el prefijo de clave de objeto S3 para la ubicación del registro en el bucket.
+ **Parámetros** (matriz de objetos): una matriz de objetos de pares clave-valor que representan parámetros que se aplican globalmente a todos los componentes que se incluyen en la ejecución del comando **run** actual.
  + **Nombre** (cadena, obligatorio): el nombre del parámetro global.
  + **Valor** (cadena, obligatorio): el valor que se va a transferir a todos los documentos de componentes del parámetro nombrado.
+ **Fases** (cadena): una lista separada por comas que especifica qué fases se van a ejecutar desde los documentos de componentes de YAML. Si un documento de componentes incluye fases adicionales, no se ejecutarán.
+ **StateDirectory** (cadena): la ruta del archivo donde se almacenan los archivos de seguimiento de estado.
+ **Huella** (booleano): permite el registro detallado en la consola.

**Ejemplos**  
El siguiente ejemplo muestra un archivo de configuración de entrada que ejecuta las fases `build` y `test` de dos documentos componentes: `sampledoc.yaml` y `conversation-intro.yaml`. Cada documento componente tiene un parámetro que se aplica solo a sí mismo y ambos utilizan un parámetro compartido. El parámetro `project` se aplica a ambos documentos componentes.

```
{
   "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>"
 }
```