

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

# Mengatur rotasi otomatis untuk rahasia non-database AWS Secrets Manager
<a name="rotate-secrets_turn-on-for-other"></a>

Tutorial ini menjelaskan cara mengatur [Rotasi dengan fungsi Lambda](rotate-secrets_lambda.md) rahasia non-database. Rotasi adalah proses memperbarui rahasia secara berkala. Ketika Anda memutar rahasia, Anda memperbarui kredensi di kedua rahasia dan database atau layanan yang menjadi rahasia itu.

Untuk rahasia database, lihat[Rotasi otomatis untuk rahasia database (konsol)](rotate-secrets_turn-on-for-db.md).

**Awas**  
Untuk mengaktifkan rotasi otomatis, Anda harus memiliki izin untuk membuat peran eksekusi IAM untuk fungsi rotasi Lambda dan melampirkan kebijakan izin padanya. Anda membutuhkan keduanya `iam:CreateRole` dan `iam:AttachRolePolicy` izin. Pemberian izin ini memungkinkan identitas untuk memberikan izin apa pun kepada diri mereka sendiri.

**Topics**
+ [Langkah 1: Buat fungsi rotasi generik](#rotate-secrets_turn-on-for-other_create)
+ [Langkah 2: Tulis kode fungsi rotasi](#rotate-secrets_turn-on-for-other_write)
+ [Langkah 3: Konfigurasikan rahasia untuk rotasi](#rotate-secrets_turn-on-for-other_configure)
+ [Langkah 4: Izinkan fungsi rotasi untuk mengakses Secrets Manager dan database atau layanan Anda](#rotate-secrets_turn-on-for-other_perms)
+ [Langkah 5: Izinkan Secrets Manager untuk menjalankan fungsi rotasi](#rotate-secrets_turn-on-for-other_perms2)
+ [Langkah 6: Siapkan akses jaringan untuk fungsi rotasi](#rotate-secrets_turn-on-for-other_network)
+ [Langkah selanjutnya](#rotate-secrets_turn-on-for-other_stepnext)

## Langkah 1: Buat fungsi rotasi generik
<a name="rotate-secrets_turn-on-for-other_create"></a>

Untuk memulai, buat fungsi rotasi Lambda. Ini tidak akan memiliki kode di dalamnya untuk memutar rahasia Anda, jadi Anda akan menulisnya di langkah selanjutnya. Untuk informasi tentang cara kerja fungsi rotasi, lihat[Fungsi rotasi Lambda](rotate-secrets_lambda-functions.md).

Di Wilayah yang didukung, Anda dapat menggunakan AWS Serverless Application Repository untuk membuat fungsi dari template. Untuk daftar Wilayah yang didukung, lihat [AWS Serverless Application Repository FAQ](https://aws.amazon.com/serverless/serverlessrepo/faqs/). Di Wilayah lain, Anda membuat fungsi dari awal dan menyalin kode template ke dalam fungsi.

**Untuk membuat fungsi rotasi generik**

1. Untuk menentukan AWS Serverless Application Repository apakah didukung di Wilayah Anda, lihat [AWS Serverless Application Repository titik akhir dan kuota](https://docs.aws.amazon.com/general/latest/gr/serverlessrepo.html) di Referensi *AWS Umum*. 

1. Lakukan salah satu tindakan berikut:
   + Jika AWS Serverless Application Repository didukung di Wilayah Anda:

     1. Di konsol Lambda, pilih **Aplikasi** dan kemudian pilih **Buat** aplikasi.

     1. Pada halaman **Buat aplikasi**, pilih tab **Aplikasi Tanpa Server**.

     1. Di kotak pencarian di bawah **Aplikasi publik**, masukkan**SecretsManagerRotationTemplate**.

     1. Pilih **Tampilkan aplikasi yang membuat peran IAM kustom atau kebijakan sumber daya**.

     1. Pilih **SecretsManagerRotationTemplate**ubin.

     1. Pada halaman **Tinjau, konfigurasikan, dan terapkan**, di ubin **Pengaturan aplikasi**, isi bidang yang diperlukan. 
        + Untuk **titik akhir**, masukkan titik akhir untuk Wilayah Anda, termasuk. **https://** Untuk daftar titik akhir, lihat[AWS Secrets Manager titik akhir](asm_access.md#endpoints).
        + ****Untuk menempatkan fungsi Lambda dalam VPC, sertakan vpc dan vpc. SecurityGroupIds SubnetIds****

     1. Pilih **Deploy**.
   + Jika AWS Serverless Application Repository tidak didukung di Wilayah Anda:

     1. Di konsol Lambda, pilih **Functions dan kemudian pilih **Create** function**.

     1. Di halaman **Buat fungsi**, lakukan langkah berikut:

        1. Pilih **Tulis dari awal**.

        1. Untuk **nama Fungsi**, masukkan nama untuk fungsi rotasi Anda.

        1. Untuk **Runtime**, pilih **Python 3.12**.

        1. Pilih **Buat fungsi**.

## Langkah 2: Tulis kode fungsi rotasi
<a name="rotate-secrets_turn-on-for-other_write"></a>

Pada langkah ini, Anda menulis kode yang memperbarui rahasia dan layanan atau basis data yang menjadi tujuan rahasianya. Untuk informasi tentang fungsi rotasi, termasuk tips menulis fungsi rotasi Anda sendiri, lihat[Fungsi rotasi Lambda](rotate-secrets_lambda-functions.md). Anda juga dapat menggunakan [Templat fungsi rotasi](reference_available-rotation-templates.md) sebagai referensi.

## Langkah 3: Konfigurasikan rahasia untuk rotasi
<a name="rotate-secrets_turn-on-for-other_configure"></a>

Pada langkah ini, Anda mengatur jadwal rotasi untuk rahasia Anda dan menghubungkan fungsi rotasi ke rahasia. 

**Untuk mengkonfigurasi rotasi dan membuat fungsi rotasi kosong**

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. Pada halaman **Detail rahasia**, di bagian **konfigurasi Rotasi**, pilih **Edit rotasi**. Dalam kotak dialog **Edit konfigurasi rotasi**, lakukan hal berikut:

   1. Nyalakan **Rotasi otomatis**.

   1. Di bawah **Jadwal rotasi**, masukkan jadwal Anda di zona waktu UTC baik di **pembuat ekspresi Jadwal** atau sebagai **ekspresi Jadwal**. Secrets Manager menyimpan jadwal Anda sebagai `cron()` ekspresi `rate()` atau. Jendela rotasi secara otomatis dimulai pada tengah malam kecuali Anda menentukan **waktu Mulai**. Anda dapat merotasi rahasia setiap empat jam. Untuk informasi selengkapnya, lihat [Jadwal rotasi](rotate-secrets_schedule.md).

   1. (Opsional) Untuk **durasi Jendela**, pilih panjang jendela di mana Anda ingin Secrets Manager memutar rahasia Anda, **3h** misalnya untuk jendela tiga jam. Jendela tidak boleh meluas ke jendela rotasi berikutnya. Jika Anda tidak menentukan **Durasi jendela**, untuk jadwal rotasi dalam jam, jendela akan ditutup secara otomatis setelah satu jam. Untuk jadwal rotasi dalam beberapa hari, jendela secara otomatis ditutup pada akhir hari. 

   1. (Opsional) Pilih **Putar segera ketika rahasia disimpan** untuk memutar rahasia Anda ketika Anda menyimpan perubahan Anda. Jika Anda menghapus kotak centang, maka rotasi pertama akan dimulai pada jadwal yang Anda tetapkan.

   1. Di bawah **fungsi Rotasi**, pilih fungsi Lambda yang Anda buat di Langkah 1.

   1. Pilih **Simpan**.

## Langkah 4: Izinkan fungsi rotasi untuk mengakses Secrets Manager dan database atau layanan Anda
<a name="rotate-secrets_turn-on-for-other_perms"></a>

Fungsi rotasi Lambda memerlukan izin untuk mengakses rahasia di Secrets Manager, dan memerlukan izin untuk mengakses database atau layanan Anda. Pada langkah ini, Anda memberikan izin ini ke peran eksekusi Lambda. Jika rahasia dienkripsi dengan kunci KMS selain Kunci yang dikelola AWS `aws/secretsmanager`, maka Anda perlu memberikan izin peran eksekusi Lambda untuk menggunakan kunci tersebut. Anda dapat menggunakan konteks [enkripsi secretArn](security-encryption.md#security-encryption-encryption-context) untuk membatasi penggunaan fungsi dekripsi, sehingga peran fungsi rotasi hanya memiliki akses untuk mendekripsi rahasia yang bertanggung jawab untuk berputar. Untuk contoh kebijakan, lihat[Izin untuk rotasi](rotating-secrets-required-permissions-function.md).

Untuk petunjuknya, lihat [Peran eksekusi Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html) di Panduan *AWS Lambda Pengembang*.

## Langkah 5: Izinkan Secrets Manager untuk menjalankan fungsi rotasi
<a name="rotate-secrets_turn-on-for-other_perms2"></a>

Untuk mengizinkan Secrets Manager menjalankan fungsi rotasi pada jadwal rotasi yang Anda atur, Anda harus memberikan `lambda:InvokeFunction` izin kepada kepala layanan Secrets Manager dalam kebijakan sumber daya fungsi Lambda.

Dalam kebijakan sumber daya untuk fungsi rotasi Anda, sebaiknya sertakan kunci konteks [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)untuk membantu mencegah Lambda digunakan sebagai wakil yang [bingung](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html). Untuk beberapa AWS layanan, untuk menghindari skenario wakil yang membingungkan, AWS merekomendasikan agar Anda menggunakan kunci kondisi [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)global [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)dan global. Namun, jika Anda menyertakan kondisi `aws:SourceArn` dalam kebijakan fungsi rotasi Anda, fungsi rotasi hanya dapat digunakan untuk merotasi rahasia yang ditentukan oleh ARN tersebut. Sebaiknya hanya sertakan kunci konteks `aws:SourceAccount` agar Anda dapat menggunakan fungsi rotasi untuk beberapa rahasia. 

Untuk melampirkan kebijakan sumber daya ke fungsi Lambda, lihat [Menggunakan kebijakan berbasis sumber daya untuk Lambda](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html).

Kebijakan berikut memungkinkan Secrets Manager untuk menjalankan fungsi Lambda.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "default",
    "Statement": [
    {
        "Effect": "Allow",
        "Principal": {
            "Service": "secretsmanager.amazonaws.com"
            },
        "Action": "lambda:InvokeFunction",
        "Condition": {
            "StringEquals": {
                "AWS:SourceAccount": "{{123456789012}}"
            }
        },
        "Resource": "arn:aws:lambda:{{us-east-1}}:{{123456789012}}:function:{{function-name}}"
    }
    ]
}
```

------

## Langkah 6: Siapkan akses jaringan untuk fungsi rotasi
<a name="rotate-secrets_turn-on-for-other_network"></a>

Pada langkah ini, Anda mengizinkan fungsi rotasi untuk terhubung ke Secrets Manager dan layanan atau database rahasianya. Fungsi rotasi harus memiliki akses ke keduanya untuk dapat memutar rahasia. Lihat [Akses jaringan untuk fungsi AWS Lambda rotasi](rotation-function-network-access.md).

## Langkah selanjutnya
<a name="rotate-secrets_turn-on-for-other_stepnext"></a>

Saat Anda mengonfigurasi rotasi di Langkah 3, Anda mengatur jadwal untuk memutar rahasia. Jika rotasi gagal saat dijadwalkan, Secrets Manager akan mencoba rotasi beberapa kali. Anda juga dapat memulai rotasi segera dengan mengikuti instruksi di[Putar rahasia segera](rotate-secrets_now.md).

Jika rotasi gagal, lihat[Memecahkan masalah rotasi](troubleshoot_rotation.md).