全部产品
Search
文档中心

密钥管理服务:凭据客户端

更新时间:Apr 16, 2025

凭据客户端是基于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角色

  1. 登录RAM控制台,创建可信实体为阿里云服务的RAM角色。

    • 信任主体类型:选择云服务

    • 信任主体名称:选择云服务器ECS

  2. 授予RAM角色访问KMS的权限。

    • 方式一:设置基于身份的策略

      KMS内置了系统权限策略,可以直接绑定到RAM角色,详细介绍,请参见密钥管理服务系统权限策略参考。您也可以自定义权限策略。image

    • 方式二:设置基于资源的策略

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

  3. 登录ECS管理控制台,将RAM角色授予ECS实例。image

RamRoleArn

RAM用户或云产品可以通过扮演角色的方式获取临时权限,而不是直接使用长期密钥,降低了密钥泄露的风险。例如,在临时的数据处理任务中,RAM用户或云产品临时扮演一个具有特定RamRoleArn的角色,完成任务后角色权限被收回,减少泄露风险。

  1. 登录RAM控制台,创建RAM角色。具体操作,请参见创建RAM角色image

  2. 授予RAM角色访问KMS的权限。

    • 方式一:设置基于身份的策略

      KMS内置了系统权限策略,可以直接绑定到RAM角色,详细介绍,请参见密钥管理服务系统权限策略参考。您也可以自定义权限策略。image

    • 方式二:设置基于资源的策略

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

  3. 获取目标RAM角色的RamRoleArn。具体操作,请参见查看RAM角色

    说明

    RamRoleArn是RAM角色的ARN信息,即需要扮演的角色ID。格式为acs:ram::$accountID:role/$roleName。$accountID为阿里云账号ID。$roleName为RAM角色名称。

    image

STS Token

通过STS服务为RAM用户或RAM角色颁发一个临时访问凭证,可以在限定的有效期内,以符合策略规定的权限访问KMS,超过有效期后,该凭证自动失效。

  1. 登录RAM控制台,创建RAM用户或RAM角色。具体操作,请参见创建RAM用户创建RAM角色image

  2. 为RAM用户或RAM角色授予AliyunSTSAssumeRoleAccess权限。具体操作,请参见为RAM用户授权为RAM角色授权image

  3. 授予RAM用户或RAM角色访问KMS的权限。

    • 方式一:设置基于身份的策略

      KMS内置了系统权限策略,可以直接绑定到RAM用户或RAM角色,详细介绍,请参见密钥管理服务系统权限策略参考。您也可以自定义权限策略。image

    • 方式二:设置基于资源的策略

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

  4. 使用RAM用户或RAM角色调用STS服务的AssumeRole接口获取STS临时访问凭证。具体操作,请参见AssumeRole - 获取扮演角色的临时身份凭证

AccessKey

以使用RAM用户的AccessKey为例。

阿里云账号默认有所有资源的Administrator权限且不可修改,其AccessKey泄露会危及资源安全,因此强烈建议不要为主账号创建AccessKey,请创建专用于API访问的RAM用户并创建对应的AccessKey,并完成最小化授权。具体操作,请参见创建AccessKey

  1. 登录RAM控制台,在用户页面,单击目标RAM用户名称。

  2. 认证管理页签下的AccessKey区域,单击创建AccessKey,并按照指引完成创建。image

  3. 授予RAM用户访问KMS的权限。

    • 方式一:设置基于身份的策略

      KMS内置了系统权限策略,可以直接绑定到RAM用户,详细介绍,请参见密钥管理服务系统权限策略参考。您也可以自定义权限策略。image

    • 方式二:设置基于资源的策略

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

ClientKey(不推荐)

请参考创建应用接入点中的标准创建方式,创建用于访问共享网关的ClientKey。

重要
  • 配置网络规则时,网络类型选择PublicVPC

  • 配置权限规则作用域时,请选择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 install aliyun-secret-manager-client

Go

访问aliyun-secretsmanager-client-go了解更多安装信息和源代码。

使用go get命令安装凭据客户端。

go get -u github.com/aliyun/aliyun-secretsmanager-client-go

步骤三:初始化客户端并获取凭据值

Java

