

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Con AWS CloudFormation Guard figuration
<a name="setting-up"></a>

AWS CloudFormation Guard est une interface de ligne de commande (CLI) open source. Il vous fournit un langage simple et spécifique au domaine pour écrire des règles de politique et valider leurs données JSON et YAML hiérarchiques structurées par rapport à ces règles. Les règles peuvent représenter les directives de politique de l'entreprise relatives à la sécurité, à la conformité, etc. Les données hiérarchiques structurées peuvent représenter une infrastructure cloud décrite sous forme de code. Par exemple, vous pouvez créer des règles pour garantir qu'ils modélisent toujours des buckets Amazon Simple Storage Service (Amazon S3) chiffrés dans leurs modèles. CloudFormation 

Les rubriques suivantes fournissent des informations sur l'installation de Guard à l'aide du système d'exploitation que vous avez choisi ou en tant que AWS Lambda fonction.

**Topics**
+ [Installation de Guard pour Linux et macOS](setting-up-linux.md)
+ [Installation de Guard pour Windows](setting-up-windows.md)
+ [Installation de Guard en tant que AWS Lambda fonction](setting-up-lambda.md)

# Installation de Guard pour Linux et macOS
<a name="setting-up-linux"></a>

Vous pouvez l'installer AWS CloudFormation Guard pour Linux et macOS à l'aide de la version binaire prédéfinie, Cargo, ou via Homebrew.

## Installer Guard à partir d'une version binaire prédéfinie
<a name="install-pre-built-binaries"></a>

Utilisez la procédure suivante pour installer Guard à partir d'un fichier binaire prédéfini.

1. Ouvrez un terminal et exécutez la commande suivante.

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

1. Exécutez la commande suivante pour définir votre `PATH` variable.

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

   *Résultats :* Vous avez correctement installé Guard et défini la `PATH` variable.

   1. (Facultatif) Pour confirmer l'installation de Guard, exécutez la commande suivante.

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

     La commande renvoie le résultat suivant.

     ```
     cfn-guard 3.1.2
     ```

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

Cargo est le gestionnaire de paquets de Rust. Procédez comme suit pour installer Rust, qui inclut Cargo. Ensuite, installez Guard from Cargo.

1. Exécutez la commande suivante depuis un terminal et suivez les instructions affichées à l'écran pour installer Rust.

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

   1. (Facultatif) Pour les environnements Ubuntu, exécutez la commande suivante.

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

1. Configurez votre variable d'`PATH`environnement et exécutez la commande suivante.

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

1. Une fois Cargo installé, exécutez la commande suivante pour installer Guard.

   ```
   cargo install cfn-guard
   ```

   *Résultats* : Vous avez correctement installé Guard.

   1. (Facultatif) Pour confirmer l'installation de Guard, exécutez la commande suivante.

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

     La commande renvoie le résultat suivant.

     ```
     cfn-guard 3.1.2
     ```

## Installez Guard depuis Homebrew
<a name="install-guard-from-homebrew"></a>

Homebrew est un gestionnaire de paquets pour macOS et Linux. Procédez comme suit pour installer Homebrew. Ensuite, installez Guard depuis Homebrew.

1. Exécutez la commande suivante depuis un terminal et suivez les instructions affichées à l'écran pour installer Homebrew.

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

1. Une fois Homebrew installé, exécutez la commande suivante pour installer Guard.

   ```
   brew install cloudformation-guard
   ```

   *Résultats* : Vous avez correctement installé Guard.

   1. (Facultatif) Pour confirmer l'installation de Guard, exécutez la commande suivante.

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

     La commande renvoie le résultat suivant.

     ```
     cfn-guard 3.1.2
     ```

# Installation de Guard pour Windows
<a name="setting-up-windows"></a>

Vous pouvez l'installer AWS CloudFormation Guard pour Windows via Cargo ou Chocolatey.

## Conditions préalables
<a name="w2aab8c16b5"></a>

Pour créer Guard à partir de l'interface de ligne de commande, vous devez installer les outils de génération pour Visual Studio 2019.

1. Téléchargez les outils de génération Microsoft Visual C\$1\$1 depuis le site Web [des outils de génération pour Visual Studio 2019](https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2019).

1. Exécutez le programme d'installation et sélectionnez les valeurs par défaut.

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

Cargo est le gestionnaire de paquets de Rust. Procédez comme suit pour installer Rust, qui inclut Cargo. Ensuite, installez Guard from Cargo.

