全部产品
Search
文档中心

Microservices Engine:Autentikasi akses oleh klien Nacos

更新时间:Dec 06, 2025

Anda dapat mengaktifkan fitur autentikasi untuk instans Nacos pada Microservices Engine (MSE) guna mencegah pengguna jahat memperoleh atau memodifikasi informasi tentang instans MSE Nacos. Topik ini menjelaskan cara mengonfigurasi autentikasi akses untuk instans Nacos di konsol MSE serta menggunakan klien Nacos untuk mengakses instans Nacos secara terotorisasi.

Prasyarat

Metode akses

Topik ini menjelaskan cara mengonfigurasi autentikasi akses jika Anda menggunakan koneksi langsung mesin. Setelah otorisasi berhasil, Anda dapat menggunakan klien Nacos untuk mengakses instans MSE Nacos sebagai RAM user atau dengan menggunakan RAM role. Metode akses berikut didukung:

  • Koneksi langsung mesin: Anda dapat menggunakan SDK atau klien untuk mengakses langsung mesin Nacos. Metode ini cocok untuk skenario di mana aplikasi mengakses mesin Nacos secara langsung.

  • Koneksi mesin berbasis konsol: Anda dapat mengelola, melihat, dan melakukan O&M pada mesin Nacos melalui MSE console. Metode ini cocok untuk semua pengguna yang ingin menggunakan mesin Nacos. Untuk informasi selengkapnya tentang cara memberikan otorisasi kepada RAM user untuk menggunakan MSE console, lihat Berikan izin pada sumber daya Microservices Registry.

Aktifkan autentikasi

Penting
  • Pada instans Nacos yang baru dibuat, autentikasi tidak diaktifkan secara default, sehingga instans tersebut merespons semua permintaan.

  • Fitur login konsol Nacos open source hanya mencatat informasi pengguna dan tidak dapat melakukan autentikasi atau mengintersepsi permintaan. Anda dapat mengaktifkan fitur autentikasi dengan mengikuti petunjuk dalam topik ini. Setelah autentikasi diaktifkan untuk instans Nacos, Anda tidak dapat lagi mengakses instans tersebut melalui konsol Nacos open source dan harus menggunakan MSE console.

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

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

  3. Pada halaman Instances, klik nama instans.

  4. Di panel navigasi sebelah kiri halaman Informasi Dasar, klik Parameter Settings. Pada halaman yang muncul, klik Edit.

  5. Atur parameter ConfigAuthEnabled atau NamingAuthEnabled menjadi Yes, lalu klik Save and Restart Instance.

    Penting
    • Sebelum mengaktifkan autentikasi untuk pusat konfigurasi atau registri, pastikan kredensial akses telah dikonfigurasi pada klien. Jika tidak, Anda tidak akan dapat memperoleh konfigurasi atau layanan. Untuk informasi selengkapnya tentang cara mengonfigurasi kredensial akses, lihat Konfigurasikan kredensial akses pada klien dalam topik ini.

    • Kedua parameter tersebut saling independen.

    Parameter

    Deskripsi

    ConfigAuthEnabled

    Menentukan apakah akan mengaktifkan fitur autentikasi untuk pusat konfigurasi. Parameter ini didukung oleh instans MSE Nacos versi 1.2.1 atau lebih baru dari Edisi Dasar serta semua versi Edisi Profesional dan Edisi Pengembang.

    NamingAuthEnabled

    Menentukan apakah akan mengaktifkan fitur autentikasi untuk registri. Parameter ini didukung oleh instans MSE Nacos versi 2.0.4 atau lebih baru dari Edisi Profesional atau Edisi Pengembang.

Konfigurasikan kredensial akses pada klien

Instans MSE Nacos mendukung beberapa metode untuk menginisialisasi penyedia kredensial. Pilih metode yang sesuai dengan persyaratan autentikasi dan otorisasi skenario bisnis Anda.

Metode inisialisasi

Skenario

Diperlukan Pasangan Kunci Akses atau token STS

Kredensial dasar

Periode validitas kredensial

Metode rotasi atau refresh kredensial

Metode 1: Gunakan peran RAM instans ECS

Aplikasi dideploy dan dijalankan pada instans Elastic Compute Service (ECS), instans kontainer elastis, dan node pekerja Container Service for Kubernetes (ACK).

Tidak

Token STS

Temporary

Automatic refresh

Metode 2: Gunakan ARN peran OIDC

Aplikasi tidak tepercaya dideploy dan dijalankan pada node pekerja ACK.

Tidak

STS Token

Temporary

Automatic refresh

Metode 3: Gunakan token STS

Aplikasi dideploy dan dijalankan di lingkungan tidak tepercaya, di mana Anda ingin mengelola periode validitas kredensial dan izin.

Ya

STS Token

Temporary

Manual refresh

Metode 4: Gunakan URI kredensial

Aplikasi memerlukan kredensial akses dari sistem eksternal.

Tidak

STS Token

Temporary

Automatic refresh

Metode 5: Gunakan ARN peran RAM

Aplikasi perlu diberi otorisasi untuk mengakses layanan cloud. Misalnya, Anda dapat menggunakan metode ini untuk mengizinkan akses lintas akun ke layanan cloud.

Ya

STS Token

Temporary

Automatic refresh

Metode 6: Gunakan Pasangan Kunci Akses

Aplikasi dideploy dan dijalankan di lingkungan aman dan stabil yang tidak rentan terhadap serangan eksternal serta perlu mengakses layanan cloud dalam jangka waktu lama tanpa rotasi kredensial yang sering.

Ya

AK

Jangka panjang

Manual rotation

Metode 7: Gunakan Pasangan Kunci Akses yang secara otomatis berotasi

Aplikasi dideploy dan dijalankan di lingkungan di mana Pasangan Kunci Akses berpotensi bocor dan memerlukan rotasi kredensial akses yang sering untuk mengakses layanan cloud dalam jangka waktu lama.

Tidak

AK

Jangka panjang

Automatic rotation

Metode 1: Gunakan peran RAM instans ECS

Anda dapat mengaitkan peran RAM dengan instans ECS atau kluster ACK dan memberi tahu klien Nacos tentang nama peran RAM tersebut. Dengan cara ini, aplikasi Anda dapat mengakses instans MSE Nacos tanpa perlu menentukan Pasangan Kunci Akses. Anda juga dapat mengonfigurasi peran dan kebijakan RAM untuk mengontrol granularitas atau cakupan izin akses peran RAM tersebut. Untuk informasi selengkapnya, lihat Ikhtisar, Gunakan RAM dan RBAC untuk menerapkan kontrol akses, dan Ikhtisar peran RAM.

Catatan

Untuk menggunakan peran RAM instans ECS dalam autentikasi akses, Anda harus mendeploy aplikasi pada instans ECS atau di kluster ACK dan memastikan jenis jaringan instans ECS atau kluster ACK adalah virtual private cloud (VPC). Untuk informasi selengkapnya, lihat Apa itu ECS?, Apa itu ACK?, dan Apa itu VPC?

