

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

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

AWS CloudFormation Guard ist eine Open-Source-Befehlszeilenschnittstelle (CLI). Sie bietet Ihnen eine einfache, domänenspezifische Sprache, mit der Sie Richtlinienregeln schreiben und deren strukturierte hierarchische JSON- und YAML-Daten anhand dieser Regeln validieren können. Die Regeln können Unternehmensrichtlinien in Bezug auf Sicherheit, Compliance und mehr darstellen. Die strukturierten hierarchischen Daten können eine Cloud-Infrastruktur darstellen, die als Code beschrieben wird. Sie können beispielsweise Regeln erstellen, um sicherzustellen, dass sie in ihren CloudFormation Vorlagen immer verschlüsselte Amazon Simple Storage Service (Amazon S3) -Buckets modellieren.

Die folgenden Themen enthalten Informationen zur Installation von Guard mit dem von Ihnen ausgewählten Betriebssystem oder als AWS Lambda Funktion.

**Topics**
+ [Guard für Linux und macOS installieren](setting-up-linux.md)
+ [Guard für Windows installieren](setting-up-windows.md)
+ [Guard als AWS Lambda Funktion installieren](setting-up-lambda.md)

# Guard für Linux und macOS installieren
<a name="setting-up-linux"></a>

Sie können AWS CloudFormation Guard die Installation für Linux und macOS mithilfe der vorgefertigten Binärdatei Cargo oder über Homebrew durchführen.

## Installieren Sie Guard aus einer vorgefertigten Binärdatei
<a name="install-pre-built-binaries"></a>

Gehen Sie wie folgt vor, um Guard aus einer vorgefertigten Binärdatei zu installieren.

1. Öffnen Sie ein Terminal und führen Sie den folgenden Befehl aus.

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

1. Führen Sie den folgenden Befehl aus, um Ihre `PATH` Variable festzulegen.

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

   *Ergebnisse:* Sie haben Guard erfolgreich installiert und die `PATH` Variable gesetzt.

   1. (Optional) Führen Sie den folgenden Befehl aus, um die Installation von Guard zu bestätigen.

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

     Der Befehl gibt die folgende Ausgabe zurück.

     ```
     cfn-guard 3.1.2
     ```

## Installieren Sie Guard von Cargo
<a name="install-guard-from-cargo"></a>

Cargo ist der Rust-Paketmanager. Führen Sie die folgenden Schritte aus, um Rust zu installieren, zu dem auch Cargo gehört. Installieren Sie anschließend Guard von Cargo.

1. Führen Sie den folgenden Befehl von einem Terminal aus und folgen Sie den Anweisungen auf dem Bildschirm, um Rust zu installieren.

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

   1. (Optional) Führen Sie für Ubuntu-Umgebungen den folgenden Befehl aus.

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

1. Konfigurieren Sie Ihre `PATH` Umgebungsvariable und führen Sie den folgenden Befehl aus.

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

1. Wenn Cargo installiert ist, führen Sie den folgenden Befehl aus, um Guard zu installieren.

   ```
   cargo install cfn-guard
   ```

   *Ergebnisse*: Sie haben Guard erfolgreich installiert.

   1. (Optional) Führen Sie den folgenden Befehl aus, um die Installation von Guard zu bestätigen.

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

     Der Befehl gibt die folgende Ausgabe zurück.

     ```
     cfn-guard 3.1.2
     ```

## Installieren Sie Guard von Homebrew
<a name="install-guard-from-homebrew"></a>

Homebrew ist ein Paketmanager für macOS und Linux. Führen Sie die folgenden Schritte aus, um Homebrew zu installieren. Installieren Sie anschließend Guard von Homebrew.

1. Führen Sie den folgenden Befehl von einem Terminal aus und folgen Sie den Anweisungen auf dem Bildschirm, um Homebrew zu installieren.

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

1. Wenn Homebrew installiert ist, führen Sie den folgenden Befehl aus, um Guard zu installieren.

   ```
   brew install cloudformation-guard
   ```

   *Ergebnisse*: Sie haben Guard erfolgreich installiert.

   1. (Optional) Führen Sie den folgenden Befehl aus, um die Installation von Guard zu bestätigen.

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

     Der Befehl gibt die folgende Ausgabe zurück.

     ```
     cfn-guard 3.1.2
     ```

# Guard für Windows installieren
<a name="setting-up-windows"></a>

Sie können die Installation AWS CloudFormation Guard für Windows über Cargo oder über Chocolatey durchführen.

## Voraussetzungen
<a name="w2aab8c16b5"></a>

Um Guard über die Befehlszeilenschnittstelle zu erstellen, müssen Sie die Build Tools für Visual Studio 2019 installieren.

1. Laden Sie die Microsoft Visual C\$1\$1-Buildtools von der [Build Tools for Visual Studio 2019-Website](https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2019) herunter.

1. Führen Sie das Installationsprogramm aus und wählen Sie die Standardeinstellungen aus.

## Installieren Sie Guard von Cargo
<a name="install-guard-from-cargo"></a>

Cargo ist der Rust-Paketmanager. Führen Sie die folgenden Schritte aus, um Rust zu installieren, zu dem auch Cargo gehört. Installieren Sie anschließend Guard von Cargo.

