

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

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

AWS CloudFormation Guard adalah antarmuka baris perintah sumber terbuka (CLI). Ini memberi Anda bahasa khusus domain yang sederhana untuk menulis aturan kebijakan dan memvalidasi data JSON dan YAMAL hierarkis terstruktur mereka terhadap aturan tersebut. Aturan tersebut dapat mewakili pedoman kebijakan perusahaan yang terkait dengan keamanan, kepatuhan, dan banyak lagi. Data hierarkis terstruktur dapat mewakili infrastruktur cloud yang digambarkan sebagai kode. Misalnya, Anda dapat membuat aturan untuk memastikan bahwa mereka selalu memodelkan bucket Amazon Simple Storage Service (Amazon S3) terenkripsi di template mereka. CloudFormation 

Topik berikut memberikan informasi tentang cara menginstal Guard menggunakan sistem operasi yang Anda pilih atau sebagai AWS Lambda fungsi.

**Topics**
+ [Menginstal Guard untuk Linux dan macOS](setting-up-linux.md)
+ [Menginstal Guard untuk Windows](setting-up-windows.md)
+ [Memasang Guard sebagai AWS Lambda fungsi](setting-up-lambda.md)

# Menginstal Guard untuk Linux dan macOS
<a name="setting-up-linux"></a>

Anda dapat menginstal AWS CloudFormation Guard untuk Linux dan macOS dengan menggunakan biner rilis pra-bangun, Cargo, atau melalui Homebrew.

## Instal Guard dari biner rilis yang dibuat sebelumnya
<a name="install-pre-built-binaries"></a>

Gunakan prosedur berikut untuk menginstal Guard dari biner pra-bangun.

1. Buka terminal, dan jalankan perintah berikut.

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

1. Jalankan perintah berikut untuk mengatur `PATH` variabel Anda.

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

   *Hasil:* Anda telah berhasil menginstal Guard dan mengatur `PATH` variabel.

   1. (Opsional) Untuk mengkonfirmasi instalasi Guard, jalankan perintah berikut.

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

     Perintah mengembalikan output berikut.

     ```
     cfn-guard 3.1.2
     ```

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

Cargo adalah manajer paket Rust. Selesaikan langkah-langkah berikut untuk menginstal Rust, yang mencakup Cargo. Kemudian, instal Guard from Cargo.

1. Jalankan perintah berikut dari terminal, dan ikuti petunjuk di layar untuk menginstal Rust.

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

   1. (Opsional) Untuk lingkungan Ubuntu, jalankan perintah berikut.

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

1. Konfigurasikan variabel `PATH` lingkungan Anda, dan jalankan perintah berikut.

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

1. Dengan Cargo diinstal, jalankan perintah berikut untuk menginstal Guard.

   ```
   cargo install cfn-guard
   ```

   *Hasil*: Anda telah berhasil menginstal Guard.

   1. (Opsional) Untuk mengkonfirmasi instalasi Guard, jalankan perintah berikut.

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

     Perintah mengembalikan output berikut.

     ```
     cfn-guard 3.1.2
     ```

## Instal Guard dari Homebrew
<a name="install-guard-from-homebrew"></a>

Homebrew adalah manajer paket untuk macOS dan Linux. Selesaikan langkah-langkah berikut untuk menginstal Homebrew. Kemudian, instal Guard dari Homebrew.

1. Jalankan perintah berikut dari terminal, dan ikuti petunjuk di layar untuk menginstal Homebrew.

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

1. Dengan Homebrew diinstal, jalankan perintah berikut untuk menginstal Guard.

   ```
   brew install cloudformation-guard
   ```

   *Hasil*: Anda telah berhasil menginstal Guard.

   1. (Opsional) Untuk mengkonfirmasi instalasi Guard, jalankan perintah berikut.

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

     Perintah mengembalikan output berikut.

     ```
     cfn-guard 3.1.2
     ```

# Menginstal Guard untuk Windows
<a name="setting-up-windows"></a>

Anda dapat menginstal AWS CloudFormation Guard untuk Windows melalui Cargo atau melalui Chocolatey.

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

Untuk membangun Guard dari antarmuka baris perintah, Anda harus menginstal Build Tools for Visual Studio 2019.

1. Unduh alat build Microsoft Visual C \$1\$1 dari situs web [Build Tools for Visual Studio 2019](https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2019).

1. Jalankan installer, dan pilih default.

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

Cargo adalah manajer paket Rust. Selesaikan langkah-langkah berikut untuk menginstal Rust, yang mencakup Cargo. Kemudian, instal Guard from Cargo.

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