Langkah 1: Buat peran RAM dan lampirkan kebijakan ke peran RAM

Berikan peran kepada instans ECS yang dapat mengakses instans MSE Nacos
  1. (Opsional) Buat peran RAM yang entitas tepercayanya adalah layanan Alibaba Cloud. Untuk informasi selengkapnya, lihat Buat peran RAM untuk layanan Alibaba Cloud tepercaya.

  2. Berikan izin kepada peran RAM yang sudah ada atau yang baru Anda buat, lalu lampirkan salah satu kebijakan sistem berikut ke peran RAM tersebut. Langkah ini melakukan otorisasi kasar untuk memberikan izin baca-tulis atau read-only pada konfigurasi dan layanan semua instans MSE Nacos kepada peran RAM tersebut. Untuk informasi tentang cara melakukan otorisasi, lihat Berikan izin kepada peran RAM.

    Kebijakan

    Deskripsi

    AliyunMSEFullAccess

    Izin yang diperlukan untuk mengelola MSE. Anda dapat menggunakan RAM user yang dilampirkan kebijakan ini untuk mengelola semua fitur seperti halnya menggunakan Akun Alibaba Cloud.

    AliyunMSEReadOnlyAccess

    Izin read-only pada sumber daya MSE. RAM user yang dilampirkan kebijakan ini hanya dapat membaca semua sumber daya MSE milik Akun Alibaba Cloud.

    Catatan
  3. Masuk ke ECS console. Di panel navigasi sebelah kiri, pilih Instances & Images > Instances.

  4. Di bilah navigasi atas, pilih kelompok sumber daya dan wilayah tempat sumber daya tujuan berada.

    image

  5. Temukan instans ECS yang diinginkan, lalu pilih image.png > Instance Settings > Attach/Detach RAM Role.

  6. Pada kotak dialog Attach/Detach RAM Role, pilih peran RAM instans yang Anda buat dari daftar drop-down RAM Role, lalu klik Confirm.

Berikan izin kepada peran RAM pekerja di kluster ACK
Catatan

Saat Anda membuat kluster ACK, peran RAM pekerja dibuat secara otomatis. Oleh karena itu, Anda tidak perlu membuat peran RAM lagi.

  1. Buat kebijakan kustom. Untuk informasi selengkapnya, lihat Buat kebijakan kustom.

    • Berikan izin manajemen MSE kepada peran RAM pekerja.

      {
          "Action": "mse:*",
          "Resource": "*",
          "Effect": "Allow"
      },
      {
          "Action": "ram:CreateServiceLinkedRole",
          "Resource": "*",
          "Effect": "Allow",
          "Condition": {
              "StringEquals": {
                  "ram:ServiceName": "mse.aliyuncs.com"
              }
          }
      }
    • Berikan izin read-only MSE kepada peran RAM pekerja.

      {
          "Action": [
              "mse:Query*",
              "mse:List*",
              "mse:Get*"
          ],
          "Resource": "*",
          "Effect": "Allow"
      },
      {
          "Action": "ram:CreateServiceLinkedRole",
          "Resource": "*",
          "Effect": "Allow",
          "Condition": {
              "StringEquals": {
                  "ram:ServiceName": "mse.aliyuncs.com"
              }
          }
      }
    Catatan

    Jika ingin memberikan izin detail halus, Anda perlu membuat kebijakan kustom. Untuk informasi selengkapnya, lihat Autentikasi detail halus di registri, Autentikasi detail halus di pusat konfigurasi, dan Contoh kebijakan kustom umum untuk Microservices Registry.

  2. Lampirkan kebijakan kustom tersebut ke peran RAM pekerja kluster. Untuk informasi selengkapnya, lihat Berikan izin kepada peran RAM pekerja.

Langkah 2: Konfigurasikan autentikasi pada klien (SDK)

Klien Nacos (SDK untuk Java)

Jika Anda menggunakan SDK untuk Java pada klien Nacos, tambahkan konfigurasi berikut ke kode aplikasi Anda.

Catatan

Untuk menggunakan peran RAM dalam autentikasi, Anda perlu meningkatkan versi klien ke versi yang disyaratkan. Untuk informasi selengkapnya, lihat Dukungan autentikasi layanan serta enkripsi dan dekripsi oleh klien Nacos.

properties.put(PropertyKeyConst.SERVER_ADDR, "${Endpoint of the MSE Nacos instance}");
properties.put(PropertyKeyConst.RAM_ROLE_NAME, "${roleName}");
// Registry
NamingService naming = NamingFactory.createNamingService(properties);
// Configuration center
ConfigService configService = ConfigFactory.createConfigService(properties);
Framework Spring Cloud Alibaba

Jika Anda menggunakan framework Spring Cloud Alibaba, tambahkan konfigurasi berikut ke file konfigurasi aplikasi Anda:

Catatan

Anda perlu meningkatkan framework Spring Cloud Alibaba ke versi 2.2.9.RELEASE atau lebih baru.

## Registry
spring.cloud.nacos.discovery.ramRoleName=${roleName}

## Configuration center
spring.cloud.nacos.config.ramRoleName=${roleName}
Framework Dubbo

Jika Anda menggunakan framework Dubbo, tambahkan konfigurasi berikut ke URL registri dalam file konfigurasi aplikasi Dubbo Anda.

dubbo.registry.address=nacos://${Endpoint of the MSE Nacos instance}:8848?ramRoleName=${roleName}

Metode 2: Gunakan ARN peran OIDC

Setelah Anda melampirkan peran RAM ke node pekerja di kluster ACK (seperti dijelaskan dalam Metode 1), aplikasi dalam pod di node pekerja tersebut dapat menggunakan server metadata untuk memperoleh token STS seperti halnya aplikasi pada instans ECS. Namun, Anda mungkin tidak ingin aplikasi tidak tepercaya—misalnya yang diajukan pelanggan tanpa mengungkapkan kode aplikasinya kepada Anda—mengakses server metadata untuk memperoleh token STS dari peran RAM yang dilampirkan ke node pekerja tersebut.

Untuk memastikan keamanan sumber daya cloud, mengizinkan aplikasi tidak tepercaya memperoleh token STS yang diperlukan secara aman, dan meminimalkan izin tingkat aplikasi, Anda dapat menggunakan fitur RAM Roles for Service Account (RRSA). Logika dasar metode ini adalah menggunakan token STS untuk mengakses layanan. Kluster ACK membuat dan memasang file token OpenID Connect (OIDC) akun untuk pod aplikasi yang berbeda, serta meneruskan informasi konfigurasi terkait ke variabel lingkungan. Klien Nacos memperoleh informasi konfigurasi variabel lingkungan tersebut dan memanggil operasi AssumeRoleWithOIDC dari STS untuk memperoleh token STS dari peran yang dilampirkan. Metode ini menghilangkan risiko yang mungkin timbul saat Anda memelihara Pasangan Kunci Akses atau token STS secara manual.

