All Products
Search
Document Center

Key Management Service:Rotasi rahasia generik

Last Updated:Apr 01, 2026

Rahasia generik di Secrets Manager tidak melakukan rotasi secara otomatis. Untuk merotasi rahasia generik, Anda harus mendorong versi rahasia baru menggunakan API. Jalur rotasi yang Anda pilih bergantung pada apakah sistem Anda dapat menghasilkan kredensial baru sendiri atau memerlukan langkah eksternal terlebih dahulu.

Cara kerja

Dua role berinteraksi dengan Secrets Manager selama proses rotasi:

RoleDeskripsi
Secret producerSistem operasi dan maintenance (O&M) atau administrator yang menghasilkan kredensial baru dan menuliskannya ke Secrets Manager menggunakan CreateSecret dan PutSecretValue.
Secret consumerAplikasi yang mengambil kredensial dengan memanggil GetSecretValue menggunakan nama rahasia. Secrets Manager selalu mengembalikan versi yang ditandai ACSCurrent.
Rotate

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

  • Versi rahasia awal yang disimpan di Secrets Manager dan ditandai ACSCurrent

  • Aplikasi yang dikonfigurasi untuk memanggil GetSecretValue berdasarkan nama rahasia guna mengambil kredensial saat waktu proses

Pilih jalur rotasi

Rotasi satu panggilanRotasi multi-panggilan
Kapan digunakanSistem Anda menghasilkan kredensial baru secara otomatis—misalnya, rahasia aplikasi OAuth 2.0Sistem Anda tidak dapat menghasilkan kredensial; seseorang atau sistem eksternal harus membuatnya terlebih dahulu—misalnya, akun database ApsaraDB RDS atau kunci SSH Elastic Compute Service (ECS)
Panggilan API yang diperlukan1 (PutSecretValue)4, dengan jendela validasi di antara langkah-langkah
Risiko downtimeHampir nol: nilai baru langsung menjadi currentTidak ada: kredensial lama tetap aktif hingga Anda mempromosikan versi baru

Rotasi menggunakan satu panggilan API

Gunakan jalur ini ketika sistem Anda menghasilkan rahasia sendiri—misalnya, sistem OAuth 2.0 yang membuat rahasia aplikasi secara otomatis.

  1. Hasilkan rahasia aplikasi baru di sistem OAuth 2.0.

  2. Simpan rahasia baru di Secrets Manager. Panggilan ini menandai versi baru sebagai ACSCurrent dan menurunkan versi sebelumnya menjadi ACSPrevious.

    aliyun kms PutSecretValue \
      --SecretName MyOAuthAppSecret \
      --SecretData sample-app-secret \
      --VersionId v2
  3. Verifikasi bahwa aplikasi mendapatkan nilai yang diperbarui. Panggil GetSecretValue dan pastikan mengembalikan rahasia baru.

Rotasi menggunakan beberapa panggilan API

Gunakan jalur ini ketika Anda perlu membuat kredensial baru di sistem eksternal dan memvalidasinya sebelum menjadikannya current—misalnya, saat merotasi password akun database.

Menyimpan kredensial baru di bawah label kustom (misalnya, MyPendingLabel) sebelum mempromosikannya ke ACSCurrent menyediakan jendela validasi. Jika terjadi kegagalan di tengah proses rotasi, versi ACSCurrent lama tetap utuh dan aplikasi Anda tetap berjalan.

Contoh berikut merotasi username dan password untuk database yang dikelola di Secrets Manager.

Langkah 1: Hasilkan password acak

Panggil GetRandomPassword untuk menghasilkan password baru.

aliyun kms GetRandomPassword --ExcludePunctuation true

Secrets Manager mengembalikan nilai RandomPassword:

{
    "RequestId": "e36ca295-6e47-4dfb-9df1-48d19df41545",
    "RandomPassword": "v2GwsgcuNylyYw9JGJNE5yBViGSi****"
}

Langkah 2: Simpan kredensial baru di bawah label pending

Simpan username dan password baru sebagai versi rahasia baru yang ditandai MyPendingLabel. Versi ACSCurrent dan ACSPrevious yang sudah ada tetap tidak berubah, sehingga aplikasi Anda tetap berfungsi selama langkah ini.

aliyun kms PutSecretValue \
    --SecretName db_cred \
    --SecretData "{\"uname\": \"alice\", \"pwd\": \"v2GwsgcuNylyYw9JGJNE5yBViGSiZ****\"}" \
    --VersionId v2 \
    --VersionStages "[\"MyPendingLabel\"]"

Langkah 3: Daftarkan kredensial baru ke database

Buat akun database baru menggunakan kredensial versi v2. Pada titik ini, hanya versi v2 dari db_cred yang dapat melakukan autentikasi ke database. Jangan promosikan versi tersebut ke ACSCurrent hingga langkah ini berhasil.

Langkah 4: Mempromosikan versi baru menjadi versi saat ini

Setelah kredensial baru didaftarkan dan divalidasi, perbarui stage versi agar v2 menjadi versi aktif.

aliyun kms UpdateSecretVersionStage \
    --SecretName db_cred \
    --VersionStage ACSCurrent \
    --MoveToVersion v2

Langkah 5: Verifikasi rotasi

Panggil GetSecretValue dan pastikan Secrets Manager mengembalikan kredensial v2 (username alice dan password baru).

Langkah berikutnya

Untuk database yang dikelola oleh ApsaraDB RDS, gunakan dynamic secret agar Secrets Manager menangani rotasi secara otomatis. Lihat Overview of Dynamic ApsaraDB RDS secrets.