All Products
Search
Document Center

Microservices Engine:Enkripsi konfigurasi

Last Updated:Jun 21, 2026

Data konfigurasi di Microservices Registry dari Microservices Engine (MSE) disimpan dalam bentuk teks biasa. MSE terintegrasi dengan Key Management Service (KMS) untuk memungkinkan Anda mengenkripsi dan mendekripsi data konfigurasi, seperti sumber data, token, username, dan password, sehingga membantu mengurangi risiko kebocoran data sensitif.

Prasyarat

Penting
  • Untuk memastikan keamanan data, MSE menggunakan Alibaba Cloud KMS untuk mengenkripsi dan mendekripsi data. KMS mencakup Shared KMS dan Dedicated KMS. Shared KMS tidak lagi tersedia. Untuk informasi selengkapnya, lihat [Pengumuman] EOFS dan EOS untuk Shared KMS. Jika Anda menggunakan Shared KMS, kami menyarankan agar Anda meningkatkan ke Dedicated KMS. Jika Anda mengaktifkan KMS setelah 31 Maret 2022, Anda harus membeli Dedicated KMS. Untuk informasi selengkapnya, lihat [Pengumuman Peningkatan] KMS ditingkatkan menjadi Dedicated KMS. Informasi tentang penagihan KMS tersedia di Penagihan KMS 1.0.

  • Topik ini menggunakan instans Dedicated KMS. Jika Anda mengaktifkan Shared KMS sebelum 31 Maret 2022, lihat FAQ.

Buat konfigurasi terenkripsi

Untuk membuat konfigurasi terenkripsi di Konsol MSE, lakukan langkah-langkah berikut:

  1. Masuk ke Konsol MSE, lalu pilih wilayah di bilah navigasi atas.

  2. Di panel navigasi kiri, pilih Microservices Registry > Instances.

  3. Di halaman Instances, klik nama instans.

  4. Di panel navigasi kiri, pilih Configuration Management > Configurations.

  5. Di pojok kiri atas halaman Configurations, pilih namespace dari daftar drop-down Namespace, lalu klik Add Configuration.

  6. Di panel Create Configuration, masukkan Data ID dan Group. Lalu, aktifkan sakelar Data Encryption dan pilih KMS Key. Jika Anda belum membuat KMS Key, klik Create. Anda dapat membuat kunci di Konsol Key Management Service. Setelah membuat kunci, refresh panel Create Configuration untuk menampilkan kunci KMS baru.

    Penting
    • Jika Anda mengaktifkan Dedicated KMS setelah 31 Maret 2022, Anda harus memilih ID kunci yang digunakan untuk enkripsi dan mengaitkan kunci tersebut dengan instans MSE Nacos. Dengan demikian, semua konfigurasi selanjutnya akan dienkripsi menggunakan kunci tersebut.

    • Jika Anda mengaktifkan KMS sebelum 31 Maret 2022, prompt untuk mengikat ID kunci instans Dedicated KMS tidak ditampilkan dan Anda dapat menggunakan Shared KMS. Metode konfigurasi aplikasi untuk mengakses Shared KMS berbeda.

    • Untuk pengguna yang menggunakan Dedicated KMS, KMS AES-256 ditampilkan. Untuk pengguna yang menggunakan Shared KMS, tiga metode enkripsi ditampilkan demi kompatibilitas versi. Kami menyarankan agar Anda tidak memilih KMS atau KMS AES-128.

      • KMS AES-256: Metode enkripsi dan dekripsi amplop dari KMS. Metode ini menggunakan kunci 256-bit dengan kekuatan enkripsi tinggi. Konten konfigurasi terenkripsi tidak boleh melebihi 50 KB. Data konfigurasi dalam teks biasa tidak dikirimkan ke KMS. Kami menyarankan Anda memilih opsi ini untuk keamanan yang lebih tinggi. Pilih metode enkripsi berdasarkan kebutuhan bisnis Anda.

      • KMS AES-128: Metode enkripsi yang menggunakan kunci 128-bit dengan kekuatan enkripsi menengah. Konten konfigurasi terenkripsi tidak boleh melebihi 50 KB.

      • KMS: Kami menyarankan agar Anda tidak memilih opsi ini karena karakter khusus dapat menyebabkan masalah kompatibilitas. Misalnya, ampersand (&) di-escape menjadi \u0026. Konten konfigurasi terenkripsi tidak boleh melebihi 6 KB.

    • Setelah pengikatan dilakukan, Anda tidak dapat mengubah kunci tersebut. Jika Anda menghapus kunci, Anda tidak dapat mengakses konfigurasi terenkripsi.

  7. Di bagian Configuration Format, pilih format data, masukkan konten konfigurasi di editor Configuration Content di sebelah kanan, lalu klik Release.