Langkah 1: Aktifkan fitur RRSA untuk kluster ACK

Untuk informasi selengkapnya tentang cara mengaktifkan fitur RRSA untuk kluster ACK, lihat Gunakan RRSA untuk memberikan otorisasi pod berbeda mengakses layanan cloud berbeda.

Langkah 2: Berikan izin kepada peran RAM

Berikan izin kepada peran RAM di Langkah 1—misalnya peran demo-role-for-rrsa dalam Gunakan RRSA untuk memberikan otorisasi pod berbeda mengakses layanan cloud berbeda—untuk mengakses instans MSE Nacos, lalu lampirkan salah satu kebijakan sistem berikut ke peran RAM tersebut. Langkah ini melakukan otorisasi kasar untuk memberikan izin baca-tulis atau read-only pada konfigurasi dan layanan semua instans MSE Nacos kepada peran RAM tersebut. Untuk informasi tentang cara melakukan otorisasi, lihat Berikan izin kepada peran RAM.

Kebijakan

Deskripsi

AliyunMSEFullAccess

Izin yang diperlukan untuk mengelola MSE. Anda dapat menggunakan RAM user yang dilampirkan kebijakan ini untuk mengelola semua fitur seperti halnya menggunakan Akun Alibaba Cloud.

AliyunMSEReadOnlyAccess

Izin read-only pada sumber daya MSE. RAM user yang dilampirkan kebijakan ini hanya dapat membaca semua sumber daya MSE milik Akun Alibaba Cloud.

Catatan

Langkah 3: Konfigurasikan autentikasi pada klien Nacos (SDK)

Metode ini hanya mengharuskan Anda mengonfigurasi RoleSessionName. Kredensial sementara lainnya disediakan berdasarkan variabel lingkungan yang diteruskan oleh fitur RRSA kluster ACK.

Klien Nacos (SDK untuk Java)

Jika Anda menggunakan SDK untuk Java pada klien Nacos, tambahkan konfigurasi berikut ke kode aplikasi Anda.

Catatan

Versi klien Nacos harus 2.1.0 atau lebih baru. Untuk informasi selengkapnya, lihat Versi klien Nacos yang didukung untuk autentikasi, enkripsi, dan dekripsi.

<!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client-mse-extension -->
<dependency>
    <groupId>com.alibaba.nacos</groupId>
    <artifactId>nacos-client-mse-extension</artifactId>
    <!-- The version must be 1.0.5 or later. -->
    <version>1.0.5</version>
</dependency>
properties.put(PropertyKeyConst.SERVER_ADDR, "${Endpoint of the MSE Nacos instance}");
# You can configure the environment variable ALIBABA_CLOUD_ROLE_SESSION_NAME instead.
properties.put(ExtensionAuthPropertyKey.ROLE_SESSION_NAME.getKey(), "${Custom name of the session for role assuming}");
## The following parameters are optional.
# You can configure the environment variable ALIBABA_CLOUD_POLICY instead.
properties.put(ExtensionAuthPropertyKey.POLICY.getKey(), "${Configure a policy with limited permissions}");
# You can configure the environment variable ALIBABA_CLOUD_ROLE_SESSION_EXPIRATION instead.
properties.put(ExtensionAuthPropertyKey.ROLE_SESSION_EXPIRATION.getKey(), "${Validity period of role assuming. Unit: seconds}");
NamingService naming = NamingFactory.createNamingService(properties);
ConfigService configService = ConfigFactory.createConfigService(properties);
Framework Spring Cloud Alibaba

Jika Anda menggunakan framework Spring Cloud Alibaba, tambahkan dependensi yang diperlukan dan konfigurasi berikut ke file konfigurasi aplikasi Anda.

Catatan
<!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client-mse-extension -->
<dependency>
    <groupId>com.alibaba.nacos</groupId>
    <artifactId>nacos-client-mse-extension</artifactId>
    <!-- The version must be 1.0.5 or later. -->
    <version>1.0.5</version>
</dependency>
## Registry
spring.cloud.nacos.discovery.server-addr=${Endpoint of the Nacos server}
# You can configure the environment variable ALIBABA_CLOUD_ROLE_SESSION_NAME instead.
spring.cloud.nacos.discovery.alibabaCloudRoleSessionName=${Custom name of the session for role assuming}

## Configuration center
spring.cloud.nacos.config.server-addr==${Endpoint of the Nacos server}
# You can configure the environment variable ALIBABA_CLOUD_ROLE_SESSION_NAME instead.
spring.cloud.nacos.config.alibabaCloudRoleSessionName=${Custom name of the session for role assuming}

## The following parameters are optional.
# You can configure the environment variable ALIBABA_CLOUD_POLICY instead.
spring.cloud.nacos.discovery.alibabaCloudPolicy=${Configure a policy with limited permissions}
spring.cloud.nacos.config.alibabaCloudPolicy=${Configure a policy with limited permissions}
# You can configure the environment variable ALIBABA_CLOUD_ROLE_SESSION_EXPIRATION instead.
spring.cloud.nacos.discovery.alibabaCloudRoleSessionExpiration=${Validity period of role assuming. Unit: seconds}
spring.cloud.nacos.config.alibabaCloudRoleSessionExpiration=${Validity period of role assuming. Unit: seconds}
Framework Dubbo

Jika Anda menggunakan framework Dubbo, tambahkan dependensi yang diperlukan dan konfigurasi berikut ke URL registri dalam file konfigurasi aplikasi Dubbo Anda.

Catatan

Versi klien Nacos harus 2.1.0 atau lebih baru. Untuk informasi selengkapnya, lihat Versi klien Nacos yang didukung untuk autentikasi, enkripsi, dan dekripsi.

<!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client-mse-extension -->
<dependency>
    <groupId>com.alibaba.nacos</groupId>
    <artifactId>nacos-client-mse-extension</artifactId>
    <!-- The version must be 1.0.5 or later. -->
    <version>1.0.5</version>
</dependency>
# You can configure the environment variable ALIBABA_CLOUD_ROLE_SESSION_NAME instead.
dubbo.registry.address=nacos://${Endpoint of the MSE Nacos instance}:8848?alibabaCloudRoleSessionName=${Custom name of the session for role assuming}

## The following parameters are optional and are added after the URL. You can configure the environment variables ALIBABA_CLOUD_POLICY and ALIBABA_CLOUD_ROLE_SESSION_EXPIRATION instead.
&alibabaCloudPolicy=${Configure a policy with limited permissions}&alibabaCloudRoleSessionExpiration=${Validity period of role assuming. Unit: seconds}

Metode 3: Gunakan token STS

Jika aplikasi Anda perlu mengakses instans MSE Nacos secara sementara, Anda dapat menggunakan security token service (STS) untuk memperoleh kredensial akses sementara dan menggunakan kredensial tersebut untuk menginisialisasi penyedia kredensial. Kredensial akses sementara terdiri dari ID AccessKey, Rahasia AccessKey, dan token STS.