1. Dari command prompt, pilih **1**, yang merupakan opsi default.

   Perintah mengembalikan output berikut.

   ```
   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. Untuk menyelesaikan instalasi, tekan tombol **Enter**.

1. Dengan Cargo diinstal, jalankan perintah berikut untuk menginstal Guard.

   ```
   cargo install cfn-guard
   ```

   *Hasil*: Anda telah berhasil menginstal Guard.

   1. (Opsional) Untuk mengkonfirmasi instalasi Guard, jalankan perintah berikut.

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

     Perintah mengembalikan output berikut.

     ```
     cfn-guard 3.1.2
     ```

## Instal Guard dari Chocolatey
<a name="install-guard-from-chocolatey"></a>

Chocolatey adalah manajer paket untuk Windows. Selesaikan langkah-langkah berikut untuk menginstal Chocolatey. Kemudian, instal Guard dari Chocolatey.

1. Ikuti panduan ini untuk [menginstal Chocolatey](https://chocolatey.org/install)

1. Dengan Chocolatey diinstal, jalankan perintah berikut untuk menginstal Guard.

   ```
   choco install cloudformation-guard
   ```

   *Hasil*: Anda telah berhasil menginstal Guard.

   1. (Opsional) Untuk mengkonfirmasi instalasi Guard, jalankan perintah berikut.

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

     Perintah mengembalikan output berikut.

     ```
     cfn-guard 3.1.2
     ```

# Memasang Guard sebagai AWS Lambda fungsi
<a name="setting-up-lambda"></a>

Anda dapat menginstal AWS CloudFormation Guard melalui Cargo, manajer paket Rust. *Guard as an AWS Lambda* function (`cfn-guard-lambda`) adalah pembungkus ringan di sekitar Guard (`cfn-guard`) yang dapat digunakan sebagai fungsi Lambda.

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

Sebelum Anda dapat menginstal Guard sebagai fungsi Lambda, Anda harus memenuhi prasyarat berikut:
+ AWS Command Line Interface (AWS CLI) dikonfigurasi dengan izin untuk menyebarkan dan memanggil fungsi Lambda. Untuk informasi selengkapnya, lihat [Mengonfigurasi AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html).
+ Peran AWS Lambda eksekusi dalam AWS Identity and Access Management (IAM). Untuk informasi selengkapnya, lihat [peran AWS Lambda eksekusi](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html).
+ Di CentOS/RHEL lingkungan, tambahkan repositori `musl-libc` paket ke konfigurasi yum Anda. Untuk informasi lebih lanjut, lihat [ngompa/musl-libc](https://copr.fedorainfracloud.org/coprs/ngompa/musl-libc/).

## Instal manajer paket Rust
<a name="install-rust-and-cargo"></a>

Cargo adalah manajer paket Rust. Selesaikan langkah-langkah berikut untuk menginstal Rust, yang mencakup Cargo.

1. Jalankan perintah berikut dari terminal, lalu ikuti petunjuk di layar untuk menginstal Rust.

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

   1. (Opsional) Untuk lingkungan Ubuntu, jalankan perintah berikut.

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

1. Konfigurasikan variabel `PATH` lingkungan Anda, dan jalankan perintah berikut.

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

## Instal Guard sebagai fungsi Lambda (Linux, macOS, atau Unix)
<a name="to-isntall-guard-as-a-lambda"></a>

Untuk menginstal Guard sebagai fungsi Lambda, selesaikan langkah-langkah berikut.

1. Dari terminal perintah Anda, jalankan perintah berikut.

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

   1. (Opsional) Untuk mengkonfirmasi instalasi Guard sebagai fungsi Lambda, jalankan perintah berikut.

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

     Perintah mengembalikan output berikut.

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

1. Untuk menginstal `musl` dukungan, jalankan perintah berikut.

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

1. Bangun dengan`musl`, lalu jalankan perintah berikut di terminal Anda.

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

   Untuk [runtime kustom](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-custom.html), AWS Lambda memerlukan executable dengan nama `bootstrap` dalam file paket deployment .zip. Ganti nama `cfn-lambda` executable yang dihasilkan menjadi `bootstrap` dan kemudian tambahkan ke arsip.zip.

   1. Untuk lingkungan macOS, buat file konfigurasi kargo Anda di root proyek Rust atau di dalamnya. `~/.cargo/config`

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

1. Ubah ke direktori `cfn-guard-lambda` root.

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

1. Jalankan perintah berikut di terminal Anda.

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

1. Jalankan perintah berikut untuk mengirimkan `cfn-guard` sebagai fungsi Lambda ke akun Anda.

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

## Untuk membangun dan menjalankan Guard sebagai fungsi Lambda
<a name="build-and-run-lambda"></a>

Untuk memanggil yang dikirimkan `cfn-guard-lambda` sebagai fungsi Lambda, jalankan perintah berikut.

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

## Untuk memanggil struktur permintaan fungsi Lambda
<a name="calling-the-lambda-function"></a>

Permintaan untuk `cfn-guard-lambda` mewajibkan bidang berikut:
+ `data`— Versi string dari template YAMAL atau JSON
+ `rules`— Versi string dari file set aturan