根据初始化客户端方式不同,获取凭据值示例代码不同。选取以下一种方式即可。

  • 方式一:通过环境变量或secretsmanager.properties配置文件初始化客户端

    环境变量或secretsmanager.properties配置文件选其中一种即可。

    环境变量

    不同操作系统的环境变量配置方法不同,具体操作,请参见在Linux、macOS和Windows系统配置环境变量

    ECS实例RAM角色

    参数

    参数值

    credentials_type

    固定取值ecs_ram_role。

    credentials_role_name

    RAM角色名称。

    cache_client_region_id

    格式为[{"regionId":"<your region id>"}],请将<your region id>替换为您真实的地域ID。

    重要

    Linux系统下,使用export命令设置环境变量时,请添加转义字符,即[{\"regionId\":\"<your region id>\"}]

    RamRoleArn

    参数

    参数值

    credentials_type

    固定取值ram_role。

    credentials_role_session_name

    RAM角色的名称。

    credentials_role_arn

    RAM角色的资源ARN。

    credentials_access_key_id

    AccessKey ID。

    credentials_access_secret

    AccessKey Secret。

    cache_client_region_id

    格式为[{"regionId":"<your region id>"}],请将<your region id>替换为您真实的地域ID。

    重要

    Linux系统下,使用export命令设置环境变量时,请添加转义字符,即[{\"regionId\":\"<your region id>\"}]

    STS Token

    参数

    参数值

    credentials_type

    固定取值sts。

    credentials_role_session_name

    RAM角色名称。

    credentials_role_arn

    RAM角色的资源ARN。

    credentials_access_key_id

    AccessKey ID。

    credentials_access_secret

    AccessKey Secret。

    cache_client_region_id

    格式为[{"regionId":"<your region id>"}],请将<your region id>替换为您真实的地域ID。

    重要

    Linux系统下,使用export命令设置环境变量时,请添加转义字符,即[{\"regionId\":\"<your region id>\"}]

    AccessKey

    参数

    参数值

    credentials_type

    固定取值ak。

    credentials_access_key_id

    AccessKey ID。

    credentials_access_secret

    AccessKey Secret。

    cache_client_region_id

    格式为[{"regionId":"<your region id>"}],请将<your region id>替换为您真实的地域ID。

    重要

    Linux系统下,使用export命令设置环境变量时,请添加转义字符,即[{\"regionId\":\"<your region id>\"}]

    ClientKey

    参数

    参数值

    credentials_type

    固定取值client_key。

    client_key_password_from_env_variable

    表示从系统环境变量获取ClientKey的凭证口令(password)。取值为password的系统环境变量名称。

    配置本参数时,您需要将password配置到系统环境变量中,变量名称由您自定义。

    client_key_password_from_file_path

    表示从文件中获取ClientKey的凭证口令(password)。取值为password的文件绝对路径或相对路径。

    配置本参数时,您需要将password配置到文件中,文件名称由您自定义。

    说明

    client_key_password_from_env_variable与client_key_password_from_file_path为二选一。

    client_key_private_key_path

    ClientKey文件的绝对路径或相对路径。

    配置本参数时,您需要将ClientKey文件保存到合适位置,文件名称由您自定义。

    cache_client_region_id

    格式为[{"regionId":"<your region id>"}],请将<your region id>替换为您真实的地域ID。

    重要

    Linux系统下,使用export命令设置环境变量时,请添加转义字符,即[{\"regionId\":\"<your region id>\"}]

    secretsmanager.properties配置文件

    配置文件名称固定为secretsmanager.properties

    不同的认证方式,需要设置的配置文件内容不同。

    ECS实例RAM角色

    # 访问凭据类型
    credentials_type=ecs_ram_role
    # ECS RAM Role名称
    credentials_role_name=#credentials_role_name#
    # 关联的KMS服务地域
    cache_client_region_id=[{"regionId":"#regionId#"}]

    RAMRoleArn

    # 访问凭据类型
    credentials_type=ram_role
    # 角色名称
    credentials_role_session_name=#role name#
    # 资源短名称
    credentials_role_arn=#role arn#
    # AK
    credentials_access_key_id=#access key id#
    # SK
    credentials_access_secret=#access key secret#
    # 关联的KMS服务地域
    cache_client_region_id=[{"regionId":"#regionId#"}]

    STS Token

    # 访问凭据类型
    credentials_type=sts
    # 角色名称
    credentials_role_session_name=#role name#
    # 资源短名称
    credentials_role_arn=#role arn#
    # AK
    credentials_access_key_id=#access key id#
    # SK
    credentials_access_secret=#access key secret#
    # 关联的KMS服务地域
    cache_client_region_id=[{"regionId":"#regionId#"}]

    AccessKey

    # 访问凭据类型
    credentials_type=ak
    # AK
    credentials_access_key_id=#access key id#
    # SK
    credentials_access_secret=#access key secret#
    # 关联的KMS服务地域
    cache_client_region_id=[{"regionId":"#regionId#"}]

    ClientKey

    # 访问凭据类型
    credentials_type=client_key
    
    # 读取client key的解密密码:支持从环境变量或者文件读取
    client_key_password_from_env_variable=#your client key private key password environment variable name#
    client_key_password_from_file_path=#your client key private key password file path#
    
    # Client Key私钥文件路径
    client_key_private_key_path=#your client key private key file path#
    
    # 关联的KMS服务地域
    cache_client_region_id=[{"regionId":"#regionId#"}]

    获取凭据值示例代码如下,请将示例代码中的#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();
            }
        }
    }
  • 方式二:通过自定义配置文件初始化客户端

    需要注意配置文件名称和文件路径由您自行定义。

    配置文件

    不同的认证方式,需要设置的配置文件内容不同。

    ECS实例RAM角色
    # 访问凭据类型
    credentials_type=ecs_ram_role
    # ECS RAM Role名称
    credentials_role_name=#credentials_role_name#
    # 关联的KMS服务地域
    cache_client_region_id=[{"regionId":"#regionId#"}]
    RAMRoleArn
    # 访问凭据类型
    credentials_type=ram_role
    # 角色名称
    credentials_role_session_name=#role name#
    # 资源短名称
    credentials_role_arn=#role arn#
    # AK
    credentials_access_key_id=#access key id#
    # SK
    credentials_access_secret=#access key secret#
    # 关联的KMS服务地域
    cache_client_region_id=[{"regionId":"#regionId#"}]
    STS Token
    # 访问凭据类型
    credentials_type=sts
    # 角色名称
    credentials_role_session_name=#role name#
    # 资源短名称
    credentials_role_arn=#role arn#
    # AK
    credentials_access_key_id=#access key id#
    # SK
    credentials_access_secret=#access key secret#
    # 关联的KMS服务地域
    cache_client_region_id=[{"regionId":"#regionId#"}]
    AccessKey
    # 访问凭据类型
    credentials_type=ak
    # AK
    credentials_access_key_id=#access key id#
    # SK
    credentials_access_secret=#access key secret#
    # 关联的KMS服务地域
    cache_client_region_id=[{"regionId":"#regionId#"}]
    ClientKey
    # 访问凭据类型
    credentials_type=client_key
    
    # 读取client key的解密密码:支持从环境变量或者文件读取
    client_key_password_from_env_variable=#your client key private key password environment variable name#
    client_key_password_from_file_path=#your client key private key password file path#
    
    # Client Key私钥文件路径
    client_key_private_key_path=#your client key private key file path#
    
    # 关联的KMS服务地域
    cache_client_region_id=[{"regionId":"#regionId#"}]

    获取凭据值示例代码如下,请将示例代码中的#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的方式来实现身份验证为例。

    获取凭据值示例代码如下,请将示例代码中的#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配置文件选其中一种即可。

    环境变量

    不同操作系统的环境变量配置方法不同,具体操作,请参见在Linux、macOS和Windows系统配置环境变量

    ECS实例RAM角色

    参数

    参数值

    credentials_type

    固定取值ecs_ram_role。

    credentials_role_name

    RAM角色名称。

    cache_client_region_id

    格式为[{"regionId":"<your region id>"}],请将<your region id>替换为您真实的地域ID。

    重要

    Linux系统下,使用export命令设置环境变量时,请添加转义字符,即[{\"regionId\":\"<your region id>\"}]

    RamRoleArn

    参数

    参数值

    credentials_type

    固定取值ram_role。

    credentials_role_session_name

    RAM角色的名称。

    credentials_role_arn

    RAM角色的资源ARN。

    credentials_access_key_id

    AccessKey ID。

    credentials_access_secret

    AccessKey Secret。

    cache_client_region_id

    格式为[{"regionId":"<your region id>"}],请将<your region id>替换为您真实的地域ID。

    重要

    Linux系统下,使用export命令设置环境变量时,请添加转义字符,即[{\"regionId\":\"<your region id>\"}]

    STS Token

    参数

    参数值

    credentials_type

    固定取值sts。

    credentials_role_session_name

    RAM角色名称。

    credentials_role_arn

    RAM角色的资源ARN。

    credentials_access_key_id

    AccessKey ID。

    credentials_access_secret

    AccessKey Secret。

    cache_client_region_id

    格式为[{"regionId":"<your region id>"}],请将<your region id>替换为您真实的地域ID。

    重要

    Linux系统下,使用export命令设置环境变量时,请添加转义字符,即[{\"regionId\":\"<your region id>\"}]

    AccessKey

    参数

    参数值

    credentials_type

    固定取值ak。

    credentials_access_key_id

    AccessKey ID。

    credentials_access_secret

    AccessKey Secret。

    cache_client_region_id

    格式为[{"regionId":"<your region id>"}],请将<your region id>替换为您真实的地域ID。

    重要

    Linux系统下,使用export命令设置环境变量时,请添加转义字符,即[{\"regionId\":\"<your region id>\"}]

    ClientKey

    参数

    参数值

    credentials_type

    固定取值client_key。

    client_key_password_from_env_variable

    表示从系统环境变量获取ClientKey的凭证口令(password)。取值为password的系统环境变量名称。

    配置本参数时,您需要将password配置到系统环境变量中,变量名称由您自定义。

    client_key_password_from_file_path

    表示从文件中获取ClientKey的凭证口令(password)。取值为password的文件绝对路径或相对路径。

    配置本参数时,您需要将password配置到文件中,文件名称由您自定义。

    说明

    client_key_password_from_env_variable与client_key_password_from_file_path为二选一。

    client_key_private_key_path

    ClientKey文件的绝对路径或相对路径。

    配置本参数时,您需要将ClientKey文件保存到合适位置,文件名称由您自定义。

    cache_client_region_id

    格式为[{"regionId":"<your region id>"}],请将<your region id>替换为您真实的地域ID。

    重要

    Linux系统下,使用export命令设置环境变量时,请添加转义字符,即[{\"regionId\":\"<your region id>\"}]

    secretsmanager.properties配置文件

    配置文件名称固定为secretsmanager.properties

    不同的认证方式,需要设置的配置文件内容不同。

    ECS实例RAM角色
    # 访问凭据类型
    credentials_type=ecs_ram_role
    # ECS RAM Role名称
    credentials_role_name=#credentials_role_name#
    # 关联的KMS服务地域
    cache_client_region_id=[{"regionId":"#regionId#"}]
    RAMRoleArn
    # 访问凭据类型
    credentials_type=ram_role
    # 角色名称
    credentials_role_session_name=#role name#
    # 资源短名称
    credentials_role_arn=#role arn#
    # AK
    credentials_access_key_id=#access key id#
    # SK
    credentials_access_secret=#access key secret#
    # 关联的KMS服务地域
    cache_client_region_id=[{"regionId":"#regionId#"}]
    STS Token
    # 访问凭据类型
    credentials_type=sts
    # 角色名称
    credentials_role_session_name=#role name#
    # 资源短名称
    credentials_role_arn=#role arn#
    # AK
    credentials_access_key_id=#access key id#
    # SK
    credentials_access_secret=#access key secret#
    # 关联的KMS服务地域
    cache_client_region_id=[{"regionId":"#regionId#"}]
    AccessKey
    # 访问凭据类型
    credentials_type=ak
    # AK
    credentials_access_key_id=#access key id#
    # SK
    credentials_access_secret=#access key secret#
    # 关联的KMS服务地域
    cache_client_region_id=[{"regionId":"#regionId#"}]
    ClientKey
    # 访问凭据类型
    credentials_type=client_key
    
    # 读取client key的解密密码:支持从环境变量或者文件读取
    client_key_password_from_env_variable=#your client key private key password environment variable name#
    client_key_password_from_file_path=#your client key private key password file path#
    
    # Client Key私钥文件路径
    client_key_private_key_path=#your client key private key file path#
    
    # 关联的KMS服务地域
    cache_client_region_id=[{"regionId":"#regionId#"}]

    获取凭据值示例代码如下,请将示例代码中的#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的方式来实现身份验证为例。

    获取凭据值示例代码如下,请将示例代码中的#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配置文件选其中一种即可。

    环境变量

    不同操作系统的环境变量配置方法不同,具体操作,请参见在Linux、macOS和Windows系统配置环境变量

    ECS实例RAM角色

    参数

    参数值

    credentials_type

    固定取值ecs_ram_role。

    credentials_role_name

    RAM角色名称。

    cache_client_region_id

    格式为[{"regionId":"<your region id>"}],请将<your region id>替换为您真实的地域ID。

    重要

    Linux系统下,使用export命令设置环境变量时,请添加转义字符,即[{\"regionId\":\"<your region id>\"}]

    RamRoleArn

    参数

    参数值

    credentials_type

    固定取值ram_role。

    credentials_role_session_name

    RAM角色的名称。

    credentials_role_arn

    RAM角色的资源ARN。

    credentials_access_key_id

    AccessKey ID。

    credentials_access_secret

    AccessKey Secret。

    cache_client_region_id

    格式为[{"regionId":"<your region id>"}],请将<your region id>替换为您真实的地域ID。

    重要

    Linux系统下,使用export命令设置环境变量时,请添加转义字符,即[{\"regionId\":\"<your region id>\"}]

    STS Token

    参数

    参数值

    credentials_type

    固定取值sts。

    credentials_role_session_name

    RAM角色名称。

    credentials_role_arn

    RAM角色的资源ARN。

    credentials_access_key_id

    AccessKey ID。

    credentials_access_secret

    AccessKey Secret。

    cache_client_region_id

    格式为[{"regionId":"<your region id>"}],请将<your region id>替换为您真实的地域ID。

    重要

    Linux系统下,使用export命令设置环境变量时,请添加转义字符,即[{\"regionId\":\"<your region id>\"}]

    AccessKey

    参数

    参数值

    credentials_type

    固定取值ak。

    credentials_access_key_id

    AccessKey ID。

    credentials_access_secret

    AccessKey Secret。

    cache_client_region_id

    格式为[{"regionId":"<your region id>"}],请将<your region id>替换为您真实的地域ID。

    重要

    Linux系统下,使用export命令设置环境变量时,请添加转义字符,即[{\"regionId\":\"<your region id>\"}]

    ClientKey

    参数

    参数值

    credentials_type

    固定取值client_key。

    client_key_password_from_env_variable

    表示从系统环境变量获取ClientKey的凭证口令(password)。取值为password的系统环境变量名称。

    配置本参数时,您需要将password配置到系统环境变量中,变量名称由您自定义。

    client_key_password_from_file_path

    表示从文件中获取ClientKey的凭证口令(password)。取值为password的文件绝对路径或相对路径。

    配置本参数时,您需要将password配置到文件中,文件名称由您自定义。

    说明

    client_key_password_from_env_variable与client_key_password_from_file_path为二选一。

    client_key_private_key_path

    ClientKey文件的绝对路径或相对路径。

    配置本参数时,您需要将ClientKey文件保存到合适位置,文件名称由您自定义。

    cache_client_region_id

    格式为[{"regionId":"<your region id>"}],请将<your region id>替换为您真实的地域ID。

    重要

    Linux系统下,使用export命令设置环境变量时,请添加转义字符,即[{\"regionId\":\"<your region id>\"}]

    secretsmanager.properties配置文件

    配置文件名称固定为secretsmanager.properties

    不同的认证方式,需要设置的配置文件内容不同。

    ECS实例RAM角色
    # 访问凭据类型
    credentials_type=ecs_ram_role
    # ECS RAM Role名称
    credentials_role_name=#credentials_role_name#
    # 关联的KMS服务地域
    cache_client_region_id=[{"regionId":"#regionId#"}]
    RAMRoleArn
    # 访问凭据类型
    credentials_type=ram_role
    # 角色名称
    credentials_role_session_name=#role name#
    # 资源短名称
    credentials_role_arn=#role arn#
    # AK
    credentials_access_key_id=#access key id#
    # SK
    credentials_access_secret=#access key secret#
    # 关联的KMS服务地域
    cache_client_region_id=[{"regionId":"#regionId#"}]
    STS Token
    # 访问凭据类型
    credentials_type=sts
    # 角色名称
    credentials_role_session_name=#role name#
    # 资源短名称
    credentials_role_arn=#role arn#
    # AK
    credentials_access_key_id=#access key id#
    # SK
    credentials_access_secret=#access key secret#
    # 关联的KMS服务地域
    cache_client_region_id=[{"regionId":"#regionId#"}]
    AccessKey
    # 访问凭据类型
    credentials_type=ak
    # AK
    credentials_access_key_id=#access key id#
    # SK
    credentials_access_secret=#access key secret#
    # 关联的KMS服务地域
    cache_client_region_id=[{"regionId":"#regionId#"}]
    ClientKey
    # 访问凭据类型
    credentials_type=client_key
    
    # 读取client key的解密密码:支持从环境变量或者文件读取
    client_key_password_from_env_variable=#your client key private key password environment variable name#
    client_key_password_from_file_path=#your client key private key password file path#
    
    # Client Key私钥文件路径
    client_key_private_key_path=#your client key private key file path#
    
    # 关联的KMS服务地域
    cache_client_region_id=[{"regionId":"#regionId#"}]

    获取凭据值示例代码如下,请将示例代码中的#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的方式来实现身份验证为例。

    获取凭据值示例代码如下,请将示例代码中的#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实例的全部资源。

    1. 登录密钥管理服务控制台,在顶部菜单栏选择地域后,在左侧导航栏单击应用接入 > 接入点

    2. 应用接入页签,单击创建应用接入点,在创建应用接入点面板完成各项配置。

      配置项

      说明

      创建模式

      选择快速创建

      作用域(KMS实例)

      选择应用要访问的KMS实例。

      应用接入点名称

      自定义应用接入点的名称。

      认证方式

      默认为ClientKey,不支持修改。

      默认权限策略

      默认为key/*secret/*,不支持修改。即应用可以访问指定KMS实例中的所有密钥和凭据。

    3. 单击确定,浏览器会自动下载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 install aliyun-secret-manager-client

Go

访问aliyun-secretsmanager-client-go了解更多安装信息和源代码。

使用go get命令安装凭据客户端。

go get -u github.com/aliyun/aliyun-secretsmanager-client-go

步骤三:初始化凭据客户端并获取凭据值

Java

根据初始化客户端方式不同,获取凭据值示例代码不同。选取以下一种方式即可。

  • 方式一:通过环境变量或secretsmanager.properties配置文件初始化客户端

    环境变量或secretsmanager.properties配置文件选其中一种即可。

    环境变量

    • 方式一:通过环境变量获取ClientKey凭证口令

      参数

      参数值

      cache_client_dkms_config_info

      参数值格式为[{"regionId":"<your dkms regionId >","endpoint":"<your dkms endpoint>","passwordFromEnvVariable":"<YOUR_PASSWORD_ENV_VARIABLE>","clientKeyFile":"<your ClientKey file path>","ignoreSslCerts":false,"caFilePath":"<your CA certificate file path>"}]

      该方式您还需要将ClientKey的凭证口令(ClientKeyPassword)的内容配置到环境变量中,变量名称由您自定义,配置完成后将<YOUR_PASSWORD_ENV_VARIABLE>替换为变量名称。

      以Linux操作系统为例,示例如下:

      export cache_client_dkms_config_info=[{"regionId":"cn-hangzhou","endpoint":"kst-hzz634e67d126u9p9****.cryptoservice.kms.aliyuncs.com","passwordFromEnvVariable":"passwordFromEnvVariable","clientKeyFile":"C:\RamSecretPlugin\src\main\resources\clientKey_KAAP.json","ignoreSslCerts":false,"caFilePath":"C:\RamSecretPlugin\src\main\resources\PrivateKmsCA_kst-hzz634e67d126u9p9****.pem"}]
    • 方式二:通过文件获取ClientKey凭证口令

      ClientKey的凭证口令(ClientKeyPassword)下载后文件名默认为clientKey_****_Password.txt,您也可以修改文件名称,但需要将cache_client_dkms_config_info取值中<your Client Key file path>替换为修改后的文件路径。

      参数

      参数值

      cache_client_dkms_config_info

      参数值格式为:[{"regionId":"<your dkms regionId >","endpoint":"<your dkms endpoint>","passwordFromFilePath":"< your password file path >","clientKeyFile":"<your Client Key file path>","ignoreSslCerts":false,"caFilePath":"<your CA certificate file path>"}]

      以Linux操作系统为例,示例为:

      export cache_client_dkms_config_info=[{"regionId":"cn-hangzhou","endpoint":"kst-hzz634e67d126u9p9****.cryptoservice.kms.aliyuncs.com","passwordFromFilePath":"C:\RamSecretPlugin\src\main\resources\clientKeyPassword.txt","clientKeyFile":"C:\RamSecretPlugin\src\main\resources\clientKey_KAAP.json","ignoreSslCerts":false,"caFilePath":"C:\RamSecretPlugin\src\main\resources\PrivateKmsCA_kst-hzz634e67d126u9p9****.pem"}]

    各配置项说明:

    配置项

    配置项含义

    说明

    regionId

    KMS实例所在地域ID。

    具体的地域ID,请参见地域和接入地址

    endpoint

    KMS实例的域名地址,格式为{实例ID}.kms.aliyuncs.com

    访问实例管理页面,在实例详情页面查看实例VPC地址,即endpoint。

    clientKeyFile

    ClientKey文件(JSON格式)的绝对路径或相对路径。

    • ClientKey文件:在应用接入点AAP中创建ClientKey时下载的应用身份凭证内容(ClientKeyContent),下载后文件名默认为ClientKey_******.json。

    • 凭证口令:在应用接入点AAP中创建ClientKey时下载的凭证口令(ClientKeyPassword),下载后文件名默认为ClientKey_******_password.txt。

    重要

    ClientKey文件和凭证口令是一一对应的,仅支持您在创建ClientKey时获取。如果您在创建时未保存,则需要在应用接入点AAP中重新创建ClientKey。更多详细内容,请参见创建应用接入点

    passwordFromFilePathpasswordFromEnvVariable

    • passwordFromFilePath:从文件中获取凭证口令,取值为文件的绝对路径或相对路径。您需要将凭证口令保存到文件中。

    • passwordFromEnvVariable:从环境变量获取凭证口令,取值为环境变量名称。您需要将凭证口令配置到环境变量中。

    ignoreSslCerts

    是否忽略KMS实例SSL证书的有效性检查。KMS实例内置SSL证书,使用SSL/TLS协议用于身份验证和加密通信。取值:

    • true:表示忽略,不检查KMS实例SSL证书的有效性。

      说明

      取值为true时,无需配置caFilePath

    • false:表示验证,检查KMS实例SSL证书的有效性。

    正式生产环境中,请将该值设置为false。

    caFilePath

    KMS实例CA证书文件的绝对路径或相对路径。

    KMS实例CA证书,用于检查KMS实例SSL证书的有效性。例如:检查KMS实例SSL证书是否由对应的CA中心签发、是否在有效期内、以及对应的域名是否为KMS实例的域名地址(endpoint)。

    访问实例管理页面,在实例详情页面,单击实例CA证书区域的下载

    secretsmanager.properties配置文件

    配置文件名称固定为secretsmanager.properties

    参数配置项为cache_client_dkms_config_infocache_client_dkms_config_info采用JSON数组格式,您可配置多个KMS实例,以支持业务获得更高标准的服务可用性保障和容灾能力。

    • 方式一:通过环境变量获取ClientKey凭证口令

      配置文件内容为:

      cache_client_dkms_config_info=[{"regionId":"<your dkms regionId >","endpoint":"<your dkms endpoint>","passwordFromEnvVariable":"<YOUR_PASSWORD_ENV_VARIABLE>","clientKeyFile":"<your ClientKey file path>","ignoreSslCerts":false,"caFilePath":"<your CA certificate file path>"}]

      该方式您还需要将ClientKey的凭证口令(ClientKeyPassword)的内容配置到环境变量中,变量名称由您自定义,配置完成后将<YOUR_PASSWORD_ENV_VARIABLE>替换为变量名称。示例如下:

      cache_client_dkms_config_info=[{"regionId":"cn-hangzhou","endpoint":"kst-hzz634e67d126u9p9****.cryptoservice.kms.aliyuncs.com","passwordFromEnvVariable":"passwordFromEnvVariable","clientKeyFile":"C:\RamSecretPlugin\src\main\resources\clientKey_KAAP.json","ignoreSslCerts":false,"caFilePath":"C:\RamSecretPlugin\src\main\resources\PrivateKmsCA_kst-hzz634e67d126u9p9****.pem"}]
    • 方式二:通过文件获取ClientKey凭证口令

      ClientKey的凭证口令(ClientKeyPassword)下载后文件名默认为clientKey_****_Password.txt,您也可以修改文件名称,但需要将cache_client_dkms_config_info取值中<your Client Key file path>替换为修改后的文件路径。

      配置文件内容为:

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

      示例如下:

      cache_client_dkms_config_info=[{"regionId":"cn-hangzhou","endpoint":"kst-hzz634e67d126u9p9****.cryptoservice.kms.aliyuncs.com","passwordFromFilePath":"C:\RamSecretPlugin\src\main\resources\clientKeyPassword.txt","clientKeyFile":"C:\RamSecretPlugin\src\main\resources\clientKey_KAAP.json","ignoreSslCerts":false,"caFilePath":"C:\RamSecretPlugin\src\main\resources\PrivateKmsCA_kst-hzz634e67d126u9p9****.pem"}]

    各配置项说明:

    配置项

    配置项含义

    说明

    regionId

    KMS实例所在地域ID。

    具体的地域ID,请参见地域和接入地址

    endpoint

    KMS实例的域名地址,格式为{实例ID}.kms.aliyuncs.com

    访问实例管理页面,在实例详情页面查看实例VPC地址,即endpoint。

    clientKeyFile

    ClientKey文件(JSON格式)的绝对路径或相对路径。

    • ClientKey文件:在应用接入点AAP中创建ClientKey时下载的应用身份凭证内容(ClientKeyContent),下载后文件名默认为ClientKey_******.json。

    • 凭证口令:在应用接入点AAP中创建ClientKey时下载的凭证口令(ClientKeyPassword),下载后文件名默认为ClientKey_******_password.txt。

    重要

    ClientKey文件和凭证口令是一一对应的,仅支持您在创建ClientKey时获取。如果您在创建时未保存,则需要在应用接入点AAP中重新创建ClientKey。更多详细内容,请参见创建应用接入点

    passwordFromFilePathpasswordFromEnvVariable

    • passwordFromFilePath:从文件中获取凭证口令,取值为文件的绝对路径或相对路径。您需要将凭证口令保存到文件中。

    • passwordFromEnvVariable:从环境变量获取凭证口令,取值为环境变量名称。您需要将凭证口令配置到环境变量中。

    ignoreSslCerts

    是否忽略KMS实例SSL证书的有效性检查。KMS实例内置SSL证书,使用SSL/TLS协议用于身份验证和加密通信。取值:

    • true:表示忽略,不检查KMS实例SSL证书的有效性。

      说明

      取值为true时,无需配置caFilePath

    • false:表示验证,检查KMS实例SSL证书的有效性。

    正式生产环境中,请将该值设置为false。

    caFilePath

    KMS实例CA证书文件的绝对路径或相对路径。

    KMS实例CA证书,用于检查KMS实例SSL证书的有效性。例如:检查KMS实例SSL证书是否由对应的CA中心签发、是否在有效期内、以及对应的域名是否为KMS实例的域名地址(endpoint)。

    访问实例管理页面,在实例详情页面,单击实例CA证书区域的下载

    获取凭据值示例代码如下,请将示例代码中的#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();
            }
        }
    }
  • 方式二:通过自定义配置文件初始化客户端

    配置文件名称和文件路径由您自行定义。

    配置文件

    参数配置项为cache_client_dkms_config_infocache_client_dkms_config_info采用JSON数组格式,您可配置多个KMS实例,以支持业务获得更高标准的服务可用性保障和容灾能力。

    • 方式一:通过环境变量获取ClientKey凭证口令

      配置文件内容为:

      cache_client_dkms_config_info=[{"regionId":"<your dkms regionId >","endpoint":"<your dkms endpoint>","passwordFromEnvVariable":"<YOUR_PASSWORD_ENV_VARIABLE>","clientKeyFile":"<your ClientKey file path>","ignoreSslCerts":false,"caFilePath":"<your CA certificate file path>"}]

      该方式您还需要将ClientKey的凭证口令(ClientKeyPassword)的内容配置到环境变量中,变量名称由您自定义,配置完成后将<YOUR_PASSWORD_ENV_VARIABLE>替换为变量名称。示例如下:

      cache_client_dkms_config_info=[{"regionId":"cn-hangzhou","endpoint":"kst-hzz634e67d126u9p9****.cryptoservice.kms.aliyuncs.com","passwordFromEnvVariable":"passwordFromEnvVariable","clientKeyFile":"C:\RamSecretPlugin\src\main\resources\clientKey_KAAP.json","ignoreSslCerts":false,"caFilePath":"C:\RamSecretPlugin\src\main\resources\PrivateKmsCA_kst-hzz634e67d126u9p9****.pem"}]
    • 方式二:通过文件获取ClientKey凭证口令

      ClientKey的凭证口令(ClientKeyPassword)下载后文件名默认为clientKey_****_Password.txt,您也可以修改文件名称,但需要将cache_client_dkms_config_info取值中<your Client Key file path>替换为修改后的文件路径。

      配置文件内容为:

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

      示例如下:

      cache_client_dkms_config_info=[{"regionId":"cn-hangzhou","endpoint":"kst-hzz634e67d126u9p9****.cryptoservice.kms.aliyuncs.com","passwordFromFilePath":"C:\RamSecretPlugin\src\main\resources\clientKeyPassword.txt","clientKeyFile":"C:\RamSecretPlugin\src\main\resources\clientKey_KAAP.json","ignoreSslCerts":false,"caFilePath":"C:\RamSecretPlugin\src\main\resources\PrivateKmsCA_kst-hzz634e67d126u9p9****.pem"}]

    各配置项说明:

    配置项

    配置项含义

    说明

    regionId

    KMS实例所在地域ID。

    具体的地域ID,请参见地域和接入地址

    endpoint

    KMS实例的域名地址,格式为{实例ID}.kms.aliyuncs.com

    访问实例管理页面,在实例详情页面查看实例VPC地址,即endpoint。

    clientKeyFile

    ClientKey文件(JSON格式)的绝对路径或相对路径。

    • ClientKey文件:在应用接入点AAP中创建ClientKey时下载的应用身份凭证内容(ClientKeyContent),下载后文件名默认为ClientKey_******.json。

    • 凭证口令:在应用接入点AAP中创建ClientKey时下载的凭证口令(ClientKeyPassword),下载后文件名默认为ClientKey_******_password.txt。

    重要

    ClientKey文件和凭证口令是一一对应的,仅支持您在创建ClientKey时获取。如果您在创建时未保存,则需要在应用接入点AAP中重新创建ClientKey。更多详细内容,请参见创建应用接入点

    passwordFromFilePathpasswordFromEnvVariable

    • passwordFromFilePath:从文件中获取凭证口令,取值为文件的绝对路径或相对路径。您需要将凭证口令保存到文件中。

    • passwordFromEnvVariable:从环境变量获取凭证口令,取值为环境变量名称。您需要将凭证口令配置到环境变量中。

    ignoreSslCerts

    是否忽略KMS实例SSL证书的有效性检查。KMS实例内置SSL证书,使用SSL/TLS协议用于身份验证和加密通信。取值:

    • true:表示忽略,不检查KMS实例SSL证书的有效性。

      说明

      取值为true时,无需配置caFilePath

    • false:表示验证,检查KMS实例SSL证书的有效性。

    正式生产环境中,请将该值设置为false。

    caFilePath

    KMS实例CA证书文件的绝对路径或相对路径。

    KMS实例CA证书,用于检查KMS实例SSL证书的有效性。例如:检查KMS实例SSL证书是否由对应的CA中心签发、是否在有效期内、以及对应的域名是否为KMS实例的域名地址(endpoint)。

    访问实例管理页面,在实例详情页面,单击实例CA证书区域的下载

    获取凭据值示例代码如下,请将示例代码中的#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的方式来实现身份验证为例。

    获取凭据值示例代码如下,请将示例代码中的#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配置文件选其中一种即可。

    环境变量

    • 方式一:通过环境变量获取ClientKey凭证口令

      参数

      参数值

      cache_client_dkms_config_info

      参数值格式为[{"regionId":"<your dkms regionId >","endpoint":"<your dkms endpoint>","passwordFromEnvVariable":"<YOUR_PASSWORD_ENV_VARIABLE>","clientKeyFile":"<your ClientKey file path>","ignoreSslCerts":false,"caFilePath":"<your CA certificate file path>"}]

      该方式您还需要将ClientKey的凭证口令(ClientKeyPassword)的内容配置到环境变量中,变量名称由您自定义,配置完成后将<YOUR_PASSWORD_ENV_VARIABLE>替换为变量名称。

      以Linux操作系统为例,示例如下:

      export cache_client_dkms_config_info=[{"regionId":"cn-hangzhou","endpoint":"kst-hzz634e67d126u9p9****.cryptoservice.kms.aliyuncs.com","passwordFromEnvVariable":"passwordFromEnvVariable","clientKeyFile":"C:\RamSecretPlugin\src\main\resources\clientKey_KAAP.json","ignoreSslCerts":false,"caFilePath":"C:\RamSecretPlugin\src\main\resources\PrivateKmsCA_kst-hzz634e67d126u9p9****.pem"}]
    • 方式二:通过文件获取ClientKey凭证口令

      ClientKey的凭证口令(ClientKeyPassword)下载后文件名默认为clientKey_****_Password.txt,您也可以修改文件名称,但需要将cache_client_dkms_config_info取值中<your Client Key file path>替换为修改后的文件路径。

      参数

      参数值

      cache_client_dkms_config_info

      参数值格式为:[{"regionId":"<your dkms regionId >","endpoint":"<your dkms endpoint>","passwordFromFilePath":"< your password file path >","clientKeyFile":"<your Client Key file path>","ignoreSslCerts":false,"caFilePath":"<your CA certificate file path>"}]

      以Linux操作系统为例,示例为:

      export cache_client_dkms_config_info=[{"regionId":"cn-hangzhou","endpoint":"kst-hzz634e67d126u9p9****.cryptoservice.kms.aliyuncs.com","passwordFromFilePath":"C:\RamSecretPlugin\src\main\resources\clientKeyPassword.txt","clientKeyFile":"C:\RamSecretPlugin\src\main\resources\clientKey_KAAP.json","ignoreSslCerts":false,"caFilePath":"C:\RamSecretPlugin\src\main\resources\PrivateKmsCA_kst-hzz634e67d126u9p9****.pem"}]

    各配置项说明:

    配置项

    配置项含义

    说明

    regionId

    KMS实例所在地域ID。

    具体的地域ID,请参见地域和接入地址

    endpoint

    KMS实例的域名地址,格式为{实例ID}.kms.aliyuncs.com

    访问实例管理页面,在实例详情页面查看实例VPC地址,即endpoint。

    clientKeyFile

    ClientKey文件(JSON格式)的绝对路径或相对路径。

    • ClientKey文件:在应用接入点AAP中创建ClientKey时下载的应用身份凭证内容(ClientKeyContent),下载后文件名默认为ClientKey_******.json。

    • 凭证口令:在应用接入点AAP中创建ClientKey时下载的凭证口令(ClientKeyPassword),下载后文件名默认为ClientKey_******_password.txt。

    重要

    ClientKey文件和凭证口令是一一对应的,仅支持您在创建ClientKey时获取。如果您在创建时未保存,则需要在应用接入点AAP中重新创建ClientKey。更多详细内容,请参见创建应用接入点

    passwordFromFilePathpasswordFromEnvVariable

    • passwordFromFilePath:从文件中获取凭证口令,取值为文件的绝对路径或相对路径。您需要将凭证口令保存到文件中。

    • passwordFromEnvVariable:从环境变量获取凭证口令,取值为环境变量名称。您需要将凭证口令配置到环境变量中。

    ignoreSslCerts

    是否忽略KMS实例SSL证书的有效性检查。KMS实例内置SSL证书,使用SSL/TLS协议用于身份验证和加密通信。取值:

    • true:表示忽略,不检查KMS实例SSL证书的有效性。

      说明

      取值为true时,无需配置caFilePath

    • false:表示验证,检查KMS实例SSL证书的有效性。

    正式生产环境中,请将该值设置为false。

    caFilePath

    KMS实例CA证书文件的绝对路径或相对路径。

    KMS实例CA证书,用于检查KMS实例SSL证书的有效性。例如:检查KMS实例SSL证书是否由对应的CA中心签发、是否在有效期内、以及对应的域名是否为KMS实例的域名地址(endpoint)。

    访问实例管理页面,在实例详情页面,单击实例CA证书区域的下载

    secretsmanager.properties配置文件

    配置文件名称固定为secretsmanager.properties

    参数配置项为cache_client_dkms_config_infocache_client_dkms_config_info采用JSON数组格式,您可配置多个KMS实例,以支持业务获得更高标准的服务可用性保障和容灾能力。

    • 方式一:通过环境变量获取ClientKey凭证口令

      配置文件内容为:

      cache_client_dkms_config_info=[{"regionId":"<your dkms regionId >","endpoint":"<your dkms endpoint>","passwordFromEnvVariable":"<YOUR_PASSWORD_ENV_VARIABLE>","clientKeyFile":"<your ClientKey file path>","ignoreSslCerts":false,"caFilePath":"<your CA certificate file path>"}]

      该方式您还需要将ClientKey的凭证口令(ClientKeyPassword)的内容配置到环境变量中,变量名称由您自定义,配置完成后将<YOUR_PASSWORD_ENV_VARIABLE>替换为变量名称。示例如下:

      cache_client_dkms_config_info=[{"regionId":"cn-hangzhou","endpoint":"kst-hzz634e67d126u9p9****.cryptoservice.kms.aliyuncs.com","passwordFromEnvVariable":"passwordFromEnvVariable","clientKeyFile":"C:\RamSecretPlugin\src\main\resources\clientKey_KAAP.json","ignoreSslCerts":false,"caFilePath":"C:\RamSecretPlugin\src\main\resources\PrivateKmsCA_kst-hzz634e67d126u9p9****.pem"}]
    • 方式二:通过文件获取ClientKey凭证口令

      ClientKey的凭证口令(ClientKeyPassword)下载后文件名默认为clientKey_****_Password.txt,您也可以修改文件名称,但需要将cache_client_dkms_config_info取值中<your Client Key file path>替换为修改后的文件路径。

      配置文件内容为:

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

      示例如下:

      cache_client_dkms_config_info=[{"regionId":"cn-hangzhou","endpoint":"kst-hzz634e67d126u9p9****.cryptoservice.kms.aliyuncs.com","passwordFromFilePath":"C:\RamSecretPlugin\src\main\resources\clientKeyPassword.txt","clientKeyFile":"C:\RamSecretPlugin\src\main\resources\clientKey_KAAP.json","ignoreSslCerts":false,"caFilePath":"C:\RamSecretPlugin\src\main\resources\PrivateKmsCA_kst-hzz634e67d126u9p9****.pem"}]

    各配置项说明:

    配置项

    配置项含义

    说明

    regionId

    KMS实例所在地域ID。

    具体的地域ID,请参见地域和接入地址

    endpoint

    KMS实例的域名地址,格式为{实例ID}.kms.aliyuncs.com

    访问实例管理页面,在实例详情页面查看实例VPC地址,即endpoint。

    clientKeyFile

    ClientKey文件(JSON格式)的绝对路径或相对路径。

    • ClientKey文件:在应用接入点AAP中创建ClientKey时下载的应用身份凭证内容(ClientKeyContent),下载后文件名默认为ClientKey_******.json。

    • 凭证口令:在应用接入点AAP中创建ClientKey时下载的凭证口令(ClientKeyPassword),下载后文件名默认为ClientKey_******_password.txt。

    重要

    ClientKey文件和凭证口令是一一对应的,仅支持您在创建ClientKey时获取。如果您在创建时未保存,则需要在应用接入点AAP中重新创建ClientKey。更多详细内容,请参见创建应用接入点

    passwordFromFilePathpasswordFromEnvVariable

    • passwordFromFilePath:从文件中获取凭证口令,取值为文件的绝对路径或相对路径。您需要将凭证口令保存到文件中。

    • passwordFromEnvVariable:从环境变量获取凭证口令,取值为环境变量名称。您需要将凭证口令配置到环境变量中。

    ignoreSslCerts

    是否忽略KMS实例SSL证书的有效性检查。KMS实例内置SSL证书,使用SSL/TLS协议用于身份验证和加密通信。取值:

    • true:表示忽略,不检查KMS实例SSL证书的有效性。

      说明

      取值为true时,无需配置caFilePath

    • false:表示验证,检查KMS实例SSL证书的有效性。

    正式生产环境中,请将该值设置为false。

    caFilePath

    KMS实例CA证书文件的绝对路径或相对路径。

    KMS实例CA证书,用于检查KMS实例SSL证书的有效性。例如:检查KMS实例SSL证书是否由对应的CA中心签发、是否在有效期内、以及对应的域名是否为KMS实例的域名地址(endpoint)。

    访问实例管理页面,在实例详情页面,单击实例CA证书区域的下载

    获取凭据值示例代码如下,请将示例代码中的#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的方式来实现身份验证为例。

    获取凭据值示例代码如下,请将示例代码中的#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配置文件选其中一种即可。

    环境变量

    • 方式一:通过环境变量获取ClientKey凭证口令

      参数

      参数值

      cache_client_dkms_config_info

      参数值格式为[{"regionId":"<your dkms regionId >","endpoint":"<your dkms endpoint>","passwordFromEnvVariable":"<YOUR_PASSWORD_ENV_VARIABLE>","clientKeyFile":"<your ClientKey file path>","ignoreSslCerts":false,"caFilePath":"<your CA certificate file path>"}]

      该方式您还需要将ClientKey的凭证口令(ClientKeyPassword)的内容配置到环境变量中,变量名称由您自定义,配置完成后将<YOUR_PASSWORD_ENV_VARIABLE>替换为变量名称。

      以Linux操作系统为例,示例如下:

      export cache_client_dkms_config_info=[{"regionId":"cn-hangzhou","endpoint":"kst-hzz634e67d126u9p9****.cryptoservice.kms.aliyuncs.com","passwordFromEnvVariable":"passwordFromEnvVariable","clientKeyFile":"C:\RamSecretPlugin\src\main\resources\clientKey_KAAP.json","ignoreSslCerts":false,"caFilePath":"C:\RamSecretPlugin\src\main\resources\PrivateKmsCA_kst-hzz634e67d126u9p9****.pem"}]
    • 方式二:通过文件获取ClientKey凭证口令

      ClientKey的凭证口令(ClientKeyPassword)下载后文件名默认为clientKey_****_Password.txt,您也可以修改文件名称,但需要将cache_client_dkms_config_info取值中<your Client Key file path>替换为修改后的文件路径。

      参数

      参数值

      cache_client_dkms_config_info

      参数值格式为:[{"regionId":"<your dkms regionId >","endpoint":"<your dkms endpoint>","passwordFromFilePath":"< your password file path >","clientKeyFile":"<your Client Key file path>","ignoreSslCerts":false,"caFilePath":"<your CA certificate file path>"}]

      以Linux操作系统为例,示例为:

      export cache_client_dkms_config_info=[{"regionId":"cn-hangzhou","endpoint":"kst-hzz634e67d126u9p9****.cryptoservice.kms.aliyuncs.com","passwordFromFilePath":"C:\RamSecretPlugin\src\main\resources\clientKeyPassword.txt","clientKeyFile":"C:\RamSecretPlugin\src\main\resources\clientKey_KAAP.json","ignoreSslCerts":false,"caFilePath":"C:\RamSecretPlugin\src\main\resources\PrivateKmsCA_kst-hzz634e67d126u9p9****.pem"}]

    各配置项说明:

    配置项

    配置项含义

    说明

    regionId

    KMS实例所在地域ID。

    具体的地域ID,请参见地域和接入地址

    endpoint

    KMS实例的域名地址,格式为{实例ID}.kms.aliyuncs.com

    访问实例管理页面,在实例详情页面查看实例VPC地址,即endpoint。

    clientKeyFile

    ClientKey文件(JSON格式)的绝对路径或相对路径。

    • ClientKey文件:在应用接入点AAP中创建ClientKey时下载的应用身份凭证内容(ClientKeyContent),下载后文件名默认为ClientKey_******.json。

    • 凭证口令:在应用接入点AAP中创建ClientKey时下载的凭证口令(ClientKeyPassword),下载后文件名默认为ClientKey_******_password.txt。

    重要

    ClientKey文件和凭证口令是一一对应的,仅支持您在创建ClientKey时获取。如果您在创建时未保存,则需要在应用接入点AAP中重新创建ClientKey。更多详细内容,请参见创建应用接入点

    passwordFromFilePathpasswordFromEnvVariable

    • passwordFromFilePath:从文件中获取凭证口令,取值为文件的绝对路径或相对路径。您需要将凭证口令保存到文件中。

    • passwordFromEnvVariable:从环境变量获取凭证口令,取值为环境变量名称。您需要将凭证口令配置到环境变量中。

    ignoreSslCerts

    是否忽略KMS实例SSL证书的有效性检查。KMS实例内置SSL证书,使用SSL/TLS协议用于身份验证和加密通信。取值:

    • true:表示忽略,不检查KMS实例SSL证书的有效性。

      说明

      取值为true时,无需配置caFilePath

    • false:表示验证,检查KMS实例SSL证书的有效性。

    正式生产环境中,请将该值设置为false。

    caFilePath

    KMS实例CA证书文件的绝对路径或相对路径。

    KMS实例CA证书,用于检查KMS实例SSL证书的有效性。例如:检查KMS实例SSL证书是否由对应的CA中心签发、是否在有效期内、以及对应的域名是否为KMS实例的域名地址(endpoint)。

    访问实例管理页面,在实例详情页面,单击实例CA证书区域的下载

    secretsmanager.properties配置文件

    配置文件名称固定为secretsmanager.properties

    参数配置项为cache_client_dkms_config_infocache_client_dkms_config_info采用JSON数组格式,您可配置多个KMS实例,以支持业务获得更高标准的服务可用性保障和容灾能力。

    • 方式一:通过环境变量获取ClientKey凭证口令

      配置文件内容为:

      cache_client_dkms_config_info=[{"regionId":"<your dkms regionId >","endpoint":"<your dkms endpoint>","passwordFromEnvVariable":"<YOUR_PASSWORD_ENV_VARIABLE>","clientKeyFile":"<your ClientKey file path>","ignoreSslCerts":false,"caFilePath":"<your CA certificate file path>"}]

      该方式您还需要将ClientKey的凭证口令(ClientKeyPassword)的内容配置到环境变量中,变量名称由您自定义,配置完成后将<YOUR_PASSWORD_ENV_VARIABLE>替换为变量名称。示例如下:

      cache_client_dkms_config_info=[{"regionId":"cn-hangzhou","endpoint":"kst-hzz634e67d126u9p9****.cryptoservice.kms.aliyuncs.com","passwordFromEnvVariable":"passwordFromEnvVariable","clientKeyFile":"C:\RamSecretPlugin\src\main\resources\clientKey_KAAP.json","ignoreSslCerts":false,"caFilePath":"C:\RamSecretPlugin\src\main\resources\PrivateKmsCA_kst-hzz634e67d126u9p9****.pem"}]
    • 方式二:通过文件获取ClientKey凭证口令

      ClientKey的凭证口令(ClientKeyPassword)下载后文件名默认为clientKey_****_Password.txt,您也可以修改文件名称,但需要将cache_client_dkms_config_info取值中<your Client Key file path>替换为修改后的文件路径。

      配置文件内容为:

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

      示例如下:

      cache_client_dkms_config_info=[{"regionId":"cn-hangzhou","endpoint":"kst-hzz634e67d126u9p9****.cryptoservice.kms.aliyuncs.com","passwordFromFilePath":"C:\RamSecretPlugin\src\main\resources\clientKeyPassword.txt","clientKeyFile":"C:\RamSecretPlugin\src\main\resources\clientKey_KAAP.json","ignoreSslCerts":false,"caFilePath":"C:\RamSecretPlugin\src\main\resources\PrivateKmsCA_kst-hzz634e67d126u9p9****.pem"}]

    各配置项说明:

    配置项

    配置项含义

    说明

    regionId

    KMS实例所在地域ID。

    具体的地域ID,请参见地域和接入地址

    endpoint

    KMS实例的域名地址,格式为{实例ID}.kms.aliyuncs.com

    访问实例管理页面,在实例详情页面查看实例VPC地址,即endpoint。

    clientKeyFile

    ClientKey文件(JSON格式)的绝对路径或相对路径。

    • ClientKey文件:在应用接入点AAP中创建ClientKey时下载的应用身份凭证内容(ClientKeyContent),下载后文件名默认为ClientKey_******.json。

    • 凭证口令:在应用接入点AAP中创建ClientKey时下载的凭证口令(ClientKeyPassword),下载后文件名默认为ClientKey_******_password.txt。

    重要

    ClientKey文件和凭证口令是一一对应的,仅支持您在创建ClientKey时获取。如果您在创建时未保存,则需要在应用接入点AAP中重新创建ClientKey。更多详细内容,请参见创建应用接入点

    passwordFromFilePathpasswordFromEnvVariable

    • passwordFromFilePath:从文件中获取凭证口令,取值为文件的绝对路径或相对路径。您需要将凭证口令保存到文件中。

    • passwordFromEnvVariable:从环境变量获取凭证口令,取值为环境变量名称。您需要将凭证口令配置到环境变量中。

    ignoreSslCerts

    是否忽略KMS实例SSL证书的有效性检查。KMS实例内置SSL证书,使用SSL/TLS协议用于身份验证和加密通信。取值:

    • true:表示忽略,不检查KMS实例SSL证书的有效性。

      说明

      取值为true时,无需配置caFilePath

    • false:表示验证,检查KMS实例SSL证书的有效性。

    正式生产环境中,请将该值设置为false。

    caFilePath

    KMS实例CA证书文件的绝对路径或相对路径。

    KMS实例CA证书,用于检查KMS实例SSL证书的有效性。例如:检查KMS实例SSL证书是否由对应的CA中心签发、是否在有效期内、以及对应的域名是否为KMS实例的域名地址(endpoint)。

    访问实例管理页面,在实例详情页面,单击实例CA证书区域的下载

    获取凭据值示例代码如下,请将示例代码中的#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的方式来实现身份验证为例。

    获取凭据值示例代码如下,请将示例代码中的#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)
    	}
    }