Penting

Metode ini mengharuskan Anda memelihara token STS secara manual, yang menimbulkan risiko stabilitas dan meningkatkan kompleksitas pemeliharaan. Jika Anda perlu mengakses instans MSE Nacos beberapa kali, Anda harus merefresh token STS secara manual.

(Opsional) Langkah 1: Buat RAM user dan RAM role

  • Lakukan langkah ini jika Anda belum memiliki RAM user atau perlu membuat RAM user. Untuk informasi selengkapnya tentang cara membuat RAM user, lihat Buat RAM user.

  • Lakukan langkah ini jika Anda belum memiliki RAM role atau perlu membuat RAM role yang entitas tepercayanya adalah akun Alibaba Cloud. Untuk informasi selengkapnya, lihat Buat RAM role untuk akun Alibaba Cloud tepercaya.

Langkah 2: Berikan izin kepada RAM user dan RAM role

  • Berikan izin kepada RAM user yang dibuat di Langkah 1 untuk mengelola token STS. Untuk informasi selengkapnya, lihat AssumeRole.

  • Berikan izin kepada RAM role di Langkah 1, lalu lampirkan salah satu kebijakan sistem berikut ke RAM role tersebut. Langkah ini melakukan otorisasi kasar untuk memberikan izin baca-tulis atau read-only pada konfigurasi dan layanan semua instans MSE Nacos kepada RAM role tersebut. Untuk informasi tentang cara melakukan otorisasi, lihat Berikan izin kepada RAM role.

Kebijakan

Deskripsi

AliyunMSEFullAccess

Izin yang diperlukan untuk mengelola MSE. Anda dapat menggunakan RAM user yang dilampirkan kebijakan ini untuk mengelola semua fitur seperti halnya menggunakan Akun Alibaba Cloud.

AliyunMSEReadOnlyAccess

Izin read-only pada sumber daya MSE. RAM user yang dilampirkan kebijakan ini hanya dapat membaca semua sumber daya MSE milik Akun Alibaba Cloud.

Catatan

Langkah 3: Peroleh token STS

Anda harus memperoleh token STS yang digunakan sebagai kredensial akses sementara dari RAM role yang dibuat di Langkah 1. Untuk informasi selengkapnya tentang cara memperoleh token STS, lihat AssumeRole.

Langkah 4: Konfigurasikan autentikasi pada klien Nacos (SDK)

Kredensial akses sementara terdiri dari ID AccessKey, Rahasia AccessKey, dan token STS. Anda harus menggunakannya bersama-sama.

Klien Nacos (SDK untuk Java)

Jika Anda menggunakan klien Nacos (SDK untuk Java), tambahkan dependensi yang diperlukan dan konfigurasi berikut untuk aplikasi Anda.

Catatan

Versi klien Nacos harus 2.1.0 atau lebih baru. Untuk informasi selengkapnya, lihat Versi klien Nacos yang didukung untuk autentikasi, enkripsi, dan dekripsi.

<!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client-mse-extension -->
<dependency>
    <groupId>com.alibaba.nacos</groupId>
    <artifactId>nacos-client-mse-extension</artifactId>
    <!-- The version must be 1.0.5 or later. -->
    <version>1.0.5</version>
</dependency>
properties.put(PropertyKeyConst.SERVER_ADDR, "${Endpoint of the MSE Nacos instance}");
# You can configure the environment variable ALIBABA_CLOUD_ACCESS_KEY_ID instead.
properties.put(ExtensionAuthPropertyKey.ACCESS_KEY_ID.getKey(), "${AccessKey ID of the temporary credentials}");
# You can configure the environment variable ALIBABA_CLOUD_ACCESS_KEY_SECRET instead.
properties.put(ExtensionAuthPropertyKey.ACCESS_KEY_SECRET.getKey(), "${AccessKey secret of the temporary credentials}");
# You can configure the environment variable ALIBABA_CLOUD_SECURITY_TOKEN instead.
properties.put(ExtensionAuthPropertyKey.SECURITY_TOKEN_KEY.getKey(), "${Security token of the temporary credentials}");
NamingService naming = NamingFactory.createNamingService(properties);
ConfigService configService = ConfigFactory.createConfigService(properties);
Framework Spring Cloud Alibaba

Jika Anda menggunakan framework Spring Cloud Alibaba, tambahkan dependensi yang diperlukan dan konfigurasi berikut ke file konfigurasi aplikasi Anda.

Catatan
<!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client-mse-extension -->
<dependency>
    <groupId>com.alibaba.nacos</groupId>
    <artifactId>nacos-client-mse-extension</artifactId>
    <!-- The version must be 1.0.5 or later. -->
    <version>1.0.5</version>
</dependency>
## Registry
# You can configure the environment variable ALIBABA_CLOUD_ACCESS_KEY_ID instead.
spring.cloud.nacos.discovery.alibabaCloudAccessKeyId=${AccessKey ID of the temporary credentials}
# You can configure the environment variable ALIBABA_CLOUD_ACCESS_KEY_SECRET instead.
spring.cloud.nacos.discovery.alibabaCloudAccessKeySecret=${AccessKey secret of the temporary credentials}
# You can configure the environment variable ALIBABA_CLOUD_SECURITY_TOKEN instead.
spring.cloud.nacos.discovery.alibabaCloudSecurityToken=${Security token of the temporary credentials}

## Configuration center
# You can configure the environment variable ALIBABA_CLOUD_ACCESS_KEY_ID instead.
spring.cloud.nacos.config.alibabaCloudAccessKeyId=${AccessKey ID of the temporary credentials}
# You can configure the environment variable ALIBABA_CLOUD_ACCESS_KEY_SECRET instead.
spring.cloud.nacos.config.alibabaCloudAccessKeySecret=${AccessKey secret of the temporary credentials}
# You can configure the environment variable ALIBABA_CLOUD_SECURITY_TOKEN instead.
spring.cloud.nacos.config.alibabaCloudSecurityToken=${Security token of the temporary credentials}
Framework Dubbo

Jika Anda menggunakan framework Dubbo, tambahkan dependensi yang diperlukan dan konfigurasi berikut ke URL registri dalam file konfigurasi aplikasi Dubbo Anda.

Catatan

Versi klien Nacos harus 2.1.0 atau lebih baru. Untuk informasi selengkapnya, lihat Versi klien Nacos yang didukung untuk autentikasi, enkripsi, dan dekripsi.

<!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client-mse-extension -->
<dependency>
    <groupId>com.alibaba.nacos</groupId>
    <artifactId>nacos-client-mse-extension</artifactId>
    <!-- The version must be 1.0.5 or later. -->
    <version>1.0.5</version>
</dependency>
# You can configure the environment variables ALIBABA_CLOUD_ACCESS_KEY_ID, ALIBABA_CLOUD_ACCESS_KEY_SECRET, and ALIBABA_CLOUD_SECURITY_TOKEN instead.
dubbo.registry.address=nacos://${Endpoint of the MSE Nacos instance}:8848?alibabaCloudAccessKeyId=${AccessKey ID of the temporary credentials}&alibabaCloudAccessKeySecret=${AccessKey secret of the temporary credentials}&alibabaCloudSecurityToken=${Security token of the temporary credentials}

