Siapkan rotasi pengguna bergantian untuk AWS Secrets Manager - AWS Secrets Manager

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

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.

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.

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

Izin

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, lihatOtentikasi dan kontrol akses untuk AWS Secrets Manager.

Prasyarat

Prasyarat A: Amazon VPC

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.

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 Amazon VPC di https://console.aws.amazon.com/vpc/.

  2. Pilih Buat VPC.

  3. Pada halaman Buat VPC, pilih VPC dan lainnya.

  4. Di bawah Generasi otomatis tag nama, di bawah Generasi otomatis, masukkan. SecretsManagerTutorial

  5. Untuk opsi DNS, pilih keduanya Enable DNS hostnames danEnable DNS resolution.

  6. Pilih Buat VPC.

Untuk membuat titik akhir Secrets Manager di dalam VPC
  1. Di konsol Amazon VPC, di bawah Endpoints, pilih Create Endpoint.

  2. Di bawah Pengaturan titik akhir, untuk Nama, masukkanSecretsManagerTutorialEndpoint.

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

  4. Untuk VPC, pilih. vpc**** (SecretsManagerTutorial)

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

  6. Untuk jenis alamat IP, pilihIPv4.

  7. Untuk grup Keamanan, pilih grup keamanan default.

  8. Untuk Kebijakan, pilihFull access.

  9. Pilih Buat Titik Akhir.

Untuk membuat endpoint Amazon RDS dalam VPC
  1. Di konsol Amazon VPC, di bawah Endpoints, pilih Create Endpoint.

  2. Di bawah Pengaturan titik akhir, untuk Nama, masukkanRDSTutorialEndpoint.

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

  4. Untuk VPC, pilih. vpc**** (SecretsManagerTutorial)

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

  6. Untuk jenis alamat IP, pilihIPv4.

  7. Untuk grup Keamanan, pilih grup keamanan default.

  8. Untuk Kebijakan, pilihFull access.

  9. Pilih Buat Titik Akhir.

Prereq B: Instans Amazon EC2

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/.

  2. Pilih Instans dan kemudian pilih Launch Instances.

  3. Pada Nama dan tag, untuk Nama, masukkan SecretsManagerTutorialInstance.

  4. Di bawah Application dan OS Images, pertahankan defaultAmazon Linux 2 AMI (HMV) Kernel 5.10.

  5. Di bawah tipe Instance, pertahankan defaultt2.micro.

  6. Di bawah Key pair, pilih Create key pair.

    Dalam kotak dialog Create key pair, untuk nama Key pair, masukkanSecretsManagerTutorialKeyPair, lalu pilih Create key pair.

    Key pair diunduh secara otomatis.

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

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

    2. Untuk Auto-assign IP Publik, pilih. Enable

    3. Untuk Firewall, pilih Pilih grup keamanan yang ada.

    4. Untuk grup keamanan umum, pilihdefault.

  8. Pilih Luncurkan instans.

Prereq C: Basis data Amazon RDS dan rahasia Secrets Manager untuk kredensi admin

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.

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.

  2. Di bagian Opsi mesin, untuk jenis mesin, pilihMySQL.

  3. Di bagian Template, pilihFree tier.

  4. Di bagian Pengaturan, lakukan hal berikut:

    1. Untuk Pengidentifikasi instans DB, masukkan SecretsManagerTutorial.

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

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

  6. Pilih Buat basis data.

Prereq D: Izinkan komputer lokal Anda terhubung ke instans EC2

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/.

  2. Pada instans EC2 SecretsManagerTutorialInstance, pada tab Keamanan, di bawah Grup keamanan, pilihsg-*** (ec2-rds-X).

  3. Di bawah Aturan input, pilih Edit aturan masuk.

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

    1. Untuk Jenis, pilih SSH.

    2. Untuk tipe Sumber, pilihMy IP.

Langkah 1: Buat pengguna database Amazon RDS

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.

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 (+).

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

    1. Untuk Nama Koneksi, masukkanSecretsManagerTutorial.

    2. Untuk Metode Koneksi, pilihStandard TCP/IP over SSH.

    3. 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 DNS IPv4 Publik.

      2. Untuk Nama Pengguna SSH, masukkanec2-user.

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

      4. 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.

      5. Untuk Nama Pengguna, masukkanadmin.

    4. Pilih OK.

Untuk mengambil kata sandi admin
  1. Di konsol Amazon RDS, navigasikan ke database Anda.

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

    Konsol Secrets Manager terbuka.

  3. Di halaman detail rahasia, pilih Ambil nilai rahasia.

  4. Kata sandi muncul di bagian Nilai rahasia.

Untuk membuat pengguna database
  1. Di MySQL Workbench, pilih koneksi. SecretsManagerTutorial

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

  3. Di MySQL Workbench, di jendela Query, masukkan perintah berikut (termasuk kata sandi yang kuat) dan kemudian pilih Execute.

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

    Di jendela Output, Anda melihat perintah berhasil.

Langkah 2: Buat rahasia untuk kredensi pengguna

Selanjutnya, Anda membuat rahasia untuk menyimpan kredensi 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/.

  2. Pilih Store a new secret (Simpan rahasia baru).

  3. Pada halaman Pilih jenis rahasia, lakukan hal berikut:

    1. Untuk jenis Rahasia, pilih Kredensial untuk database Amazon RDS.

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

    3. Untuk Database, pilih secretsmanagertutorialdb.

    4. Pilih Selanjutnya.

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

  5. Pada halaman Konfigurasi rotasi, lakukan hal berikut:

    1. Nyalakan rotasi otomatis.

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

    3. Untuk fungsi Rotasi, pilih Buat fungsi rotasi, dan kemudian untuk nama fungsi, masukkantutorial-alternating-users-rotation.

    4. Untuk strategi Rotasi, pilih Alternating users, dan kemudian di bawah Admin credential secret, pilih rahasia bernama rds! kluster... yang memiliki Deskripsi yang menyertakan nama database yang Anda buat dalam tutorial inisecretsmanagertutorial, misalnyaSecret associated with primary RDS DB instance: arn:aws:rds:Region:AccountId:db:secretsmanagertutorial.

    5. Pilih Selanjutnya.

  6. 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

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/.

  2. Pilih Rahasia, lalu pilih rahasianyaSecretsManagerTutorialAppuser.

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

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

Untuk menguji kredensialnya
  1. Di MySQL Workbench, klik kanan koneksi dan kemudian pilih Edit SecretsManagerTutorialKoneksi.

  2. Dalam kotak dialog Kelola Koneksi Server, untuk Nama Penggunaappuser, masukkan, lalu pilih Tutup.

  3. Kembali di MySQL Workbench, pilih koneksi. SecretsManagerTutorial

  4. Dalam Buka Koneksi SSH kotak dialog, 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

Jika Anda ingin mencoba strategi rotasi lain, rotasi pengguna tunggal, lewati pembersihan sumber daya dan bukaSiapkan rotasi pengguna tunggal untuk AWS Secrets Manager.

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:

Langkah selanjutnya