Gunakan konfigurasi terenkripsi di Nacos SDK untuk Java

  1. Tambahkan dependensi berikut ke file pom.xml dalam proyek:

    <dependency>
        <groupId>com.alibaba.nacos</groupId>
        <artifactId>nacos-client</artifactId>
        <version>{nacos-client-version}</version>
    </dependency>
    <dependency>
        <groupId>com.alibaba.nacos</groupId>
        <artifactId>nacos-client-mse-extension</artifactId>
        <version>{nacos-client-mse-extension-version}</version>
    </dependency>

    Deskripsi versi

    Versi utama klien Nacos

    Versi klien Nacos

    Versi plugin yang direkomendasikan

    1.x

    V1.4.3 atau lebih baru

    V1.0.6 atau lebih baru

    2.x

    V2.1.1 atau lebih baru

    V1.0.6 atau lebih baru

    Penting

    Masalah stabilitas dapat terjadi jika versi plugin enkripsi dan dekripsi tidak sesuai dengan versi klien Nacos. Kami menyarankan agar Anda menggunakan versi yang direkomendasikan.

  2. Pilih kode valid yang ingin Anda konfigurasi berdasarkan jenis framework yang Anda gunakan.

    Gunakan framework klien Nacos

    Jika Anda menggunakan framework klien Nacos untuk mendapatkan konfigurasi, Anda harus mengonfigurasi kode contoh berikut.

    try {
        Properties properties = new Properties();
        // Alamat server Nacos Anda.
        properties.put("serverAddr", "{serverAddr}");
        // Konfigurasikan role RAM instans ECS sebagai kredensial akses.
        properties.put("ramRoleName", "{ramRoleName}");
        // Titik akhir instans KMS.
        properties.put("kmsEndpoint", "{kmsEndpoint}");
        ConfigService configService = NacosFactory.createConfigService(properties);
        System.out.println("content:::"+configService.getConfig("{dataId}", "{group}", 6000));
    } catch (Exception e) {
        e.printStackTrace();
    }

    kmsEndpoint menunjukkan titik akhir instans KMS. Jika lingkungan akses dan instans KMS berada dalam VPC yang sama, nilai kmsEndpoint adalah titik akhir VPC dari instans tersebut. Jika Anda mengakses instans KMS melalui Internet, nilai kmsEndpoint adalah titik akhir publik atau titik akhir VPC dari gerbang publik. Untuk informasi selengkapnya tentang cara mendapatkan titik akhir, lihat Bagaimana cara mendapatkan titik akhir instans KMS?

    Jika Anda menggunakan pasangan AccessKey sebagai kredensial untuk mengakses instans KMS, ganti konfigurasi berikut:

    properties.put("ramRoleName", "{ramRoleName}");

    Dengan konfigurasi berikut:

    properties.put("accessKey", "{accessKey}"); 
    properties.put("secretKey", "{secretKey}");

    Nacos SDK untuk Java dapat menggunakan konfigurasi terenkripsi dengan berbagai kredensial akses, seperti token Security Token Service (STS) dan Nama Sumber Daya Alibaba Cloud (ARN) dari role RAM. Untuk informasi selengkapnya tentang kredensial akses yang didukung dan metode konfigurasi klien, lihat Kredensial akses yang didukung untuk enkripsi konfigurasi Nacos SDK untuk Java.

    Jika KMS Anda diaktifkan setelah 31 Maret 2022 dan Anda ingin merilis konfigurasi terenkripsi di SDK, tambahkan kode berikut:

    properties.put("keyId", "{keyId}");

    Ganti parameter serverAddr, ramRoleName, accessKey, secretKey, kmsEndpoint, dataId, group, dan keyId dalam kode dengan parameter layanan aktual.

    Gunakan framework Spring Cloud Nacos Config
    Catatan
    • Jika Anda menggunakan Spring Cloud Alibaba 2022.x atau 2023.x, tingkatkan versinya ke 2023.0.1.2.

    • Jika Anda menggunakan Spring Cloud Alibaba 2021.x, tingkatkan versinya ke 2021.0.6.1.

    • Jika Anda menggunakan Spring Cloud Alibaba 2.x, tingkatkan versinya ke 2.2.10.

    • Pastikan versi Spring Cloud Alibaba, Spring Cloud, dan Spring Boot kompatibel. Untuk informasi selengkapnya tentang kompatibilitas versi, lihat catatan rilis di situs web resmi Spring Cloud Alibaba.

    Jika Anda menggunakan framework Spring Cloud Nacos Config untuk mendapatkan konfigurasi, Anda harus menambahkan konfigurasi berikut:

    spring.cloud.nacos.config.server-addr={serverAddr}
    spring.config.import=nacos:{dataId}?group={group}&refreshEnabled=true
    # Gunakan role RAM instans ECS sebagai kredensial akses.
    spring.cloud.nacos.config.ramRoleName={ramRoleName}
    spring.cloud.nacos.config.kmsEndpoint={kmsEndpoint}

    kmsEndpoint menunjukkan titik akhir instans KMS. Jika lingkungan akses dan instans KMS berada dalam VPC yang sama, nilai kmsEndpoint adalah titik akhir VPC dari instans tersebut. Jika Anda mengakses instans KMS melalui Internet, nilai kmsEndpoint adalah titik akhir publik atau titik akhir VPC dari gerbang publik. Untuk informasi selengkapnya tentang cara mendapatkan titik akhir, lihat Bagaimana cara mendapatkan titik akhir instans KMS?

    Jika Anda menggunakan pasangan AccessKey sebagai kredensial untuk mengakses instans KMS, ganti konfigurasi berikut:

    spring.cloud.nacos.config.ramRoleName={ramRoleName}

    Dengan konfigurasi berikut:

    spring.cloud.nacos.config.accesskey={accessKey}
    spring.cloud.nacos.config.secretkey={secretKey}
    # Jika Anda menggunakan pasangan AccessKey untuk mengakses Nacos, kami sarankan menentukannya
    # menggunakan parameter JVM atau variabel lingkungan karena sifatnya yang sensitif.
    # Parameter JVM
    -Dspring.cloud.nacos.config.accessKey={accessKey}
    -Dspring.cloud.nacos.config.secretKey={secretKey}
    # Variabel lingkungan
    spring_cloud_nacos_config_accessKey={accessKey}
    spring_cloud_nacos_config_secretKey={secretKey}

    Nacos SDK untuk Java dapat menggunakan konfigurasi terenkripsi dengan berbagai kredensial akses, seperti token Security Token Service (STS) dan Nama Sumber Daya Alibaba Cloud (ARN) dari role RAM. Untuk informasi selengkapnya tentang kredensial akses yang didukung dan metode konfigurasi klien, lihat Kredensial akses yang didukung untuk enkripsi konfigurasi Nacos SDK untuk Java.

    Jika KMS Anda diaktifkan setelah 31 Maret 2022 dan Anda ingin merilis konfigurasi terenkripsi di SDK, tambahkan kode berikut:

    spring.cloud.nacos.config.keyId={keyId}

    Ganti parameter serverAddr, ramRoleName, accessKey, secretKey, kmsEndpoint, dataId, group, dan keyId dalam kode dengan parameter layanan aktual.

    Deskripsi

    Tabel berikut menjelaskan parameter tersebut. Pastikan nilai yang Anda konfigurasikan valid.

    Parameter

    Deskripsi

    serverAddr

    Alamat IP instans MSE Anda. Contoh: mse-*****.nacos-ans.mse.aliyuncs.com.

    ramRoleName

    Role RAM yang ditetapkan ke instans ECS atau kluster ACK.

    accessKey dan secretKey

    ID AccessKey dan Rahasia AccessKey dari Akun Alibaba Cloud saat ini.

    Anda harus menentukan parameter accessKey dan secretKey. Jika tidak, Anda harus menentukan parameter ramRoleName.

    kmsEndpoint

    Titik akhir instans KMS. Jika lingkungan akses dan instans KMS berada dalam VPC yang sama, nilai kmsEndpoint adalah titik akhir VPC dari instans tersebut. Jika Anda mengakses instans KMS melalui Internet, nilai kmsEndpoint adalah titik akhir publik atau titik akhir VPC dari gerbang publik. Untuk informasi selengkapnya tentang cara mendapatkan titik akhir, lihat Bagaimana cara mendapatkan titik akhir instans KMS?

    dataId

    ID data konfigurasi terenkripsi. Contoh: cipher-kms-aes-256-****.properties.

    group

    Nama grup konfigurasi terenkripsi.

    keyId

    ID kunci KMS yang digunakan untuk mengenkripsi konfigurasi. Anda dapat membuat dan menggunakan kunci KMS di Konsol KMS.

    Contoh: alia/*** atau key-***.

Gunakan konfigurasi terenkripsi di Nacos SDK untuk Go

  1. Jalankan perintah go get untuk mengunduh dependensi di Nacos client SDK for Go.

    go get -u github.com/nacos-group/nacos-sdk-go/v2@v2.2.8
  2. Ubah konfigurasi awal klien Nacos.

    Di Nacos SDK untuk Go, hanya pasangan AccessKey yang dapat digunakan sebagai kredensial untuk mengakses instans KMS. Ganti parameter serverAddr, accessKey, secretKey, dan kmsEndpoint dalam kode dengan parameter yang digunakan dalam bisnis Anda dan pastikan parameter OpenKMS diatur ke true untuk enkripsi konfigurasi.

    sc := []constant.ServerConfig{
      {
        IpAddr: "{serverAddr}", // Ganti dengan titik akhir instans MSE Anda.
        Port:   8848,
      },
    }
    var accessKey = "{accessKey}" 
    var secretKey = "{secretKey}" 
    cc := constant.ClientConfig{
      NamespaceId:         "public", // ID namespace.
      OpenKMS:              true, // Aktifkan KMS untuk enkripsi konfigurasi.
      AccessKey:            accessKey, 
      SecretKey:            secretKey,
      KMSConfig:            &constant.KMSConfig{Endpoint: "{kmsEndpoint}",},
      TimeoutMs:           5000,
      NotLoadCacheAtStart: true,
      LogDir:              "/tmp/nacos/log",
      CacheDir:            "/tmp/nacos/cache",
      RotateTime:          "1h",
      MaxAge:              3,
    }

    kmsEndpoint menunjukkan titik akhir instans KMS. Jika lingkungan akses dan instans KMS berada dalam VPC yang sama, nilai kmsEndpoint adalah titik akhir VPC dari instans tersebut. Jika Anda mengakses instans KMS melalui Internet, nilai kmsEndpoint adalah titik akhir publik atau titik akhir VPC dari gerbang publik. Untuk informasi selengkapnya tentang cara mendapatkan titik akhir, lihat Bagaimana cara mendapatkan titik akhir instans KMS?

  3. Publikasikan konfigurasi terenkripsi.

    keyId: ID kunci KMS yang digunakan untuk mengenkripsi konfigurasi.

    configParam := vo.ConfigParam{
        DataId:   "{dataId}",
        Group:    "{group}",
        Content:  "content",
        KmsKeyId: "{keyId}",  // ID kunci KMS untuk enkripsi. Anda dapat membuat dan menggunakan kunci di Konsol KMS.
    }
    published, err := client.PublishConfig(configParam)
    if published && err == nil {
    	fmt.Printf("successfully publish: group[%s], dataId[%s], data[%s]\n", configParam.Group, configParam.DataId, configParam.Content)
    } else {
      fmt.Printf("failed to publish: group[%s], dataId[%s], data[%s]\n with error: %s\n",
        configParam.Group, configParam.DataId, configParam.Content, err)
    }
Parameter

Tabel berikut menjelaskan parameter tersebut. Pastikan nilai yang Anda konfigurasikan valid.

Parameter

Deskripsi

serverAddr

Alamat IP instans MSE Anda. Contoh: mse-*****.nacos-ans.mse.aliyuncs.com.

accessKey dan secretKey

ID AccessKey dan Rahasia AccessKey dari Pengguna RAM.

kmsEndpoint

Titik akhir instans KMS. Jika lingkungan akses dan instans KMS berada dalam VPC yang sama, nilai kmsEndpoint adalah titik akhir VPC dari instans tersebut. Jika Anda mengakses instans KMS melalui Internet, nilai kmsEndpoint adalah titik akhir publik atau titik akhir VPC dari gerbang publik. Untuk informasi selengkapnya tentang cara mendapatkan titik akhir, lihat Bagaimana cara mendapatkan titik akhir instans KMS?

dataId

ID data konfigurasi terenkripsi. Contoh: cipher-kms-aes-256-****.properties.

group

Nama grup konfigurasi terenkripsi.

keyId

ID kunci KMS yang digunakan untuk mengenkripsi konfigurasi. Anda dapat membuat dan menggunakan kunci KMS di Konsol KMS.

Contoh: alia/*** atau key-***.

Kredensial akses yang didukung untuk enkripsi konfigurasi Nacos SDK untuk Java

Nacos SDK untuk Java mendukung berbagai kredensial akses untuk mengenkripsi konfigurasi. Anda dapat memilih metode untuk menginisialisasi penyedia kredensial berdasarkan persyaratan otentikasi dan otorisasi skenario bisnis Anda.

Kredensial akses yang didukung:

Untuk informasi selengkapnya tentang cara mengonfigurasi kredensial akses di klien, lihat bagian "Konfigurasi kredensial akses di klien" dalam Otentikasi akses oleh klien Nacos. Pilih kebijakan sistem berikut untuk memberikan izin terkait pada kredensial akses. Dengan demikian, operasi otorisasi kasar dilakukan untuk memberikan izin baca dan tulis pada semua instans KMS.

Kebijakan

Catatan

AliyunKMSFullAccess

Izin yang diperlukan untuk mengelola KMS. Anda dapat menggunakan role RAM yang kebijakan ini dilampirkan untuk mengelola semua fitur dengan cara yang sama seperti menggunakan Akun Alibaba Cloud untuk mengelola KMS.

FAQ

Bagaimana cara mengonfigurasi parameter jika menggunakan Shared KMS yang diaktifkan sebelum 31 Maret 2022?

Jika Anda mengaktifkan Shared KMS sebelum 31 Maret 2022, Anda hanya perlu mengganti parameter kmsEndpoint dengan kmsRegionId. kmsRegionId menunjukkan wilayah tempat instans KMS berada, seperti cn-hangzhou. Lakukan langkah-langkah berikut untuk mengubah konfigurasi klien berdasarkan framework yang Anda gunakan.

Gunakan konfigurasi terenkripsi di Nacos client SDK untuk Java

Ganti konfigurasi berikut dalam kode:

properties.put("kmsEndpoint", "{kmsEndpoint}");

Dengan konfigurasi berikut:

properties.put("kms_region_id", "{kmsRegionId}");

Gunakan konfigurasi terenkripsi dengan framework Spring Cloud Nacos Config di Nacos SDK untuk Java

Ganti konfigurasi berikut dalam kode:

spring.cloud.nacos.config.kmsEndpoint={kmsEndpoint}

Dengan konfigurasi berikut:

spring.cloud.nacos.config.kms_region_id={kmsRegionId}

Gunakan konfigurasi terenkripsi di Nacos SDK untuk Go

Tambahkan parameter RegionId di ClientConfig. Ganti konfigurasi berikut dalam kode:

cc := constant.ClientConfig{
  NamespaceId:         "public", 
  OpenKMS:              true, 
  AccessKey:            accessKey, 
  SecretKey:            secretKey,
  KMSConfig:            &constant.KMSConfig{Endpoint: "{kmsEndpoint}",},
  TimeoutMs:            5000,
  NotLoadCacheAtStart:  true,
  LogDir:               "/tmp/nacos/log",
  CacheDir:             "/tmp/nacos/cache",
  RotateTime:           "1h",
  MaxAge:               3,
}

Dengan konfigurasi berikut:

cc := constant.ClientConfig{
  NamespaceId:         "public", 
  OpenKMS:              true, 
  AccessKey:            accessKey, 
  SecretKey:            secretKey,
  TimeoutMs:            5000,
  NotLoadCacheAtStart:  true,
  LogDir:               "/tmp/nacos/log",
  CacheDir:             "/tmp/nacos/cache",
  RotateTime:           "1h",
  MaxAge:                3,
  RegionId:             "{kmsRegionId}",	
}

Bagaimana cara mendapatkan titik akhir instans KMS?

  • Jika lingkungan akses dan instans KMS berada dalam VPC yang sama, atur kmsEndpoint ke titik akhir VPC dari instans tersebut. Di Konsol KMS, buka halaman Instance Management, klik instans target untuk melihat detailnya, dan dapatkan VPC endpoint of the instance dari bagian Basic Information.

  • Jika Anda mengakses instans KMS melalui Internet, Anda harus mengaktifkan sakelar Internet Access Status di halaman detail instans KMS.

    Setelah akses publik diaktifkan, titik akhir publik gerbang publik adalah kms.cn-hangzhou.aliyuncs.com, dan titik akhir VPC gerbang publik adalah kms-vpc.cn-hangzhou.aliyuncs.com. Akses publik memerlukan SDK KMS, dan batas performa untuk enkripsi dan dekripsi simetris adalah 750 operasi per detik. Kami menyarankan agar Anda mengonfigurasi kebijakan kontrol akses granular untuk meningkatkan keamanan.

  • Jika Anda mengakses instans KMS melalui VPC, nilai kmsEndpoint adalah titik akhir VPC dari gerbang publik.

FAQ

Pemecahan masalah error umum

Lakukan langkah-langkah berikut:

  • Periksa apakah lingkungan runtime aplikasi dapat terhubung ke VPC tempat instans MSE berada dan VPC tempat instans KMS berada.

    Catatan

    Anda tidak perlu memastikan konektivitas antara instans MSE dan instans KMS.

  • Periksa apakah menggunakan KMS V1.0 atau V3.0. Jika menggunakan KMS V1.0, Anda harus memastikan bahwa KMS diaktifkan sebelum 31 Maret 2022.

    Catatan

    Jika Anda mengaktifkan KMS setelah 31 Maret 2022, Anda harus membeli Dedicated KMS. Fitur enkripsi KMS V1.0 tidak lagi tersedia untuk pengguna baru.

  • Periksa apakah versi klien Nacos sesuai dengan versi plugin enkripsi dan dekripsi. Untuk informasi selengkapnya, lihat deskripsi versi dalam topik ini.

Pemecahan masalah isu Nacos SDK untuk Java

Kata kunci stack exception di log Nacos

Penyebab

keyId is not set up yet

Parameter inisialisasi keyId dibiarkan kosong atau tidak ditentukan.

Forbidden.KeyNotFound : The specified Key is not found.

ID kunci yang ditentukan oleh parameter inisialisasi keyId tidak ada di instans KMS.

kmsEndpoint is empty

Parameter inisialisasi kmsEndpoint dibiarkan kosong.

test-kst-xxxx.cryptoservice.kms.aliyuncs.com: unknown name or service

Titik akhir yang ditentukan oleh parameter inisialisasi kmsEndpoint tidak dapat diakses.

kmsPasswordKey is empty

Parameter inisialisasi kmsPasswordKey dibiarkan kosong.

keystore password was incorrect

Nilai parameter inisialisasi kmsPasswordKey tidak valid.

SDK.ServerUnreachable : Server unreachable: connection https://kst-xxx.cryptoservice.kms.aliyuncs.com

Parameter inisialisasi kmsVersion tidak diatur ke v3.0.

None of the TrustManagers trust this certificate chain

  1. Parameter inisialisasi kmsVersion tidak diatur ke v3.0.

  2. Parameter inisialisasi kmsCaFilePath dibiarkan kosong.

kmsClientKeyFilePath is empty

Parameter inisialisasi kmsClientKeyFilePath dibiarkan kosong.

unable to find valid certification path to requested target

File yang ditentukan oleh parameter inisialisasi kmsCaFilePath tidak ditemukan.

Referensi