Metode 4: Gunakan URI kredensial

Jika aplikasi Anda perlu memperoleh kredensial Alibaba Cloud dari sistem eksternal untuk menerapkan manajemen kredensial fleksibel dan akses tanpa kunci, Anda dapat menggunakan URI kredensial untuk menginisialisasi penyedia kredensial. Logika dasar metode ini adalah menggunakan token STS untuk mengakses layanan. Klien Nacos memperoleh token STS melalui URI yang Anda tentukan dan menggunakan token tersebut untuk menginisialisasi klien kredensial. Metode ini menghilangkan risiko yang mungkin timbul saat Anda memelihara Pasangan Kunci Akses atau token STS secara manual.

Penting

Layanan backend yang menyediakan respons URI kredensial harus secara otomatis merefresh token STS untuk memastikan aplikasi Anda selalu memperoleh kredensial yang valid.

Langkah 1: Pastikan respons dari layanan URI kredensial valid

Agar klien Nacos dapat mengurai dan menggunakan token STS dengan benar, URI kredensial harus mematuhi protokol respons berikut:

  • Kode status respons: 200

  • Struktur isi respons:

    {
        "Code": "Success",
        "AccessKeySecret": "AccessKeySecret",
        "AccessKeyId": "AccessKeyId",
        "Expiration": "2021-09-26T03:46:38Z",
        "SecurityToken": "SecurityToken"
    }

Langkah 2: Berikan izin kepada RAM role

Berikan izin kepada RAM role di Langkah 1 untuk mengakses instans MSE Nacos, lalu lampirkan salah satu kebijakan sistem berikut ke RAM role tersebut. Langkah ini melakukan otorisasi kasar untuk memberikan izin baca-tulis atau read-only pada konfigurasi dan layanan semua instans MSE Nacos kepada RAM role tersebut. Untuk informasi tentang cara melakukan otorisasi, lihat Berikan izin kepada RAM role.

Kebijakan

Deskripsi

AliyunMSEFullAccess

Izin yang diperlukan untuk mengelola MSE. Anda dapat menggunakan RAM user yang dilampirkan kebijakan ini untuk mengelola semua fitur seperti halnya menggunakan Akun Alibaba Cloud.

AliyunMSEReadOnlyAccess

Izin read-only pada sumber daya MSE. RAM user yang dilampirkan kebijakan ini hanya dapat membaca semua sumber daya MSE milik Akun Alibaba Cloud.

Catatan

Langkah 3: Konfigurasikan autentikasi pada klien Nacos (SDK)

Klien Nacos (SDK untuk Java)

Jika Anda menggunakan klien Nacos (SDK untuk Java), tambahkan dependensi yang diperlukan dan konfigurasi berikut untuk aplikasi Anda.

Catatan

Versi klien Nacos harus 2.1.0 atau lebih baru. Untuk informasi selengkapnya, lihat Versi klien Nacos yang didukung untuk autentikasi, enkripsi, dan dekripsi.

<!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client-mse-extension -->
<dependency>
    <groupId>com.alibaba.nacos</groupId>
    <artifactId>nacos-client-mse-extension</artifactId>
    <!-- The version must be 1.0.5 or later. -->
    <version>1.0.5</version>
</dependency>
properties.put(PropertyKeyConst.SERVER_ADDR, "${Endpoint of the MSE Nacos instance}");
# You can configure the environment variable ALIBABA_CLOUD_CREDENTIALS_URI instead.
properties.put(ExtensionAuthPropertyKey.CREDENTIALS_URI.getKey(), "${URI of the credentials service, such as https://$host:$port/$path....");
NamingService naming = NamingFactory.createNamingService(properties);
ConfigService configService = ConfigFactory.createConfigService(properties);
Framework Spring Cloud Alibaba

Jika Anda menggunakan framework Spring Cloud Alibaba, tambahkan dependensi yang diperlukan dan konfigurasi berikut ke file konfigurasi aplikasi Anda.

Catatan
<!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client-mse-extension -->
<dependency>
    <groupId>com.alibaba.nacos</groupId>
    <artifactId>nacos-client-mse-extension</artifactId>
    <!-- The version must be 1.0.5 or later. -->
    <version>1.0.5</version>
