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 kredensi 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 SQL database Amazon RDS My. Untuk keamanan, database berada di tempat 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 SSH koneksi dari internet. Host bastion dalam tutorial ini adalah EC2 instance Amazon, 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 berfungsi untuk memperbarui rahasia dan database. Untuk informasi tentang biaya penggunaan fungsi Lambda, lihat. Harga
Tutorial:
Izin
Untuk prasyarat tutorial, Anda memerlukan izin administratif untuk 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 RDS database Amazon, dan peran dengan izin admin jaringan akan mengatur grup VPC dan 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
Dalam tutorial ini, Anda akan melakukan langkah-langkah berikut:
Prasyarat A: Amazon VPC
Pada langkah ini, Anda membuat sebuah VPC yang dapat Anda luncurkan RDS database Amazon dan EC2 instans Amazon ke dalamnya. 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 dariVPC. Untuk melakukan ini, Amazon VPC melampirkan gateway internet ke VPC dan menambahkan rute di tabel rute sehingga lalu lintas yang ditujukan untuk di luar dikirim ke gateway internet. VPC
Di dalamnyaVPC, Anda membuat titik akhir Secrets Manager dan endpoint AmazonRDS. Saat Anda mengatur rotasi otomatis di langkah selanjutnya, Secrets Manager membuat fungsi rotasi Lambda di dalamnya 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 di dalamVPC, Anda memastikan bahwa panggilan dari fungsi Lambda ke Secrets Manager dan RDS Amazon tidak keluar AWS infrastruktur. Sebaliknya, mereka diarahkan ke titik akhir di dalam. VPC
Untuk membuat VPC
Buka VPC konsol Amazon di https://console.aws.amazon.com/vpc/
. Pilih Buat VPC.
Pada VPC halaman Buat, pilih VPCdan lainnya.
Di bawah Generasi otomatis tag nama, di bawah Generasi otomatis, masukkan.
SecretsManagerTutorial
Untuk DNSopsi, pilih keduanya
Enable DNS hostnames
danEnable DNS resolution
.Pilih Buat VPC.
Untuk membuat titik akhir Secrets Manager di dalam VPC
-
Di VPC konsol Amazon, di bawah Endpoints, pilih Create Endpoint.
-
Di bawah Pengaturan titik akhir, untuk Nama, masukkan
SecretsManagerTutorialEndpoint
. -
Di bawah Layanan, masukkan
secretsmanager
untuk memfilter daftar, lalu pilih titik akhir Secrets Manager di Wilayah AWS. Misalnya, di AS Timur (Virginia N.), pilihcom.amazonaws.us-east-1.secretsmanager
. -
Untuk VPC, pilih
vpc**** (SecretsManagerTutorial)
. -
Untuk Subnet, pilih semua Availability Zone, dan kemudian untuk masing-masing Subnet, pilih Subnet ID untuk disertakan.
-
Untuk jenis alamat IP, pilih
IPv4
. -
Untuk grup Keamanan, pilih grup keamanan default.
-
Untuk Kebijakan, pilih
Full access
. -
Pilih Buat Titik Akhir.
Untuk membuat RDS titik akhir Amazon di dalam VPC
-
Di VPC konsol Amazon, di bawah Endpoints, pilih Create Endpoint.
-
Di bawah Pengaturan titik akhir, untuk Nama, masukkan
RDSTutorialEndpoint
. -
Di bawah Layanan, masukkan
rds
untuk memfilter daftar, lalu pilih RDS titik akhir Amazon di Wilayah AWS. Misalnya, di AS Timur (Virginia N.), pilihcom.amazonaws.us-east-1.rds
. -
Untuk VPC, pilih
vpc**** (SecretsManagerTutorial)
. -
Untuk Subnet, pilih semua Availability Zone, dan kemudian untuk masing-masing Subnet, pilih Subnet ID untuk disertakan.
-
Untuk jenis alamat IP, pilih
IPv4
. -
Untuk grup Keamanan, pilih grup keamanan default.
-
Untuk Kebijakan, pilih
Full access
. -
Pilih Buat Titik Akhir.
Prereq B: Contoh Amazon EC2
RDSBasis data Amazon yang Anda buat di langkah selanjutnya akan ada diVPC, jadi untuk mengaksesnya, Anda memerlukan host benteng. Host bastion juga ada diVPC, tetapi pada langkah selanjutnya, Anda mengonfigurasi grup keamanan untuk memungkinkan komputer lokal Anda terhubung ke host bastion. SSH
Untuk membuat EC2 instance untuk host bastion
Buka EC2 konsol Amazon di https://console.aws.amazon.com/ec2/
. -
Pilih Instans dan kemudian pilih Launch Instances.
-
Pada Nama dan tag, untuk Nama, masukkan
SecretsManagerTutorialInstance
. -
Di bawah Application dan OS Images, pertahankan default
Amazon Linux 2 AMI (HMV) Kernel 5.10
. -
Di bawah tipe Instance, pertahankan default
t2.micro
. -
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.
-
Di bawah Pengaturan jaringan, pilih Edit, lalu lakukan hal berikut:
-
Untuk VPC, pilih
vpc-**** SecretsManagerTutorial
. -
Untuk Auto-assign IP Publik, pilih.
Enable
-
Untuk Firewall, pilih Pilih grup keamanan yang ada.
-
Untuk grup keamanan umum, pilih
default
.
-
-
Pilih Luncurkan instans.
Prereq C: RDS Database Amazon dan rahasia Secrets Manager untuk kredensi admin
Pada langkah ini, Anda membuat SQL database Amazon RDS My 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 RDS database Amazon dengan rahasia Secrets Manager yang berisi kredensi admin
Di RDS konsol Amazon, pilih Buat database.
Di bagian Opsi mesin, untuk jenis mesin, pilih
MySQL
.Di bagian Template, pilih
Free tier
.-
Di bagian Pengaturan, lakukan hal berikut:
Untuk Pengidentifikasi instans DB, masukkan
SecretsManagerTutorial
.Di bawah Pengaturan kredensi, pilih Kelola kredensi master di AWS Secrets Manager.
-
Di bagian Konektivitas, untuk sumber daya Komputer, pilih Connect to an EC2 computer resource, dan kemudian untuk EC2Instance, pilih
SecretsManagerTutorialInstance
. Pilih Buat basis data.
Prereq D: Izinkan komputer lokal Anda terhubung ke instance EC2
Pada langkah ini, Anda mengonfigurasi EC2 instance yang Anda buat di Prereq B untuk memungkinkan komputer lokal Anda terhubung dengannya. Untuk melakukan ini, Anda mengedit grup keamanan yang RDS ditambahkan Amazon di Prereq C untuk menyertakan aturan yang memungkinkan alamat IP komputer Anda terhubung. 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 EC2 instans
Buka EC2 konsol Amazon di https://console.aws.amazon.com/ec2/
. Pada EC2 contoh SecretsManagerTutorialInstance, pada tab Keamanan, di bawah Grup keamanan, pilih
sg-*** (ec2-rds-X)
.Di bawah Aturan input, pilih Edit aturan masuk.
-
Pilih Tambah aturan, dan kemudian untuk aturan, lakukan hal berikut:
Untuk Jenis, pilih
SSH
.Untuk tipe Sumber, pilih
My IP
.
Langkah 1: Buat pengguna RDS database Amazon
Pertama, Anda memerlukan pengguna yang kredensialnya akan disimpan dalam rahasia. Untuk membuat pengguna, masuk ke RDS database Amazon 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 SQL Klien saya. Dalam tutorial ini, Anda menggunakan My SQL Workbench, aplikasi GUI berbasis. Untuk menginstal SQL Meja Kerja Saya, lihat Unduh Meja SQL Kerja Saya
Untuk terhubung ke database, buat konfigurasi koneksi di My SQL Workbench. Untuk konfigurasi, Anda memerlukan beberapa informasi dari Amazon EC2 dan AmazonRDS.
Untuk membuat koneksi database di My SQL Workbench
-
Di SQL Meja Kerja Saya, di sebelah SQLKoneksi Saya, pilih tombol (+).
-
Dalam kotak dialog Setup New Connection, lakukan hal berikut:
-
Untuk Nama Koneksi, masukkan
SecretsManagerTutorial
. -
Untuk Metode Koneksi, pilih
Standard TCP/IP over SSH
. -
Pada tab Parameter, lakukan hal berikut:
-
Untuk SSHHostname, masukkan alamat IP publik dari EC2 instans Amazon.
Anda dapat menemukan alamat IP di EC2 konsol Amazon dengan memilih instance SecretsManagerTutorialInstance. Salin alamat IP di bawah Publik IPv4 DNS.
-
Untuk SSHNama Pengguna, masukkan
ec2-user
. -
Untuk SSHKeyfile, pilih file key pair SecretsManagerTutorialKeyPair.pem yang Anda unduh di prasyarat sebelumnya.
-
Untuk SQLNama Host Saya, masukkan alamat RDS titik akhir Amazon.
Anda dapat menemukan alamat endpoint di RDS konsol Amazon dengan memilih instance database secretsmanagertutorialdb. Salin alamat di bawah Endpoint.
-
Untuk Nama Pengguna, masukkan
admin
.
-
-
Pilih OKE.
-
Untuk mengambil kata sandi admin
Di RDS konsol Amazon, navigasikan ke database Anda.
-
Pada tab Configuration, di bawah Master Credentials ARN, pilih Manage in Secrets Manager.
Konsol Secrets Manager terbuka.
Di halaman detail rahasia, pilih Ambil nilai rahasia.
Kata sandi muncul di bagian Nilai rahasia.
Untuk membuat pengguna database
-
Di SQL Meja Kerja Saya, pilih koneksi SecretsManagerTutorial.
-
Masukkan kata sandi admin yang Anda ambil dari rahasia.
-
Di SQL Meja Kerja Saya, di jendela Query, masukkan perintah berikut (termasuk kata sandi yang kuat) dan kemudian pilih Jalankan. Fungsi rotasi menguji rahasia yang diperbarui dengan menggunakanSELECT, 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
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.
Buka konsol Secrets Manager di https://console.aws.amazon.com/secretsmanager/
. -
Pilih Simpan rahasia baru.
-
Pada halaman Pilih jenis rahasia, lakukan hal berikut:
-
Untuk jenis Rahasia, pilih Credentials for Amazon RDS database.
-
Untuk Kredensial, masukkan nama pengguna
appuser
dan kata sandi yang Anda masukkan untuk pengguna database yang Anda buat menggunakan Meja Kerja SayaSQL. -
Untuk Database, pilih secretsmanagertutorialdb.
Pilih Berikutnya.
-
-
Pada halaman Konfigurasi rahasia, untuk nama Rahasia, masukkan
SecretsManagerTutorialAppuser
dan kemudian pilih Berikutnya. -
Pada halaman Konfigurasi rotasi, lakukan hal berikut:
-
Nyalakan rotasi otomatis.
-
Untuk jadwal Rotasi, atur jadwal Hari:
2
Hari dengan Durasi:2h
. Tetap Putar segera dipilih. -
Untuk fungsi Rotasi, pilih Buat fungsi rotasi, dan kemudian untuk nama fungsi, masukkan
tutorial-alternating-users-rotation
. -
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 ini
secretsmanagertutorial
, misalnyaSecret associated with primary RDS DB instance: arn:aws:rds:
.Region
:AccountId
:db:secretsmanagertutorial -
Pilih Berikutnya.
-
-
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 kredensi baru yang valid. Kata sandi dalam rahasia telah berubah dari kredensi asli.
Untuk mengambil kata sandi baru dari rahasia
Buka konsol Secrets Manager di https://console.aws.amazon.com/secretsmanager/
. -
Pilih Rahasia, lalu pilih rahasianya
SecretsManagerTutorialAppuser
. -
Pada halaman Detail rahasia, gulir ke bawah dan pilih Ambil nilai rahasia.
-
Dalam tabel kunci/Nilai, salin nilai Rahasia untuk.
password
Untuk menguji kredensialnya
-
Di SQL Meja Kerja Saya, klik kanan koneksi SecretsManagerTutorialdan kemudian pilih Edit Koneksi.
-
Dalam kotak dialog Kelola Koneksi Server, untuk Nama Pengguna
appuser
, masukkan, lalu pilih Tutup. -
Kembali ke SQL Meja Kerja Saya, pilih koneksi SecretsManagerTutorial.
-
Di kotak dialog Open SSH Connection, untuk Kata Sandi, tempel kata sandi yang Anda ambil dari rahasia, lalu pilih OK.
Jika kredensialnya valid, maka My SQL 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 EC2 instance yang memiliki akses ke internet, hapus sumber daya berikut yang Anda buat dalam tutorial ini dan prasyaratnya:
-
Contoh RDS basis data Amazon. Untuk petunjuknya, lihat Menghapus instans DB di Panduan RDS Pengguna Amazon.
-
EC2Contoh Amazon. Untuk petunjuknya, lihat Mengakhiri instance di Panduan EC2 Pengguna Amazon.
-
Rahasia Secrets Manager
SecretsManagerTutorialAppuser
. Untuk petunjuk, silakan lihat Hapus AWS Secrets Manager rahasia. -
Titik akhir Secrets Manager. Untuk petunjuk, lihat Menghapus VPC titik akhir di AWS PrivateLink Panduan.
-
VPCtitik akhir. Untuk petunjuk, lihat Menghapus VPC di AWS PrivateLink Panduan.
Langkah selanjutnya
-
Pelajari cara mengambil rahasia di aplikasi Anda.
-
Pelajari tentang jadwal rotasi lainnya.