

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.

# Con AWS CloudFormation Guard figuración
<a name="setting-up"></a>

AWS CloudFormation Guard es una interfaz de línea de comandos (CLI) de código abierto. Le proporciona un lenguaje simple y específico para cada dominio para escribir reglas de políticas y validar sus datos jerárquicos estructurados de JSON y YAML con arreglo a esas reglas. Las reglas pueden representar las directrices políticas de la empresa relacionadas con la seguridad, el cumplimiento y más. Los datos jerárquicos estructurados pueden representar una infraestructura de nube descrita como código. Por ejemplo, puede crear reglas para garantizar que siempre modelen los buckets cifrados de Amazon Simple Storage Service (Amazon S3) en sus plantillas. CloudFormation 

En los temas siguientes se proporciona información sobre cómo instalar Guard utilizando el sistema operativo o como una AWS Lambda función que haya elegido.

**Topics**
+ [Instalación de Guard para Linux y macOS](setting-up-linux.md)
+ [Instalación de Guard para Windows](setting-up-windows.md)
+ [Instalación de Guard como AWS Lambda función](setting-up-lambda.md)

# Instalación de Guard para Linux y macOS
<a name="setting-up-linux"></a>

Puedes realizar la instalación AWS CloudFormation Guard para Linux y macOS mediante la versión binaria prediseñada, Cargo, o mediante Homebrew.

## Instala Guard desde una versión binaria prediseñada
<a name="install-pre-built-binaries"></a>

Utilice el siguiente procedimiento para instalar Guard desde un archivo binario prediseñado.

1. Abre una terminal y ejecuta el siguiente comando.

   ```
   curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/aws-cloudformation/cloudformation-guard/main/install-guard.sh | sh
   ```

1. Ejecute el siguiente comando para configurar la `PATH` variable.

   ```
   export PATH=~/.guard/bin:$PATH
   ```

   *Resultados:* Ha instalado correctamente Guard y ha establecido la `PATH` variable.

   1. (Opcional) Para confirmar la instalación de Guard, ejecute el siguiente comando.

     ```
     cfn-guard --version
     ```

     El comando devuelve el resultado siguiente.

     ```
     cfn-guard 3.1.2
     ```

## Instale Guard from Cargo
<a name="install-guard-from-cargo"></a>

Cargo es el administrador de paquetes de Rust. Complete los siguientes pasos para instalar Rust, que incluye Cargo. A continuación, instale Guard from Cargo.

1. Ejecute el siguiente comando desde una terminal y siga las instrucciones que aparecen en pantalla para instalar Rust.

   ```
   curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
   ```

   1. (Opcional) Para entornos Ubuntu, ejecuta el siguiente comando.

     ```
     sudo apt-get update; sudo apt install build-essential
     ```

1. Configure la variable de `PATH` entorno y ejecute el siguiente comando.

   ```
   source $HOME/.cargo/env
   ```

1. Con Cargo instalado, ejecute el siguiente comando para instalar Guard.

   ```
   cargo install cfn-guard
   ```

   *Resultados*: Ha instalado Guard correctamente.

   1. (Opcional) Para confirmar la instalación de Guard, ejecute el siguiente comando.

     ```
     cfn-guard --version
     ```

     El comando devuelve el resultado siguiente.

     ```
     cfn-guard 3.1.2
     ```

## Instale Guard desde Homebrew
<a name="install-guard-from-homebrew"></a>

Homebrew es un administrador de paquetes para macOS y Linux. Complete los siguientes pasos para instalar Homebrew. Luego, instala Guard desde Homebrew.

1. Ejecute el siguiente comando desde una terminal y siga las instrucciones que aparecen en pantalla para instalar Homebrew.

   ```
   /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
   ```

