

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

# Siapkan rotasi pengguna bergantian untuk AWS Secrets Manager
<a name="tutorials_rotation-alternating"></a>

Dalam tutorial ini, Anda belajar cara mengatur rotasi pengguna bergantian untuk rahasia yang berisi kredensi database. *Rotasi pengguna bergantian* adalah strategi rotasi di mana Secrets Manager mengkloning pengguna dan kemudian mengganti kredensi pengguna mana yang diperbarui. Strategi ini adalah pilihan yang baik jika Anda membutuhkan ketersediaan tinggi untuk rahasia Anda, karena salah satu pengguna bolak-balik memiliki kredensi saat ini ke database sementara yang lain sedang diperbarui. Untuk informasi selengkapnya, lihat [Strategi rotasi: pengguna bergantian](rotation-strategy.md#rotating-secrets-two-users). 

Untuk mengatur rotasi pengguna bergantian, Anda memerlukan dua rahasia:
+ Satu rahasia dengan kredensil yang ingin Anda putar.
+ Rahasia kedua yang memiliki kredensi admin. 

  Pengguna ini memiliki izin untuk mengkloning pengguna pertama dan mengubah kata sandi pengguna pertama. Dalam tutorial ini, Anda memiliki Amazon RDS membuat rahasia ini untuk pengguna admin. Amazon RDS juga mengelola rotasi kata sandi admin. Untuk informasi selengkapnya, lihat [Rotasi terkelola untuk AWS Secrets Manager rahasia](rotate-secrets_managed.md).

Bagian pertama dari tutorial ini adalah menyiapkan lingkungan yang realistis. Untuk menunjukkan cara kerja rotasi, tutorial ini menggunakan contoh database Amazon RDS MySQL. Untuk keamanan, database berada dalam VPC yang membatasi akses internet masuk. Untuk terhubung ke database dari komputer lokal Anda melalui internet, Anda menggunakan *bastion host*, server di VPC yang dapat terhubung ke database, tetapi itu juga memungkinkan koneksi SSH dari internet. Host bastion dalam tutorial ini adalah instans Amazon EC2, dan grup keamanan untuk instance mencegah jenis koneksi lainnya. 

Setelah Anda menyelesaikan tutorial, kami sarankan Anda membersihkan sumber daya dari tutorial. Jangan menggunakannya dalam pengaturan produksi.

Rotasi Secrets Manager menggunakan AWS Lambda fungsi untuk memperbarui rahasia dan database. Untuk informasi tentang biaya penggunaan fungsi Lambda, lihat. [Harga](intro.md#asm_pricing)

**Topics**
+ [Izin](#tutorials_rotation-alternating-permissions)
+ [Prasyarat](#tutorials_rotation-alternating-step-setup)
+ [Langkah 1: Buat pengguna database Amazon RDS](#tutorials_rotation-alternating-step-database)
+ [Langkah 2: Buat rahasia untuk kredensi pengguna](#tutorials_rotation-alternating_step-rotate)
+ [Langkah 3: Uji rahasia yang diputar](#tutorials_rotation-alternating_step-test-secret)
+ [Langkah 4: Bersihkan Sumber Daya](#tutorials_rotation-alternating_step-cleanup)
+ [Langkah selanjutnya](#tutorials_rotation-alternating_step-next)

## Izin
<a name="tutorials_rotation-alternating-permissions"></a>

Untuk prasyarat tutorial, Anda memerlukan izin administratif untuk Anda. Akun AWS Dalam pengaturan produksi, ini adalah praktik terbaik untuk menggunakan peran yang berbeda untuk setiap langkah. Misalnya, peran dengan izin admin database akan membuat database Amazon RDS, dan peran dengan izin admin jaringan akan mengatur VPC dan grup keamanan. Untuk langkah-langkah tutorial, kami sarankan Anda terus menggunakan identitas yang sama.

Untuk informasi tentang cara mengatur izin di lingkungan produksi, lihat[Otentikasi dan kontrol akses untuk AWS Secrets Manager](auth-and-access.md).

## Prasyarat
<a name="tutorials_rotation-alternating-step-setup"></a>

**Topics**
+ [Prasyarat A: Amazon VPC](#tutorials_rotation-alternating-step-vpc)
+ [Prereq B: Instans Amazon EC2](#tutorials_rotation-alternating-step-setup_ec2)
+ [Prereq C: Basis data Amazon RDS dan rahasia Secrets Manager untuk kredensi admin](#tutorials_rotation-alternating-step-database)
+ [Prereq D: Izinkan komputer lokal Anda terhubung ke instans EC2](#tutorials_rotation-alternating-step-ec2connect)

### Prasyarat A: Amazon VPC
<a name="tutorials_rotation-alternating-step-vpc"></a>

Pada langkah ini, Anda membuat VPC tempat Anda dapat meluncurkan database Amazon RDS dan instans Amazon EC2. Pada langkah selanjutnya, Anda akan menggunakan komputer Anda untuk terhubung melalui internet ke benteng dan kemudian ke database, jadi Anda perlu mengizinkan lalu lintas keluar dari VPC. Untuk melakukan ini, Amazon VPC melampirkan gateway internet ke VPC dan menambahkan rute di tabel rute sehingga lalu lintas yang ditujukan untuk di luar VPC dikirim ke gateway internet.

Di dalam VPC, Anda membuat titik akhir Secrets Manager dan endpoint Amazon RDS. Saat Anda mengatur rotasi otomatis di langkah selanjutnya, Secrets Manager membuat fungsi rotasi Lambda di dalam VPC sehingga dapat mengakses database. Fungsi rotasi Lambda juga memanggil Secrets Manager untuk memperbarui rahasia, dan memanggil Amazon RDS untuk mendapatkan informasi koneksi database. Dengan membuat titik akhir dalam VPC, Anda memastikan bahwa panggilan dari fungsi Lambda ke Secrets Manager dan Amazon RDS tidak meninggalkan infrastruktur. AWS Sebaliknya, mereka diarahkan ke titik akhir dalam VPC.

**Untuk membuat VPC**

1. Buka konsol VPC Amazon di. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)

1. Pilih **Buat VPC**.

1. Pada halaman **Buat VPC**, pilih **VPC** dan lainnya.

1. Di bawah **Generasi otomatis tag nama, di bawah Generasi** **otomatis, masukkan**. **SecretsManagerTutorial**

1. Untuk **opsi DNS**, pilih keduanya **Enable DNS hostnames** dan**Enable DNS resolution**.

1. Pilih **Buat VPC**.

**Untuk membuat titik akhir Secrets Manager di dalam VPC**

1. **Di konsol Amazon VPC, di bawah **Endpoints, pilih Create Endpoint**.**

1. Di bawah **Pengaturan titik akhir**, untuk **Nama**, masukkan**SecretsManagerTutorialEndpoint**.

1. Di bawah **Layanan**, masukkan **secretsmanager** untuk memfilter daftar, lalu pilih titik akhir Secrets Manager di bagian Anda Wilayah AWS. Misalnya, di AS Timur (Virginia N.), pilih`com.amazonaws.us-east-1.secretsmanager`. 

1. Untuk **VPC, pilih**. **vpc\$1\$1\$1\$1 (SecretsManagerTutorial)**

1. Untuk **Subnet**, pilih semua **Availability Zone**, dan kemudian untuk masing-masing Subnet, pilih **Subnet ID untuk disertakan**.

1. Untuk **jenis alamat IP**, pilih**IPv4**.

1. Untuk **grup Keamanan**, pilih grup keamanan default.

1. Untuk **Kebijakan**, pilih**Full access**. 

1. Pilih **Buat titik akhir**.

**Untuk membuat endpoint Amazon RDS dalam VPC**

1. **Di konsol Amazon VPC, di bawah **Endpoints, pilih Create Endpoint**.**

1. Di bawah **Pengaturan titik akhir**, untuk **Nama**, masukkan**RDSTutorialEndpoint**.

1. Di bawah **Layanan**, masukkan **rds** untuk memfilter daftar, lalu pilih titik akhir Amazon RDS di Anda. Wilayah AWS Misalnya, di AS Timur (Virginia N.), pilih`com.amazonaws.us-east-1.rds`. 

1. Untuk **VPC, pilih**. **vpc\$1\$1\$1\$1 (SecretsManagerTutorial)**

1. Untuk **Subnet**, pilih semua **Availability Zone**, dan kemudian untuk masing-masing Subnet, pilih **Subnet ID untuk disertakan**.

1. Untuk **jenis alamat IP**, pilih**IPv4**.

1. Untuk **grup Keamanan**, pilih grup keamanan default.

1. Untuk **Kebijakan**, pilih**Full access**. 

1. Pilih **Buat titik akhir**.

### Prereq B: Instans Amazon EC2
<a name="tutorials_rotation-alternating-step-setup_ec2"></a>

Basis data Amazon RDS yang Anda buat di langkah selanjutnya akan berada di VPC, jadi untuk mengaksesnya, Anda memerlukan host benteng. Host bastion juga ada di VPC, tetapi pada langkah selanjutnya, Anda mengonfigurasi grup keamanan untuk memungkinkan komputer lokal Anda terhubung ke host bastion dengan SSH. 

**Untuk membuat instance EC2 untuk host bastion**

1. Buka konsol Amazon EC2 di. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Pilih **Instans** dan kemudian pilih **Launch Instances**.

1. Pada **Nama dan tag**, untuk **Nama**, masukkan **SecretsManagerTutorialInstance**.

1. Di bawah **Application dan OS Images**, pertahankan default**Amazon Linux 2 AMI (HMV) Kernel 5.10**.

1. Di bawah **tipe Instance**, pertahankan default**t2.micro**.

1. Di bawah **Key pair**, pilih **Create key pair**.

   Dalam kotak dialog **Create key pair**, untuk **nama Key pair**, masukkan**SecretsManagerTutorialKeyPair**, lalu pilih **Create key pair**.

   Key pair diunduh secara otomatis.

1. Di bawah **Pengaturan jaringan**, pilih **Edit**, lalu lakukan hal berikut:

   1. Untuk **VPC, pilih**. **vpc-\$1\$1\$1\$1 SecretsManagerTutorial**

   1. Untuk **Auto-assign IP Publik, pilih**. **Enable**

   1. Untuk **Firewall**, pilih **Pilih grup keamanan yang ada**.

   1. Untuk **grup keamanan umum**, pilih**default**. 

1. Pilih **Luncurkan instans**.

### Prereq C: Basis data Amazon RDS dan rahasia Secrets Manager untuk kredensi admin
<a name="tutorials_rotation-alternating-step-database"></a>

Pada langkah ini, Anda membuat database Amazon RDS MySQL dan mengonfigurasinya sehingga Amazon RDS membuat rahasia untuk memuat kredensi admin. Kemudian Amazon RDS secara otomatis mengelola rotasi rahasia admin untuk Anda. Untuk informasi selengkapnya, lihat [Rotasi terkelola](rotate-secrets_managed.md).

Sebagai bagian dari pembuatan database Anda, Anda menentukan host bastion yang Anda buat pada langkah sebelumnya. Kemudian Amazon RDS menyiapkan grup keamanan sehingga database dan instance dapat saling mengakses. Anda menambahkan aturan ke grup keamanan yang dilampirkan ke instance untuk memungkinkan komputer lokal Anda terhubung dengannya juga. 

**Untuk membuat database Amazon RDS dengan rahasia Secrets Manager yang berisi kredensi admin**

1. Di konsol Amazon RDS, pilih **Buat database**.

1. Di bagian **Opsi mesin**, untuk **jenis mesin**, pilih**MySQL**.

1. Di bagian **Template**, pilih**Free tier**.

1. Di bagian **Pengaturan**, lakukan hal berikut:

   1. Untuk **Pengidentifikasi instans DB**, masukkan **SecretsManagerTutorial**.

   1. Di bawah **Pengaturan kredensi**, pilih **Kelola kredenal master** di. AWS Secrets Manager

1. Di bagian **Konektivitas**, untuk **sumber daya Komputer**, pilih **Connect ke sumber daya komputer EC2**, dan kemudian untuk **Instans EC2**, pilih. **SecretsManagerTutorialInstance**

1. Pilih **Buat basis data**.

### Prereq D: Izinkan komputer lokal Anda terhubung ke instans EC2
<a name="tutorials_rotation-alternating-step-ec2connect"></a>

Pada langkah ini, Anda mengonfigurasi instans EC2 yang Anda buat di Prereq B untuk memungkinkan komputer lokal Anda terhubung dengannya. Untuk melakukan ini, Anda mengedit grup keamanan yang ditambahkan Amazon RDS di Prereq C untuk menyertakan aturan yang memungkinkan alamat IP komputer Anda terhubung dengan SSH. Aturan ini memungkinkan komputer lokal Anda (diidentifikasi oleh alamat IP Anda saat ini) untuk terhubung ke host bastion dengan menggunakan SSH melalui internet.

**Untuk memungkinkan komputer lokal Anda terhubung ke instans EC2**

1. Buka konsol Amazon EC2 di. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Pada instans EC2 **SecretsManagerTutorialInstance**, pada tab **Keamanan**, di bawah **Grup keamanan**, pilih**sg-\$1\$1\$1 (ec2-rds-X)**.

1. Di bawah **Aturan input**, pilih **Edit aturan masuk**.

1. Pilih **Tambah aturan**, dan kemudian untuk aturan, lakukan hal berikut:

   1. Untuk **Jenis**, pilih **SSH**.

   1. Untuk **tipe Sumber**, pilih**My IP**.

## Langkah 1: Buat pengguna database Amazon RDS
<a name="tutorials_rotation-alternating-step-database"></a>

Pertama, Anda memerlukan pengguna yang kredensialnya akan disimpan dalam rahasia. Untuk membuat pengguna, masuk ke database Amazon RDS dengan kredensi admin. Untuk kesederhanaan, dalam tutorial, Anda membuat pengguna dengan izin penuh ke database. Dalam pengaturan produksi, ini tidak khas, dan kami menyarankan Anda mengikuti prinsip hak istimewa paling sedikit.

Untuk terhubung ke database, Anda menggunakan alat klien MySQL. Dalam tutorial ini, Anda menggunakan MySQL Workbench, aplikasi berbasis GUI. [Untuk menginstal MySQL Workbench, lihat Download MySQL Workbench.](http://dev.mysql.com/downloads/workbench/)

Untuk terhubung ke database, buat konfigurasi koneksi di MySQL Workbench. Untuk konfigurasi, Anda memerlukan beberapa informasi dari Amazon EC2 dan Amazon RDS.

**Untuk membuat koneksi database di MySQL Workbench**

1. Di MySQL Workbench, di sebelah **MySQL Connections, pilih tombol (\$1)**.

1. Dalam kotak dialog **Setup New Connection**, lakukan hal berikut:

   1. Untuk **Nama Koneksi**, masukkan**SecretsManagerTutorial**.

   1. Untuk **Metode Koneksi**, pilih**Standard TCP/IP over SSH**.

   1. Pada tab **Parameter**, lakukan hal berikut:

      1. Untuk **SSH Hostname**, masukkan alamat IP publik instans Amazon EC2.

         Anda dapat menemukan alamat IP di konsol Amazon EC2 dengan memilih instans. **SecretsManagerTutorialInstance** Salin alamat IP di bawah ** IPv4 DNS Publik**.

      1. Untuk **Nama Pengguna SSH**, masukkan**ec2-user**.

      1. Untuk **SSH Keyfile**, pilih file key pair **SecretsManagerTutorialKeyPair.pem** yang Anda download di prasyarat sebelumnya. 

      1. Untuk **MySQL** Hostname, masukkan alamat endpoint Amazon RDS.

         **Anda dapat menemukan alamat endpoint pada konsol Amazon RDS dengan memilih instance database secretsmanagertutorialdb.** Salin alamat di bawah **Endpoint**.

      1. Untuk **Nama Pengguna**, masukkan**admin**.

   1. Pilih **OK**.

**Untuk mengambil kata sandi admin**

1. Di konsol Amazon RDS, navigasikan ke database Anda.

1. Pada tab **Konfigurasi**, di bawah **Master Credentials ARN**, pilih Manage in **Secrets** Manager.

   Konsol Secrets Manager terbuka.

1. Di halaman detail rahasia, pilih **Ambil nilai rahasia**.

1. Kata sandi muncul di bagian **Nilai rahasia**.

**Untuk membuat pengguna database**

1. Di MySQL Workbench, pilih koneksi. **SecretsManagerTutorial** 

1. Masukkan kata sandi admin yang Anda ambil dari rahasia. 

1.  ****Di MySQL Workbench, di jendela Query, masukkan perintah berikut (termasuk kata sandi yang kuat) dan kemudian pilih Execute.**** Fungsi rotasi menguji rahasia yang diperbarui dengan menggunakan SELECT, sehingga **appuser** harus memiliki hak istimewa itu minimal.

   ```
   CREATE DATABASE myDB;
   CREATE USER 'appuser'@'%' IDENTIFIED BY 'EXAMPLE-PASSWORD';
   GRANT SELECT ON myDB . * TO 'appuser'@'%';
   ```

   Di jendela **Output**, Anda melihat perintah berhasil.

## Langkah 2: Buat rahasia untuk kredensi pengguna
<a name="tutorials_rotation-alternating_step-rotate"></a>

Selanjutnya, Anda membuat rahasia untuk menyimpan kredensil pengguna yang baru saja Anda buat. Ini adalah rahasia yang akan Anda putar. Anda mengaktifkan rotasi otomatis, dan untuk menunjukkan strategi pengguna bergantian, Anda memilih rahasia superuser terpisah yang memiliki izin untuk mengubah kata sandi pengguna pertama.

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 **jenis Rahasia**, pilih **Kredensial untuk database Amazon RDS**.

   1. Untuk **Kredensial**, masukkan nama pengguna **appuser** dan kata sandi yang Anda masukkan untuk pengguna database yang Anda buat menggunakan MySQL Workbench.

   1. Untuk **Database**, pilih **secretsmanagertutorialdb**.

   1. Pilih **Berikutnya**.

1. Pada halaman **Konfigurasi rahasia**, untuk **nama Rahasia**, masukkan **SecretsManagerTutorialAppuser** dan kemudian pilih **Berikutnya**.

1. Pada halaman **Konfigurasi rotasi**, lakukan hal berikut:

   1. Nyalakan **Rotasi otomatis**.

   1. Untuk **jadwal Rotasi**, atur jadwal **Hari**: **2** Hari dengan **Durasi**:**2h**. Tetap **Putar segera** dipilih. 

   1. Untuk **fungsi Rotasi**, pilih **Buat fungsi rotasi**, dan kemudian untuk nama fungsi, masukkan**tutorial-alternating-users-rotation**.

   1. **Untuk **strategi Rotasi**, pilih **Alternating users**, dan kemudian di bawah **Admin credential secret**, pilih rahasia bernama rds\$1 kluster...** yang memiliki **Deskripsi** yang menyertakan nama database yang Anda buat dalam tutorial ini**secretsmanagertutorial**, misalnya`Secret associated with primary RDS DB instance: arn:aws:rds:Region:AccountId:db:secretsmanagertutorial`.

   1. Pilih **Berikutnya**.

1. Pada halaman **Review**, pilih **Store**.

   Secrets Manager kembali ke halaman detail rahasia. Di bagian atas halaman, Anda dapat melihat status konfigurasi rotasi. Secrets Manager menggunakan CloudFormation untuk membuat sumber daya seperti fungsi rotasi Lambda dan peran eksekusi yang menjalankan fungsi Lambda. Setelah CloudFormation selesai, spanduk berubah menjadi **Rahasia yang dijadwalkan untuk rotasi**. Rotasi pertama selesai.

## Langkah 3: Uji rahasia yang diputar
<a name="tutorials_rotation-alternating_step-test-secret"></a>

Sekarang rahasianya diputar, Anda dapat memeriksa apakah rahasia tersebut berisi kredensil baru yang valid. Kata sandi dalam rahasia telah berubah dari kredensi asli.

**Untuk mengambil kata sandi baru dari rahasia**

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

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

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

1. Dalam tabel **kunci/Nilai**, salin **nilai Rahasia** untuk. **password**

**Untuk menguji kredensialnya**

1. **Di MySQL Workbench, klik kanan koneksi dan kemudian pilih Edit **SecretsManagerTutorial**Koneksi.**

1. Dalam kotak dialog **Kelola Koneksi Server**, untuk **Nama Pengguna****appuser**, masukkan, lalu pilih **Tutup**.

1. Kembali di MySQL Workbench, pilih koneksi. **SecretsManagerTutorial**

1. **Di kotak dialog **Open SSH Connection**, untuk **Kata Sandi**, tempel kata sandi yang Anda ambil dari rahasia, lalu pilih OK.**

   Jika kredensialnya valid, maka MySQL Workbench terbuka ke halaman desain untuk database.

Ini menunjukkan bahwa rotasi rahasia berhasil. Kredensi dalam rahasia telah diperbarui dan itu adalah kata sandi yang valid untuk terhubung ke database. 

## Langkah 4: Bersihkan Sumber Daya
<a name="tutorials_rotation-alternating_step-cleanup"></a>

Jika Anda ingin mencoba strategi rotasi lain, *rotasi pengguna tunggal*, lewati pembersihan sumber daya dan buka[Siapkan rotasi pengguna tunggal untuk AWS Secrets Manager](tutorials_rotation-single.md). 

Jika tidak, untuk menghindari potensi biaya, dan untuk menghapus instans EC2 yang memiliki akses ke internet, hapus sumber daya berikut yang Anda buat dalam tutorial ini dan prasyaratnya:
+ Contoh basis data Amazon RDS. Untuk petunjuknya, lihat [Menghapus instans DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html) di *Panduan Pengguna Amazon RDS*.
+ Instans Amazon EC2. Untuk petunjuknya, lihat [Mengakhiri instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#terminating-instances-console) di Panduan Pengguna *Amazon EC2*.
+ Rahasia Secrets Manager`SecretsManagerTutorialAppuser`. Untuk petunjuk, lihat [Hapus AWS Secrets Manager rahasia](manage_delete-secret.md).
+ Titik akhir Secrets Manager. *Untuk petunjuk, lihat [Menghapus titik akhir VPC di Panduan](https://docs.aws.amazon.com/vpc/latest/privatelink/delete-vpc-endpoint.html).AWS PrivateLink *
+ Titik akhir VPC. *Untuk petunjuk, lihat [Menghapus VPC Anda](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#VPC_Deleting) di Panduan.AWS PrivateLink *

## Langkah selanjutnya
<a name="tutorials_rotation-alternating_step-next"></a>
+ Pelajari cara [mengambil rahasia di aplikasi Anda](retrieving-secrets.md).
+ Pelajari tentang [jadwal rotasi lainnya](rotate-secrets_schedule.md).