1. [Téléchargez Rust](https://forge.rust-lang.org/infra/other-installation-methods.html#other-ways-to-install-rustup), puis exécutez **rustup-init.exe**.

1. À l'invite de commande, choisissez **1**, qui est l'option par défaut.

   La commande renvoie le résultat suivant.

   ```
   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. Pour terminer l'installation, appuyez sur la touche **Entrée**.

1. Une fois Cargo installé, exécutez la commande suivante pour installer Guard.

   ```
   cargo install cfn-guard
   ```

   *Résultats* : Vous avez correctement installé Guard.

   1. (Facultatif) Pour confirmer l'installation de Guard, exécutez la commande suivante.

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

     La commande renvoie le résultat suivant.

     ```
     cfn-guard 3.1.2
     ```

## Installez Guard de Chocolatey
<a name="install-guard-from-chocolatey"></a>

Chocolatey est un gestionnaire de paquets pour Windows. Procédez comme suit pour installer Chocolatey. Ensuite, installez Guard de Chocolatey.

1. Suivez ce guide pour [installer Chocolatey](https://chocolatey.org/install)

1. Une fois Chocolatey installé, exécutez la commande suivante pour installer Guard.

   ```
   choco install cloudformation-guard
   ```

   *Résultats* : Vous avez correctement installé Guard.

   1. (Facultatif) Pour confirmer l'installation de Guard, exécutez la commande suivante.

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

     La commande renvoie le résultat suivant.

     ```
     cfn-guard 3.1.2
     ```

# Installation de Guard en tant que AWS Lambda fonction
<a name="setting-up-lambda"></a>

Vous pouvez l'installer AWS CloudFormation Guard via Cargo, le gestionnaire de paquets de Rust. *Guard as an AWS Lambda* function (`cfn-guard-lambda`) est une enveloppe légère autour de Guard (`cfn-guard`) qui peut être utilisée comme fonction Lambda.

## Conditions préalables
<a name="guard-as-lambda-prerequisites"></a>

Avant de pouvoir installer Guard en tant que fonction Lambda, vous devez remplir les conditions préalables suivantes :
+ AWS Command Line Interface (AWS CLI) configuré avec les autorisations nécessaires pour déployer et invoquer des fonctions Lambda. Pour plus d’informations, consultez [Configuration de l’ AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html).
+ Un rôle AWS Lambda d'exécution dans Gestion des identités et des accès AWS (IAM). Pour plus d'informations, consultez la section [rôle AWS Lambda d'exécution](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html).
+ Dans CentOS/RHEL les environnements, ajoutez le référentiel de `musl-libc` packages à votre configuration yum. Pour plus d'informations, consultez [ngompa/musl-libc](https://copr.fedorainfracloud.org/coprs/ngompa/musl-libc/).

## Installez le gestionnaire de paquets Rust
<a name="install-rust-and-cargo"></a>

Cargo est le gestionnaire de paquets de Rust. Procédez comme suit pour installer Rust, qui inclut Cargo.

1. Exécutez la commande suivante depuis un terminal, puis suivez les instructions à l'écran pour installer Rust.

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

   1. (Facultatif) Pour les environnements Ubuntu, exécutez la commande suivante.

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

1. Configurez votre variable d'`PATH`environnement et exécutez la commande suivante.

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

## Installez Guard en tant que fonction Lambda (Linux, macOS ou Unix)
<a name="to-isntall-guard-as-a-lambda"></a>

Pour installer Guard en tant que fonction Lambda, procédez comme suit.

1. Depuis votre terminal de commande, exécutez la commande suivante.

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

   1. (Facultatif) Pour confirmer l'installation de Guard en tant que fonction Lambda, exécutez la commande suivante.

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

     La commande renvoie le résultat suivant.

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

1. Pour installer `musl` le support, exécutez la commande suivante.

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

1. Compilez avec`musl`, puis exécutez la commande suivante dans votre terminal.

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

   Pour un [environnement d'exécution personnalisé](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-custom.html), AWS Lambda nécessite un exécutable dont le nom figure `bootstrap` dans le fichier .zip du package de déploiement. Renommez le `cfn-lambda` fichier exécutable généré en, `bootstrap` puis ajoutez-le à l'archive .zip.

   1. Pour les environnements macOS, créez votre fichier de configuration de chargement à la racine du projet Rust ou dans`~/.cargo/config`.

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

1. Accédez au répertoire `cfn-guard-lambda` racine.

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

1. Exécutez la commande suivante dans votre terminal.

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

1. Exécutez la commande suivante pour l'envoyer `cfn-guard` en tant que fonction Lambda à votre compte.

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

## Pour créer et exécuter Guard en tant que fonction Lambda
<a name="build-and-run-lambda"></a>

Pour appeler la fonction soumise `cfn-guard-lambda` en tant que fonction Lambda, exécutez la commande suivante.

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

## Pour appeler la structure de demande de la fonction Lambda
<a name="calling-the-lambda-function"></a>

Demandes visant à `cfn-guard-lambda` exiger les champs suivants :
+ `data`— La version sous forme de chaîne du modèle YAML ou JSON
+ `rules`— La version sous forme de chaîne du fichier d'ensemble de règles