1. Con Homebrew instalado, ejecuta el siguiente comando para instalar Guard.

   ```
   brew install cloudformation-guard
   ```

   *Resultados*: Ha instalado Guard correctamente.

   1. (Opcional) Para confirmar la instalación de Guard, ejecute el siguiente comando.

     ```
     cfn-guard --version
     ```

     El comando devuelve el resultado siguiente.

     ```
     cfn-guard 3.1.2
     ```

# Instalación de Guard para Windows
<a name="setting-up-windows"></a>

Puede realizar la instalación AWS CloudFormation Guard para Windows mediante Cargo o Chocolatey.

## Requisitos previos
<a name="w2aab8c16b5"></a>

Para compilar Guard desde la interfaz de línea de comandos, debe instalar las herramientas de compilación para Visual Studio 2019.

1. Descargue las herramientas de compilación de Microsoft Visual C\$1\$1 desde el sitio web [Build Tools for Visual Studio 2019](https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2019).

1. Ejecute el instalador y seleccione los valores predeterminados.

## Instale Guard from Cargo
<a name="install-guard-from-cargo"></a>

Cargo es el administrador de paquetes de Rust. Complete los siguientes pasos para instalar Rust, que incluye Cargo. A continuación, instale Guard from Cargo.

1. [Descargue Rust](https://forge.rust-lang.org/infra/other-installation-methods.html#other-ways-to-install-rustup) y, a continuación, ejecute **rustup-init.exe**.

1. En la línea de comandos, selecciona **1**, que es la opción predeterminada.

   El comando devuelve el resultado siguiente.

   ```
   Rust is installed now. Great!
       
       To get started you may need to restart your current shell.
       This would reload its PATH environment variable to include
       Cargo's bin directory (%USERPROFILE%\.cargo\bin).
       
       Press the Enter key to continue.
   ```

1. Para finalizar la instalación, pulse la tecla **Enter**.

1. Con Cargo instalado, ejecute el siguiente comando para instalar Guard.

   ```
   cargo install cfn-guard
   ```

   *Resultados*: Ha instalado Guard correctamente.

   1. (Opcional) Para confirmar la instalación de Guard, ejecute el siguiente comando.

     ```
     cfn-guard --version
     ```

     El comando devuelve el resultado siguiente.

     ```
     cfn-guard 3.1.2
     ```

## Instale Guard desde Chocolatey
<a name="install-guard-from-chocolatey"></a>

Chocolatey es un administrador de paquetes para Windows. Complete los siguientes pasos para instalar Chocolatey. A continuación, instale Guard from Chocolatey.

1. [Siga esta guía para instalar Chocolatey](https://chocolatey.org/install)

1. Con Chocolatey instalado, ejecute el siguiente comando para instalar Guard.

   ```
   choco install cloudformation-guard
   ```

   *Resultados*: Ha instalado Guard correctamente.

   1. (Opcional) Para confirmar la instalación de Guard, ejecute el siguiente comando.

     ```
     cfn-guard --version
     ```

     El comando devuelve el resultado siguiente.

     ```
     cfn-guard 3.1.2
     ```

# Instalación de Guard como AWS Lambda función
<a name="setting-up-lambda"></a>

Puede instalarlo AWS CloudFormation Guard a través de Cargo, el administrador de paquetes de Rust. *Guard as an AWS Lambda* function (`cfn-guard-lambda`) es un envoltorio ligero alrededor de Guard (`cfn-guard`) que se puede utilizar como una función Lambda.

## Requisitos previos
<a name="guard-as-lambda-prerequisites"></a>

Antes de poder instalar Guard como una función de Lambda, debe cumplir los siguientes requisitos previos:
+ AWS Command Line Interface (AWS CLI) configurado con permisos para implementar e invocar funciones Lambda. Para obtener más información, consulte [Configuración de la AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html).
+ Una función AWS Lambda de ejecución en AWS Identity and Access Management (IAM). Para obtener más información, consulte [función AWS Lambda de ejecución](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html).
+ En CentOS/RHEL los entornos, agrega el repositorio de `musl-libc` paquetes a tu configuración de yum. Para obtener más información, consulta [ngompa/musl-libc](https://copr.fedorainfracloud.org/coprs/ngompa/musl-libc/).

## Instale el administrador de paquetes Rust
<a name="install-rust-and-cargo"></a>

Cargo es el administrador de paquetes de Rust. Complete los siguientes pasos para instalar Rust, que incluye Cargo.

1. Ejecute el siguiente comando desde una terminal y, a continuación, siga las instrucciones que aparecen en pantalla para instalar Rust.

   ```
   curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
   ```

   1. (Opcional) Para entornos Ubuntu, ejecuta el siguiente comando.

     ```
     sudo apt-get update; sudo apt install build-essential
     ```

1. Configure la variable de `PATH` entorno y ejecute el siguiente comando.

   ```
   source $HOME/.cargo/env
   ```

## Instalar Guard como una función Lambda (Linux, macOS o Unix)
<a name="to-isntall-guard-as-a-lambda"></a>

Para instalar Guard como una función Lambda, complete los siguientes pasos.

1. Desde su terminal de comandos, ejecute el siguiente comando.

   ```
   cargo install cfn-guard-lambda
   ```

   1. (Opcional) Para confirmar la instalación de Guard como función Lambda, ejecute el siguiente comando.

     ```
     cfn-guard-lambda --version
     ```

     El comando devuelve el resultado siguiente.

     ```
     cfn-guard-lambda 3.1.2
     ```

1. Para instalar el `musl` soporte, ejecute el siguiente comando.

   ```
   rustup target add x86_64-unknown-linux-musl
   ```

1. Compile con `musl` el siguiente comando y, a continuación, ejecútelo en su terminal.

   ```
   cargo build --release --target x86_64-unknown-linux-musl
   ```

   Para un [tiempo de ejecución personalizado](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-custom.html), AWS Lambda requiere un ejecutable con el nombre del `bootstrap` archivo .zip del paquete de implementación. Cambie el nombre del `cfn-lambda` ejecutable generado a `bootstrap` y, a continuación, agréguelo al archivo.zip.

   1. Para entornos macOS, cree su archivo de configuración de carga en la raíz del proyecto Rust o en`~/.cargo/config`.

     ```
     [target.x86_64-unknown-linux-musl]
     linker = "x86_64-linux-musl-gcc"
     ```

1. Cambia al directorio `cfn-guard-lambda` raíz.

   ```
   cd ~/.cargo/bin/cfn-guard-lambda
   ```

1. Ejecute el siguiente comando en su terminal.

   ```
   cp ./../target/x86_64-unknown-linux-musl/release/cfn-guard-lambda ./bootstrap && zip lambda.zip bootstrap && rm bootstrap
   ```

1. Ejecute el siguiente comando para enviarlo `cfn-guard` como una función Lambda a su cuenta.

   ```
   aws lambda create-function --function-name cfnGuard \
    --handler guard.handler \
    --zip-file fileb://./lambda.zip \
    --runtime provided \
    --role arn:aws:iam::444455556666:role/your_lambda_execution_role \
    --environment Variables={RUST_BACKTRACE=1} \
    --tracing-config Mode=Active
   ```

## Para crear y ejecutar Guard como una función Lambda
<a name="build-and-run-lambda"></a>

Para invocar la función enviada `cfn-guard-lambda` como una función Lambda, ejecute el siguiente comando.

```
aws lambda invoke --function-name cfnGuard \
  --payload '{"data":"input data","rules":["rule1","rule2"]}' \
  output.json
```

## Para llamar a la estructura de solicitudes de funciones Lambda
<a name="calling-the-lambda-function"></a>

Solicita que se `cfn-guard-lambda` requieran los siguientes campos:
+ `data`— La versión en cadena de la plantilla YAML o JSON
+ `rules`— La versión en cadena del archivo del conjunto de reglas