

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

# Mengambil rahasia dan parameter ke variabel lingkungan Elastic Beanstalk
<a name="AWSHowTo.secrets.env-vars"></a>

Elastic Beanstalk dapat mengambil AWS Secrets Manager nilai AWS Systems Manager dari dan Parameter Store selama bootstrap instance dan menetapkannya ke variabel lingkungan untuk digunakan aplikasi Anda.

Poin-poin berikut merangkum konfigurasi, sinkronisasi, dan akses untuk menggunakan variabel lingkungan sebagai rahasia:
+ Konfigurasikan variabel lingkungan Anda untuk menyimpan rahasia dengan menentukan Amazon Resource Names (ARNs) untuk rahasia dan parameter yang akan disimpan.
+ Ketika nilai rahasia diperbarui atau diputar di Secrets Manager atau Systems Manager Parameter Store, Anda harus menyegarkan variabel lingkungan secara manual.
+ [Variabel lingkungan rahasia tersedia untuk perintah wadah [ebextension](platforms-linux-extend.config-files.md) dan kait platform.](platforms-linux-extend.hooks.md)

**Versi platform yang didukung**  
Versi platform yang dirilis pada atau setelah [26 Maret 2025](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2025-03-26-windows.html) mendukung AWS Secrets Manager rahasia dan AWS Systems Manager parameter Parameter Store yang dikonfigurasi sebagai variabel lingkungan.

