

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

# Pindahkan rahasia hardcode ke AWS Secrets Manager
<a name="hardcoded"></a>

Jika Anda memiliki rahasia plaintext dalam kode Anda, kami sarankan Anda memutarnya dan menyimpannya di Secrets Manager. Memindahkan rahasia ke Secrets Manager memecahkan masalah rahasia yang terlihat oleh siapa saja yang melihat kode, karena ke depan, kode Anda mengambil rahasia langsung dari Secrets Manager. Memutar rahasia mencabut rahasia hardcode saat ini sehingga tidak lagi valid. 

Untuk rahasia kredenal basis data, lihat[Pindahkan kredensi database hardcode ke AWS Secrets Manager](hardcoded-db-creds.md).

Sebelum Anda mulai, Anda perlu menentukan siapa yang membutuhkan akses ke rahasia. Sebaiknya gunakan dua peran IAM untuk mengelola izin rahasia Anda:
+ Peran yang mengelola rahasia dalam organisasi Anda. Untuk informasi selengkapnya, lihat [Izin administrator Secrets Manager](auth-and-access.md#auth-and-access_admin). Anda akan membuat dan memutar rahasia menggunakan peran ini.
+ Peran yang dapat menggunakan rahasia saat runtime, misalnya dalam tutorial ini yang Anda gunakan*RoleToRetrieveSecretAtRuntime*. Kode Anda mengasumsikan peran ini untuk mengambil rahasia. Dalam tutorial ini, Anda memberikan peran hanya izin untuk mengambil satu nilai rahasia, dan Anda memberikan izin dengan menggunakan kebijakan sumber daya rahasia. Untuk alternatif lain, lihat[Langkah selanjutnya](#hardcoded_step-next).

**Topics**
+ [Langkah 1: Buat Rahasianya](#hardcoded_step-1)
+ [Langkah 2: Perbarui kode Anda](#hardcoded_step-2)
+ [Langkah 3: Perbarui rahasianya](#hardcoded_step-3)
+ [Langkah selanjutnya](#hardcoded_step-next)

## Langkah 1: Buat Rahasianya
<a name="hardcoded_step-1"></a>

Langkah pertama adalah menyalin rahasia hardcode yang ada ke Secrets Manager. Jika rahasianya terkait dengan AWS sumber daya, simpan di Wilayah yang sama dengan sumber daya. Jika tidak, simpan di Wilayah yang memiliki latensi terendah untuk kasus penggunaan Anda.

**Untuk membuat rahasia (konsol)**

1. Buka konsol Secrets Manager di [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Pilih **Simpan rahasia baru**.

1. Pada halaman **Pilih jenis rahasia**, lakukan hal berikut:

   1. Untuk **Tipe rahasia**, pilih **Tipe rahasia lainnya**.

   1. **Masukkan rahasia Anda sebagai **pasangan kunci/nilai** atau di Plaintext.** Beberapa contoh:

------
#### [ API key ]

      Masukkan sebagai key/value pasangan:

      **ClientID** : *my\$1client\$1id*

      **ClientSecret** : *wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY*

------
#### [ OAuth token ]

      Masukkan sebagai plaintext:

      *AKIAI44QH8DHBEXAMPLE*

------
#### [ Digital certificate ]

      Masukkan sebagai plaintext:

      ```
      -----BEGIN CERTIFICATE-----
      EXAMPLE
      -----END CERTIFICATE-----
      ```

------
#### [ Private key ]

      Masukkan sebagai plaintext:

      ```
      –--- BEGIN PRIVATE KEY ----
      EXAMPLE
      ––-- END PRIVATE KEY –---
      ```

------

   1. Untuk **kunci Enkripsi**, pilih **aws/secretsmanager untuk menggunakan for Kunci yang dikelola AWS Secrets Manager**. Tidak ada biaya untuk menggunakan kunci ini. Anda juga dapat menggunakan kunci yang dikelola pelanggan Anda sendiri, misalnya untuk [mengakses rahasia dari yang lain Akun AWS](auth-and-access_examples_cross.md). Untuk informasi tentang biaya penggunaan kunci yang dikelola pelanggan, lihat[Harga](intro.md#asm_pricing).

   1. Pilih **Berikutnya**.

1. Pada halaman **Pilih jenis rahasia**, lakukan hal berikut:

   1. Masukkan **nama Rahasia** deskriptif dan **Deskripsi**. 

   1. Di **Izin sumber daya**, pilih **Edit izin**. Tempel kebijakan berikut, yang memungkinkan *RoleToRetrieveSecretAtRuntime* untuk mengambil rahasia, lalu pilih **Simpan**.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::111122223333:role/RoleToRetrieveSecretAtRuntime"
                  },
                  "Action": "secretsmanager:GetSecretValue",
                  "Resource": "*"
              }
          ]
      }
      ```

------

   1. Di bagian bawah halaman, pilih **Selanjutnya**.

1. Pada halaman **Konfigurasi rotasi**, matikan rotasi. Pilih **Berikutnya**.

1. Pada halaman **Ulasan**, tinjau detail rahasia Anda, lalu pilih **Store**.

## Langkah 2: Perbarui kode Anda
<a name="hardcoded_step-2"></a>

Kode Anda harus mengambil peran IAM *RoleToRetrieveSecretAtRuntime* untuk dapat mengambil rahasia. Untuk informasi selengkapnya, lihat [Beralih ke peran IAM (AWS API)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-api.html).

Selanjutnya, Anda memperbarui kode Anda untuk mengambil rahasia dari Secrets Manager menggunakan kode contoh yang disediakan oleh Secrets Manager. 

**Untuk menemukan kode sampel**

1. Buka konsol Secrets Manager di [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Pada halaman **Rahasia**, pilih rahasia Anda.

1. Gulir ke bawah ke **kode Contoh**. Pilih bahasa pemrograman Anda, lalu salin cuplikan kode.

Dalam aplikasi Anda, hapus rahasia hardcode dan tempel cuplikan kode. Bergantung pada bahasa kode Anda, Anda mungkin perlu menambahkan panggilan ke fungsi atau metode dalam cuplikan.

Uji apakah aplikasi Anda berfungsi seperti yang diharapkan dengan rahasia menggantikan rahasia hardcode.

## Langkah 3: Perbarui rahasianya
<a name="hardcoded_step-3"></a>

Langkah terakhir adalah mencabut dan memperbarui rahasia hardcode. Lihat sumber rahasia untuk menemukan instruksi untuk mencabut dan memperbarui rahasia. Misalnya, Anda mungkin perlu menonaktifkan rahasia saat ini dan menghasilkan rahasia baru.

**Untuk memperbarui rahasia dengan nilai baru**

1. Buka konsol Secrets Manager di [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Pilih **Rahasia**, lalu pilih rahasianya.

1. Pada halaman **Detail rahasia**, gulir ke bawah dan pilih **Ambil nilai rahasia**, lalu pilih **Edit**.

1. Perbarui rahasianya lalu pilih **Simpan**. 

Selanjutnya, uji apakah aplikasi Anda berfungsi seperti yang diharapkan dengan rahasia baru.

## Langkah selanjutnya
<a name="hardcoded_step-next"></a>

Setelah Anda menghapus rahasia hardcode dari kode Anda, beberapa ide untuk dipertimbangkan selanjutnya:
+ [Untuk menemukan rahasia hardcode di aplikasi Java dan Python Anda, kami merekomendasikan Amazon Reviewer. CodeGuru ](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html)
+ Anda dapat meningkatkan kinerja dan mengurangi biaya dengan menyimpan rahasia. Untuk informasi selengkapnya, lihat [Dapatkan rahasia dari AWS Secrets Manager](retrieving-secrets.md).
+ Untuk rahasia yang Anda akses dari beberapa Wilayah, pertimbangkan untuk mereplikasi rahasia Anda untuk meningkatkan latensi. Untuk informasi selengkapnya, lihat [Replikasi AWS Secrets Manager rahasia di seluruh Wilayah](replicate-secrets.md).
+ Dalam tutorial ini, Anda *RoleToRetrieveSecretAtRuntime* hanya memberikan izin untuk mengambil nilai rahasia. Untuk memberikan peran lebih banyak izin, misalnya untuk mendapatkan metadata tentang rahasia atau untuk melihat daftar rahasia, lihat. [Kebijakan berbasis sumber daya](auth-and-access_resource-policies.md) 
+ Dalam tutorial ini, Anda diberikan izin untuk *RoleToRetrieveSecretAtRuntime* menggunakan kebijakan sumber daya rahasia. Untuk cara lain untuk memberikan izin, lihat[Kebijakan berbasis identitas](auth-and-access_iam-policies.md).