

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

# Menggunakan AWS Secrets Manager Agen
<a name="secrets-manager-agent"></a>

## Bagaimana Agen Secrets Manager bekerja
<a name="agent-overview"></a>

 AWS Secrets Manager Agen adalah layanan HTTP sisi klien yang membantu Anda menstandarisasi cara Anda menggunakan rahasia dari Secrets Manager di seluruh lingkungan komputasi Anda. Anda dapat menggunakannya dengan layanan berikut:
+ AWS Lambda
+ Amazon Elastic Container Service
+ Amazon Elastic Kubernetes Service
+ Amazon Elastic Compute Cloud

Secrets Manager Agent mengambil dan menyimpan rahasia di memori, memungkinkan aplikasi Anda mendapatkan rahasia dari localhost alih-alih melakukan panggilan langsung ke Secrets Manager. Secrets Manager Agent hanya dapat membaca rahasia—tidak dapat memodifikasinya.

**penting**  
Secrets Manager Agent menggunakan AWS kredensyal dari lingkungan Anda untuk memanggil Secrets Manager. Ini termasuk perlindungan terhadap Server Side Request Forgery (SSRF) untuk membantu meningkatkan keamanan rahasia. Secrets Manager Agent menggunakan pertukaran kunci ML-KEM pasca-kuantum sebagai pertukaran kunci prioritas tertinggi secara default.

## Memahami caching Agen Secrets Manager
<a name="agent-caching"></a>

Secrets Manager Agent menggunakan cache dalam memori yang disetel ulang saat Agen Secrets Manager dimulai ulang. Ini secara berkala menyegarkan nilai rahasia yang di-cache berdasarkan hal berikut:
+ Frekuensi refresh default (TTL) adalah 300 detik
+ Anda dapat memodifikasi TTL menggunakan file konfigurasi
+ Penyegaran terjadi saat Anda meminta rahasia setelah TTL kedaluwarsa

**catatan**  
Secrets Manager Agent tidak menyertakan pembatalan cache. Jika rahasia berputar sebelum entri cache kedaluwarsa, Agen Secrets Manager mungkin mengembalikan nilai rahasia basi.

Secrets Manager Agent mengembalikan nilai rahasia dalam format yang sama dengan respons`GetSecretValue`. Nilai rahasia tidak dienkripsi dalam cache.

