Nacos Client訪問鑒權(quán)
MSE中的Nacos注冊配置中心可以開啟鑒權(quán)功能,以降低某個實例被惡意用戶非法獲取或修改的風險。本文介紹如何在MSE上為Nacos實例配置鑒權(quán)訪問以及如何使用Nacos Client進行鑒權(quán)訪問。
前提條件
訪問方式
本文使用引擎直連鏈路的方式配置鑒權(quán)訪問。授權(quán)成功后,Nacos Client可以通過RAM用戶或RAM角色訪問MSE的Nacos。
引擎直連鏈路:通過SDK/Client直接訪問Nacos引擎,主要用于程序應用對Nacos引擎的訪問。
引擎管控鏈路:通過管控控制臺對Nacos引擎進行操作、查看和運維,適用于各類人員使用Nacos引擎。關(guān)于引擎管控鏈路的訪問鑒權(quán)配置和使用,即為RAM用戶授予使用MSE控制臺權(quán)限的具體操作,請參見注冊配置中心授權(quán)。
開啟鑒權(quán)
創(chuàng)建的Nacos引擎默認不啟用鑒權(quán),Nacos引擎會響應所有請求。
Nacos開源控制臺的登錄功能僅用于記錄用戶,并沒有鑒權(quán)攔截請求的能力,您可以參照本文開啟鑒權(quán)。開啟Nacos鑒權(quán)功能之后,無法通過Nacos開源控制臺訪問Nacos實例,僅支持使用MSE控制臺訪問該實例。
登錄MSE注冊配置中心管理控制臺,并在頂部菜單欄選擇地域。
在左側(cè)導航欄,選擇注冊配置中心 > 實例列表。
在實例列表頁面,單擊目標實例名稱。
在左側(cè)菜單欄,單擊參數(shù)設(shè)置,然后在參數(shù)設(shè)置頁面單擊編輯。
選擇ConfigAuthEnabled或NamingAuthEnabled參數(shù),在值列,單擊ConfigAuthEnabled或NamingAuthEnabled對應的是,然后單擊保存并重啟實例。
重要打開配置中心鑒權(quán)或注冊中心鑒權(quán)開關(guān)前,您需要在客戶端配置訪問憑證,否則將無法獲取配置或服務(wù),如何配置訪問憑證請參見客戶端配置訪問憑證。
兩個開關(guān)分別控制對應模塊,互不影響。
參數(shù)
說明
ConfigAuthEnabled
配置中心鑒權(quán)開關(guān)。支持基礎(chǔ)版1.2.1及以上版本的實例,以及專業(yè)版及開發(fā)版全版本的實例。
NamingAuthEnabled
注冊中心鑒權(quán)開關(guān)。支持專業(yè)版或開發(fā)版2.0.4及以上版本的實例。
客戶端配置訪問憑證
MSE Nacos支持多種方式初始化憑證提供者,您可以根據(jù)使用場景對認證和授權(quán)的要求,選擇對應的方式初始化憑證提供者。
憑證提供者初始化方式 | 適用場景 | 是否需要提供前置的AK或STS Token | 底層實現(xiàn)基于的憑證 | 憑證有效期 | 憑證輪轉(zhuǎn)或刷新方式 |
部署運行在安全、穩(wěn)定且不易受外部攻擊的環(huán)境的應用程序,無需頻繁輪轉(zhuǎn)憑證就可以長期訪問云服務(wù)。 | 是 | AK | 長期 | 手動輪轉(zhuǎn) | |
部署運行在面臨AK泄露風險的環(huán)境的應用程序,需要頻繁輪轉(zhuǎn)憑證才長期能訪問云服務(wù)。 | 否 | AK | 長期 | 自動輪轉(zhuǎn) | |
部署運行在不可信的環(huán)境的應用程序,希望能控制訪問的有效期、權(quán)限。 | 是 | STS Token | 臨時 | 手動刷新 | |
需要授權(quán)訪問云服務(wù),例如跨阿里云賬號訪問云服務(wù)的應用程序。 | 是 | STS Token | 臨時 | 自動刷新 | |
部署運行在阿里云的ECS實例、ECI實例、容器服務(wù)Kubernetes版的Worker節(jié)點中的應用程序。 | 否 | STS Token | 臨時 | 自動刷新 | |
部署運行在阿里云的容器服務(wù)Kubernetes版的Worker節(jié)點中的不可信應用程序。 | 否 | STS Token | 臨時 | 自動刷新 | |
需要通過外部系統(tǒng)獲取訪問憑證的應用程序。 | 否 | STS Token | 臨時 | 自動刷新 |
方式一:使用AccessKey
步驟一:創(chuàng)建RAM用戶(可選)
如果您沒有RAM用戶或需要創(chuàng)建新的RAM用戶,請參見創(chuàng)建RAM用戶。
步驟二:為RAM用戶添加權(quán)限
為步驟一所涉及的RAM用戶授權(quán),并選擇以下系統(tǒng)策略。此操作將為RAM用戶授予對所有Nacos實例配置和服務(wù)的讀寫或只讀權(quán)限,屬于粗粒度授權(quán)。具體授權(quán)操作,請參見為RAM用戶授權(quán)。
權(quán)限策略名稱 | 說明 |
AliyunMSEFullAccess | 管理微服務(wù)引擎MSE的權(quán)限,等同于阿里云賬號的權(quán)限,被授予該權(quán)限的RAM用戶擁有所有功能的操作權(quán)限。 |
AliyunMSEReadOnlyAccess | 微服務(wù)引擎MSE的只讀權(quán)限,被授予該權(quán)限的RAM用戶具有阿里云賬號所有資源的只讀權(quán)限。 |
每次最多綁定5條策略,如需綁定更多策略,請分次操作。
如果需要授予實例細粒度的MSE訪問權(quán)限,您需要自定義權(quán)限策略。更多信息,請參見注冊中心細粒度鑒權(quán)、配置中心細粒度鑒權(quán)和配置注冊中心常用自定義授權(quán)樣例。
步驟三:客戶端(SDK)配置鑒權(quán)
AccessKey包括AccessKey ID和AccessKey Secret,需一起使用。Nacos實例開啟鑒權(quán)后,在使用Nacos客戶端時,需要添加對應RAM用戶的AccessKey ID和AccessKey Secret,否則無法訪問Nacos實例。關(guān)于獲取AccessKey,請參見創(chuàng)建AccessKey。
Java版本的Nacos Client
若您使用的是Java版本的Nacos Client,請按照下列方式配置程序代碼。
使用AccessKey進行鑒權(quán)需要客戶端升級至對應版本。更多信息,請參見Nacos Client鑒權(quán)及加解密支持版本。
properties.put(PropertyKeyConst.SERVER_ADDR, "${mseNacos實例域名}");
properties.put(PropertyKeyConst.ACCESS_KEY, "${accessKey}");
properties.put(PropertyKeyConst.SECRET_KEY, "${secretKey}");
NamingService naming = NamingFactory.createNamingService(properties);
ConfigService configService = ConfigFactory.createConfigService(properties);
Spring Cloud Alibaba框架
若您使用的是Spring Cloud Alibaba框架,請在應用配置文件添加下列配置。
需要將Spring Cloud Alibaba框架版本升級至2.2.1.RELEASE及以上版本。
## 注冊中心
spring.cloud.nacos.discovery.accessKey=${accessKey}
spring.cloud.nacos.discovery.secretKey=${secretKey}
## 配置中心
spring.cloud.nacos.config.accessKey=${accessKey}
spring.cloud.nacos.config.secretKey=${secretKey}
Dubbo框架
若您使用的是Dubbo框架,請在dubbo配置文件的注冊中心鏈接URL中加入下列配置。
dubbo.registry.address=nacos://${mseNacos實例域名}:8848?accessKey=${accessKey}&secretKey=${secretKey}
Go版本的Nacos Client
若您使用的是Go版本的Nacos Client,請按照下列方式配置程序代碼。
使用AccessKey進行鑒權(quán)需要客戶端升級至對應版本。更多信息,請參見Nacos Client鑒權(quán)及加解密支持版本。
cc := constant.ClientConfig{
AccessKey: "${accessKey}",
SecretKey: "${secretKey}"
}
serverConfigs := []constant.ServerConfig{
{
IpAddr: "${mseNacos實例域名}",
Port: 8848
}
}
namingClient, err := clients.NewNamingClient(
vo.NacosClientParam{
ClientConfig: &clientConfig,
ServerConfigs: serverConfigs,
},
)
configClient, err := clients.NewConfigClient(
vo.NacosClientParam{
ClientConfig: &clientConfig,
ServerConfigs: serverConfigs,
},
)
Python版本的Nacos Client
若您使用的是Python版本的Nacos Client,請按照下列方式配置程序代碼。
使用AccessKey進行鑒權(quán)需要客戶端升級至對應版本。更多信息,請參見Nacos Client鑒權(quán)及加解密支持版本。
client = nacos.NacosClient(${mseNacos實例域名}, ak=${accessKey}, sk=${secretKey})
方式二:使用自動輪轉(zhuǎn)的AccessKey
如果您的應用程序需要長期訪問您的MSE Nacos,但部署運行的環(huán)境面臨AK泄露的風險,需要頻繁手動輪轉(zhuǎn)(輪換)AccessKey,您可以使用ClientKey初始化憑證提供者。該方式底層實現(xiàn)是AccessKey。使用ClientKey后,密鑰管理服務(wù)(KMS)可以對托管的RAM用戶AccessKey進行全自動的定期輪轉(zhuǎn),將靜態(tài)的RAM用戶AK動態(tài)化,從而降低AK泄漏的風險。除定期輪轉(zhuǎn)外,KMS還支持立即輪轉(zhuǎn),在AK泄漏情況下快速更換AK。該方式無需您手動維護一個AK,從而降低安全性風險和維護復雜度增加的風險。如何獲取ClientKey,請參見創(chuàng)建應用接入點。
步驟一:將RAM用戶托管至KMS的RAM憑據(jù)管理中
您需要先將已有的RAM用戶托管至KMS實例的RAM憑據(jù)管理,如何啟用KMS的RAM憑據(jù)管理,請參見管理及使用RAM憑據(jù)。
步驟二:為RAM用戶添加權(quán)限
為步驟一所涉及的RAM用戶授權(quán),并選擇以下系統(tǒng)策略。此操作將為RAM用戶授予對所有Nacos實例配置和服務(wù)的讀寫或只讀權(quán)限,屬于粗粒度授權(quán)。具體授權(quán)操作,請參見為RAM用戶授權(quán)。
權(quán)限策略名稱 | 說明 |
AliyunMSEFullAccess | 管理微服務(wù)引擎MSE的權(quán)限,等同于阿里云賬號的權(quán)限,被授予該權(quán)限的RAM用戶擁有所有功能的操作權(quán)限。 |
AliyunMSEReadOnlyAccess | 微服務(wù)引擎MSE的只讀權(quán)限,被授予該權(quán)限的RAM用戶具有阿里云賬號所有資源的只讀權(quán)限。 |
每次最多綁定5條策略,如需綁定更多策略,請分次操作。
如果需要授予實例細粒度的MSE訪問權(quán)限,您需要自定義權(quán)限策略。更多信息,請參見注冊中心細粒度鑒權(quán)、配置中心細粒度鑒權(quán)和配置注冊中心常用自定義授權(quán)樣例。
步驟三:創(chuàng)建憑據(jù)管理配置文件
在項目運行根目錄或classpath
中創(chuàng)建配置文件,需要注意配置文件名稱固定為secretsmanager.properties
。文件內(nèi)容如下:
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>"}]
配置文件中各配置項說明,請參見ClientKey。
步驟四:客戶端(SDK)配置鑒權(quán)
Java版本的Nacos Client
若您使用的是Java版本的Nacos Client,請按照下列方式引入依賴及配置程序代碼。
Nacos-Client的版本需要2.1.0及以上版本。更多信息,請參見Nacos Client鑒權(quán)及加解密支持版本。
<!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client-mse-extension -->
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client-mse-extension</artifactId>
<!-- 需要1.0.5及以上版本 -->
<version>1.0.5</version>
</dependency>
properties.put(PropertyKeyConst.SERVER_ADDR, "${mseNacos實例域名}");
# 可通過配置環(huán)境變量ALIBABA_CLOUD_SECRET_NAME替代
properties.put(ExtensionAuthPropertyKey.SECRET_NAME.getKey(), "${RAM憑據(jù)的名稱}");
NamingService naming = NamingFactory.createNamingService(properties);
ConfigService configService = ConfigFactory.createConfigService(properties);
Spring Cloud Alibaba框架
若您使用的是Spring Cloud Alibaba框架,請按照下列方式引入依賴并在應用配置文件添加下列配置。
需要將Spring Cloud Alibaba框架版本升級至2.2.9.RELEASE及以上版本。
Nacos-Client的版本需要2.1.0及以上版本。更多信息,請參見Nacos Client鑒權(quán)及加解密支持版本。
<!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client-mse-extension -->
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client-mse-extension</artifactId>
<!-- 需要1.0.5及以上版本 -->
<version>1.0.5</version>
</dependency>
## 注冊中心
# 可通過配置環(huán)境變量ALIBABA_CLOUD_SECRET_NAME替代
spring.cloud.nacos.discovery.alibabaCloudSecretName=${RAM憑據(jù)的名稱}
## 配置中心
# 可通過配置環(huán)境變量ALIBABA_CLOUD_SECRET_NAME替代
spring.cloud.nacos.config.alibabaCloudSecretName=${RAM憑據(jù)的名稱}
Dubbo框架
若您使用的是Dubbo框架,請按照下列方式引入依賴并在dubbo配置文件的注冊中心鏈接URL中加入下列配置。
Nacos-Client的版本需要2.1.0及以上版本。更多信息,請參見Nacos Client鑒權(quán)及加解密支持版本。
<!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client-mse-extension -->
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client-mse-extension</artifactId>
<!-- 需要1.0.5及以上版本 -->
<version>1.0.5</version>
</dependency>
# 可通過配置環(huán)境變量ALIBABA_CLOUD_SECRET_NAME替代
dubbo.registry.address=nacos://${mseNacos實例域名}:8848?alibabaCloudSecretName=${RAM憑據(jù)的名稱}
方式三:使用STS Token
如果您的應用程序需要臨時訪問MSE Nacos,您可以使用通過STS服務(wù)獲取的臨時身份憑證(Access Key ID、Access Key Secret和Security Token)初始化憑證提供者。
該方式需要您手動維護一個STS Token,存在穩(wěn)定性風險和維護復雜度增加的風險。此外,如果您需要多次臨時訪問MSE Nacos,您需要手動刷新STS Token。
步驟一:創(chuàng)建RAM用戶(可選)
如果您沒有RAM用戶或需要創(chuàng)建新的RAM用戶,請參見創(chuàng)建RAM用戶。
步驟二:為RAM用戶添加權(quán)限
為步驟一所涉及的RAM用戶授權(quán),并選擇以下系統(tǒng)策略。此操作將為RAM用戶授予對所有Nacos實例配置和服務(wù)的讀寫或只讀權(quán)限,屬于粗粒度授權(quán)。具體授權(quán)操作,請參見為RAM用戶授權(quán)。
權(quán)限策略名稱 | 說明 |
AliyunMSEFullAccess | 管理微服務(wù)引擎MSE的權(quán)限,等同于阿里云賬號的權(quán)限,被授予該權(quán)限的RAM用戶擁有所有功能的操作權(quán)限。 |
AliyunMSEReadOnlyAccess | 微服務(wù)引擎MSE的只讀權(quán)限,被授予該權(quán)限的RAM用戶具有阿里云賬號所有資源的只讀權(quán)限。 |
每次最多綁定5條策略,如需綁定更多策略,請分次操作。
如果需要授予實例細粒度的MSE訪問權(quán)限,您需要自定義權(quán)限策略。更多信息,請參見注冊中心細粒度鑒權(quán)、配置中心細粒度鑒權(quán)和配置注冊中心常用自定義授權(quán)樣例。
步驟三:獲取STS Token
需要獲取步驟一所對應的RAM用戶的臨時訪問憑據(jù)STS Token,關(guān)于如何獲取STS Token,請參見AssumeRole - 獲取扮演角色的臨時身份憑證。
步驟四:客戶端(SDK)配置鑒權(quán)
臨時憑據(jù)包括Access Key ID、Access Key Secret和Security Token,需一起使用。
Java版本的Nacos Client
若您使用的是Java版本的Nacos Client,請按照下列方式引入依賴及配置程序代碼。
Nacos-Client的版本需要2.1.0及以上版本。更多信息,請參見Nacos Client鑒權(quán)及加解密支持版本。
<!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client-mse-extension -->
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client-mse-extension</artifactId>
<!-- 需要1.0.5及以上版本 -->
<version>1.0.5</version>
</dependency>
properties.put(PropertyKeyConst.SERVER_ADDR, "${mseNacos實例域名}");
# 可通過配置環(huán)境變量ALIBABA_CLOUD_ACCESS_KEY_ID替代
properties.put(ExtensionAuthPropertyKey.ACCESS_KEY_ID.getKey(), "${臨時憑據(jù)的AccessKeyID}");
# 可通過配置環(huán)境變量ALIBABA_CLOUD_ACCESS_KEY_SECRET替代
properties.put(ExtensionAuthPropertyKey.ACCESS_KEY_SECRET.getKey(), "${臨時憑據(jù)的AccessKeySecret}");
# 可通過配置環(huán)境變量ALIBABA_CLOUD_SECURITY_TOKEN替代
properties.put(ExtensionAuthPropertyKey.SECURITY_TOKEN_KEY.getKey(), "${臨時憑據(jù)的SecurityToken}");
NamingService naming = NamingFactory.createNamingService(properties);
ConfigService configService = ConfigFactory.createConfigService(properties);
Spring Cloud Alibaba框架
若您使用的是Spring Cloud Alibaba框架,請按照下列方式引入依賴并在應用配置文件添加下列配置。
需要將Spring Cloud Alibaba框架版本升級至2.2.9.RELEASE及以上版本。
Nacos-Client的版本需要2.1.0及以上版本。更多信息,請參見Nacos Client鑒權(quán)及加解密支持版本。
<!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client-mse-extension -->
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client-mse-extension</artifactId>
<!-- 需要1.0.5及以上版本 -->
<version>1.0.5</version>
</dependency>
## 注冊中心
# 可通過配置環(huán)境變量ALIBABA_CLOUD_ACCESS_KEY_ID替代
spring.cloud.nacos.discovery.alibabaCloudAccessKeyId=${臨時憑據(jù)的AccessKeyID}
# 可通過配置環(huán)境變量ALIBABA_CLOUD_ACCESS_KEY_SECRET替代
spring.cloud.nacos.discovery.alibabaCloudAccessKeySecret=${臨時憑據(jù)的AccessKeySecret}
# 可通過配置環(huán)境變量ALIBABA_CLOUD_SECURITY_TOKEN替代
spring.cloud.nacos.discovery.alibabaCloudSecurityToken=${臨時憑據(jù)的SecurityToken}
## 配置中心
# 可通過配置環(huán)境變量ALIBABA_CLOUD_ACCESS_KEY_ID替代
spring.cloud.nacos.config.alibabaCloudAccessKeyId=${臨時憑據(jù)的AccessKeyID}
# 可通過配置環(huán)境變量ALIBABA_CLOUD_ACCESS_KEY_SECRET替代
spring.cloud.nacos.config.alibabaCloudAccessKeySecret=${臨時憑據(jù)的AccessKeySecret}
# 可通過配置環(huán)境變量ALIBABA_CLOUD_SECURITY_TOKEN替代
spring.cloud.nacos.config.alibabaCloudSecurityToken=${臨時憑據(jù)的SecurityToken}
Dubbo框架
若您使用的是Dubbo框架,請按照下列方式引入依賴并在dubbo配置文件的注冊中心鏈接URL中加入下列配置。
Nacos-Client的版本需要2.1.0及以上版本。更多信息,請參見Nacos Client鑒權(quán)及加解密支持版本。
<!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client-mse-extension -->
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client-mse-extension</artifactId>
<!-- 需要1.0.5及以上版本 -->
<version>1.0.5</version>
</dependency>
# 可通過配置環(huán)境變量ALIBABA_CLOUD_ACCESS_KEY_ID,ALIBABA_CLOUD_ACCESS_KEY_SECRET,ALIBABA_CLOUD_SECURITY_TOKEN替代
dubbo.registry.address=nacos://${mseNacos實例域名}:8848?alibabaCloudAccessKeyId=${臨時憑據(jù)的AccessKeyID}&alibabaCloudAccessKeySecret=${臨時憑據(jù)的AccessKeySecret}&alibabaCloudSecurityToken=${臨時憑據(jù)的SecurityToken}
方式四:使用RAMRoleARN
如果您的應用程序需要授權(quán)訪問MSE Nacos,例如跨阿里云賬號訪問MSE Nacos,您可以使用RAMRoleARN初始化憑證提供者。該方式底層實現(xiàn)是STS Token。通過指定RAM角色的ARN(Alibabacloud Resource Name),Nacos Client會前往STS服務(wù)獲取STS Token,并在會話到期前自動刷新STS Token。此外,您還可以通過為policy
賦值來限制RAM角色到一個更小的權(quán)限集合。
該方式需要您提供一個AccessKey,且此AccessKey具有扮演角色的權(quán)限。建議限制此AccessKey僅有扮演角色的權(quán)限,且限制此AccessKey可扮演的角色,具體內(nèi)容請參見AssumeRole - 獲取扮演角色的臨時身份憑證。
步驟一:創(chuàng)建RAM用戶和RAM角色(可選)
如果您沒有RAM用戶或需要創(chuàng)建新的RAM用戶,請參見創(chuàng)建RAM用戶。
如果您沒有RAM角色或需要創(chuàng)建可信實體為阿里云服務(wù)的RAM角色。具體操作,請參見創(chuàng)建可信實體為阿里云服務(wù)的RAM角色。
步驟二:為RAM用戶及RAM角色添加權(quán)限
為步驟一所涉及的RAM用戶授權(quán),具體請參見AssumeRole - 獲取扮演角色的臨時身份憑證。
為步驟一所涉及的RAM角色授權(quán),并選擇以下系統(tǒng)策略。此操作將為RAM角色授予對所有Nacos實例配置和服務(wù)的讀寫或只讀權(quán)限,屬于粗粒度授權(quán)。具體授權(quán)操作,請參見為RAM角色授權(quán)。
權(quán)限策略名稱 | 說明 |
AliyunMSEFullAccess | 管理微服務(wù)引擎MSE的權(quán)限,等同于阿里云賬號的權(quán)限,被授予該權(quán)限的RAM用戶擁有所有功能的操作權(quán)限。 |
AliyunMSEReadOnlyAccess | 微服務(wù)引擎MSE的只讀權(quán)限,被授予該權(quán)限的RAM用戶具有阿里云賬號所有資源的只讀權(quán)限。 |
每次最多綁定5條策略,如需綁定更多策略,請分次操作。
如果需要授予實例細粒度的MSE訪問權(quán)限,您需要自定義權(quán)限策略。更多信息,請參見注冊中心細粒度鑒權(quán)、配置中心細粒度鑒權(quán)和配置注冊中心常用自定義授權(quán)樣例。
步驟三:客戶端(SDK)配置鑒權(quán)
此方式需要您配置AccessKey及對應角色的RAMRoleArn作為憑據(jù)。
Java版本的Nacos Client
若您使用的是Java版本的Nacos Client,請按照下列方式引入依賴及配置程序代碼。
Nacos-Client的版本需要2.1.0及以上版本。更多信息,請參見Nacos Client鑒權(quán)及加解密支持版本。
<!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client-mse-extension -->
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client-mse-extension</artifactId>
<!-- 需要1.0.5及以上版本 -->
<version>1.0.5</version>
</dependency>
properties.put(PropertyKeyConst.SERVER_ADDR, "${mseNacos實例域名}");
# 可通過配置環(huán)境變量ALIBABA_CLOUD_ACCESS_KEY_ID替代
properties.put(ExtensionAuthPropertyKey.ACCESS_KEY_ID.getKey(), "${具有扮演角色權(quán)限的AccessKeyID}");
# 可通過配置環(huán)境變量ALIBABA_CLOUD_ACCESS_KEY_SECRET替代
properties.put(ExtensionAuthPropertyKey.ACCESS_KEY_SECRET.getKey(), "${具有扮演角色權(quán)限的AccessKeySecret}");
# 可通過配置環(huán)境變量ALIBABA_CLOUD_ROLE_ARN替代
properties.put(ExtensionAuthPropertyKey.ROLE_ARN.getKey(), "${被扮演的角色的RoleArn}");
# 可通過配置環(huán)境變量ALIBABA_CLOUD_ROLE_SESSION_NAME替代
properties.put(ExtensionAuthPropertyKey.ROLE_SESSION_NAME.getKey(), "${角色扮演會話名稱,自定義}");
## 以下為可選參數(shù)
# 可通過配置環(huán)境變量ALIBABA_CLOUD_POLICY替代
properties.put(ExtensionAuthPropertyKey.POLICY.getKey(), "${設(shè)置更小的權(quán)限策略}");
# 可通過配置環(huán)境變量ALIBABA_CLOUD_ROLE_SESSION_EXPIRATION替代
properties.put(ExtensionAuthPropertyKey.ROLE_SESSION_EXPIRATION.getKey(), "${角色扮演的有效期,單位秒}");
NamingService naming = NamingFactory.createNamingService(properties);
ConfigService configService = ConfigFactory.createConfigService(properties);
Spring Cloud Alibaba框架
若您使用的是Spring Cloud Alibaba框架,請按照下列方式引入依賴并在應用配置文件添加下列配置。
需要將Spring Cloud Alibaba框架版本升級至2.2.9.RELEASE及以上版本。
Nacos-Client的版本需要2.1.0及以上版本。更多信息,請參見Nacos Client鑒權(quán)及加解密支持版本。
<!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client-mse-extension -->
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client-mse-extension</artifactId>
<!-- 需要1.0.5及以上版本 -->
<version>1.0.5</version>
</dependency>
## 注冊中心
# 可通過配置環(huán)境變量ALIBABA_CLOUD_ACCESS_KEY_ID替代
spring.cloud.nacos.discovery.alibabaCloudAccessKeyId=${具有扮演角色權(quán)限的AccessKeyID}
# 可通過配置環(huán)境變量ALIBABA_CLOUD_ACCESS_KEY_SECRET替代
spring.cloud.nacos.discovery.alibabaCloudAccessKeySecret=${具有扮演角色權(quán)限的AccessKeySecret}
# 可通過配置環(huán)境變量ALIBABA_CLOUD_ROLE_ARN替代
spring.cloud.nacos.discovery.alibabaCloudRoleArn=${被扮演的角色的RoleArn}
# 可通過配置環(huán)境變量ALIBABA_CLOUD_ROLE_SESSION_NAME替代
spring.cloud.nacos.discovery.alibabaCloudRoleSessionName=${角色扮演會話名稱,自定義}
## 配置中心
# 可通過配置環(huán)境變量ALIBABA_CLOUD_ACCESS_KEY_ID替代
spring.cloud.nacos.config.alibabaCloudAccessKeyId=${具有扮演角色權(quán)限的AccessKeyID}
# 可通過配置環(huán)境變量ALIBABA_CLOUD_ACCESS_KEY_SECRET替代
spring.cloud.nacos.config.alibabaCloudAccessKeySecret=${具有扮演角色權(quán)限的AccessKeySecret}
# 可通過配置環(huán)境變量ALIBABA_CLOUD_ROLE_ARN替代
spring.cloud.nacos.config.alibabaCloudRoleArn=${被扮演的角色的RoleArn}
# 可通過配置環(huán)境變量ALIBABA_CLOUD_ROLE_SESSION_NAME替代
spring.cloud.nacos.config.alibabaCloudRoleSessionName=${角色扮演會話名稱,自定義}
## 以下為可選參數(shù)
# 可通過配置環(huán)境變量ALIBABA_CLOUD_POLICY替代
spring.cloud.nacos.discovery.alibabaCloudPolicy=${設(shè)置更小的權(quán)限策略}
spring.cloud.nacos.config.alibabaCloudPolicy=${設(shè)置更小的權(quán)限策略}
# 可通過配置環(huán)境變量ALIBABA_CLOUD_ROLE_SESSION_EXPIRATION替代
spring.cloud.nacos.discovery.alibabaCloudRoleSessionExpiration=${角色扮演的有效期,單位秒}
spring.cloud.nacos.config.alibabaCloudRoleSessionExpiration=${角色扮演的有效期,單位秒}
Dubbo框架
若您使用的是Dubbo框架,請按照下列方式引入依賴并在dubbo配置文件的注冊中心鏈接URL中加入下列配置。
Nacos-Client的版本需要2.1.0及以上版本。更多信息,請參見Nacos Client鑒權(quán)及加解密支持版本。
<!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client-mse-extension -->
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client-mse-extension</artifactId>
<!-- 需要1.0.5及以上版本 -->
<version>1.0.5</version>
</dependency>
# 可通過配置環(huán)境變量ALIBABA_CLOUD_ACCESS_KEY_ID,ALIBABA_CLOUD_ACCESS_KEY_SECRET,ALIBABA_CLOUD_ROLE_ARN,ALIBABA_CLOUD_ROLE_SESSION_NAME替代
dubbo.registry.address=nacos://${mseNacos實例域名}:8848?alibabaCloudAccessKeyId=${具有扮演角色權(quán)限的AccessKeyID}&alibabaCloudAccessKeySecret=${具有扮演角色權(quán)限的AccessKeySecret}&alibabaCloudRoleArn=${被扮演的角色的RoleArn}&alibabaCloudRoleSessionName=${角色扮演會話名稱,自定義}
## 以下為可選參數(shù),補充在URL之后;可通過配置環(huán)境變量ALIBABA_CLOUD_POLICY,ALIBABA_CLOUD_ROLE_SESSION_EXPIRATION替代
&alibabaCloudPolicy=${設(shè)置更小的權(quán)限策略}&alibabaCloudRoleSessionExpiration=${角色扮演的有效期,單位秒}
方式五:使用ECSRAMRole
借助ECS實例或ACK實例的RAM角色,您可以將RAM角色與ECS實例或ACK實例關(guān)聯(lián)起來,然后將RAM角色名稱告知Nacos Client,無需配置AccessKey即可訪問MSE?;赗AM角色,您可以為不同實例設(shè)定不同的角色和授權(quán)策略,控制訪問權(quán)限粒度或范圍。請參見ECS實例RAM角色、授權(quán)概述和RAM角色概覽。
使用ECSRAMRole方式進行鑒權(quán),需要將應用部署到阿里云ECS實例或ACK集群,且ECS實例或ACK集群的網(wǎng)絡(luò)環(huán)境為專用網(wǎng)絡(luò)VPC。更多信息,請參見什么是云服務(wù)器ECS、什么是容器服務(wù) Kubernetes 版和什么是專有網(wǎng)絡(luò)。
步驟一:創(chuàng)建RAM角色并配置授權(quán)策略
為ECS實例授予可訪問MSE Nacos的角色
可選:創(chuàng)建可信實體為阿里云服務(wù)的RAM角色。具體操作,請參見創(chuàng)建可信實體為阿里云服務(wù)的RAM角色。
為已有或者創(chuàng)建的RAM角色授權(quán),并選擇以下系統(tǒng)策略。此操作將為RAM角色授予對所有Nacos實例配置和服務(wù)的讀寫或只讀權(quán)限,屬于粗粒度授權(quán)。具體授權(quán)操作,請參見為RAM角色授權(quán)。
權(quán)限策略名稱
說明
AliyunMSEFullAccess
管理微服務(wù)引擎MSE的權(quán)限,等同于阿里云賬號的權(quán)限,被授予該權(quán)限的RAM用戶擁有所有功能的操作權(quán)限。
AliyunMSEReadOnlyAccess
微服務(wù)引擎MSE的只讀權(quán)限,被授予該權(quán)限的RAM用戶具有阿里云賬號所有資源的只讀權(quán)限。
說明每次最多綁定5條策略,如需綁定更多策略,請分次操作。
如果需要授予實例細粒度的MSE訪問權(quán)限,您需要自定義權(quán)限策略。更多信息,請參見注冊中心細粒度鑒權(quán)、配置中心細粒度鑒權(quán)和配置注冊中心常用自定義授權(quán)樣例。
登錄ECS管理控制臺,在左側(cè)導航欄,選擇實例與鏡像 > 實例。
在頁面左側(cè)頂部,選擇目標資源所在的資源組和地域。
找到要操作的ECS實例,選擇 > 實例設(shè)置 > 授予/收回RAM角色。
在對話框中,選擇創(chuàng)建好的實例RAM角色,單擊確定。
為ACK集群Worker RAM角色授予權(quán)限
ACK集群在創(chuàng)建時會自動創(chuàng)建Worker RAM角色,因此無需再次創(chuàng)建角色,直接使用此角色進行授權(quán)。
創(chuàng)建自定義權(quán)限策略,具體操作,請參見創(chuàng)建自定義權(quán)限策略。
為實例授予微服務(wù)引擎MSE的管理權(quán)限。
{ "Action": "mse:*", "Resource": "*", "Effect": "Allow" }, { "Action": "ram:CreateServiceLinkedRole", "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "ram:ServiceName": "mse.aliyuncs.com" } } }
為實例授予微服務(wù)引擎MSE的只讀權(quán)限。
{ "Action": [ "mse:Query*", "mse:List*", "mse:Get*" ], "Resource": "*", "Effect": "Allow" }, { "Action": "ram:CreateServiceLinkedRole", "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "ram:ServiceName": "mse.aliyuncs.com" } } }
說明如果需要授予實例細粒度的MSE訪問權(quán)限,您需要自定義權(quán)限策略。更多信息,請參見注冊中心細粒度鑒權(quán)、配置中心細粒度鑒權(quán)和配置注冊中心常用自定義授權(quán)樣例。
為集群的Worker RAM角色授權(quán)。具體操作,請參見為集群的Worker RAM角色授權(quán)。
步驟二:客戶端(SDK)配置鑒權(quán)
Java版本的Nacos Client
若您使用的是Java版本的Nacos Client,請按照下列方式配置程序代碼。
使用RAM角色進行鑒權(quán)需要客戶端升級至對應版本。更多信息,請參見Nacos Client鑒權(quán)及加解密支持版本。
properties.put(PropertyKeyConst.SERVER_ADDR, "${mseNacos實例域名}");
properties.put(PropertyKeyConst.RAM_ROLE_NAME, "${roleName}");
// 注冊中心
NamingService naming = NamingFactory.createNamingService(properties);
// 配置中心
ConfigService configService = ConfigFactory.createConfigService(properties);
Spring Cloud Alibaba框架
若您使用的是Spring Cloud Alibaba框架,請在應用配置文件中添加下列配置。
需要將Spring Cloud Alibaba框架版本升級至2.2.9.RELEASE及以上版本。
## 注冊中心
spring.cloud.nacos.discovery.ramRoleName=${roleName}
## 配置中心
spring.cloud.nacos.config.ramRoleName=${roleName}
Dubbo框架
若您使用的是Dubbo框架,請在dubbo配置文件的注冊中心鏈接URL中加入下列配置。
dubbo.registry.address=nacos://${mseNacos實例域名}:8848?ramRoleName=${roleName}
方式六:使用OIDCRoleARN
在容器服務(wù)Kubernetes版中設(shè)置了Worker節(jié)點RAM角色(方式五)后,對應節(jié)點內(nèi)的Pod中的應用也就可以像ECS上部署的應用一樣,通過元數(shù)據(jù)服務(wù)(Meta Data Server)獲取關(guān)聯(lián)角色的STS Token。但如果容器集群上部署的是不可信的應用(比如部署您的客戶提交的應用,代碼也沒有對您開放),您可能并不希望它們能通過元數(shù)據(jù)服務(wù)獲取Worker節(jié)點關(guān)聯(lián)實例RAM角色的STS Token。
為了避免影響云上資源的安全,同時又能讓這些不可信的應用安全地獲取所需的STS Token,實現(xiàn)應用級別的權(quán)限最小化,您可以使用RRSA(RAM Roles for Service Account)功能。該方式底層實現(xiàn)是STS Token。阿里云容器集群會為不同的應用Pod創(chuàng)建和掛載相應的服務(wù)賬戶OIDC Token文件,并將相關(guān)配置信息注入到環(huán)境變量中,Nacos Client會通過獲取環(huán)境變量的配置信息,調(diào)用STS服務(wù)的AssumeRoleWithOIDC接口換取綁定角色的STS Token。該方式無需您提供一個AK或STS Token,消除了手動維護AK或STS Token的風險。
步驟一:開啟ACK集群的RRSA功能
開啟ACK集群的RRSA功能,請參見通過RRSA配置ServiceAccount的RAM權(quán)限實現(xiàn)Pod權(quán)限隔離。
步驟二:為RAM角色授權(quán)
為步驟一所涉及的RAM角色(如通過RRSA配置ServiceAccount的RAM權(quán)限實現(xiàn)Pod權(quán)限隔離中的demo-role-for-rrsa
)授予MSE Nacos的訪問權(quán)限,并選擇以下系統(tǒng)策略。此操作將為RAM角色授予對所有Nacos實例配置和服務(wù)的讀寫或只讀權(quán)限,屬于粗粒度授權(quán)。具體授權(quán)操作,請為RAM角色授權(quán)。
權(quán)限策略名稱 | 說明 |
AliyunMSEFullAccess | 管理微服務(wù)引擎MSE的權(quán)限,等同于阿里云賬號的權(quán)限,被授予該權(quán)限的RAM用戶擁有所有功能的操作權(quán)限。 |
AliyunMSEReadOnlyAccess | 微服務(wù)引擎MSE的只讀權(quán)限,被授予該權(quán)限的RAM用戶具有阿里云賬號所有資源的只讀權(quán)限。 |
每次最多綁定5條策略,如需綁定更多策略,請分次操作。
如果需要授予實例細粒度的MSE訪問權(quán)限,您需要自定義權(quán)限策略。更多信息,請參見注冊中心細粒度鑒權(quán)、配置中心細粒度鑒權(quán)和配置注冊中心常用自定義授權(quán)樣例。
步驟三:客戶端(SDK)配置鑒權(quán)
此方式您只需要配置RoleSessionName
,其他臨時憑據(jù)將根據(jù)ACK的RRSA功能所傳入的環(huán)境變量提供。
Java版本的Nacos Client
若您使用的是Java版本的Nacos Client,請按照下列方式配置程序代碼。
Nacos-Client的版本需要2.1.0及以上版本。更多信息,請參見Nacos Client鑒權(quán)及加解密支持版本。
<!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client-mse-extension -->
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client-mse-extension</artifactId>
<!-- 需要1.0.5及以上版本 -->
<version>1.0.5</version>
</dependency>
properties.put(PropertyKeyConst.SERVER_ADDR, "${mseNacos實例域名}");
# 可通過配置環(huán)境變量ALIBABA_CLOUD_ROLE_SESSION_NAME替代
properties.put(ExtensionAuthPropertyKey.ROLE_SESSION_NAME.getKey(), "${角色扮演會話名稱,自定義}");
## 以下為可選參數(shù)
# 可通過配置環(huán)境變量ALIBABA_CLOUD_POLICY替代
properties.put(ExtensionAuthPropertyKey.POLICY.getKey(), "${設(shè)置更小的權(quán)限策略}");
# 可通過配置環(huán)境變量ALIBABA_CLOUD_ROLE_SESSION_EXPIRATION替代
properties.put(ExtensionAuthPropertyKey.ROLE_SESSION_EXPIRATION.getKey(), "${角色扮演的有效期,單位秒}");
NamingService naming = NamingFactory.createNamingService(properties);
ConfigService configService = ConfigFactory.createConfigService(properties);
Spring Cloud Alibaba框架
若您使用的是Spring Cloud Alibaba框架,請按照下列方式引入依賴并在應用配置文件添加下列配置。
需要將Spring Cloud Alibaba框架版本升級至2.2.9.RELEASE及以上版本。
Nacos-Client的版本需要2.1.0及以上版本。更多信息,請參見Nacos Client鑒權(quán)及加解密支持版本。
<!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client-mse-extension -->
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client-mse-extension</artifactId>
<!-- 需要1.0.5及以上版本 -->
<version>1.0.5</version>
</dependency>
## 注冊中心
# 可通過配置環(huán)境變量ALIBABA_CLOUD_ROLE_SESSION_NAME替代
spring.cloud.nacos.discovery.alibabaCloudRoleSessionName=${角色扮演會話名稱,自定義}
## 配置中心
# 可通過配置環(huán)境變量ALIBABA_CLOUD_ROLE_SESSION_NAME替代
spring.cloud.nacos.config.alibabaCloudRoleSessionName=${角色扮演會話名稱,自定義}
## 以下為可選參數(shù)
# 可通過配置環(huán)境變量ALIBABA_CLOUD_POLICY替代
spring.cloud.nacos.discovery.alibabaCloudPolicy=${設(shè)置更小的權(quán)限策略}
spring.cloud.nacos.config.alibabaCloudPolicy=${設(shè)置更小的權(quán)限策略}
# 可通過配置環(huán)境變量ALIBABA_CLOUD_ROLE_SESSION_EXPIRATION替代
spring.cloud.nacos.discovery.alibabaCloudRoleSessionExpiration=${角色扮演的有效期,單位秒}
spring.cloud.nacos.config.alibabaCloudRoleSessionExpiration=${角色扮演的有效期,單位秒}
Dubbo框架
若您使用的是Dubbo框架,請按照下列方式引入依賴并在dubbo配置文件的注冊中心鏈接URL中加入下列配置。
Nacos-Client的版本需要2.1.0及以上版本。更多信息,請參見Nacos Client鑒權(quán)及加解密支持版本。
<!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client-mse-extension -->
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client-mse-extension</artifactId>
<!-- 需要1.0.5及以上版本 -->
<version>1.0.5</version>
</dependency>
# 可通過配置環(huán)境變量ALIBABA_CLOUD_ROLE_SESSION_NAME替代
dubbo.registry.address=nacos://${mseNacos實例域名}:8848?alibabaCloudRoleSessionName=${角色扮演會話名稱,自定義}
## 以下為可選參數(shù),補充在URL之后;可通過配置環(huán)境變量ALIBABA_CLOUD_POLICY,ALIBABA_CLOUD_ROLE_SESSION_EXPIRATION替代
&alibabaCloudPolicy=${設(shè)置更小的權(quán)限策略}&alibabaCloudRoleSessionExpiration=${角色扮演的有效期,單位秒}
方式七:使用CredentialsURI
如果您的應用程序需要通過外部系統(tǒng)獲取阿里云憑證,從而實現(xiàn)靈活的憑證管理和無密鑰訪問,您可以使用CredentialsURI初始化憑證提供者。該方式底層實現(xiàn)是STS Token。Nacos Client通過您提供的URI獲取STS Token,完成憑證客戶端初始化。該方式無需您提供一個AccessKey或STS Token,消除了手動維護AccessKey或STS Token的風險。
提供CredentialsURI響應的后端服務(wù)需要實現(xiàn)STS Token的自動刷新邏輯,確保您的應用程序始終能獲取到有效憑證。
步驟一:確認CredentialsURI服務(wù)的響應正確
為了使Nacos Client正確解析和使用STS Token,CredentialsURI必須遵循以下響應協(xié)議:
響應狀態(tài)碼:200
響應體結(jié)構(gòu):
{ "Code": "Success", "AccessKeySecret": "AccessKeySecret", "AccessKeyId": "AccessKeyId", "Expiration": "2021-09-26T03:46:38Z", "SecurityToken": "SecurityToken" }
步驟二:為RAM角色授權(quán)
為步驟一所涉及的RAM角色授予MSE Nacos的訪問權(quán)限,并選擇以下系統(tǒng)策略。此操作將為RAM角色授予對所有Nacos實例配置和服務(wù)的讀寫或只讀權(quán)限,屬于粗粒度授權(quán)。具體授權(quán)操作,請參見為RAM角色授權(quán)。
權(quán)限策略名稱 | 說明 |
AliyunMSEFullAccess | 管理微服務(wù)引擎MSE的權(quán)限,等同于阿里云賬號的權(quán)限,被授予該權(quán)限的RAM用戶擁有所有功能的操作權(quán)限。 |
AliyunMSEReadOnlyAccess | 微服務(wù)引擎MSE的只讀權(quán)限,被授予該權(quán)限的RAM用戶具有阿里云賬號所有資源的只讀權(quán)限。 |
每次最多綁定5條策略,如需綁定更多策略,請分次操作。
如果需要授予實例細粒度的MSE訪問權(quán)限,您需要自定義權(quán)限策略。更多信息,請參見注冊中心細粒度鑒權(quán)、配置中心細粒度鑒權(quán)和配置注冊中心常用自定義授權(quán)樣例。
步驟三:客戶端(SDK)配置鑒權(quán)
Java版本的Nacos Client
若您使用的是Java版本的Nacos Client,請按照下列方式引入依賴及配置程序代碼。
Nacos-Client的版本需要2.1.0及以上版本。更多信息,請參見Nacos Client鑒權(quán)及加解密支持版本。
<!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client-mse-extension -->
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client-mse-extension</artifactId>
<!-- 需要1.0.5及以上版本 -->
<version>1.0.5</version>
</dependency>
properties.put(PropertyKeyConst.SERVER_ADDR, "${mseNacos實例域名}");
# 可通過配置環(huán)境變量ALIBABA_CLOUD_CREDENTIALS_URI替代
properties.put(ExtensionAuthPropertyKey.CREDENTIALS_URI.getKey(), "${Credentials服務(wù)的URI,例如:https://$host:$port/$path....");
NamingService naming = NamingFactory.createNamingService(properties);
ConfigService configService = ConfigFactory.createConfigService(properties);
Spring Cloud Alibaba框架
若您使用的是Spring Cloud Alibaba框架,請按照下列方式引入依賴并在應用配置文件添加下列配置。
需要將Spring Cloud Alibaba框架版本升級至2.2.9.RELEASE及以上版本。
Nacos-Client的版本需要2.1.0及以上版本。更多信息,請參見Nacos Client鑒權(quán)及加解密支持版本。
<!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client-mse-extension -->
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client-mse-extension</artifactId>
<!-- 需要1.0.5及以上版本 -->
<version>1.0.5</version>
</dependency>
## 注冊中心
# 可通過配置環(huán)境變量ALIBABA_CLOUD_CREDENTIALS_URI替代
spring.cloud.nacos.discovery.alibabaCloudCredentialsUri=${Credentials服務(wù)的URI,例如:https://$host:$port/$path....}
## 配置中心
# 可通過配置環(huán)境變量ALIBABA_CLOUD_CREDENTIALS_URI替代
spring.cloud.nacos.config.alibabaCloudCredentialsUri=${Credentials服務(wù)的URI,例如:https://$host:$port/$path....}
Dubbo框架
若您使用的是Dubbo框架,請按照下列方式引入依賴并在dubbo配置文件的注冊中心鏈接URL中加入下列配置。
Nacos-Client的版本需要2.1.0及以上版本。更多信息,請參見Nacos Client鑒權(quán)及加解密支持版本。
<!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client-mse-extension -->
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client-mse-extension</artifactId>
<!-- 需要1.0.5及以上版本 -->
<version>1.0.5</version>
</dependency>
# 可通過配置環(huán)境變量ALIBABA_CLOUD_CREDENTIALS_URI替代
dubbo.registry.address=nacos://${mseNacos實例域名}:8848?alibabaCloudCredentialsUri=${Credentials服務(wù)的URI,例如:https://$host:$port/$path....}
相關(guān)文檔
如果您需要公網(wǎng)訪問MSE Nacos實例,請確保已配置白名單,請參見設(shè)置白名單。
如果您需要進行細粒度授權(quán),請參見注冊中心細粒度鑒權(quán)和配置中心細粒度鑒權(quán)。
如果您需要設(shè)置使用MSE控制臺權(quán)限,請參見注冊配置中心授權(quán)。
如果您需要了解Nacos SDK使用限制,請參見MSE Nacos SDK的應用和Nacos SDK限制使用版本。
更多關(guān)于Nacos的問題,請參見Nacos FAQ。