1. [Laden Sie Rust herunter](https://forge.rust-lang.org/infra/other-installation-methods.html#other-ways-to-install-rustup) und führen Sie dann **rustup-init.exe** aus.

1. Wählen Sie in der Befehlszeile **1** aus, was die Standardoption ist.

   Der Befehl gibt die folgende Ausgabe zurück.

   ```
   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. **Drücken Sie die Eingabetaste, um die Installation abzuschließen.**

1. Wenn Cargo installiert ist, führen Sie den folgenden Befehl aus, um Guard zu installieren.

   ```
   cargo install cfn-guard
   ```

   *Ergebnisse*: Sie haben Guard erfolgreich installiert.

   1. (Optional) Führen Sie den folgenden Befehl aus, um die Installation von Guard zu bestätigen.

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

     Der Befehl gibt die folgende Ausgabe zurück.

     ```
     cfn-guard 3.1.2
     ```

## Installieren Sie Guard von Chocolatey
<a name="install-guard-from-chocolatey"></a>

Chocolatey ist ein Paketmanager für Windows. Gehen Sie wie folgt vor, um Chocolatey zu installieren. Installieren Sie anschließend Guard von Chocolatey.

1. [Folgen Sie dieser Anleitung, um Chocolatey zu installieren](https://chocolatey.org/install)

1. Wenn Chocolatey installiert ist, führen Sie den folgenden Befehl aus, um Guard zu installieren.

   ```
   choco install cloudformation-guard
   ```

   *Ergebnisse*: Sie haben Guard erfolgreich installiert.

   1. (Optional) Führen Sie den folgenden Befehl aus, um die Installation von Guard zu bestätigen.

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

     Der Befehl gibt die folgende Ausgabe zurück.

     ```
     cfn-guard 3.1.2
     ```

# Guard als AWS Lambda Funktion installieren
<a name="setting-up-lambda"></a>

Sie können AWS CloudFormation Guard über Cargo, den Rust-Paketmanager, installieren. *Guard as an AWS Lambda* function (`cfn-guard-lambda`) ist ein leichter Wrapper für Guard (`cfn-guard`), der als Lambda-Funktion verwendet werden kann.

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

Bevor Sie Guard als Lambda-Funktion installieren können, müssen Sie die folgenden Voraussetzungen erfüllen:
+ AWS Command Line Interface (AWS CLI) konfiguriert mit Berechtigungen zum Bereitstellen und Aufrufen von Lambda-Funktionen. Weitere Informationen finden Sie unter [Konfigurieren der AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html).
+ Eine AWS Lambda Ausführungsrolle in AWS Identity and Access Management (IAM). Weitere Informationen finden Sie unter [AWS Lambda Ausführungsrolle](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html).
+ Fügen Sie in CentOS/RHEL Umgebungen das `musl-libc` Paket-Repository zu Ihrer Yum-Konfiguration hinzu. Weitere Informationen finden Sie unter [ngompa/musl-libc](https://copr.fedorainfracloud.org/coprs/ngompa/musl-libc/).

## Installieren Sie den Rust-Paketmanager
<a name="install-rust-and-cargo"></a>

Cargo ist der Rust-Paketmanager. Führen Sie die folgenden Schritte aus, um Rust zu installieren, zu dem auch Cargo gehört.

1. Führen Sie den folgenden Befehl von einem Terminal aus und folgen Sie dann den Anweisungen auf dem Bildschirm, um Rust zu installieren.

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

   1. (Optional) Führen Sie für Ubuntu-Umgebungen den folgenden Befehl aus.

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

1. Konfigurieren Sie Ihre `PATH` Umgebungsvariable und führen Sie den folgenden Befehl aus.

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

## Installieren Sie Guard als Lambda-Funktion (Linux, macOS oder Unix)
<a name="to-isntall-guard-as-a-lambda"></a>

Gehen Sie wie folgt vor, um Guard als Lambda-Funktion zu installieren.

1. Führen Sie von Ihrem Befehlsterminal aus den folgenden Befehl aus.

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

   1. (Optional) Führen Sie den folgenden Befehl aus, um die Installation von Guard als Lambda-Funktion zu bestätigen.

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

     Der Befehl gibt die folgende Ausgabe zurück.

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

1. Führen Sie den folgenden Befehl aus, um den `musl` Support zu installieren.

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

1. Erstellen Sie mit `musl` und führen Sie dann den folgenden Befehl in Ihrem Terminal aus.

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

   Für eine [benutzerdefinierte Laufzeit](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-custom.html) AWS Lambda ist eine ausführbare Datei mit dem Namen `bootstrap` in der ZIP-Datei des Bereitstellungspakets erforderlich. Benennen Sie die generierte `cfn-lambda` ausführbare Datei in um `bootstrap` und fügen Sie sie dann dem ZIP-Archiv hinzu.

   1. Erstellen Sie für macOS-Umgebungen Ihre Cargo-Konfigurationsdatei im Stammverzeichnis des Rust-Projekts oder in`~/.cargo/config`.

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

1. Wechseln Sie in das `cfn-guard-lambda` Stammverzeichnis.

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

1. Führen Sie den folgenden Befehl in Ihrem Terminal aus.

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

1. Führen Sie den folgenden Befehl aus, um ihn `cfn-guard` als Lambda-Funktion an Ihr Konto zu senden.

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

## Um Guard als Lambda-Funktion zu erstellen und auszuführen
<a name="build-and-run-lambda"></a>

Führen Sie den folgenden Befehl aus, um die `cfn-guard-lambda` als Lambda-Funktion eingereichte Datei aufzurufen.

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

## Um die Anforderungsstruktur der Lambda-Funktion aufzurufen
<a name="calling-the-lambda-function"></a>

Fordert an, `cfn-guard-lambda` dass die folgenden Felder erforderlich sind:
+ `data`— Die String-Version der YAML- oder JSON-Vorlage
+ `rules`— Die String-Version der Regelsatzdatei