

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Conf AWS CloudFormation Guard iguração
<a name="setting-up"></a>

AWS CloudFormation Guard é uma interface de linha de comando (CLI) de código aberto. Ele fornece uma linguagem simples e específica de domínio para escrever regras de política e validar seus dados JSON e YAML hierárquicos estruturados em relação a essas regras. As regras podem representar as diretrizes da política da empresa relacionadas à segurança, conformidade e muito mais. Os dados hierárquicos estruturados podem representar a infraestrutura em nuvem descrita como código. Por exemplo, você pode criar regras para garantir que elas sempre modelem buckets criptografados do Amazon Simple Storage Service (Amazon S3) em seus modelos. CloudFormation 

Os tópicos a seguir fornecem informações sobre como instalar o Guard usando o sistema operacional escolhido ou como uma AWS Lambda função.

**Topics**
+ [Instalando o Guard para Linux e macOS](setting-up-linux.md)
+ [Instalando o Guard para Windows](setting-up-windows.md)
+ [Instalando o Guard como uma AWS Lambda função](setting-up-lambda.md)

# Instalando o Guard para Linux e macOS
<a name="setting-up-linux"></a>

Você pode instalar AWS CloudFormation Guard para Linux e macOS usando o binário de versão pré-construído, Cargo, ou por meio do Homebrew.

## Instale o Guard a partir de um binário de versão pré-construído
<a name="install-pre-built-binaries"></a>

Use o procedimento a seguir para instalar o Guard a partir de um binário pré-criado.

1. Abra um terminal e execute o comando a seguir.

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

1. Execute o comando a seguir para definir sua `PATH` variável.

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

   *Resultados:* Você instalou o Guard com sucesso e definiu a `PATH` variável.

   1. (Opcional) Para confirmar a instalação do Guard, execute o comando a seguir.

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

     O comando retorna a seguinte saída.

     ```
     cfn-guard 3.1.2
     ```

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

Cargo é o gerenciador de pacotes Rust. Conclua as etapas a seguir para instalar o Rust, que inclui o Cargo. Em seguida, instale o Guard from Cargo.

1. Execute o comando a seguir em um terminal e siga as instruções na tela para instalar o Rust.

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

   1. (Opcional) Para ambientes Ubuntu, execute o comando a seguir.

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

1. Configure sua variável de `PATH` ambiente e execute o comando a seguir.

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

1. Com o Cargo instalado, execute o comando a seguir para instalar o Guard.

   ```
   cargo install cfn-guard
   ```

   *Resultados*: Você instalou o Guard com sucesso.

   1. (Opcional) Para confirmar a instalação do Guard, execute o comando a seguir.

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

     O comando retorna a seguinte saída.

     ```
     cfn-guard 3.1.2
     ```

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

O Homebrew é um gerenciador de pacotes para macOS e Linux. Conclua as etapas a seguir para instalar o Homebrew. Em seguida, instale o Guard do Homebrew.

1. Execute o comando a seguir em um terminal e siga as instruções na tela para instalar o Homebrew.

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

1. Com o Homebrew instalado, execute o comando a seguir para instalar o Guard.

   ```
   brew install cloudformation-guard
   ```

   *Resultados*: Você instalou o Guard com sucesso.

   1. (Opcional) Para confirmar a instalação do Guard, execute o comando a seguir.

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

     O comando retorna a seguinte saída.

     ```
     cfn-guard 3.1.2
     ```

# Instalando o Guard para Windows
<a name="setting-up-windows"></a>

Você pode instalar AWS CloudFormation Guard para Windows através do Cargo ou através do Chocolatey.

## Pré-requisitos
<a name="w2aab8c16b5"></a>

Para criar o Guard a partir da interface de linha de comando, você deve instalar as Ferramentas de Compilação do Visual Studio 2019.

1. Baixe as ferramentas de compilação do Microsoft Visual C\$1\$1 no site [Build Tools for Visual Studio 2019.](https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2019)

1. Execute o instalador e selecione os padrões.

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

Cargo é o gerenciador de pacotes Rust. Conclua as etapas a seguir para instalar o Rust, que inclui o Cargo. Em seguida, instale o Guard from Cargo.

