

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

# Gunakan AWS Secrets Manager rahasia dalam GitHub pekerjaan
<a name="retrieving-secrets_github"></a>

Untuk menggunakan rahasia dalam GitHub pekerjaan, Anda dapat menggunakan GitHub tindakan untuk mengambil rahasia dari AWS Secrets Manager dan menambahkannya sebagai [variabel Lingkungan](https://docs.github.com/en/actions/learn-github-actions/environment-variables) bertopeng dalam alur kerja Anda GitHub . Untuk informasi selengkapnya tentang GitHub Tindakan, lihat [Memahami GitHub Tindakan](https://docs.github.com/en/actions/learn-github-actions/understanding-github-actions) di *GitHub Dokumen.*

Ketika Anda menambahkan rahasia ke GitHub lingkungan Anda, itu tersedia untuk semua langkah lain dalam GitHub pekerjaan Anda. Ikuti panduan dalam [Pengerasan Keamanan untuk GitHub Tindakan](https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions) untuk membantu mencegah rahasia di lingkungan Anda disalahgunakan.

Anda dapat mengatur seluruh string dalam nilai rahasia sebagai nilai variabel lingkungan, atau jika string adalah JSON, Anda dapat mengurai JSON untuk mengatur variabel lingkungan individu untuk setiap pasangan nilai kunci JSON. Jika nilai rahasia adalah biner, tindakan mengubahnya menjadi string.

Untuk melihat variabel lingkungan yang dibuat dari rahasia Anda, aktifkan logging debug. *Untuk informasi selengkapnya, lihat [Mengaktifkan logging debug](https://docs.github.com/en/actions/monitoring-and-troubleshooting-workflows/enabling-debug-logging) di Dokumen. GitHub *

Untuk menggunakan variabel lingkungan yang dibuat dari rahasia Anda, lihat [Variabel lingkungan](https://docs.github.com/en/actions/learn-github-actions/environment-variables) di *GitHub Dokumen.*

## Prasyarat
<a name="retrieving-secrets_github_prereq"></a>

Untuk menggunakan tindakan ini, Anda harus terlebih dahulu mengonfigurasi AWS kredensil dan mengatur Wilayah AWS di GitHub lingkungan Anda dengan menggunakan langkah tersebut`configure-aws-credentials`. Ikuti petunjuk di [Mengonfigurasi Tindakan AWS Kredensial Untuk GitHub Tindakan untuk](https://github.com/aws-actions/configure-aws-credentials) **Mengasumsikan peran secara langsung menggunakan penyedia GitHub OIDC**. Ini memungkinkan Anda untuk menggunakan kredensil berumur pendek dan menghindari menyimpan kunci akses tambahan di luar Secrets Manager.

Peran IAM yang diasumsikan tindakan harus memiliki izin berikut:
+ `GetSecretValue`pada rahasia yang ingin Anda ambil.
+ `ListSecrets`pada semua rahasia.
+ (Opsional) `Decrypt` pada KMS key jika rahasia dienkripsi dengan file. kunci yang dikelola pelanggan

Untuk informasi selengkapnya, lihat [Otentikasi dan kontrol akses untuk AWS Secrets Manager](auth-and-access.md).

## Penggunaan
<a name="retrieving-secrets_github_usage"></a>

Untuk menggunakan tindakan, tambahkan langkah ke alur kerja Anda yang menggunakan sintaks berikut.

```
- name: Step name
  uses: aws-actions/aws-secretsmanager-get-secrets@v2
  with:
    secret-ids: |
      secretId1
      ENV_VAR_NAME, secretId2
    name-transformation: (Optional) uppercase|lowercase|none
    parse-json-secrets: (Optional) true|false
```Parameter

`secret-ids`  
Rahasia ARNS, nama, dan awalan nama.  
Untuk mengatur nama variabel lingkungan, masukkan sebelum ID rahasia, diikuti dengan koma. Misalnya `ENV_VAR_1, secretId` membuat variabel lingkungan bernama **ENV\$1VAR\$11** dari rahasia. `secretId` Nama variabel lingkungan dapat terdiri dari huruf besar, angka, dan garis bawah.  
Untuk menggunakan awalan, masukkan setidaknya tiga karakter diikuti dengan tanda bintang. Misalnya `dev*` mencocokkan semua rahasia dengan nama yang dimulai di **dev**. Jumlah maksimum rahasia pencocokan yang dapat diambil adalah 100. Jika Anda menetapkan nama variabel, dan awalan cocok dengan beberapa rahasia, maka tindakan gagal.

`name-transformation`  
Secara default, langkah membuat setiap nama variabel lingkungan dari nama rahasia, diubah untuk menyertakan hanya huruf besar, angka, dan garis bawah, dan agar tidak dimulai dengan angka. Untuk huruf dalam nama, Anda dapat mengonfigurasi langkah untuk menggunakan huruf kecil dengan `lowercase` atau tidak mengubah huruf dengan. `none` Nilai default-nya adalah `uppercase`.

`parse-json-secrets`  
(Opsional) Secara default, tindakan menetapkan nilai variabel lingkungan ke seluruh string JSON dalam nilai rahasia. Atur `parse-json-secrets` `true` untuk membuat variabel lingkungan untuk setiap pasangan kunci-nilai di JSON.   
Perhatikan bahwa jika JSON menggunakan kunci peka huruf besar/kecil seperti “nama” dan “Nama”, tindakan akan memiliki konflik nama duplikat. Dalam hal ini, atur `parse-json-secrets` ke `false` dan parse nilai rahasia JSON secara terpisah. 

## Penamaan variabel lingkungan
<a name="retrieving-secrets_github_alias"></a>

Variabel lingkungan yang dibuat oleh tindakan diberi nama sama dengan rahasia tempat mereka berasal. Variabel lingkungan memiliki persyaratan penamaan yang lebih ketat daripada rahasia, sehingga tindakan mengubah nama rahasia untuk memenuhi persyaratan tersebut. Misalnya, tindakan mengubah huruf kecil menjadi huruf besar. Jika Anda mengurai JSON rahasia, maka nama variabel lingkungan mencakup nama rahasia dan nama kunci JSON, misalnya. `MYSECRET_KEYNAME` Anda dapat mengonfigurasi tindakan untuk tidak mengubah huruf kecil.

Jika dua variabel lingkungan akan berakhir dengan nama yang sama, tindakan gagal. Dalam hal ini, Anda harus menentukan nama yang ingin Anda gunakan untuk variabel lingkungan sebagai *alias*.

Contoh kapan nama mungkin bertentangan:
+ Sebuah rahasia bernama "MySecret" dan rahasia bernama “mysecret” keduanya akan menjadi variabel lingkungan bernama “MYSECRET”.
+ Sebuah rahasia bernama “SECRET\$1KEYNAME” dan rahasia JSON-parsed bernama “Secret” dengan kunci bernama “keyname” keduanya akan menjadi variabel lingkungan bernama “SECRET\$1KEYNAME”.

Anda dapat mengatur nama variabel lingkungan dengan menentukan *alias, seperti* yang ditunjukkan pada contoh berikut, yang menciptakan variabel bernama. `ENV_VAR_NAME`

```
secret-ids: |
  ENV_VAR_NAME, secretId2
```

**Alias kosong**
+ Jika Anda mengatur `parse-json-secrets: true` dan memasukkan alias kosong, diikuti dengan koma dan kemudian ID rahasia, tindakan tersebut memberi nama variabel lingkungan sama dengan kunci JSON yang diurai. Nama variabel tidak termasuk nama rahasia. 

  Jika rahasia tidak berisi JSON yang valid, maka tindakan akan membuat satu variabel lingkungan dan menamainya sama dengan nama rahasia.
+ Jika Anda mengatur `parse-json-secrets: false` dan memasukkan alias kosong, diikuti dengan koma dan ID rahasia, tindakan tersebut memberi nama variabel lingkungan seolah-olah Anda tidak menentukan alias.

Contoh berikut menunjukkan alias kosong.

```
,secret2
```

## Contoh
<a name="retrieving-secrets_github_examples"></a>

**Example 1 Dapatkan rahasia dengan nama dan oleh ARN**  
Contoh berikut menciptakan variabel lingkungan untuk rahasia diidentifikasi dengan nama dan oleh ARN.  

```
- name: Get secrets by name and by ARN
  uses: aws-actions/aws-secretsmanager-get-secrets@v2
  with:
    secret-ids: |
      exampleSecretName
      arn:aws:secretsmanager:us-east-2:123456789012:secret:test1-a1b2c3
      0/test/secret
      /prod/example/secret
      SECRET_ALIAS_1,test/secret
      SECRET_ALIAS_2,arn:aws:secretsmanager:us-east-2:123456789012:secret:test2-a1b2c3
      ,secret2
```
Variabel lingkungan dibuat:  

```
EXAMPLESECRETNAME: secretValue1
TEST1: secretValue2
_0_TEST_SECRET: secretValue3
_PROD_EXAMPLE_SECRET: secretValue4
SECRET_ALIAS_1: secretValue5
SECRET_ALIAS_2: secretValue6
SECRET2: secretValue7
```

**Example 2 Dapatkan semua rahasia yang dimulai dengan awalan**  
Contoh berikut menciptakan variabel lingkungan untuk semua rahasia dengan nama yang dimulai dengan*beta*.  

```
- name: Get Secret Names by Prefix
  uses: 2
  with:
    secret-ids: |
      beta*    # Retrieves all secrets that start with 'beta'
```
Variabel lingkungan dibuat:  

```
BETASECRETNAME: secretValue1
BETATEST: secretValue2
BETA_NEWSECRET: secretValue3
```

**Example 3 Parse JSON secara rahasia**  
Contoh berikut menciptakan variabel lingkungan dengan mengurai JSON dalam rahasia.  

```
- name: Get Secrets by Name and by ARN
  uses: aws-actions/aws-secretsmanager-get-secrets@v2
  with:
    secret-ids: |
      test/secret
      ,secret2
    parse-json-secrets: true
```
Rahasianya `test/secret` memiliki nilai rahasia berikut.  

```
{
  "api_user": "user",
  "api_key": "key",
  "config": {
    "active": "true"
  }
}
```
Rahasianya `secret2` memiliki nilai rahasia berikut.  

```
{
  "myusername": "alejandro_rosalez",
  "mypassword": "EXAMPLE_PASSWORD"
}
```
Variabel lingkungan dibuat:  

```
TEST_SECRET_API_USER: "user"
TEST_SECRET_API_KEY: "key"
TEST_SECRET_CONFIG_ACTIVE: "true"
MYUSERNAME: "alejandro_rosalez"
MYPASSWORD: "EXAMPLE_PASSWORD"
```

**Example 4 Gunakan huruf kecil untuk nama variabel lingkungan**  
Contoh berikut menciptakan variabel lingkungan dengan nama huruf kecil.  

```
- name: Get secrets
  uses: aws-actions/aws-secretsmanager-get-secrets@v2
  with:
    secret-ids: exampleSecretName
    name-transformation: lowercase
```
Variabel lingkungan dibuat:  

```
examplesecretname: secretValue
```