**Topics**
+ [Bagaimana Agen Secrets Manager bekerja](#agent-overview)
+ [Memahami caching Agen Secrets Manager](#agent-caching)
+ [Membangun Agen Secrets Manager](#secrets-manager-agent-build)
+ [Instal Agen Secrets Manager](#secrets-manager-agent-install)
+ [Ambil rahasia dengan Agen Secrets Manager](#secrets-manager-agent-call)
+ [Memahami `refreshNow` parameter](#secrets-manager-agent-refresh)
+ [Konfigurasikan Agen Secrets Manager](#secrets-manager-agent-config)
+ [Fitur opsional](#secrets-manager-agent-features)
+ [Pencatatan log](#secrets-manager-agent-log)
+ [Pertimbangan keamanan](#secrets-manager-agent-security)

## Membangun Agen Secrets Manager
<a name="secrets-manager-agent-build"></a>

Sebelum Anda mulai, pastikan Anda memiliki alat pengembangan standar dan alat Rust yang diinstal untuk platform Anda.

**catatan**  
Membangun agen dengan `fips` fitur yang diaktifkan di macOS saat ini memerlukan solusi berikut:  
Buat variabel lingkungan `SDKROOT` yang disebut yang diatur ke hasil berjalan `xcrun --show-sdk-path`

------
#### [ RPM-based systems ]

**Untuk membangun sistem berbasis RPM**

1. Gunakan `install` skrip yang disediakan di repositori. 

   Skrip menghasilkan token SSRF acak saat startup dan menyimpannya dalam file. `/var/run/awssmatoken` Token dapat dibaca oleh `awssmatokenreader` grup yang dibuat oleh skrip penginstalan. 

1. Untuk memungkinkan aplikasi Anda membaca file token, Anda perlu menambahkan akun pengguna yang dijalankan aplikasi Anda ke `awssmatokenreader` grup. Misalnya, Anda dapat memberikan izin untuk aplikasi Anda untuk membaca file token dengan perintah usermod berikut, di mana *<APP\$1USER>* ID pengguna tempat aplikasi Anda berjalan.

   ```
   sudo usermod -aG awssmatokenreader <APP_USER>
   ```

**Instal alat pengembangan**  
Pada sistem berbasis RPM seperti AL2023, instal grup Alat Pengembangan:

   ```
   sudo yum -y groupinstall "Development Tools"
   ```

1. 

**Instal Rust**  
Ikuti instruksi di [Install Rust](https://www.rust-lang.org/tools/install) dalam *dokumentasi Rust*:

   ```
   curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # Follow the on-screen instructions
   . "$HOME/.cargo/env"
   ```

1. 

**Bangun agen**  
Bangun Agen Secrets Manager menggunakan perintah cargo build:

   ```
   cargo build --release
   ```

   Anda akan menemukan executable di bawah. `target/release/aws_secretsmanager_agent`

------
#### [ Debian-based systems ]

**Untuk membangun sistem berbasis Debian**

1. 

**Instal alat pengembangan**  
Pada sistem berbasis Debian seperti Ubuntu, instal paket build-essential:

   ```
   sudo apt install build-essential
   ```

1. 

**Instal Rust**  
Ikuti instruksi di [Install Rust](https://www.rust-lang.org/tools/install) dalam *dokumentasi Rust*:

   ```
   curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # Follow the on-screen instructions
   . "$HOME/.cargo/env"
   ```

1. 

**Bangun agen**  
Bangun Agen Secrets Manager menggunakan perintah cargo build:

   ```
   cargo build --release
   ```

   Anda akan menemukan executable di bawah. `target/release/aws_secretsmanager_agent`

------
#### [ Windows ]

**Untuk membangun pada Windows**

1. 

**Menyiapkan lingkungan pengembangan**  
Ikuti petunjuk di [Siapkan lingkungan dev Anda di Windows for Rust](https://learn.microsoft.com/en-us/windows/dev-environment/rust/setup) dalam *dokumentasi Microsoft Windows*.

1. 

**Bangun agen**  
Bangun Agen Secrets Manager menggunakan perintah cargo build:

   ```
   cargo build --release
   ```

   Anda akan menemukan executable di bawah. `target/release/aws_secretsmanager_agent.exe`

------
#### [ Cross-compile natively ]

**Untuk mengkompilasi silang secara asli**

1. 

**Instal alat kompilasi silang**  
Pada distribusi di mana paket mingw-w64 tersedia seperti Ubuntu, instal rantai alat kompilasi silang:

   ```
   # Install the cross compile tool chain
   sudo add-apt-repository universe
   sudo apt install -y mingw-w64
   ```

1. 

**Tambahkan target build Rust**  
Instal target build Windows GNU:

   ```
   rustup target add x86_64-pc-windows-gnu
   ```

1. 

**Membangun untuk Windows**  
Kompilasi silang agen untuk Windows:

   ```
   cargo build --release --target x86_64-pc-windows-gnu
   ```

   Anda akan menemukan executable di. `target/x86_64-pc-windows-gnu/release/aws_secretsmanager_agent.exe`

------
#### [ Cross compile with Rust cross ]

**Untuk mengkompilasi silang menggunakan Rust cross**

Jika alat kompilasi silang tidak tersedia secara asli di sistem, Anda dapat menggunakan proyek silang Rust. Untuk informasi lebih lanjut, lihat [https://github.com/cross-rs/silang](https://github.com/cross-rs/cross).
**penting**  
Kami merekomendasikan ruang disk 32GB untuk lingkungan build.

1. 

**Siapkan Docker**  
Instal dan konfigurasikan Docker:

   ```
   # Install and start docker
   sudo yum -y install docker
   sudo systemctl start docker
   sudo systemctl enable docker # Make docker start after reboot
   ```

1. 

**Konfigurasikan izin Docker**  
Tambahkan pengguna Anda ke grup docker:

   ```
   # Give ourselves permission to run the docker images without sudo
   sudo usermod -aG docker $USER
   newgrp docker
   ```

1. 

**Membangun untuk Windows**  
Instal silang dan buat executable:

   ```
   # Install cross and cross compile the executable
   cargo install cross
   cross build --release --target x86_64-pc-windows-gnu
   ```

------

## Instal Agen Secrets Manager
<a name="secrets-manager-agent-install"></a>

Pilih lingkungan komputasi Anda dari opsi penginstalan berikut.

------
#### [ Amazon EC2 ]

**Untuk menginstal Agen Secrets Manager di Amazon EC2**

1. 

**Arahkan ke direktori konfigurasi**  
Ubah ke direktori konfigurasi:

   ```
   cd aws_secretsmanager_agent/configuration
   ```

1. 

**Jalankan skrip instalasi**  
Jalankan `install` skrip yang disediakan di repositori.

   Skrip menghasilkan token SSRF acak saat startup dan menyimpannya dalam file. `/var/run/awssmatoken` Token dapat dibaca oleh `awssmatokenreader` grup yang dibuat oleh skrip penginstalan.

1. 

**Konfigurasikan izin aplikasi**  
Tambahkan akun pengguna yang dijalankan aplikasi Anda ke `awssmatokenreader` grup:

   ```
   sudo usermod -aG awssmatokenreader APP_USER
   ```

   Ganti *APP\$1USER* dengan ID pengguna tempat aplikasi Anda berjalan.

------
#### [ Container Sidecar ]

Anda dapat menjalankan Secrets Manager Agent sebagai wadah sespan bersama aplikasi Anda dengan menggunakan Docker. Kemudian aplikasi Anda dapat mengambil rahasia dari server HTTP lokal yang disediakan Secrets Manager Agent. Untuk informasi tentang Docker, lihat [dokumentasi Docker](https://docs.docker.com).

**Untuk membuat wadah sespan untuk Agen Secrets Manager**

1. 

**Buat agen Dockerfile**  
Buat Dockerfile untuk wadah sidecar Secrets Manager Agent:

   ```
   # Use the latest Debian image as the base
   FROM debian:latest
   
   # Set the working directory inside the container
   WORKDIR /app 
   
   # Copy the Secrets Manager Agent binary to the container
   COPY secrets-manager-agent . 
   
   # Install any necessary dependencies
   RUN apt-get update && apt-get install -y ca-certificates 
   
   # Set the entry point to run the Secrets Manager Agent binary
   ENTRYPOINT ["./secrets-manager-agent"]
   ```

1. 

**Buat aplikasi Dockerfile**  
Buat Dockerfile untuk aplikasi klien Anda.

1. 

**Buat file Docker Compose**  
Buat file Docker Compose untuk menjalankan kedua container dengan antarmuka jaringan bersama:
**penting**  
Anda harus memuat AWS kredensyal dan token SSRF agar aplikasi dapat menggunakan Secrets Manager Agent. Untuk Amazon EKS dan Amazon ECS, lihat yang berikut ini:  
[Mengelola akses](https://docs.aws.amazon.com/eks/latest/userguide/cluster-auth.html) di *Panduan Pengguna Amazon EKS*
[Peran IAM tugas Amazon ECS dalam Panduan](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) Pengembang *Amazon ECS*

   ```
   version: '3'
   services:
       client-application:
       container_name: client-application
       build:
           context: .
           dockerfile: Dockerfile.client
       command: tail -f /dev/null  # Keep the container running
       
   
       secrets-manager-agent:
       container_name: secrets-manager-agent
       build:
           context: .
           dockerfile: Dockerfile.agent
       network_mode: "container:client-application"  # Attach to the client-application container's network
       depends_on:
           - client-application
   ```

1. 

**Salin agen biner**  
Salin `secrets-manager-agent` biner ke direktori yang sama yang berisi file Dockerfiles dan Docker Compose Anda.

1. 

**Membangun dan menjalankan kontainer**  
Buat dan jalankan container menggunakan Docker Compose:

   ```
   docker-compose up --build
   ```

1. 

**Langkah selanjutnya**  
Anda sekarang dapat menggunakan Secrets Manager Agent untuk mengambil rahasia dari wadah klien Anda. Untuk informasi selengkapnya, lihat [Ambil rahasia dengan Agen Secrets Manager](#secrets-manager-agent-call).

------
#### [ Lambda ]

Anda dapat [mengemas Agen Secrets Manager sebagai ekstensi Lambda](https://docs.aws.amazon.com/lambda/latest/dg/packaging-layers.html). Kemudian Anda dapat [menambahkannya ke fungsi Lambda Anda sebagai lapisan](https://docs.aws.amazon.com/lambda/latest/dg/adding-layers.html) dan memanggil Secrets Manager Agent dari fungsi Lambda Anda untuk mendapatkan rahasia.

Petunjuk berikut menunjukkan cara mendapatkan rahasia bernama *MyTest*dengan menggunakan skrip `secrets-manager-agent-extension.sh` contoh [https://github.com/aws/aws-secretsmanager-agent](https://github.com/aws/aws-secretsmanager-agent)untuk menginstal Secrets Manager Agent sebagai ekstensi Lambda.

**Untuk membuat ekstensi Lambda untuk Agen Secrets Manager**

1. 

**Package lapisan agen**  
Dari root paket kode Agen Secrets Manager, jalankan perintah berikut:

   ```
   AWS_ACCOUNT_ID=AWS_ACCOUNT_ID
   LAMBDA_ARN=LAMBDA_ARN
   
   # Build the release binary 
   cargo build --release --target=x86_64-unknown-linux-gnu
   
   # Copy the release binary into the `bin` folder
   mkdir -p ./bin
   cp ./target/x86_64-unknown-linux-gnu/release/aws_secretsmanager_agent ./bin/secrets-manager-agent
   
   # Copy the `secrets-manager-agent-extension.sh` example script into the `extensions` folder.
   mkdir -p ./extensions
   cp aws_secretsmanager_agent/examples/example-lambda-extension/secrets-manager-agent-extension.sh ./extensions
   
   # Zip the extension shell script and the binary 
   zip secrets-manager-agent-extension.zip bin/* extensions/*
   
   # Publish the layer version
   LAYER_VERSION_ARN=$(aws lambda publish-layer-version \
       --layer-name secrets-manager-agent-extension \
       --zip-file "fileb://secrets-manager-agent-extension.zip" | jq -r '.LayerVersionArn')
   ```

1. 

**Konfigurasikan token SSRF**  
Konfigurasi default agen akan secara otomatis mengatur token SSRF ke nilai yang ditetapkan dalam variabel pra-set `AWS_SESSION_TOKEN` atau `AWS_CONTAINER_AUTHORIZATION_TOKEN` lingkungan (variabel terakhir untuk fungsi Lambda dengan diaktifkan). SnapStart Atau, Anda dapat menentukan variabel `AWS_TOKEN` lingkungan dengan nilai arbitrer untuk fungsi Lambda Anda sebagai gantinya karena variabel ini lebih diutamakan daripada dua lainnya. Jika Anda memilih untuk menggunakan variabel `AWS_TOKEN` lingkungan, Anda harus mengatur variabel lingkungan dengan `lambda:UpdateFunctionConfiguration` panggilan.

1. 

**Pasang lapisan ke fungsi**  
Lampirkan versi layer ke fungsi Lambda Anda:

   ```
   # Attach the layer version to the Lambda function
   aws lambda update-function-configuration \
       --function-name $LAMBDA_ARN \
       --layers "$LAYER_VERSION_ARN"
   ```

1. 

**Perbarui kode fungsi**  
Perbarui fungsi Lambda Anda untuk melakukan kueri `http://localhost:2773/secretsmanager/get?secretId=MyTest` dengan nilai `X-Aws-codes-Secrets-Token` header yang disetel ke nilai token SSRF yang bersumber dari salah satu variabel lingkungan yang disebutkan di atas untuk mengambil rahasia. Pastikan untuk menerapkan logika coba lagi dalam kode aplikasi Anda untuk mengakomodasi penundaan inisialisasi dan pendaftaran ekstensi Lambda.

1. 

**Uji fungsi**  
Memanggil fungsi Lambda untuk memverifikasi bahwa rahasia sedang diambil dengan benar.

------

## Ambil rahasia dengan Agen Secrets Manager
<a name="secrets-manager-agent-call"></a>

Untuk mengambil rahasia, hubungi titik akhir Secrets Manager Agent lokal dengan nama rahasia atau ARN sebagai parameter kueri. Secara default, Secrets Manager Agent mengambil `AWSCURRENT` versi rahasia. Untuk mengambil versi yang berbeda, gunakan parameter versionStage atau VersionId.

**penting**  
Untuk membantu melindungi Agen Secrets Manager, Anda harus menyertakan header token SSRF sebagai bagian dari setiap permintaan:. `X-Aws-Parameters-Secrets-Token` Secrets Manager Agent menolak permintaan yang tidak memiliki header ini atau yang memiliki token SSRF tidak valid. Anda dapat menyesuaikan nama header SSRF di file. [Konfigurasikan Agen Secrets Manager](#secrets-manager-agent-config)

### Izin yang diperlukan
<a name="agent-call-permissions"></a>

Secrets Manager Agent menggunakan AWS SDK for Rust, yang menggunakan rantai [penyedia AWS kredensyal](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/credentials.html). Identitas kredensyal IAM ini menentukan izin yang dimiliki Agen Secrets Manager untuk mengambil rahasia.
+ `secretsmanager:DescribeSecret`
+ `secretsmanager:GetSecretValue`

Untuk informasi selengkapnya tentang izin, lihat [Referensi izin untuk AWS Secrets Manager](auth-and-access.md#reference_iam-permissions).

**penting**  
Setelah nilai rahasia ditarik ke Secrets Manager Agent, setiap pengguna dengan akses ke lingkungan komputasi dan token SSRF dapat mengakses rahasia dari cache Secrets Manager Agent. Untuk informasi selengkapnya, lihat [Pertimbangan keamanan](#secrets-manager-agent-security).

### Permintaan contoh
<a name="agent-call-examples"></a>

------
#### [ curl ]

**Example Contoh - Dapatkan rahasia menggunakan curl**  
Contoh curl berikut menunjukkan cara mendapatkan rahasia dari Secrets Manager Agent. Contohnya bergantung pada SSRF yang ada dalam file, yang mana ia disimpan oleh skrip instalasi.  

```
curl -v -H \\
    "X-Aws-Parameters-Secrets-Token: $(/var/run/awssmatoken)" \\
    'http://localhost:2773/secretsmanager/get?secretId=YOUR_SECRET_ID' \\
    echo
```

------
#### [ Python ]

**Example Contoh - Dapatkan rahasia menggunakan Python**  
Contoh Python berikut menunjukkan cara mendapatkan rahasia dari Secrets Manager Agent. Contohnya bergantung pada SSRF yang ada dalam file, yang mana ia disimpan oleh skrip instalasi.  

```
import requests
import json

# Function that fetches the secret from Secrets Manager Agent for the provided secret id. 
def get_secret():
    # Construct the URL for the GET request
    url = f"http://localhost:2773/secretsmanager/get?secretId=YOUR_SECRET_ID"

    # Get the SSRF token from the token file
    with open('/var/run/awssmatoken') as fp:
        token = fp.read() 

    headers = {
        "X-Aws-Parameters-Secrets-Token": token.strip()
    }

    try:
        # Send the GET request with headers
        response = requests.get(url, headers=headers)

        # Check if the request was successful
        if response.status_code == 200:
            # Return the secret value
            return response.text
        else:
            # Handle error cases
            raise Exception(f"Status code {response.status_code} - {response.text}")

    except Exception as e:
        # Handle network errors
        raise Exception(f"Error: {e}")
```

------

## Memahami `refreshNow` parameter
<a name="secrets-manager-agent-refresh"></a>

Secrets Manager Agent menggunakan cache dalam memori untuk menyimpan nilai rahasia, yang disegarkan secara berkala. Secara default, penyegaran ini terjadi ketika Anda meminta rahasia setelah Time to Live (TTL) kedaluwarsa, biasanya setiap 300 detik. Namun, pendekatan ini terkadang dapat menghasilkan nilai rahasia basi, terutama jika rahasia berputar sebelum entri cache kedaluwarsa.

Untuk mengatasi batasan ini, Secrets Manager Agent mendukung parameter yang disebut `refreshNow` di URL. Anda dapat menggunakan parameter ini untuk memaksa penyegaran langsung nilai rahasia, melewati cache dan memastikan Anda memiliki up-to-date informasi terbanyak.

**Perilaku default (tanpa`refreshNow`)**  
+ Menggunakan nilai cache sampai TTL kedaluwarsa
+ Menyegarkan rahasia hanya setelah TTL (default 300 detik)
+ Dapat mengembalikan nilai basi jika rahasia berputar sebelum cache kedaluwarsa

**Perilaku dengan `refreshNow=true`**  
+ Melewati cache sepenuhnya
+ Mengambil nilai rahasia terbaru langsung dari Secrets Manager
+ Memperbarui cache dengan nilai segar dan mengatur ulang TTL
+ Memastikan Anda selalu mendapatkan nilai rahasia terbaru

### Segarkan paksa nilai rahasia
<a name="refreshnow-examples"></a>

**penting**  
Nilai default `refreshNow` adalah `false`. Ketika diatur ke`true`, itu akan mengganti TTL yang ditentukan dalam file konfigurasi Secrets Manager Agent dan membuat panggilan API ke Secrets Manager.

------
#### [ curl ]

**Example Contoh - Memaksa refresh rahasia menggunakan curl**  
Contoh curl berikut menunjukkan cara memaksa Secrets Manager Agent untuk menyegarkan rahasia. Contohnya bergantung pada SSRF yang ada dalam file, yang mana ia disimpan oleh skrip instalasi.  

```
curl -v -H \\
"X-Aws-Parameters-Secrets-Token: $(/var/run/awssmatoken)" \\
'http://localhost:2773/secretsmanager/get?secretId=YOUR_SECRET_ID&refreshNow=true' \\
echo
```

------
#### [ Python ]

**Example Contoh - Memaksa refresh rahasia menggunakan Python**  
Contoh Python berikut menunjukkan cara mendapatkan rahasia dari Secrets Manager Agent. Contohnya bergantung pada SSRF yang ada dalam file, yang mana ia disimpan oleh skrip instalasi.  

```
import requests
import json

# Function that fetches the secret from Secrets Manager Agent for the provided secret id. 
def get_secret():
    # Construct the URL for the GET request
    url = f"http://localhost:2773/secretsmanager/get?secretId=YOUR_SECRET_ID&refreshNow=true"

    # Get the SSRF token from the token file
    with open('/var/run/awssmatoken') as fp:
        token = fp.read() 

    headers = {
        "X-Aws-Parameters-Secrets-Token": token.strip()
    }

    try:
        # Send the GET request with headers
        response = requests.get(url, headers=headers)

        # Check if the request was successful
        if response.status_code == 200:
            # Return the secret value
            return response.text
        else:
            # Handle error cases
            raise Exception(f"Status code {response.status_code} - {response.text}")

    except Exception as e:
        # Handle network errors
        raise Exception(f"Error: {e}")
```

------

## Konfigurasikan Agen Secrets Manager
<a name="secrets-manager-agent-config"></a>

Untuk mengubah konfigurasi Secrets Manager Agent, buat file konfigurasi [TOMB](https://toml.io/en/), lalu panggil. `./aws_secretsmanager_agent --config config.toml`Opsi konfigurasi

**`log_level`**  
Tingkat detail yang dilaporkan dalam log untuk Secrets Manager Agent: DEBUG, INFO, WARN, ERROR, atau NONE. Defaultnya adalah INFO.

**`log_to_file`**  
Apakah akan masuk ke file atau stdout/stderr: atau. `true` `false` Nilai default-nya `true`.

**`http_port`**  
Port untuk server HTTP lokal, dalam kisaran 1024 hingga 65535. Defaultnya adalah 2773.

**`region`**  
 AWS Wilayah yang akan digunakan untuk permintaan. Jika tidak ada Region yang ditentukan, Secrets Manager Agent menentukan Region dari SDK. Untuk informasi selengkapnya, lihat [Menentukan kredensil dan Wilayah default Anda](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/credentials.html) di *AWS SDK for Rust* Developer Guide.

**`ttl_seconds`**  
TTL dalam hitungan detik untuk item yang di-cache, dalam kisaran 0 hingga 3600. Defaultnya adalah 300. 0 menunjukkan bahwa tidak ada caching.

**`cache_size`**  
Jumlah maksimum rahasia yang dapat disimpan dalam cache, dalam kisaran 1 hingga 1000. Defaultnya adalah 1000.

**`ssrf_headers`**  
Daftar nama header Secrets Manager Agent memeriksa token SSRF. Defaultnya adalah “X-Aws-Parameters-Secrets-Token,”. X-Vault-Token

**`ssrf_env_variables`**  
Daftar nama variabel lingkungan yang diperiksa Agen Secrets Manager secara berurutan untuk token SSRF. Variabel lingkungan dapat berisi token atau referensi ke file token seperti pada:`AWS_TOKEN=file:///var/run/awssmatoken`. Standarnya adalah "AWS\$1TOKEN, AWS\$1SESSION \$1TOKEN, AWS\$1CONTAINER \$1AUTHORIZATION\$1TOKEN”.

**`path_prefix`**  
Awalan URI digunakan untuk menentukan apakah permintaan adalah permintaan berbasis jalur. Defaultnya adalah “/v1/”.

**`max_conn`**  
Jumlah maksimum koneksi dari klien HTTP yang diizinkan oleh Agen Secrets Manager, dalam kisaran 1 hingga 1000. Defaultnya adalah 800.

## Fitur opsional
<a name="secrets-manager-agent-features"></a>

Secrets Manager Agent dapat dibangun dengan fitur opsional dengan meneruskan `--features` bendera ke`cargo build`. Fitur yang tersedia adalah:Membangun fitur

**`prefer-post-quantum`**  
Membuat `X25519MLKEM768` algoritma pertukaran kunci prioritas tertinggi. Jika tidak, itu tersedia tetapi tidak prioritas tertinggi. `X25519MLKEM768`adalah algoritma pertukaran post-quantum-secure kunci hibrida.

**`fips`**  
Membatasi cipher suite yang digunakan oleh agen hanya untuk cipher yang disetujui FIPS.

## Pencatatan log
<a name="secrets-manager-agent-log"></a>

**Penebangan lokal**  
Secrets Manager Agent mencatat kesalahan secara lokal ke file `logs/secrets_manager_agent.log` atau ke stdout/stderr tergantung pada variabel konfigurasi. `log_to_file` Ketika aplikasi Anda memanggil Agen Secrets Manager untuk mendapatkan rahasia, panggilan tersebut muncul di log lokal. Mereka tidak muncul di CloudTrail log.

**Rotasi log**  
Secrets Manager Agent membuat file log baru ketika file mencapai 10 MB, dan menyimpan hingga lima file log total.

**AWS layanan logging**  
Log tidak masuk ke Secrets Manager, CloudTrail, atau CloudWatch. Permintaan untuk mendapatkan rahasia dari Agen Secrets Manager tidak muncul di log tersebut. Ketika Agen Secrets Manager melakukan panggilan ke Secrets Manager untuk mendapatkan rahasia, panggilan itu direkam CloudTrail dengan string agen pengguna yang berisi`aws-secrets-manager-agent`.

Anda dapat mengonfigurasi opsi logging di file[Konfigurasikan Agen Secrets Manager](#secrets-manager-agent-config).

## Pertimbangan keamanan
<a name="secrets-manager-agent-security"></a>

**Domain kepercayaan**  
Untuk arsitektur agen, domain kepercayaan adalah tempat titik akhir agen dan token SSRF dapat diakses, yang biasanya merupakan seluruh host. Domain kepercayaan untuk Agen Secrets Manager harus sesuai dengan domain tempat kredensi Secrets Manager tersedia untuk mempertahankan postur keamanan yang sama. Misalnya, di Amazon EC2 domain kepercayaan untuk Agen Secrets Manager akan sama dengan domain kredensil saat menggunakan peran untuk Amazon EC2.

**penting**  
Aplikasi sadar keamanan yang belum menggunakan solusi agen dengan kredenal Secrets Manager yang dikunci ke aplikasi harus mempertimbangkan untuk menggunakan solusi khusus bahasa AWS SDKs atau caching. Untuk informasi selengkapnya, lihat [Mendapatkan rahasia](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieving-secrets.html).