1. [Baixe o Rust](https://forge.rust-lang.org/infra/other-installation-methods.html#other-ways-to-install-rustup) e execute o **rustup-init.exe**.

1. No prompt de comando, escolha **1**, que é a opção padrão.

   O comando retorna a seguinte saída.

   ```
   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 a instalação, pressione a tecla **Enter**.

1. Com o Cargo instalado, execute o comando a seguir para instalar o Guard.

   ```
   cargo install cfn-guard
   ```

   *Resultados*: Você instalou o Guard com sucesso.

   1. (Opcional) Para confirmar a instalação do Guard, execute o comando a seguir.

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

     O comando retorna a seguinte saída.

     ```
     cfn-guard 3.1.2
     ```

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

Chocolatey é um gerenciador de pacotes para Windows. Conclua as etapas a seguir para instalar o Chocolatey. Em seguida, instale o Guard da Chocolatey.

1. Siga este guia para [instalar o Chocolatey](https://chocolatey.org/install)

1. Com o Chocolatey instalado, execute o comando a seguir para instalar o Guard.

   ```
   choco install cloudformation-guard
   ```

   *Resultados*: Você instalou o Guard com sucesso.

   1. (Opcional) Para confirmar a instalação do Guard, execute o comando a seguir.

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

     O comando retorna a seguinte saída.

     ```
     cfn-guard 3.1.2
     ```

# Instalando o Guard como uma AWS Lambda função
<a name="setting-up-lambda"></a>

Você pode instalar AWS CloudFormation Guard por meio do Cargo, o gerenciador de pacotes Rust. *Guard as an AWS Lambda* function (`cfn-guard-lambda`) é um invólucro leve em torno de Guard (`cfn-guard`) que pode ser usado como uma função Lambda.

## Pré-requisitos
<a name="guard-as-lambda-prerequisites"></a>

Antes de instalar o Guard como uma função Lambda, você deve atender aos seguintes pré-requisitos:
+ AWS Command Line Interface (AWS CLI) configurado com permissões para implantar e invocar funções Lambda. Para obter mais informações, consulte [Configurar a AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html).
+ Uma função de AWS Lambda execução em AWS Identity and Access Management (IAM). Para obter mais informações, consulte [função AWS Lambda de execução](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html).
+ Em CentOS/RHEL ambientes, adicione o repositório de `musl-libc` pacotes à sua configuração do yum. Para obter mais informações, consulte [ngompa/musl-libc](https://copr.fedorainfracloud.org/coprs/ngompa/musl-libc/).

## Instale o gerenciador de pacotes Rust
<a name="install-rust-and-cargo"></a>

Cargo é o gerenciador de pacotes Rust. Conclua as etapas a seguir para instalar o Rust, que inclui o Cargo.

1. Execute o comando a seguir em um terminal e siga as instruções na tela para instalar o Rust.

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

   1. (Opcional) Para ambientes Ubuntu, execute o comando a seguir.

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

1. Configure sua variável de `PATH` ambiente e execute o comando a seguir.

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

## Instale o Guard como uma função Lambda (Linux, macOS ou Unix)
<a name="to-isntall-guard-as-a-lambda"></a>

Para instalar o Guard como uma função Lambda, conclua as etapas a seguir.

1. No seu terminal de comando, execute o comando a seguir.

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

   1. (Opcional) Para confirmar a instalação do Guard como uma função Lambda, execute o comando a seguir.

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

     O comando retorna a seguinte saída.

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

1. Para instalar o `musl` suporte, execute o comando a seguir.

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

1. Crie com e`musl`, em seguida, execute o seguinte comando no seu terminal.

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

   Para um [tempo de execução personalizado](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-custom.html), AWS Lambda requer um executável com o nome `bootstrap` no arquivo.zip do pacote de implantação. Renomeie o `cfn-lambda` executável gerado `bootstrap` e adicione-o ao arquivo.zip.

   1. Para ambientes macOS, crie seu arquivo de configuração de carga na raiz do projeto Rust ou em. `~/.cargo/config`

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

1. Mude para o diretório `cfn-guard-lambda` raiz.

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

1. Execute o comando a seguir no seu terminal.

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

1. Execute o comando a seguir para enviar `cfn-guard` como uma função Lambda para sua conta.

   ```
   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 criar e executar o Guard como uma função Lambda
<a name="build-and-run-lambda"></a>

Para invocar o enviado `cfn-guard-lambda` como uma função Lambda, execute o comando a seguir.

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

## Para chamar a estrutura de solicitação da função Lambda
<a name="calling-the-lambda-function"></a>

Solicita a `cfn-guard-lambda` exigência dos seguintes campos:
+ `data`— A versão de string do modelo YAML ou JSON
+ `rules`— A versão em cadeia de caracteres do arquivo do conjunto de regras