凭据客户端是基于KMS OpenAPI和KMS实例API的自定义封装,封装了在应用中缓存和刷新凭据的功能,业务稳定性更高且更易于开发者在业务应用中集成。凭据客户端支持获取所有凭据类型的凭据值。本文介绍如何安装及使用凭据客户端。
SDK介绍
凭据客户端基于KMS实例API,封装了凭据缓存、最佳实践和设计模式,更易于开发者在业务系统中集成。此外KMS还提供了KMS实例SDK和阿里云SDK,也可以用于获取凭据值。详细信息,请参见SDK参考。
如果您需要对凭据进行管控类操作,仅支持使用阿里云SDK。
凭据客户端具有以下功能特性:
支持开发者在应用中快速集成凭据能力,一行代码读取凭据信息。
封装凭据在应用中缓存和刷新的功能。
封装API错误的重试机制,智能处理服务端错误。
开放插件式设计模式,支持开发者自定义扩展缓存、错误重试等功能模块。
注意事项
支持的凭据类型:通用凭据、RAM凭据、ECS凭据、数据库凭据。
支持的开发语言:Java(Java 8及以上版本)、Python、Go。
通过共享网关获取凭据值
网络类型为公网或VPC网络。
步骤一:创建访问凭证
支持ECS实例RAM角色、RamRoleArn、STS Token、AccessKey等基于RAM的身份认证方式。详细内容,请参见管理访问凭据。
ECS实例RAM角色
ECS RAM角色是指为ECS实例授予的RAM角色,该RAM角色是一个受信服务为云服务器的普通服务角色。使用实例RAM角色可以实现在ECS实例内部无需配置AccessKey即可获取临时访问凭证(STS Token),从而调用KMS的OpenAPI。
具体操作,请参见实例RAM角色。
登录RAM控制台,创建可信实体为阿里云服务的RAM角色。
信任主体类型:选择云服务。
信任主体名称:选择云服务器ECS。
授予RAM角色访问KMS的权限。
方式一:设置基于身份的策略
KMS内置了系统权限策略,可以直接绑定到RAM角色,详细介绍,请参见密钥管理服务系统权限策略参考。您也可以自定义权限策略。

方式二:设置基于资源的策略
KMS支持基于资源的策略,即为单个密钥和凭据设置访问权限,用于控制哪些阿里云账号、RAM用户、RAM角色有权限来管理或使用KMS密钥、凭据。详细介绍,请参见密钥策略、凭据策略。
登录ECS管理控制台,将RAM角色授予ECS实例。

RamRoleArn
RAM用户或云产品可以通过扮演角色的方式获取临时权限,而不是直接使用长期密钥,降低了密钥泄露的风险。例如,在临时的数据处理任务中,RAM用户或云产品临时扮演一个具有特定RamRoleArn的角色,完成任务后角色权限被收回,减少泄露风险。
授予RAM角色访问KMS的权限。
方式一:设置基于身份的策略
KMS内置了系统权限策略,可以直接绑定到RAM角色,详细介绍,请参见密钥管理服务系统权限策略参考。您也可以自定义权限策略。

方式二:设置基于资源的策略
KMS支持基于资源的策略,即为单个密钥和凭据设置访问权限,用于控制哪些阿里云账号、RAM用户、RAM角色有权限来管理或使用KMS密钥、凭据。详细介绍,请参见密钥策略、凭据策略。
获取目标RAM角色的RamRoleArn。具体操作,请参见查看RAM角色。
说明RamRoleArn是RAM角色的ARN信息,即需要扮演的角色ID。格式为acs:ram::$accountID:role/$roleName。$accountID为阿里云账号ID。$roleName为RAM角色名称。

STS Token
通过STS服务为RAM用户或RAM角色颁发一个临时访问凭证,可以在限定的有效期内,以符合策略规定的权限访问KMS,超过有效期后,该凭证自动失效。
为RAM用户或RAM角色授予
AliyunSTSAssumeRoleAccess权限。具体操作,请参见为RAM用户授权、为RAM角色授权。
授予RAM用户或RAM角色访问KMS的权限。
方式一:设置基于身份的策略
KMS内置了系统权限策略,可以直接绑定到RAM用户或RAM角色,详细介绍,请参见密钥管理服务系统权限策略参考。您也可以自定义权限策略。