</dependency>
## Registry
# You can configure the environment variable ALIBABA_CLOUD_CREDENTIALS_URI instead.
spring.cloud.nacos.discovery.alibabaCloudCredentialsUri=${URI of the credentials service, such as https://$host:$port/$path....}

## Configuration center
# You can configure the environment variable ALIBABA_CLOUD_CREDENTIALS_URI instead.
spring.cloud.nacos.config.alibabaCloudCredentialsUri=${URI of the credentials service, such as https://$host:$port/$path....}
Framework Dubbo

Jika Anda menggunakan framework Dubbo, tambahkan dependensi yang diperlukan dan konfigurasi berikut ke URL registri dalam file konfigurasi aplikasi Dubbo Anda.

Catatan

Versi klien Nacos harus 2.1.0 atau lebih baru. Untuk informasi selengkapnya, lihat Versi klien Nacos yang didukung untuk autentikasi, enkripsi, dan dekripsi.

<!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client-mse-extension -->
<dependency>
    <groupId>com.alibaba.nacos</groupId>
    <artifactId>nacos-client-mse-extension</artifactId>
    <!-- The version must be 1.0.5 or later. -->
    <version>1.0.5</version>
</dependency>
# You can configure the environment variable ALIBABA_CLOUD_CREDENTIALS_URI instead.
dubbo.registry.address=nacos://${Endpoint of the MSE Nacos instance}:8848?alibabaCloudCredentialsUri=${Credentials URI, such as https://$host:$port/$path....}

Metode 5: Gunakan ARN peran RAM

Metode ini cocok untuk skenario di mana Anda perlu memberikan otorisasi kepada aplikasi untuk mengakses instans MSE Nacos. Misalnya, jika Anda ingin mengakses instans MSE Nacos lintas akun Alibaba Cloud, Anda dapat menggunakan Alibaba Cloud Resource Name (ARN) peran RAM untuk menginisialisasi penyedia kredensial. Logika dasar metode ini adalah menggunakan token STS untuk mengakses layanan. Dengan ARN peran RAM tertentu, klien Nacos memperoleh token STS dari STS dan secara otomatis merefresh token STS tersebut sebelum sesi berakhir. Anda dapat memberikan nilai ke parameter policy untuk membatasi izin peran RAM tersebut.

Penting

Metode ini memerlukan Pasangan Kunci Akses yang dapat digunakan untuk mengasumsikan peran. Kami menyarankan agar Anda memberikan izin Pasangan Kunci Akses tersebut untuk mengasumsikan peran dan membatasi peran yang dapat diasumsikan oleh Pasangan Kunci Akses tersebut. Untuk informasi selengkapnya, lihat AssumeRole.

(Opsional) Langkah 1: Buat RAM user dan RAM role

  • Lakukan langkah ini jika Anda belum memiliki RAM user atau perlu membuat RAM user. Untuk informasi selengkapnya tentang cara membuat RAM user, lihat Buat RAM user.

  • Lakukan langkah ini jika Anda belum memiliki RAM role atau perlu membuat RAM role yang entitas tepercayanya adalah akun Alibaba Cloud. Untuk informasi selengkapnya, lihat Buat RAM role untuk akun Alibaba Cloud tepercaya.

Langkah 2: Berikan izin kepada RAM user dan RAM role

  • Berikan izin kepada RAM user yang dibuat di Langkah 1 untuk mengelola token STS. Untuk informasi selengkapnya, lihat AssumeRole.

  • Berikan izin kepada RAM role di Langkah 1, lalu lampirkan salah satu kebijakan sistem berikut ke RAM role tersebut. Langkah ini melakukan otorisasi kasar untuk memberikan izin baca-tulis atau read-only pada konfigurasi dan layanan semua instans MSE Nacos kepada RAM role tersebut. Untuk informasi tentang cara melakukan otorisasi, lihat Berikan izin kepada RAM role.

Kebijakan

Deskripsi

AliyunMSEFullAccess

Izin yang diperlukan untuk mengelola MSE. Anda dapat menggunakan RAM user yang dilampirkan kebijakan ini untuk mengelola semua fitur seperti halnya menggunakan Akun Alibaba Cloud.

AliyunMSEReadOnlyAccess

Izin read-only pada sumber daya MSE. RAM user yang dilampirkan kebijakan ini hanya dapat membaca semua sumber daya MSE milik Akun Alibaba Cloud.

Catatan

Langkah 3: Konfigurasikan autentikasi pada klien Nacos (SDK)

Untuk menggunakan metode ini, Anda harus mengonfigurasi Pasangan Kunci Akses dan ARN peran RAM sebagai kredensial.

Klien Nacos (SDK untuk Java)

Jika Anda menggunakan klien Nacos (SDK untuk Java), tambahkan dependensi yang diperlukan dan konfigurasi berikut untuk aplikasi Anda.

Catatan

Versi klien Nacos harus 2.1.0 atau lebih baru. Untuk informasi selengkapnya, lihat Versi klien Nacos yang didukung untuk autentikasi, enkripsi, dan dekripsi.

<!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client-mse-extension -->
<dependency>
    <groupId>com.alibaba.nacos</groupId>
    <artifactId>nacos-client-mse-extension</artifactId>
    <!-- The version must be 1.0.5 or later. -->
    <version>1.0.5</version>
</dependency>
properties.put(PropertyKeyConst.SERVER_ADDR, "${Endpoint of the MSE Nacos instance}");
# You can configure the environment variable ALIBABA_CLOUD_ACCESS_KEY_ID instead.
properties.put(ExtensionAuthPropertyKey.ACCESS_KEY_ID.getKey(), "${AccessKey ID that can assume a role}");
# You can configure the environment variable ALIBABA_CLOUD_ACCESS_KEY_SECRET instead.
properties.put(ExtensionAuthPropertyKey.ACCESS_KEY_SECRET.getKey(), "${AccessKey secret that can assume a role}");
# You can configure the environment variable ALIBABA_CLOUD_ROLE_ARN instead.
properties.put(ExtensionAuthPropertyKey.ROLE_ARN.getKey(), "${ARN of the assumed role}");
# You can configure the environment variable ALIBABA_CLOUD_ROLE_SESSION_NAME instead.
properties.put(ExtensionAuthPropertyKey.ROLE_SESSION_NAME.getKey(), "${Custom name of the session for role assuming}");
## The following parameters are optional.
# You can configure the environment variable ALIBABA_CLOUD_POLICY instead.
properties.put(ExtensionAuthPropertyKey.POLICY.getKey(), "${Configure a policy with limited permissions}");
# You can configure the environment variable ALIBABA_CLOUD_ROLE_SESSION_EXPIRATION instead.
properties.put(ExtensionAuthPropertyKey.ROLE_SESSION_EXPIRATION.getKey(), "${Validity period of role assuming. Unit: seconds}");
NamingService naming = NamingFactory.createNamingService(properties);
ConfigService configService = ConfigFactory.createConfigService(properties);
Framework Spring Cloud Alibaba

Jika Anda menggunakan framework Spring Cloud Alibaba, tambahkan dependensi yang diperlukan dan konfigurasi berikut ke file konfigurasi aplikasi Anda.

Catatan
<!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client-mse-extension -->
<dependency>
    <groupId>com.alibaba.nacos</groupId>
    <artifactId>nacos-client-mse-extension</artifactId>
    <!-- The version must be 1.0.5 or later. -->
    <version>1.0.5</version>
</dependency>
## Registry
# You can configure the environment variable ALIBABA_CLOUD_ACCESS_KEY_ID instead.
spring.cloud.nacos.discovery.alibabaCloudAccessKeyId=${AccessKey ID that can assume a role}
# You can configure the environment variable ALIBABA_CLOUD_ACCESS_KEY_SECRET instead.
spring.cloud.nacos.discovery.alibabaCloudAccessKeySecret=${AccessKey secret that can assume a role}
# You can configure the environment variable ALIBABA_CLOUD_ROLE_ARN instead.
spring.cloud.nacos.discovery.alibabaCloudRoleArn=${ARN of the assumed role}
# You can configure the environment variable ALIBABA_CLOUD_ROLE_SESSION_NAME instead.
spring.cloud.nacos.discovery.alibabaCloudRoleSessionName=${Custom name of the session for role assuming}

## Configuration center
# You can configure the environment variable ALIBABA_CLOUD_ACCESS_KEY_ID instead.
spring.cloud.nacos.config.alibabaCloudAccessKeyId=${AccessKey ID that can assume a role}
# You can configure the environment variable ALIBABA_CLOUD_ACCESS_KEY_SECRET instead.
spring.cloud.nacos.config.alibabaCloudAccessKeySecret=${AccessKey secret that can assume a role}
# You can configure the environment variable ALIBABA_CLOUD_ROLE_ARN instead.
spring.cloud.nacos.config.alibabaCloudRoleArn=${ARN of the assumed role}
# You can configure the environment variable ALIBABA_CLOUD_ROLE_SESSION_NAME instead.
spring.cloud.nacos.config.alibabaCloudRoleSessionName=${Custom name of the session for role assuming}

## The following parameters are optional.
# You can configure the environment variable ALIBABA_CLOUD_POLICY instead.
spring.cloud.nacos.discovery.alibabaCloudPolicy=${Configure a policy with limited permissions}
spring.cloud.nacos.config.alibabaCloudPolicy=${Configure a policy with limited permissions}
# You can configure the environment variable ALIBABA_CLOUD_ROLE_SESSION_EXPIRATION instead.
spring.cloud.nacos.discovery.alibabaCloudRoleSessionExpiration=${Validity period of role assuming. Unit: seconds}
spring.cloud.nacos.config.alibabaCloudRoleSessionExpiration=${Validity period of role assuming. Unit: seconds}
Framework Dubbo

Jika Anda menggunakan framework Dubbo, tambahkan dependensi yang diperlukan dan konfigurasi berikut ke URL registri dalam file konfigurasi aplikasi Dubbo Anda.

Catatan

Versi klien Nacos harus 2.1.0 atau lebih baru. Untuk informasi selengkapnya, lihat Versi klien Nacos yang didukung untuk autentikasi, enkripsi, dan dekripsi.

<!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client-mse-extension -->
<dependency>
    <groupId>com.alibaba.nacos</groupId>
    <artifactId>nacos-client-mse-extension</artifactId>
    <!-- The version must be 1.0.5 or later. -->
    <version>1.0.5</version>
</dependency>
# You can configure the environment variables ALIBABA_CLOUD_ACCESS_KEY_ID, ALIBABA_CLOUD_ACCESS_KEY_SECRET, ALIBABA_CLOUD_ROLE_ARN, and ALIBABA_CLOUD_ROLE_SESSION_NAME instead.
dubbo.registry.address=nacos://${Endpoint of the MSE Nacos instance}:8848?alibabaCloudAccessKeyId=${AccessKey ID that can assume a role}&alibabaCloudAccessKeySecret=${AccessKey secret that can assume a role}&alibabaCloudRoleArn=${ARN of the assumed role}&alibabaCloudRoleSessionName=${Custom name of the session for role assuming}

## The following parameters are optional and are added after the URL. You can configure the environment variables ALIBABA_CLOUD_POLICY and ALIBABA_CLOUD_ROLE_SESSION_EXPIRATION instead.
&alibabaCloudPolicy=${Configure a policy with limited permissions}&alibabaCloudRoleSessionExpiration=${Validity period of role assuming. Unit: seconds}

Metode 6: Gunakan Pasangan Kunci Akses

(Opsional) Langkah 1: Buat RAM user

Lakukan langkah ini jika Anda belum memiliki RAM user atau perlu membuat RAM user. Untuk informasi selengkapnya, lihat Buat RAM user.

Langkah 2: Berikan izin kepada RAM user

Berikan izin kepada RAM user yang Anda buat di Langkah 1, lalu lampirkan salah satu kebijakan sistem berikut ke RAM user tersebut. Langkah ini melakukan otorisasi kasar untuk memberikan izin baca-tulis atau read-only pada konfigurasi dan layanan semua instans MSE Nacos kepada RAM user tersebut. Untuk informasi tentang cara melakukan otorisasi, lihat Berikan izin kepada RAM user.

Kebijakan

Deskripsi

AliyunMSEFullAccess

Izin yang diperlukan untuk mengelola MSE. Anda dapat menggunakan RAM user yang dilampirkan kebijakan ini untuk mengelola semua fitur seperti halnya menggunakan Akun Alibaba Cloud.

AliyunMSEReadOnlyAccess

Izin read-only pada sumber daya MSE. RAM user yang dilampirkan kebijakan ini hanya dapat membaca semua sumber daya MSE milik Akun Alibaba Cloud.

Catatan

Langkah 3: Konfigurasikan autentikasi pada klien Nacos (SDK)

Pasangan Kunci Akses terdiri dari ID AccessKey dan Rahasia AccessKey. Setelah Anda mengaktifkan fitur autentikasi untuk instans MSE Nacos, Anda harus menentukan ID AccessKey dan Rahasia AccessKey RAM user jika ingin mengakses instans Nacos sebagai RAM user menggunakan klien Nacos. Jika Anda tidak menentukan ID AccessKey dan Rahasia AccessKey RAM user untuk klien Nacos, Anda tidak dapat mengakses instans Nacos sebagai RAM user. Untuk informasi selengkapnya tentang cara memperoleh Pasangan Kunci Akses, lihat Buat Pasangan Kunci Akses.

Klien Nacos (SDK untuk Java)

Jika Anda menggunakan klien Nacos (SDK untuk Java), tambahkan kode berikut untuk aplikasi Anda.

Catatan

Untuk menggunakan Pasangan Kunci Akses dalam autentikasi, Anda perlu meningkatkan versi klien ke versi yang disyaratkan. Untuk informasi selengkapnya, lihat Versi klien Nacos yang didukung untuk autentikasi, enkripsi, dan dekripsi.

properties.put(PropertyKeyConst.SERVER_ADDR, "${Endpoint of the MSE Nacos instance}");
properties.put(PropertyKeyConst.ACCESS_KEY, "${accessKey}");
properties.put(PropertyKeyConst.SECRET_KEY, "${secretKey}");
NamingService naming = NamingFactory.createNamingService(properties);
ConfigService configService = ConfigFactory.createConfigService(properties);
Framework Spring Cloud Alibaba

Jika Anda menggunakan framework Spring Cloud Alibaba, tambahkan konfigurasi berikut ke file konfigurasi aplikasi Anda:

Catatan

Anda perlu meningkatkan framework Spring Cloud Alibaba ke versi 2.2.1.RELEASE atau lebih baru.

## Registry
spring.cloud.nacos.discovery.accessKey=${accessKey}
spring.cloud.nacos.discovery.secretKey=${secretKey}

## Configuration center
spring.cloud.nacos.config.accessKey=${accessKey}
spring.cloud.nacos.config.secretKey=${secretKey}
Framework Dubbo

Jika Anda menggunakan framework Dubbo, tambahkan konfigurasi berikut ke URL registri dalam file konfigurasi aplikasi Dubbo Anda.

dubbo.registry.address=nacos://${Endpoint of the MSE Nacos instance}:8848?accessKey=${accessKey}&secretKey=${secretKey}
Klien Nacos (SDK untuk Go)

Jika Anda menggunakan klien Nacos (SDK untuk Go), tambahkan konfigurasi berikut ke kode aplikasi Anda:

Catatan

Untuk menggunakan Pasangan Kunci Akses dalam autentikasi, Anda perlu meningkatkan versi klien ke versi yang disyaratkan. Untuk informasi selengkapnya, lihat Versi klien Nacos yang didukung untuk autentikasi, enkripsi, dan dekripsi.

cc := constant.ClientConfig{
    AccessKey:   "${accessKey}",
    SecretKey:   "${secretKey}"
}

serverConfigs := []constant.ServerConfig{
    {
        IpAddr:      "${Endpoint of the MSE Nacos instance}",
        Port:        8848
    }
}

namingClient, err := clients.NewNamingClient(
    vo.NacosClientParam{
        ClientConfig:  &clientConfig,
        ServerConfigs: serverConfigs,
    },
)

configClient, err := clients.NewConfigClient(
    vo.NacosClientParam{
        ClientConfig:  &clientConfig,
        ServerConfigs: serverConfigs,
    },
)
Klien Nacos (SDK untuk Python)

Jika Anda menggunakan klien Nacos (SDK untuk Python), tambahkan konfigurasi berikut ke kode aplikasi Anda:

Catatan

Untuk menggunakan Pasangan Kunci Akses dalam autentikasi, Anda perlu meningkatkan versi klien ke versi yang disyaratkan. Untuk informasi selengkapnya, lihat Versi klien Nacos yang didukung untuk autentikasi, enkripsi, dan dekripsi.

client = nacos.NacosClient(${Endpoint of the MSE Nacos instance}, ak=${accessKey}, sk=${secretKey})

Metode 7: Gunakan Pasangan Kunci Akses yang secara otomatis berotasi

Jika aplikasi Anda perlu mengakses instans MSE Nacos dalam jangka waktu lama, tetapi Pasangan Kunci Akses berpotensi bocor di lingkungan runtime, Anda perlu melakukan rotasi Pasangan Kunci Akses secara manual dengan frekuensi tinggi. Dalam hal ini, Anda dapat menggunakan kunci klien untuk menginisialisasi penyedia kredensial. Logika dasar metode ini adalah menggunakan Pasangan Kunci Akses untuk mengakses layanan. Setelah Anda menggunakan kunci klien, Key Management Service (KMS) secara berkala merotasi Pasangan Kunci Akses dari RAM user yang dikelola dan secara dinamis mengubah Pasangan Kunci Akses statis dari RAM user tersebut. Hal ini mengurangi risiko kebocoran Pasangan Kunci Akses. KMS juga mendukung rotasi segera untuk cepat mengganti Pasangan Kunci Akses yang bocor. Hal ini membebaskan Anda dari pemeliharaan Pasangan Kunci Akses secara manual serta mengurangi risiko keamanan dan kompleksitas pemeliharaan. Untuk informasi selengkapnya tentang cara memperoleh kunci klien, lihat Buat AAP.

Langkah 1: Kelola RAM user menggunakan rahasia RAM di KMS

Anda harus mengelola RAM user menggunakan rahasia RAM di instans KMS. Untuk informasi selengkapnya tentang cara mengelola rahasia RAM di KMS, lihat Kelola dan gunakan rahasia RAM.

Langkah 2: Berikan izin kepada RAM user

Berikan izin kepada RAM user yang Anda buat di Langkah 1, lalu lampirkan salah satu kebijakan sistem berikut ke RAM user tersebut. Langkah ini melakukan otorisasi kasar untuk memberikan izin baca-tulis atau read-only pada konfigurasi dan layanan semua instans MSE Nacos kepada RAM user tersebut. Untuk informasi tentang cara melakukan otorisasi, lihat Berikan izin kepada RAM user.

Kebijakan

Deskripsi

AliyunMSEFullAccess

Izin yang diperlukan untuk mengelola MSE. Anda dapat menggunakan RAM user yang dilampirkan kebijakan ini untuk mengelola semua fitur seperti halnya menggunakan Akun Alibaba Cloud.

AliyunMSEReadOnlyAccess

Izin read-only pada sumber daya MSE. RAM user yang dilampirkan kebijakan ini hanya dapat membaca semua sumber daya MSE milik Akun Alibaba Cloud.

Catatan

Langkah 3: Buat file konfigurasi manajemen kredensial

Buat file konfigurasi di direktori root proyek atau classpath. Perhatikan bahwa nama file konfigurasi harus secretsmanager.properties. File tersebut berisi konten berikut:

cache_client_dkms_config_info=[{"regionId":"<your dkms region>","endpoint":"<your dkms endpoint>","passwordFromFilePath":"< your password file path >","clientKeyFile":"<your Client Key file path>","ignoreSslCerts":false,"caFilePath":"<your CA certificate file path>"}]
Catatan

Untuk informasi selengkapnya tentang item konfigurasi dalam file konfigurasi, lihat Secret client.

Langkah 4: Konfigurasikan autentikasi pada klien Nacos (SDK)

Klien Nacos (SDK untuk Java)

Jika Anda menggunakan klien Nacos (SDK untuk Java), tambahkan dependensi yang diperlukan dan konfigurasi berikut untuk aplikasi Anda.

Catatan

Versi klien Nacos harus 2.1.0 atau lebih baru. Untuk informasi selengkapnya, lihat Versi klien Nacos yang didukung untuk autentikasi, enkripsi, dan dekripsi.

<!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client-mse-extension -->
<dependency>
    <groupId>com.alibaba.nacos</groupId>
    <artifactId>nacos-client-mse-extension</artifactId>
    <!-- The version must be 1.0.5 or later. -->
    <version>1.0.5</version>
</dependency>
properties.put(PropertyKeyConst.SERVER_ADDR, "${Endpoint of the MSE Nacos instance}");
# You can configure the environment variable ALIBABA_CLOUD_SECRET_NAME instead.
properties.put(ExtensionAuthPropertyKey.SECRET_NAME.getKey(), "${Name of the RAM secret}");
NamingService naming = NamingFactory.createNamingService(properties);
ConfigService configService = ConfigFactory.createConfigService(properties);
Framework Spring Cloud Alibaba

Jika Anda menggunakan framework Spring Cloud Alibaba, tambahkan dependensi yang diperlukan dan konfigurasi berikut ke file konfigurasi aplikasi Anda.

Catatan
<!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client-mse-extension -->
<dependency>
    <groupId>com.alibaba.nacos</groupId>
    <artifactId>nacos-client-mse-extension</artifactId>
    <!-- The version must be 1.0.5 or later. -->
    <version>1.0.5</version>
</dependency>
## Registry
# You can configure the environment variable ALIBABA_CLOUD_SECRET_NAME instead.
spring.cloud.nacos.discovery.alibabaCloudSecretName=${Name of the RAM secret}

## Configuration center
# You can configure the environment variable ALIBABA_CLOUD_SECRET_NAME instead.
spring.cloud.nacos.config.alibabaCloudSecretName=${Name of the RAM secret}
Framework Dubbo

Jika Anda menggunakan framework Dubbo, tambahkan dependensi yang diperlukan dan konfigurasi berikut ke URL registri dalam file konfigurasi aplikasi Dubbo Anda.

Catatan

Versi klien Nacos harus 2.1.0 atau lebih baru. Untuk informasi selengkapnya, lihat Versi klien Nacos yang didukung untuk autentikasi, enkripsi, dan dekripsi.

<!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client-mse-extension -->
<dependency>
    <groupId>com.alibaba.nacos</groupId>
    <artifactId>nacos-client-mse-extension</artifactId>
    <!-- The version must be 1.0.5 or later. -->
    <version>1.0.5</version>
</dependency>
# You can configure the environment variable ALIBABA_CLOUD_SECRET_NAME instead.
dubbo.registry.address=nacos://${Endpoint of the MSE Nacos instance}:8848?alibabaCloudSecretName=${Name of the RAM secret}

Referensi