Jika aplikasi Anda perlu mengakses rahasia seperti password akun atau access key, Anda dapat menyimpannya sebagai rahasia di Key Management Service (KMS). Aplikasi Anda kemudian dapat mengambil rahasia tersebut secara dinamis dari KMS menggunakan Alibaba Cloud SDK, KMS Instance SDK, atau secrets SDK. Pendekatan ini mencegah kebocoran informasi dan operasi berbahaya akibat penyimpanan rahasia dalam bentuk teks biasa.
Mengapa menggunakan manajemen rahasia
Kebocoran rahasia—seperti password akun database, password akun server, kunci SSH, dan access key—merupakan ancaman utama terhadap keamanan data. Untuk meminimalkan risiko kebocoran, penting untuk melindungi dan memutar rahasia secara berkala. Fitur manajemen rahasia KMS memberikan keunggulan keamanan berikut:
-
KMS mengenkripsi dan menyimpan nilai rahasia menggunakan algoritma enkripsi berkekuatan tinggi, sehingga mencegah kebocoran rahasia dan aset bernilai tinggi akibat hardcoding serta meningkatkan keamanan data.
-
Memungkinkan akses klien yang aman dan nyaman, sehingga aplikasi Anda dapat menggunakan rahasia secara dinamis dengan sedikit atau tanpa modifikasi kode.
-
Rotasi instan memungkinkan Anda memperbarui rahasia tanpa memengaruhi aplikasi dan layanan Anda.
CatatanFitur ini hanya tersedia untuk rahasia RAM, rahasia database (dalam mode akun ganda terkelola), dan rahasia ECS saat diintegrasikan menggunakan secrets SDK.
-
Mendukung rotasi frekuensi tinggi untuk rahasia yang sepenuhnya dinamis, memperpendek periode validitas rahasia, dan mengurangi risiko kompromi.
-
Mendukung manajemen keamanan terpusat dan berskala besar melalui API serta alat infrastructure-as-code (IaC) seperti Resource Orchestration Service (ROS) atau Terraform.
Kasus penggunaan
Bagian ini menggunakan contoh pengelolaan username dan password untuk database yang dikelola sendiri guna menggambarkan kasus penggunaan dasar penyimpanan dan pengambilan rahasia.
Jika Anda menggunakan database ApsaraDB RDS, kami menyarankan agar Anda menggunakan rahasia database. Untuk informasi selengkapnya, lihat Mengelola dan menggunakan rahasia database.

-
Administrator keamanan mengonfigurasi username dan password yang diperlukan aplikasi MyApp untuk mengakses database target.
-
Administrator keamanan membuat rahasia generik bernama 'MyDbCreds' di KMS untuk menyimpan username dan password tersebut.
-
Saat MyApp perlu mengakses database, aplikasi tersebut menggunakan secrets client SDK untuk meminta rahasia 'MyDbCreds' dari KMS.
-
KMS mengambil rahasia yang telah dienkripsi, mendekripsinya, dan mengembalikan nilai teks biasa ke MyApp melalui HTTPS.
-
MyApp mengurai rahasia teks biasa yang dikembalikan untuk mendapatkan username dan password, lalu menggunakan kredensial tersebut untuk mengakses database.
Bagi aplikasi MyApp, memanggil API KMS untuk mengambil username dan password database menghindari risiko keamanan yang terkait dengan hardcoding rahasia. Gambar berikut menunjukkan perbedaan antara penggunaan rahasia yang di-hardcode dan penggunaan rahasia yang dikelola oleh KMS.