方式二:设置基于资源的策略
KMS支持基于资源的策略,即为单个密钥和凭据设置访问权限,用于控制哪些阿里云账号、RAM用户、RAM角色有权限来管理或使用KMS密钥、凭据。详细介绍,请参见密钥策略、凭据策略。
使用RAM用户或RAM角色调用STS服务的AssumeRole接口获取STS临时访问凭证。具体操作,请参见AssumeRole - 获取扮演角色的临时身份凭证。
AccessKey
以使用RAM用户的AccessKey为例。
阿里云账号默认有所有资源的Administrator权限且不可修改,其AccessKey泄露会危及资源安全,因此强烈建议不要为主账号创建AccessKey,请创建专用于API访问的RAM用户并创建对应的AccessKey,并完成最小化授权。具体操作,请参见创建AccessKey。
登录RAM控制台,在用户页面,单击目标RAM用户名称。
在认证管理页签下的AccessKey区域,单击创建AccessKey,并按照指引完成创建。

授予RAM用户访问KMS的权限。
方式一:设置基于身份的策略
KMS内置了系统权限策略,可以直接绑定到RAM用户,详细介绍,请参见密钥管理服务系统权限策略参考。您也可以自定义权限策略。

方式二:设置基于资源的策略
KMS支持基于资源的策略,即为单个密钥和凭据设置访问权限,用于控制哪些阿里云账号、RAM用户、RAM角色有权限来管理或使用KMS密钥、凭据。详细介绍,请参见密钥策略、凭据策略。
ClientKey(不推荐)
请参考创建应用接入点中的标准创建方式,创建用于访问共享网关的ClientKey。
配置网络规则时,网络类型选择Public或VPC。
配置权限规则作用域时,请选择KMS共享网关。
步骤二:安装凭据客户端
Java
通过Maven的方式在项目中安装凭据客户端。
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>alibabacloud-secretsmanager-client</artifactId>
<version>1.4.x</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.5.x</version>
</dependency>建议您使用最新版本,访问alibabacloud-secretsmanager-client-java了解更多版本和源代码信息。
Python
访问aliyun-secretsmanager-client-python了解更多安装信息和源代码。
执行pip命令安装凭据客户端。
# 如果下述命令报错,请将pip替换为pip3
pip install aliyun-secret-manager-clientGo
访问aliyun-secretsmanager-client-go了解更多安装信息和源代码。
使用go get命令安装凭据客户端。
go get -u github.com/aliyun/aliyun-secretsmanager-client-go步骤三:初始化客户端并获取凭据值
Java
根据初始化客户端方式不同,获取凭据值示例代码不同。请选择以下一种方式即可。
方式一:通过环境变量或secretsmanager.properties配置文件初始化客户端
环境变量或secretsmanager.properties配置文件选其中一种即可。
获取凭据值示例代码如下,请将示例代码中的
#secretName#替换为您的凭据名称。import com.aliyuncs.kms.secretsmanager.client.SecretCacheClient; import com.aliyuncs.kms.secretsmanager.client.SecretCacheClientBuilder; import com.aliyuncs.kms.secretsmanager.client.exception.CacheSecretException; import com.aliyuncs.kms.secretsmanager.client.model.SecretInfo; public class CacheClientEnvironmentSample { public static void main(String[] args) { try { //构建凭据客户端 SecretCacheClient client = SecretCacheClientBuilder.newClient(); //使用构建好的客户端获取凭据信息 SecretInfo secretInfo = client.getSecretInfo("#secretName#"); System.out.println(secretInfo); } catch (CacheSecretException e) { e.printStackTrace(); } } }方式二:通过自定义配置文件初始化客户端
需要注意配置文件名称和文件路径由您自行定义。
获取凭据值示例代码如下,请将示例代码中的
#customConfigFileName#替换为您自定义的配置文件名称,#secretName#替换为您的凭据名称。import com.aliyuncs.kms.secretsmanager.client.SecretCacheClient; import com.aliyuncs.kms.secretsmanager.client.SecretCacheClientBuilder; import com.aliyuncs.kms.secretsmanager.client.exception.CacheSecretException; import com.aliyuncs.kms.secretsmanager.client.model.SecretInfo; import com.aliyuncs.kms.secretsmanager.client.service.BaseSecretManagerClientBuilder; public class CacheClientCustomConfigFileSample { public static void main(String[] args) { try { SecretCacheClient client = SecretCacheClientBuilder.newCacheClientBuilder( BaseSecretManagerClientBuilder.standard().withCustomConfigFile("#customConfigFileName#").build()).build(); SecretInfo secretInfo = client.getSecretInfo("#secretName#"); System.out.println(secretInfo); } catch (CacheSecretException e) { System.out.println("CacheSecretException:" + e.getMessage()); } } }方式三:通过指定参数(accessKey、accessSecret、regionId)初始化客户端
仅适用于认证方式为AccessKey的场景。
说明阿里云账号AccessKey拥有所有OpenAPI的访问权限,建议您使用RAM用户进行API访问或日常运维。强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
本示例以将AccessKey配置在环境变量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET的方式来实现身份验证为例。
更多认证信息配置方式,请参见管理访问凭据。
不同操作系统的环境变量配置方法不同,具体操作,请参见在Linux、macOS和Windows系统配置环境变量。
获取凭据值示例代码如下,请将示例代码中的
#regionId#替换为实际地域ID,#secretName#替换为您的凭据名称。import com.aliyuncs.kms.secretsmanager.client.SecretCacheClient; import com.aliyuncs.kms.secretsmanager.client.SecretCacheClientBuilder; import com.aliyuncs.kms.secretsmanager.client.exception.CacheSecretException; import com.aliyuncs.kms.secretsmanager.client.model.SecretInfo; import com.aliyuncs.kms.secretsmanager.client.service.BaseSecretManagerClientBuilder; import com.aliyuncs.kms.secretsmanager.client.utils.CredentialsProviderUtils; public class CacheClientSimpleParametersSample { public static void main(String[] args) { try { SecretCacheClient client = SecretCacheClientBuilder.newCacheClientBuilder( BaseSecretManagerClientBuilder.standard().withCredentialsProvider(CredentialsProviderUtils .withAccessKey(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))).withRegion("#regionId#").build()).build(); SecretInfo secretInfo = client.getSecretInfo("#secretName#"); System.out.println(secretInfo); } catch (CacheSecretException e) { e.printStackTrace(); } } }
Python
根据初始化客户端方式不同,获取凭据值示例代码不同。请选择以下一种方式即可。
方式一:通过环境变量或secretsmanager.properties配置文件初始化客户端
环境变量或secretsmanager.properties配置文件选其中一种即可。
环境变量
获取凭据值示例代码如下,请将示例代码中的
#secretName#替换为您的凭据名称。from alibaba_cloud_secretsmanager_client.secret_manager_cache_client_builder import SecretManagerCacheClientBuilder if __name__ == '__main__': #构建凭据客户端 secret_cache_client = SecretManagerCacheClientBuilder.new_client() #使用构建好的客户端获取凭据信息 secret_info = secret_cache_client.get_secret_info("#secretName#") print(secret_info.__dict__)方式二:通过指定参数(accessKey、accessSecret、regionId)初始化客户端
仅适用于认证方式为AccessKey的场景。
说明阿里云账号AccessKey拥有所有OpenAPI的访问权限,建议您使用RAM用户进行API访问或日常运维。强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
本示例以将AccessKey配置在环境变量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET的方式来实现身份验证为例。
更多认证信息配置方式,请参见管理访问凭据。
不同操作系统的环境变量配置方法不同,具体操作,请参见在Linux、macOS和Windows系统配置环境变量。
获取凭据值示例代码如下,请将示例代码中的
#regionId#替换为实际地域ID,#secretName#替换为您的凭据名称。import os from alibaba_cloud_secretsmanager_client.secret_manager_cache_client_builder import SecretManagerCacheClientBuilder from alibaba_cloud_secretsmanager_client.service.default_secret_manager_client_builder import DefaultSecretManagerClientBuilder if __name__ == '__main__': secret_cache_client = SecretManagerCacheClientBuilder.new_cache_client_builder(DefaultSecretManagerClientBuilder.standard() \ .with_access_key(os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")) \ .with_region("#regionId#").build()) \ .build(); secret_info = secret_cache_client.get_secret_info("#secretName#") print(secret_info.__dict__)
Go
通过指定参数(accessKey、accessSecret、regionId)初始化客户端
仅适用于认证方式为AccessKey的场景。
阿里云账号AccessKey拥有所有OpenAPI的访问权限,建议您使用RAM用户进行API访问或日常运维。强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
本示例以将AccessKey配置在环境变量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET的方式来实现身份验证为例。
更多认证信息配置方式,请参见管理访问凭据。
不同操作系统的环境变量配置方法不同,具体操作,请参见在Linux、macOS和Windows系统配置环境变量。
获取凭据值示例代码如下,请将示例代码中的#regionId#替换为实际地域ID,#secretName#替换为您的凭据名称。
package main
import (
"github.com/aliyun/aliyun-secretsmanager-client-go/sdk/service"
"github.com/aliyun/aliyun-secretsmanager-client-go/sdk"
"os"
)
func main() {
client, err := sdk.NewSecretCacheClientBuilder(service.NewDefaultSecretManagerClientBuilder().Standard().WithAccessKey(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")).WithRegion("#regionId#").Build()).Build()
if err != nil {
// Handle exceptions
panic(err)
}
secretInfo, err := client.GetSecretInfo("#secretName#")
if err != nil {
// Handle exceptions
panic(err)
}
}通过专属网关获取凭据值(不推荐)
网络类型为KMS私有网络。
步骤一:创建访问凭证
访问凭证仅支持ClientKey。
ClientKey支持快速创建和标准创建两种方式。关于ClientKey的详细介绍,请参见应用接入点概述、创建应用接入点。
方式一:快速创建
便捷高效适合于快速测试和开发场景,该方式创建的访问凭证可以访问KMS实例的全部资源。
登录密钥管理服务控制台,在顶部菜单栏选择地域后,在左侧导航栏单击。
在应用接入页签,单击创建应用接入点,在创建应用接入点面板完成各项配置。
配置项
说明
创建模式
选择快速创建。
作用域(KMS实例)
选择应用要访问的KMS实例。
应用接入点名称
自定义应用接入点的名称。
认证方式
默认为ClientKey,不支持修改。
默认权限策略
默认为
key/*secret/*,不支持修改。即应用可以访问指定KMS实例中的所有密钥和凭据。单击确定,浏览器会自动下载ClientKey。
ClientKey包含应用身份凭证内容(ClientKeyContent)和凭证口令(ClientKeyPassword)。 应用身份凭证内容(ClientKeyContent)文件名默认为
clientKey_****.json。凭证口令(ClientKeyPassword)文件名默认为clientKey_****_Password.txt。
方式二:标准创建
若您希望对资源设置更精细化的访问权限,建议您使用标准创建。具体操作,请参考创建应用接入点。
重要创建应用接入点时如果选择标准创建,需要注意以下两点:
配置网络规则时,网络类型选择Private。
配置权限规则作用域时,请选择对应的KMS实例ID。
步骤二:安装凭据客户端
Java
通过Maven的方式在项目中安装凭据客户端。
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>alibabacloud-secretsmanager-client</artifactId>
<version>1.4.x</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.5.x</version>
</dependency>建议您使用最新版本,访问alibabacloud-secretsmanager-client-java了解更多版本和源代码信息。
Python
访问aliyun-secretsmanager-client-python了解更多安装信息和源代码。
执行pip命令安装凭据客户端。
# 如果下述命令报错,请将pip替换为pip3
pip install aliyun-secret-manager-clientGo
访问aliyun-secretsmanager-client-go了解更多安装信息和源代码。
使用go get命令安装凭据客户端。
go get -u github.com/aliyun/aliyun-secretsmanager-client-go步骤三:初始化凭据客户端并获取凭据值
Java
根据初始化客户端方式不同,获取凭据值示例代码不同。请选择以下一种方式即可。
方式一:通过环境变量或secretsmanager.properties配置文件初始化客户端
环境变量或secretsmanager.properties配置文件选其中一种即可。
获取凭据值示例代码如下,请将示例代码中的
#secretName#替换为您的凭据名称。import com.aliyuncs.kms.secretsmanager.client.SecretCacheClient; import com.aliyuncs.kms.secretsmanager.client.SecretCacheClientBuilder; import com.aliyuncs.kms.secretsmanager.client.exception.CacheSecretException; import com.aliyuncs.kms.secretsmanager.client.model.SecretInfo; public class CacheClientEnvironmentSample { public static void main(String[] args) { try { //构建凭据客户端 SecretCacheClient client = SecretCacheClientBuilder.newClient(); //使用构建好的客户端获取凭据信息 SecretInfo secretInfo = client.getSecretInfo("#secretName#"); System.out.println(secretInfo); } catch (CacheSecretException e) { e.printStackTrace(); } } }方式二:通过自定义配置文件初始化客户端
配置文件名称和文件路径由您自行定义。
获取凭据值示例代码如下,请将示例代码中的
#customConfigFileName#替换为您自定义的配置文件名称,#secretName#替换为您的凭据名称。import com.aliyuncs.kms.secretsmanager.client.SecretCacheClient; import com.aliyuncs.kms.secretsmanager.client.SecretCacheClientBuilder; import com.aliyuncs.kms.secretsmanager.client.exception.CacheSecretException; import com.aliyuncs.kms.secretsmanager.client.model.SecretInfo; import com.aliyuncs.kms.secretsmanager.client.service.BaseSecretManagerClientBuilder; public class CacheClientCustomConfigFileSample { public static void main(String[] args) { try { SecretCacheClient client = SecretCacheClientBuilder.newCacheClientBuilder( BaseSecretManagerClientBuilder.standard().withCustomConfigFile("#customConfigFileName#").build()).build(); SecretInfo secretInfo = client.getSecretInfo("#secretName#"); System.out.println(secretInfo); } catch (CacheSecretException e) { System.out.println("CacheSecretException:" + e.getMessage()); } } }方式三:通过指定参数(accessKey、accessSecret、regionId)初始化客户端
仅适用于认证方式为AccessKey的场景。
说明阿里云账号AccessKey拥有所有OpenAPI的访问权限,建议您使用RAM用户进行API访问或日常运维。强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
本示例以将AccessKey配置在环境变量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET的方式来实现身份验证为例。
更多认证信息配置方式,请参见管理访问凭据。
不同操作系统的环境变量配置方法不同,具体操作,请参见在Linux、macOS和Windows系统配置环境变量。
获取凭据值示例代码如下,请将示例代码中的
#regionId#替换为实际地域ID,#secretName#替换为您的凭据名称。import com.aliyuncs.kms.secretsmanager.client.SecretCacheClient; import com.aliyuncs.kms.secretsmanager.client.SecretCacheClientBuilder; import com.aliyuncs.kms.secretsmanager.client.exception.CacheSecretException; import com.aliyuncs.kms.secretsmanager.client.model.SecretInfo; import com.aliyuncs.kms.secretsmanager.client.service.BaseSecretManagerClientBuilder; import com.aliyuncs.kms.secretsmanager.client.utils.CredentialsProviderUtils; public class CacheClientSimpleParametersSample { public static void main(String[] args) { try { SecretCacheClient client = SecretCacheClientBuilder.newCacheClientBuilder( BaseSecretManagerClientBuilder.standard().withCredentialsProvider(CredentialsProviderUtils .withAccessKey(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))).withRegion("#regionId#").build()).build(); SecretInfo secretInfo = client.getSecretInfo("#secretName#"); System.out.println(secretInfo); } catch (CacheSecretException e) { e.printStackTrace(); } } }
Python
根据初始化客户端方式不同,获取凭据值示例代码不同。请选择以下一种方式即可。
方式一:通过系统环境变量或secretsmanager.properties配置文件初始化客户端
环境变量或secretsmanager.properties配置文件选其中一种即可。
获取凭据值示例代码如下,请将示例代码中的
#secretName#替换为您的凭据名称。from alibaba_cloud_secretsmanager_client.secret_manager_cache_client_builder import SecretManagerCacheClientBuilder if __name__ == '__main__': #构建凭据客户端 secret_cache_client = SecretManagerCacheClientBuilder.new_client() #使用构建好的客户端获取凭据信息 secret_info = secret_cache_client.get_secret_info("#secretName#") print(secret_info.__dict__)方式二:通过指定参数(accessKey、accessSecret、regionId)初始化客户端
仅适用于认证方式为AccessKey的场景。
说明阿里云账号AccessKey拥有所有OpenAPI的访问权限,建议您使用RAM用户进行API访问或日常运维。强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
本示例以将AccessKey配置在环境变量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET的方式来实现身份验证为例。
更多认证信息配置方式,请参见管理访问凭据。
不同操作系统的环境变量配置方法不同,具体操作,请参见在Linux、macOS和Windows系统配置环境变量。
获取凭据值示例代码如下,请将示例代码中的
#regionId#替换为实际地域ID,#secretName#替换为您的凭据名称。import os from alibaba_cloud_secretsmanager_client.secret_manager_cache_client_builder import SecretManagerCacheClientBuilder from alibaba_cloud_secretsmanager_client.service.default_secret_manager_client_builder import DefaultSecretManagerClientBuilder if __name__ == '__main__': secret_cache_client = SecretManagerCacheClientBuilder.new_cache_client_builder(DefaultSecretManagerClientBuilder.standard() \ .with_access_key(os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")) \ .with_region("#regionId#").build()) \ .build(); secret_info = secret_cache_client.get_secret_info("#secretName#") print(secret_info.__dict__)
Go
根据初始化客户端方式不同,获取凭据值示例代码不同。请选择以下一种方式即可。
方式一:通过系统环境变量或secretsmanager.properties配置文件初始化客户端
环境变量或secretsmanager.properties配置文件选其中一种即可。
获取凭据值示例代码如下,请将示例代码中的
#secretName#替换为您的凭据名称。package main import ( "fmt" "github.com/aliyun/aliyun-secretsmanager-client-go/sdk" ) func main() { //构建凭据客户端 client, err := sdk.NewClient() if err != nil { // Handle exceptions panic(err) } //使用构建好的客户端获取凭据信息 secretInfo, err := client.GetSecretInfo("#secretName#") if err != nil { // Handle exceptions panic(err) } fmt.Printf("SecretValue:%s\n",secretInfo.SecretValue) }通过指定参数(accessKey、accessSecret、regionId)初始化客户端
仅适用于认证方式为AccessKey的场景。
说明阿里云账号AccessKey拥有所有OpenAPI的访问权限,建议您使用RAM用户进行API访问或日常运维。强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
本示例以将AccessKey配置在环境变量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET的方式来实现身份验证为例。
更多认证信息配置方式,请参见管理访问凭据。
不同操作系统的环境变量配置方法不同,具体操作,请参见在Linux、macOS和Windows系统配置环境变量。
获取凭据值示例代码如下,请将示例代码中的
#regionId#替换为实际地域ID,#secretName#替换为您的凭据名称。package main import ( "github.com/aliyun/aliyun-secretsmanager-client-go/sdk/service" "github.com/aliyun/aliyun-secretsmanager-client-go/sdk" "os" ) func main() { client, err := sdk.NewSecretCacheClientBuilder(service.NewDefaultSecretManagerClientBuilder().Standard().WithAccessKey(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")).WithRegion("#regionId#").Build()).Build() if err != nil { // Handle exceptions panic(err) } secretInfo, err := client.GetSecretInfo("#secretName#") if err != nil { // Handle exceptions panic(err) } }

