全部产品
Search
文档中心

Key Management Service:Rotasi rahasia generik

更新时间:Jul 06, 2025

Topik ini menjelaskan skenario umum dan operasi terkait rotasi rahasia generik.

Skenario tipikal

Konsumen rahasia dan produsen rahasia dapat mengimplementasikan fitur terkait rahasia menggunakan Secrets Manager.

  • Secrets Manager: Mengelola rahasia. Sebagai contoh, Secrets Manager menyediakan Operasi API untuk mengelola rahasia.

  • Konsumen rahasia: Aplikasi yang menggunakan rahasia. Sebagai contoh, aplikasi bisnis memanggil operasi GetSecretValue untuk mendapatkan nilai rahasia terbaru.

  • Produsen rahasia: Sistem operasi dan pemeliharaan (O&M) atau administrator O&M. Sebagai contoh, pusat data, Instance ECS, atau Function Compute memanggil operasi CreateSecret untuk membuat rahasia dan memanggil operasi PutSecretValue untuk merotasikan rahasia.

Rotate

Prasyarat

Sebelum merotasikan rahasia generik, pastikan persyaratan berikut telah dipenuhi:

  • Versi awal rahasia dibuat di sistem O&M dan disimpan di Secrets Manager. Secrets Manager menandai versi awal dengan ACSCurrent.

  • Nilai rahasia diperoleh oleh aplikasi yang membutuhkan penggunaan rahasia. Aplikasi memanggil operasi GetSecretValue untuk mendapatkan nilai rahasia. Untuk mendapatkan nilai rahasia, aplikasi hanya perlu menentukan nama rahasia. Secrets Manager mengembalikan nilai rahasia dari versi yang ditandai dengan ACSCurrent.

Rotasi rahasia generik dengan memanggil satu operasi API

Asumsikan bahwa rahasia baru dihasilkan dan mulai berlaku dalam sistem yang perlu diakses oleh aplikasi. Anda dapat memanggil satu operasi API untuk menyimpan rahasia ke Secrets Manager dan merotasikan rahasia. Sebagai contoh, sistem OAuth 2.0 dapat menghasilkan rahasia aplikasi sendiri. Anda dapat menggunakan Secrets Manager untuk mengelola rahasia aplikasi tersebut. Proses berikut menunjukkan cara rahasia dirotasikan:

  1. Administrator menghasilkan rahasia aplikasi baru di sistem OAuth 2.0.

  2. Administrator menggunakan Alibaba Cloud CLI untuk menyimpan rahasia aplikasi baru ke Secrets Manager. Versi rahasia baru ini ditandai dengan ACSCurrent. Tanda versi asli diubah dari ACSCurrent menjadi ACSPrevious.

    aliyun kms PutSecretValue \
      --SecretName MyOAuthAppSecret 
      --SecretData sample-app-secret \
      --VersionId v2
  3. Aplikasi memanggil operasi GetSecretValue untuk mendapatkan nilai rahasia. Secrets Manager mengembalikan nilai dari versi yang ditandai dengan ACSCurrent. Nilai rahasia ini adalah nilai rahasia aplikasi terbaru.

Rotasi rahasia generik dengan memanggil beberapa operasi API

Dalam banyak kasus, sistem tidak dapat menghasilkan rahasia secara otomatis. Sebagai contoh, database ApsaraDB RDS tidak dapat menghasilkan akun secara otomatis, dan Instance ECS tidak dapat menghasilkan kunci SSH secara otomatis. Anda dapat membuat rahasia baru, menyimpannya ke Secrets Manager, lalu menandai versi rahasia dengan MyPendingLabel. Daftarkan rahasia baru dengan sistem. Kemudian, putar versi yang ditandai dengan MyPendingLabel menjadi versi saat ini di Secrets Manager.

Contoh berikut menunjukkan cara menggunakan Alibaba Cloud CLI untuk merotasikan nama pengguna dan kata sandi database yang dikelola di Secrets Manager.

  1. Panggil operasi GetRandomPassword untuk menghasilkan string acak sebagai kata sandi baru menggunakan program rotasi.

    aliyun kms GetRandomPassword --ExcludePunctuation true 

    Key Management Service (KMS) mengembalikan hasil berikut:

    {
        "RequestId": "e36ca295-6e47-4dfb-9df1-48d19df41545",
        "RandomPassword": "v2GwsgcuNylyYw9JGJNE5yBViGSi****"
    }
  2. Simpan nama pengguna dan kata sandi baru database sebagai versi baru dari rahasia yang ada.

    Jalankan perintah berikut untuk menyimpan nama pengguna dan kata sandi baru dan tandai mereka dengan MyPendingLabel. Versi yang ada yang ditandai dengan ACSCurrent dan ACSPrevious tetap tidak berubah.

    aliyun kms PutSecretValue \
        --SecretName db_cred 
        --SecretData "{\"uname\": \"alice\", \"pwd\": \"v2GwsgcuNylyYw9JGJNE5yBViGSiZ****"}" \
        --VersionId v2 \
        --VersionStages "[\"MyPendingLabel\"]"
  3. Daftarkan nama pengguna dan kata sandi baru dengan database.

    Hanya nilai rahasia dari versi v2 dalam rahasia db_cred yang dapat digunakan untuk mengakses database.

  4. Tandai versi baru rahasia dengan ACSCurrent di Secrets Manager.

    aliyun kms UpdateSecretVersionStage \
        --SecretName db_cred \
        --VersionStage ACSCurrent \
        --MoveToVersion v2
  5. Panggil operasi GetSecretValue untuk mendapatkan nilai rahasia. Secrets Manager mengembalikan nilai dari versi yang ditandai dengan ACSCurrent. Nilai rahasia ini berisi nama pengguna dan kata sandi terbaru dari database.

Catatan

Anda juga dapat menggunakan rahasia dinamis ApsaraDB RDS sehingga Secrets Manager dapat secara otomatis merotasikan rahasia. Untuk informasi lebih lanjut, lihat Ikhtisar Rahasia Dinamis ApsaraDB RDS.