Komponen rahasia
Rahasia terdiri dari metadata dan satu atau lebih versi rahasia. Anda dapat masuk ke Konsol KMS dan melihat detail rahasia pada halaman Secrets.
-
Metadata
Mencakup informasi seperti nama rahasia, Nama Sumber Daya Alibaba Cloud (ARN), waktu pembuatan, jenis rahasia, kunci enkripsi, dan tag.
PentingKunci enkripsi hanya mengenkripsi nilai rahasia, bukan metadata rahasia. Kunci dan rahasia harus berada dalam instans KMS yang sama, dan kunci tersebut harus berupa kunci simetris.
-
Versi rahasia
Rahasia dapat memiliki beberapa versi. Setiap versi mencakup nomor versi, label tahap, dan nilai rahasia.
-
Versi rahasia dapat memiliki beberapa label tahap, tetapi setiap label tahap hanya dapat menunjuk ke satu versi.
-
Label tahap: Label unik dalam suatu rahasia. Label tahap mencakup label tahap bawaan dan label tahap kustom.
-
Label tahap bawaan:
-
ACSCurrent: Versi saat ini dari rahasia. Label ini selalu menunjuk ke nilai rahasia terbaru.
-
ACSPrevious: Versi sebelumnya dari rahasia.
-
ACSPending: Label sementara yang digunakan selama rotasi rahasia. KMS menghapus label ini setelah rotasi selesai.
Catatan-
Saat Anda mengambil nilai rahasia dengan memanggil operasi API, KMS mengembalikan nilai rahasia yang terkait dengan label tahap ACSCurrent.
-
Label tahap bawaan berfungsi seperti penunjuk. Misalnya, saat Anda pertama kali menyimpan versi rahasia (v1), versi tersebut diberi label ACSCurrent. Jika Anda kemudian menyimpan versi baru (v2), label ACSCurrent berpindah ke v2, dan v1 secara otomatis diberi label ulang sebagai ACSPrevious.
-
-
-
Label tahap kustom: Anda dapat menentukan beberapa label tahap kustom untuk setiap versi rahasia.
PentingHanya rahasia generik yang mendukung label tahap kustom. Jumlah total label tahap kustom dan bawaan untuk suatu rahasia tidak boleh melebihi delapan.
-
-
Nilai rahasia: Informasi sensitif yang Anda simpan dalam rahasia. Nilai ini dapat berupa string atau data biner.
CatatanSaat jumlah versi untuk suatu rahasia melebihi batas, versi tertua yang tidak terkait dengan label tahap apa pun akan dihapus secara otomatis.
-
Rotasi rahasia
Rotasi rahasia adalah proses memperbarui rahasia dengan membuat versi baru. Praktik ini meningkatkan keamanan dengan membatasi masa berlaku rahasia. Versi baru secara otomatis diberi label ACSCurrent, dan aplikasi kemudian mengambil nilai rahasia secara dinamis dengan meminta versi ACSCurrent.
Proses rotasi
Metode rotasi
-
Rotasi Otomatis: Anda dapat mengonfigurasi jadwal rotasi, dan KMS akan secara otomatis memutar rahasia ketika periode yang ditentukan berakhir. Anda dapat mengonfigurasi rotasi otomatis untuk rahasia RAM, rahasia database, dan rahasia ECS langsung di KMS. Untuk rahasia generik, Anda dapat menerapkan rotasi berkala dengan menggunakan Function Compute.
-
Sebagai respons darurat, Anda dapat segera memutar rahasia yang telah dikompromikan. Fitur ini didukung untuk rahasia RAM, rahasia database, dan rahasia ECS. Untuk segera memutar rahasia generik, Anda harus menyimpan nilai rahasia baru secara manual.
Jenis rahasia yang didukung
KMS mendukung empat jenis rahasia: rahasia generik, rahasia RAM, rahasia database, dan rahasia ECS. Tabel berikut memberikan rincian tentang masing-masing jenis.
-
Rahasia RAM, rahasia database, dan rahasia ECS dikelola sepenuhnya. Setelah Anda mulai mengelola rahasia ini di KMS, semua rotasi harus dilakukan di dalam KMS. Jangan mengubah status atau menghapusnya di layanan sumber masing-masing. Melakukan hal tersebut akan mengganggu proses rotasi rahasia di KMS dan dapat menyebabkan aplikasi Anda gagal saat mengambil rahasia.
-
Jika Anda ingin mengelola rotasi rahasia, termasuk versi dan label tahapnya, gunakan rahasia generik.
|
Jenis |
Deskripsi |
Metode rotasi |
Referensi |
|
Rahasia generik |
Rahasia generik adalah jenis rahasia dasar yang didukung oleh KMS. Anda dapat menggunakan rahasia generik untuk menyimpan data sensitif apa pun, seperti password akun, access key, kunci dan token OAuth, atau Kunci API. |
|
|
|
Rahasia RAM |
Rahasia RAM adalah jenis rahasia yang dikelola sepenuhnya oleh KMS. Anda dapat menggunakannya untuk menyimpan access key Pengguna RAM. |
|
|
|
Rahasia database |
Rahasia database adalah jenis rahasia yang dikelola sepenuhnya oleh KMS. Anda dapat menggunakannya untuk menyimpan kredensial akun untuk database, seperti instansApsaraDB RDS dan instansPolarDB. |
|
|
|
Rahasia ECS |
Rahasia ECS adalah jenis rahasia yang dikelola sepenuhnya oleh KMS. Anda dapat menggunakannya untuk menyimpan username dan password atau Pasangan kunci SSH yang digunakan untuk login ke Instans ECS. |
|
Penagihan
Sebelum Anda dapat menggunakan rahasia, Anda harus membeli instans KMS dan mengonfigurasi kuota rahasia. Untuk informasi selengkapnya tentang harga instans KMS, lihat Penagihan. Untuk petunjuk cara membeli instans KMS, lihat Membeli dan mengaktifkan instans KMS.
Kontrol akses dan audit
Anda dapat menggunakan Resource Access Management (RAM) untuk mengontrol izin akses dan operasi terhadap rahasia. Untuk informasi selengkapnya tentang cara mengonfigurasi kebijakan izin, lihat Kebijakan RAM kustom untuk KMS.
Anda dapat menggunakan ActionTrail untuk mencatat operasi seperti membuat, memutar, dan mengambil rahasia. Untuk informasi selengkapnya, lihat Menanyakan catatan penggunaan kunci dan rahasia.