**catatan**  
Dengan pengecualian platform docker berbasis Docker dan ECS, versi platform Amazon Linux 2 tidak mendukung nilai variabel multiline. Untuk informasi selengkapnya tentang dukungan variabel multiline, lihat[Nilai multiline](#AWSHowTo.secrets.multiline).

**Topics**
+ [Harga](#AWSHowTo.secrets.pricing)
+ [Konfigurasikan rahasia sebagai variabel lingkungan Elastic Beanstalk](#AWSHowTo.secrets.configure-env-vars)
+ [Mengekstrak kunci JSON dari rahasia Secrets Manager](#AWSHowTo.secrets.json)
+ [Praktik terbaik untuk sinkronisasi rahasia dengan variabel lingkungan Elastic Beanstalk](#AWSHowTo.secrets.rotating-secrets)
+ [Nilai multiline dalam variabel lingkungan Amazon Linux 2](#AWSHowTo.secrets.multiline)

## Harga
<a name="AWSHowTo.secrets.pricing"></a>

Biaya standar berlaku untuk penggunaan Secrets Manager dan Systems Manager Parameter Store. Untuk informasi selengkapnya tentang harga, lihat situs web berikut:
+ [AWS Secrets Manager harga](https://aws.amazon.com/secrets-manager/pricing)
+ [AWS Systems Manager harga](https://aws.amazon.com/systems-manager/pricing/) (pilih *Parameter Store* dari daftar konten)

Elastic Beanstalk tidak mengenakan biaya untuk aplikasi Anda untuk mereferensikan rahasia lingkungan melalui variabel lingkungan. Namun, biaya standar berlaku untuk permintaan yang dilakukan Elastic Beanstalk untuk layanan ini atas nama Anda.

## Konfigurasikan rahasia sebagai variabel lingkungan Elastic Beanstalk
<a name="AWSHowTo.secrets.configure-env-vars"></a>

Anda dapat menggunakan konsol Elastic Beanstalk, file konfigurasi `.ebextensions` di, CLI, AWS AWS dan SDK untuk mengonfigurasi rahasia dan parameter sebagai variabel lingkungan. 

**Topics**
+ [Prasyarat](#AWSHowTo.secrets.configure-env-vars.prerequisites)
+ [Menggunakan konsol](#AWSHowTo.secrets.configure-env-vars.console)
+ [Konfigurasi menggunakan file di.ebextensions](#AWSHowTo.secrets.configure-env-vars.config-file)
+ [Konfigurasi menggunakan AWS CLI](#AWSHowTo.secrets.configure-env-vars.aws-cli)
+ [Konfigurasi menggunakan AWS SDK](#AWSHowTo.secrets.configure-env-vars.aws-sdk)

### Prasyarat
<a name="AWSHowTo.secrets.configure-env-vars.prerequisites"></a>

Sebelum Anda dapat mengatur variabel lingkungan Anda untuk referensi rahasia, Anda harus terlebih dahulu menyelesaikan langkah-langkah berikut.

**Prosedur umum sebelum konfigurasi variabel lingkungan**

1. Buat rahasia Secrets Manager atau parameter Parameter Store untuk menyimpan data sensitif Anda. Untuk informasi selengkapnya, lihat salah satu atau kedua topik berikut:
   + *Menciptakan rahasia* di [Menggunakan Secrets Manager untuk membuat dan mengambil rahasia](AWSHowTo.secrets.Secrets-Manager-and-Parameter-Store.md#AWSHowTo.secrets.Secrets-Manager)
   + *Membuat parameter* di [Menggunakan Systems Manager Parameter Store untuk membuat dan mengambil parameter](AWSHowTo.secrets.Secrets-Manager-and-Parameter-Store.md#AWSHowTo.secrets.SSM-parmameter-store)

1. Siapkan izin IAM yang diperlukan untuk instans EC2 lingkungan Anda untuk mengambil rahasia dan parameter. Untuk informasi selengkapnya, lihat [Izin IAM yang diperlukan](AWSHowTo.secrets.IAM-permissions.md).

### Menggunakan konsol
<a name="AWSHowTo.secrets.configure-env-vars.console"></a>

Anda dapat menggunakan konsol Elastic Beanstalk untuk mengonfigurasi rahasia sebagai variabel lingkungan.

**Untuk mengonfigurasi rahasia sebagai variabel lingkungan di konsol Elastic Beanstalk**

1. **Buka konsol [Elastic Beanstalk, dan di daftar Wilayah, pilih konsol Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk.** Wilayah AWS

1. Di panel navigasi, pilih **Lingkungan**, dan kemudian pilih nama lingkungan Anda dari daftar.

1. Pada panel navigasi, pilih **Konfigurasi**.

1. Dalam kategori konfigurasi **Pembaruan, pemantauan, dan pencatatan**, pilih **Edit**.

1. Gulir ke bawah ke **variabel lingkungan Runtime**.

1. Pilih **Tambahkan variabel lingkungan**.

1. Untuk **Source** pilih **Secrets Manager** atau **SSM Parameter Store**.
**catatan**  
Untuk informasi selengkapnya tentang opsi **Teks biasa** di drop-down, lihat[Mengkonfigurasi properti lingkungan (variabel lingkungan)](environments-cfg-softwaresettings.md#environments-cfg-softwaresettings-console). 

1. Untuk **nama variabel Environment** masukkan nama variabel lingkungan untuk menyimpan nilai rahasia atau parameter.

1. Untuk **nilai variabel Environment** masukkan ARN dari parameter Systems Manager Parameter Store atau rahasia Secrets Manager. Selama bootstrap instance Elastic Beanstalk akan memulai nilai variabel yang Anda masukkan di Langkah **8** ke nilai yang disimpan dalam sumber daya ARN ini.

   Konsol memvalidasi jika nilai yang Anda masukkan adalah format ARN yang valid untuk toko yang Anda pilih **di** Langkah 7. Namun, itu tidak memvalidasi keberadaan sumber daya yang ditentukan oleh ARN atau jika Anda memiliki izin [IAM yang diperlukan untuk](AWSHowTo.secrets.IAM-permissions.md) mengaksesnya.

1. Jika Anda perlu menambahkan lebih banyak variabel ulangi **Langkah 6 hingga** **Langkah 9**.

1. Untuk menyimpan perubahan pilih **Terapkan** di bagian bawah halaman.

### Konfigurasi menggunakan file di.ebextensions
<a name="AWSHowTo.secrets.configure-env-vars.config-file"></a>

Anda dapat menggunakan file konfigurasi [Elastic Beanstalk untuk mengonfigurasi rahasia](ebextensions.md) sebagai variabel lingkungan. Gunakan [aws:elasticbeanstalk:aplikasi:environmentsecrets](command-options-general.md#command-options-general-elasticbeanstalk-application-environmentsecrets) namespace untuk menentukan properti lingkungan.

**catatan**  
Secrets Manager secara otomatis menambahkan 6 karakter acak ke nama rahasia dalam format ARN untuk memastikan keunikan.

**Example [.ebextensions/options.config untuk rahasia lingkungan (sintaks singkatan)](ebextensions-optionsettings.md#ebextensions-optionsettings.title)**  

```
option_settings:
  aws:elasticbeanstalk:application:environmentsecrets:
    MY_SECRET: arn:aws:secretsmanager:us-east-1:111122223333:secret:mysecret-AbCd12
    MY_PARAMETER: arn:aws:ssm:us-east-1:111122223333:parameter/myparam
```

**Example [.ebextensions/options.config untuk rahasia lingkungan (sintaks standar)](ebextensions-optionsettings.md#ebextensions-optionsettings.title)**  

```
option_settings:
  - namespace: aws:elasticbeanstalk:application:environmentsecrets
    option_name: MY_SECRET
    value: arn:aws:secretsmanager:us-east-1:111122223333:secret:mysecret-AbCd12
  - namespace: aws:elasticbeanstalk:application:environmentsecrets
    option_name: MY_PARAMETER
    value: arn:aws:ssm:us-east-1:111122223333:parameter/myparam
```

### Konfigurasi menggunakan AWS CLI
<a name="AWSHowTo.secrets.configure-env-vars.aws-cli"></a>

Anda dapat menggunakan AWS Command Line Interface (AWS CLI) untuk mengonfigurasi rahasia sebagai variabel lingkungan Elastic Beanstalk. Bagian ini memberikan contoh perintah [create-environment dan [update-environment](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/update-environment.html)](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/create-environment.html) dengan namespace. [aws:elasticbeanstalk:aplikasi:environmentsecrets](command-options-general.md#command-options-general-elasticbeanstalk-application-environmentsecrets) Ketika Elastic Beanstalk mem-bootstrap instance EC2 untuk lingkungan yang direferensikan perintah ini, ia menginisialisasi variabel lingkungan dengan rahasia yang diambil dan nilai parameter. Ini mengambil nilai-nilai ini dari masing-masing ARNs Secrets Manager dan Systems Manager Parameter Store.

 

Dua contoh berikut menggunakan perintah [create-environment](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/create-environment.html) untuk menambahkan rahasia dan parameter, dikonfigurasi sebagai variabel lingkungan bernama dan. `MY_SECRET` `MY_PARAMETER` 

**Example dari create-environment dengan rahasia yang dikonfigurasi sebagai variabel lingkungan (opsi namespace sebaris)**  

```
aws elasticbeanstalk create-environment \
--region us-east-1 \
--application-name my-app \
--environment-name my-env \
--platform-arn "arn:aws:elasticbeanstalk:::platform/Node.js 24 running on 64bit Amazon Linux 2023" \
--option-settings \
Namespace=aws:autoscaling:launchconfiguration,OptionName=IamInstanceProfile,Value=aws-elasticbeanstalk-ec2-role \
Namespace=aws:elasticbeanstalk:application:environmentsecrets,OptionName=MY_SECRET,Value=arn:aws:secretsmanager:us-east-1:111122223333:secret:mysecret-AbCd12 \
Namespace=aws:elasticbeanstalk:application:environmentsecrets,OptionName=MY_PARAMETER,Value=arn:aws:ssm:us-east-1:111122223333:parameter/myparam
```



Sebagai alternatif, gunakan `options.json` file untuk menentukan opsi namespace alih-alih memasukkannya sebaris.

**Example dari create-environment dengan rahasia yang dikonfigurasi sebagai variabel lingkungan (opsi namespace dalam file) `options.json`**  

```
aws elasticbeanstalk create-environment \
--region us-east-1 \
--application-name my-app \
--environment-name my-env \
--platform-arn "arn:aws:elasticbeanstalk:::platform/Node.js 24 running on 64bit Amazon Linux 2023" \
--option-settings file://options.json
```

**Example**  

```
### example options.json ###
[
  {
    "Namespace": "aws:autoscaling:launchconfiguration",
    "OptionName": "IamInstanceProfile",
    "Value": "aws-elasticbeanstalk-ec2-role"
  },
  {
    "Namespace": "aws:elasticbeanstalk:application:environmentsecrets",
    "OptionName": "MY_SECRET",
    "Value": "arn:aws:secretsmanager:us-east-1:111122223333:secret:mysecret-AbCd12"
  },
  {
    "Namespace": "aws:elasticbeanstalk:application:environmentsecrets",
    "OptionName": "MY_PARAMETER",
    "Value": "arn:aws:ssm:us-east-1:111122223333:parameter/myparam"
  }
]
```





Contoh berikutnya mengkonfigurasi variabel lingkungan, bernama `MY_SECRET` dan`MY_PARAMETER`, untuk menyimpan rahasia dan parameter untuk lingkungan yang ada. Perintah [update-environment](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/update-environment.html) meneruskan opsi dengan sintaks yang sama dengan `create-environment` perintah, baik inline atau dengan file. `options.json` Contoh berikut menunjukkan perintah menggunakan `options.json` file yang sama yang juga digunakan dalam contoh sebelumnya.



**Example dari update-environment dengan rahasia yang dikonfigurasi sebagai variabel lingkungan (opsi namespace dalam file) `options.json`**  

```
aws elasticbeanstalk update-environment \
--region us-east-1 \
--application-name my-app \
--environment-name my-env \
--platform-arn "arn:aws:elasticbeanstalk:::platform/Node.js 24 running on 64bit Amazon Linux 2023" \
--option-settings file://options.json
```

### Konfigurasi menggunakan AWS SDK
<a name="AWSHowTo.secrets.configure-env-vars.aws-sdk"></a>

Anda dapat mengonfigurasi rahasia dan parameter sebagai variabel lingkungan menggunakan file [AWS SDKs](https://docs.aws.amazon.com//code-library/). Mirip dengan `create-environment` AWS CLI perintah `update-environment` dan yang disebutkan di bagian sebelumnya, Anda dapat menggunakan tindakan [CreateEnvironment](https://docs.aws.amazon.com//elasticbeanstalk/latest/api/API_CreateEnvironment.html)dan [UpdateEnvironment](https://docs.aws.amazon.com//elasticbeanstalk/latest/api/API_UpdateEnvironment.html)API. Gunakan parameter `OptionSettings` permintaan untuk menentukan opsi [aws:elasticbeanstalk:aplikasi:environmentsecrets](command-options-general.md#command-options-general-elasticbeanstalk-application-environmentsecrets) namespace.

## Mengekstrak kunci JSON dari rahasia Secrets Manager
<a name="AWSHowTo.secrets.json"></a>

Versi platform yang dirilis pada atau setelah [13 Januari 2026](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2026-01-13-al2023.html) mendukung penggalian bidang tertentu dari rahasia Secrets Manager yang diformat JSON dengan menambahkan titik dua dan nama kunci JSON ke ARN rahasia. Ini memungkinkan Anda untuk mereferensikan pasangan kunci-nilai individu dalam rahasia daripada seluruh rahasia.

### Sintaksis
<a name="AWSHowTo.secrets.json.syntax"></a>

Untuk mengekstrak kunci JSON tertentu dari rahasia, tambahkan `:json-key-name` ke ARN rahasia:

```
arn:aws:secretsmanager:region:account:secret:secret-name-XXXXXX:json-key-name
```

Ekstraksi kunci JSON dapat dikonfigurasi menggunakan metode yang sama seperti rahasia lingkungan biasa: konsol, file konfigurasi di`.ebextensions`, AWS CLI, atau. AWS SDKs

### Batasan
<a name="AWSHowTo.secrets.json.limitations"></a>
+ Ekstraksi kunci JSON hanya didukung untuk rahasia Secrets Manager, **bukan** parameter Systems Manager Parameter Store.
+ Hanya kunci JSON tingkat atas yang didukung. Akses kunci bersarang (misalnya,`config.database.host`) dan pengindeksan array (misalnya,`servers[0]`) **tidak** didukung. Jika Anda perlu mengakses nilai bersarang, ekstrak objek induk dan menguraikannya dalam kode aplikasi Anda. Objek dan array bersarang yang diakses menggunakan kunci tingkat atas diserialisasikan kembali ke format JSON.
+ Nama kunci JSON tidak dapat berisi karakter titik dua (`:`). Titik dua dicadangkan sebagai pembatas dalam sintaks ARN. Jika nama kunci JSON berisi titik dua, hanya bagian sebelum titik dua pertama digunakan sebagai nama kunci, dan karakter apa pun setelah titik dua diabaikan.
+ Platform Docker yang dikelola ECS menggunakan sintaks ECS asli untuk mereferensikan rahasia. Untuk informasi selengkapnya, lihat [Lulus rahasia Secrets Manager melalui variabel lingkungan Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/secrets-envvar-secrets-manager.html) di *Panduan Pengembang Layanan Amazon Elastic Container*.

### Contoh
<a name="AWSHowTo.secrets.json.example"></a>

Contoh berikut menunjukkan bagaimana jenis nilai yang berbeda diekstraksi dari rahasia JSON. Mengingat rahasia ini:

```
{
  "stringKey": "value1",
  "numberKey": 42,
  "objectKey": {
    "nested": "data"
  },
  "arrayKey": ["item1", "item2"]
}
```

Anda dapat mengonfigurasi ekstraksi di`.ebextensions`:

**Example Contoh .ebextensions dengan ekstraksi kunci JSON**  

```
option_settings:
  aws:elasticbeanstalk:application:environmentsecrets:
    STRING_VAR: arn:aws:secretsmanager:us-east-1:111122223333:secret:mysecret-AbCd12:stringKey
    NUMBER_VAR: arn:aws:secretsmanager:us-east-1:111122223333:secret:mysecret-AbCd12:numberKey
    OBJECT_VAR: arn:aws:secretsmanager:us-east-1:111122223333:secret:mysecret-AbCd12:objectKey
    ARRAY_VAR: arn:aws:secretsmanager:us-east-1:111122223333:secret:mysecret-AbCd12:arrayKey
```

Ini menghasilkan variabel lingkungan berikut:
+ `STRING_VAR=value1`
+ `NUMBER_VAR=42`
+ `OBJECT_VAR={"nested":"data"}`
+ `ARRAY_VAR=["item1","item2"]`

## Praktik terbaik untuk sinkronisasi rahasia dengan variabel lingkungan Elastic Beanstalk
<a name="AWSHowTo.secrets.rotating-secrets"></a>

Topik ini merekomendasikan praktik terbaik bagi aplikasi Anda untuk menggunakan rahasia lingkungan dengan Secrets Manager atau Systems Manager Parameter Store. Aplikasi Elastic Beanstalk Anda tidak akan secara otomatis menerima nilai yang diperbarui jika data penyimpanan rahasia diperbarui atau diputar. Elastic Beanstalk hanya menarik rahasia ke dalam variabel lingkungan pada saat bootstrap instance. 

### Menyegarkan variabel lingkungan Anda
<a name="AWSHowTo.secrets.rotating-secrets.refresh-env-vars"></a>

Untuk memicu lingkungan Elastic Beanstalk Anda untuk memperbaiki nilai rahasia terbaru dari toko rahasia mereka, kami sarankan Anda menjalankan atau operasi. `UpdateEnvironment` `RestartAppServer` Anda dapat menjalankan operasi ini menggunakan konsol Elastic Beanstalk, the AWS CLI, atau Elastic Beanstalk API. [Untuk informasi selengkapnya, lihat [https://docs.aws.amazon.com//cli/latest/userguide/cli_elastic-beanstalk_code_examples.html](https://docs.aws.amazon.com//cli/latest/userguide/cli_elastic-beanstalk_code_examples.html), atau Referensi API.AWS Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/)

### Mengelola efek penskalaan otomatis pada sinkronisasi rahasia
<a name="AWSHowTo.secrets.rotating-secrets.as-effects"></a>

Jika peristiwa skala atau penggantian instance terjadi setelah pembaruan toko rahasia, instance baru yang muncul akan memiliki nilai rahasia terbaru dari Secrets Manager atau Systems Manager Parameter Store. Peristiwa semacam itu dapat terjadi bahkan jika tidak semua contoh lain di lingkungan telah disegarkan untuk mengambil rahasia baru. 

**penting**  
Anda harus memastikan bahwa aplikasi Anda dapat menggunakan dua nilai rahasia yang berbeda untuk variabel lingkungan yang sama. Ini mengakomodasi peristiwa di mana pembaruan rahasia terjadi di Secrets Manager atau Systems Manager Parameter Store, diikuti dengan skala keluar atau penggantian instance di lingkungan Anda, sementara instance lainnya sedang menunggu penyegaran variabel lingkungan. Selama periode tunggu untuk penyegaran, tidak semua instance lingkungan akan memiliki nilai yang sama untuk variabel lingkungan penyimpanan rahasia.

Contoh kasus penggunaan seperti itu adalah rotasi kredenal database. Ketika peristiwa skala keluar mengikuti rotasi kredensi, rahasia lingkungan yang direferensikan oleh instance yang baru di-bootstrap berisi kredenal database yang diperbarui. Namun, rahasia lingkungan yang direferensikan oleh instance yang ada mempertahankan nilai lama sampai disegarkan oleh operasi atau. `UpdateEnvironment` `RestartAppServer`

## Nilai multiline dalam variabel lingkungan Amazon Linux 2
<a name="AWSHowTo.secrets.multiline"></a>

Nilai *multiline* terdiri dari lebih dari satu baris dan termasuk karakter baris baru. Dengan pengecualian Docker dan platform Docker berbasis ECS, platform yang berjalan di Amazon Linux 2 tidak mendukung nilai multiline untuk variabel lingkungan

**catatan**  
Elastic Beanstalk akan gagal dalam penerapan lingkungan yang terpengaruh jika mendeteksi nilai multiline.



Opsi berikut dapat berfungsi sebagai solusi atau solusi untuk masalah multiline:
+ Tingkatkan lingkungan Amazon Linux 2 Anda ke Amazon Linux 2023. Untuk informasi selengkapnya, lihat [Migrasi dari Amazon Linux 2 ke Amazon Linux 2023](using-features.migration-al.generic.from-al2.md).
+ Hapus karakter baris baru dari nilai rahasia Anda. Salah satu contoh pendekatan adalah Base64 menyandikan nilai Anda sebelum menyimpannya di toko rahasia. Aplikasi Anda kemudian perlu memecahkan kode nilai kembali ke format asli ketika mereferensikannya dari variabel rahasia lingkungan.
+ Rancang kode aplikasi Anda untuk mengambil data langsung dari Secrets Manager atau Systems Manager Parameter Store. Untuk informasi selengkapnya, lihat *Mengambil rahasia* di [Menggunakan Secrets Manager](AWSHowTo.secrets.Secrets-Manager-and-Parameter-Store.md#AWSHowTo.secrets.Secrets-Manager) atau *Mengambil parameter*. [Menggunakan Systems Manager Parameter Store](AWSHowTo.secrets.Secrets-Manager-and-Parameter-Store.md#AWSHowTo.secrets.SSM-parmameter-store)