Todos os produtos
Search
Central de documentação

Key Management Service:Secrets Manager Client

Última atualização: Jul 14, 2026

O Secrets Manager Client é um wrapper personalizado desenvolvido sobre a KMS OpenAPI e as APIs de instância do KMS. Ele oferece recursos integrados de cache e atualização de segredos para integração com aplicações, melhorando a estabilidade dos negócios e simplificando o fluxo de trabalho dos desenvolvedores. O cliente permite recuperar valores de segredo para todos os tipos de segredo.

SDK do Secrets Manager Client

O SDK do Secrets Manager Client encapsula as APIs do KMS e incorpora melhores práticas e padrões de projeto para cache de segredos, facilitando a integração do gerenciamento de segredos aos seus sistemas de aplicação. O SDK oferece as seguintes vantagens:

  • Integre o gerenciamento de segredos às suas aplicações com uma única linha de código para ler valores de segredo.

  • Funcionalidade integrada de cache e atualização de segredos na sua aplicação.

  • Lógica de nova tentativa automática para erros de API, com tratamento inteligente de erros no lado do servidor.

  • Arquitetura baseada em plugins que permite personalizar o cache, a lógica de nova tentativa e outros módulos.

Nota
  • A Alibaba Cloud também fornece o SDK de Instância do KMS e o Alibaba Cloud SDK, que igualmente podem ser usados para recuperar valores de segredo. Para mais informações, consulte Referências de SDK.

  • Para executar operações de gerenciamento em segredos, use o Alibaba Cloud SDK.

Versões do SDK

O SDK 2.0 já está disponível. Recomendamos o uso do SDK 2.0. A tabela a seguir compara o SDK 1.0 e o SDK 2.0.

  • Suporte a credenciais

    Tipo de credencial

    SDK 1.0

    SDK 2.0

    AccessKey

    Supported

    Supported

    OIDC Role Arn

    Unsupported

    Supported

    ECS RAM Role

    Supported

    Supported

    RAM Role Arn

    Supported

    Supported

    Nota

    O SDK 2.0 não suporta a leitura de informações de RAM Role ARN a partir de variáveis de ambiente e arquivos de configuração padrão. Use a abordagem codificada diretamente no código (hard-coded). Se precisar desse recurso, entre em contato com o suporte técnico.

    Client Key

    Supported

    Unsupported

    Cadeia de provedor de credenciais padrão

    Unsupported

    Supported

  • Recursos de segurança

    Recurso

    SDK 1.0

    SDK 2.0

    Certificado CA integrado

    Unsupported

    Supported

Fluxo de autenticação do SDK

O Secrets Manager Client realiza a autenticação usando credenciais de acesso. O processo varia ligeiramente dependendo do tipo de gateway ao qual você se conecta. O SDK detecta automaticamente os parâmetros configurados e seleciona o gateway apropriado. Com esse mecanismo flexível de autenticação, não é necessário configure manualmente o tipo de gateway. As etapas de autenticação são as seguintes:

  1. Defina variáveis de ambiente ou prepare o arquivo de configuração, garantindo que todas as informações de credenciais necessárias estejam incluídas. Os parâmetros diferem entre gateways dedicados e gateways compartilhados.

  2. Inicialize o cliente. O SDK lê automaticamente a configuração e identifica o tipo de gateway.

  3. Após a conclusão da autenticação, prossiga com as operações do gateway.

Escopo

  • Tipos de segredo suportados: segredo genérico, segredo RAM, segredo ECS, segredo de banco de dados.

  • Linguagens de programação suportadas: Java (Java 8 ou posterior), Python, Go, Node.js.

Instale o Secrets Manager Client

As instruções a seguir mostram como instale o SDK 2.0. Para instalação do SDK 1.0, consulte os respectivos repositórios de código-fonte do SDK.

Java

Instale o Secrets Manager Client no seu projeto usando Maven.

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>alibabacloud-secretsmanager-client-v2</artifactId>
    <version>x.x.x</version>
</dependency>
          
Importante

Use a versão mais recente do SDK 2.0 para obter os recursos e otimizações mais atuais. Visite alibabacloud-secretsmanager-client-java-v2 para ver códigos de exemplo e o código-fonte do SDK 2.0. Para o SDK 1.0, visite alibabacloud-secretsmanager-client-java.

Python

Instale o Secrets Manager Client usando pip.

# If the following command fails, replace pip with pip3
pip install alibabacloud_secretsmanager_client_v2
          
Importante
  • A instalação do SDK V2 do Secrets Manager Client para Python requer Python 3.7 ou posterior. Execute python3 --version para verificar sua versão atual. Se sua versão for inferior a 3.7, atualize o Python antes de executar o comando de instalação.

  • Utilize o SDK 2.0 para aproveitar os recursos e otimizações mais recentes. Acesse aliyun-secretsmanager-client-python-v2 para códigos de exemplo e o código-fonte do SDK 2.0. Para o SDK 1.0, acesse aliyun-secretsmanager-client-python.

Go

Instale o Secrets Manager Client usando o comando go get.

go get -u github.com/aliyun/alibabacloud-secretsmanager-client-go-v2          
Importante
  • Para Go, a dependência alibaba-cloud-sdk-go deve ser anterior à V1.63.0. Verifique seu arquivo go.mod para confirme a versão e evitar problemas de compatibilidade.

  • Utilize o SDK 2.0 para aproveitar os recursos e otimizações mais recentes. Acesse alibabacloud-secretsmanager-client-go-v2 para códigos de exemplo e o código-fonte do SDK 2.0. Para o SDK 1.0, acesse aliyun-secretsmanager-client-go.

Node.js

Instale o Secrets Manager Client usando npm ou yarn.

  • npm

    npm install alibabacloud-secretsmanager-client-v2
  • yarn

    yarn add alibabacloud-secretsmanager-client-v2
Importante
  • A instalação do SDK V2 do Secrets Manager Client requer Node.js 16.0.0 ou posterior.

  • Utilize o SDK 2.0 para aproveitar os recursos e otimizações mais recentes. Acesse alibabacloud-secretsmanager-client-nodejs-v2 para códigos de exemplo e o código-fonte do SDK 2.0.

Configure credenciais de acesso

ECS RAM Role

Etapa 1: Crie uma função RAM e configure permissões

Uma função RAM de instância ECS permite obter uma credencial de acesso temporária (token STS) de dentro de uma instância ECS para chamar operações da API do KMS, sem a necessidade de configure um par de AccessKey.

Para mais informações, consulte Funções RAM de instância.

  1. Faça login no console RAM e crie uma função RAM para um service confiável da Alibaba Cloud.

    • Tipo de Entidade Confiável: Selecione Elastic Compute Service.

    • Entidade confiável: Selecione Elastic Compute Service (ECS).

  2. Conceda permissões à função RAM para acessar o KMS.

    • Método 1: Configure uma política baseada em identidade

      Na coluna Actions da função RAM, clique em Grant Permission para anexar uma política de permissão de sistema integrada do KMS à função RAM. Para mais informações sobre as políticas de permissão de sistema do KMS, consulte Políticas de sistema para KMS.

      Nota

      Você também pode crie políticas de permissão personalizadas. Para mais informações, consulte Crie uma política personalizada.

    • Método 2: Configure uma política baseada em recursos

      O KMS suporta políticas baseadas em recursos que concedem permissões de acesso para chaves e segredos individuais. Use essas políticas para controlar quais contas Alibaba Cloud, usuários RAM e funções RAM podem gerencie ou usar chaves e segredos do KMS. Para mais informações, consulte Políticas de chave e Políticas de segredo.

  3. Faça login no console ECS e anexe a função RAM a uma instância ECS.image

Etapa 2: Defina variáveis de ambiente ou arquivo de configuração

O SDK suporta os dois métodos a seguir para obter credenciais de acesso:

  • Variáveis de ambiente: Os métodos de configuração variam conforme o sistema operacional. Para mais informações, consulte defina credenciais de acesso em variáveis de ambiente. .

    Aviso

    Não modifique os nomes dos parâmetros. Caso contrário, o SDK não conseguirá reconhecê-los.

  • Arquivo de configuração: O arquivo de configuração padrão é secretsmanager.properties (o nome do arquivo não pode ser alterado). Para garantir que sua aplicação carregue o arquivo de configuração corretamente, coloque-o no diretório de configuração apropriado. Os diretórios de configuração comuns para diferentes linguagens incluem:

    • Java: Coloque o arquivo de configuração no diretório src/main/resources para que seja incluído automaticamente no classpath durante a compilação.

    • Go: Coloque o arquivo de configuração no diretório raiz do projeto ou em um diretório config dedicado e carregue-o através do código.

    • Python: Coloque o arquivo de configuração no diretório do projeto ou em um diretório config específico e use um método apropriado (como os.path ou pkg_resources) para carregá-lo.

  • Se você usar um arquivo de configuração personalizado, deverá especifique o caminho do arquivo (#customConfigFileName#) durante a inicialização do cliente.

Arquivo de configuração

  • Gateway dedicado

    # Credential type
    credentials_type=ecs_ram_role
    # ECS RAM Role name
    credentials_role_name=#credentials_role_name#
    # Associated KMS region and instance endpoint
    cache_client_region_id=[{"regionId":"<regionId>","endpoint":"<your_kms_instance_id>.cryptoservice.kms.aliyuncs.com"}]
                
  • Gateway compartilhado

    # Credential type
    credentials_type=ecs_ram_role
    # ECS RAM Role name
    credentials_role_name=#credentials_role_name#
    # Associated KMS region
    cache_client_region_id=[{"regionId":"#regionId#"}]
                
  • Gateway compartilhado (VPC)

    # Credential type
    credentials_type=ecs_ram_role
    # ECS RAM Role name
    credentials_role_name=#credentials_role_name#
    # Associated KMS region and VPC Endpoint
    cache_client_region_id=[{"regionId":"#regionId#","endpoint":"kms-vpc.#regionId#.aliyuncs.com","vpc":"true"}]
                

Variáveis de ambiente

Parâmetro

Valor

credentials_type

Valor fixo: ecs_ram_role.

credentials_role_name

O nome da função RAM.

cache_client_region_id

  • Gateway dedicado: [{"regionId":"<regionId>","endpoint":"<your_kms_instance_id>.cryptoservice.kms.aliyuncs.com"}].

  • Gateway compartilhado: [{"regionId":"<your_region_id>"}].

  • Gateway compartilhado (VPC): [{"regionId":"<your_region_id>","endpoint":"kms-vpc.<your_region_id>.aliyuncs.com","vpc":"true"}].

    Importante
    • Substitua <regionId> pelo ID real da região e <your_kms_instance_id> pelo ID real da instância.

    • No Linux, ao defina variáveis de ambiente com o comando export, use caracteres de escape, por exemplo: [{\"regionId\":\"<your_region_id>"}].

AccessKey

Etapa 1: Crie uma AccessKey e configure permissões

Aviso

Por padrão, uma conta Alibaba Cloud tem permissões de administrador para todos os recursos, o que não pode ser modificado. Para garantir a segurança dos recursos, recomendamos que você use um usuário RAM para crie um par de AccessKey e conceda apenas as permissões necessárias.

  1. Faça login no console RAM. Na página Users, clique em no nome do usuário RAM de destino.

  2. Na aba Authentication, na seção AccessKey, clique em em Create AccessKey e siga as instruções na tela.

  3. Conceda permissões ao usuário RAM para acessar o KMS.

    • Método 1: Configure uma política baseada em identidade

      Na coluna Actions do usuário RAM, clique em Grant Permission para anexar uma política de permissão de sistema integrada do KMS ao usuário RAM. Para mais informações sobre as políticas de permissão de sistema do KMS, consulte Políticas de sistema para KMS.

      Nota

      Você também pode crie políticas de permissão personalizadas. Para mais informações, consulte Crie uma política personalizada.

    • Método 2: Configure uma política baseada em recursos

      O KMS suporta políticas baseadas em recursos que concedem permissões de acesso para chaves e segredos individuais. Use essas políticas para controlar quais contas Alibaba Cloud, usuários RAM e funções RAM podem gerencie ou usar chaves e segredos do KMS. Para mais informações, consulte Políticas de chave e Políticas de segredo.

Etapa 2: Defina variáveis de ambiente ou arquivo de configuração

O SDK suporta os dois métodos a seguir para obter credenciais de acesso:

  • Variáveis de ambiente: Os métodos de configuração variam conforme o sistema operacional. Para mais informações, consulte defina credenciais de acesso em variáveis de ambiente. .

    Aviso

    Não modifique os nomes dos parâmetros. Caso contrário, o SDK não conseguirá reconhecê-los.

  • Arquivo de configuração: O arquivo de configuração padrão é secretsmanager.properties (o nome do arquivo não pode ser alterado). Para garantir que sua aplicação carregue o arquivo de configuração corretamente, coloque-o no diretório de configuração apropriado. Os diretórios de configuração comuns para diferentes linguagens incluem:

    • Java: Coloque o arquivo de configuração no diretório src/main/resources para que seja incluído automaticamente no classpath durante a compilação.

    • Go: Coloque o arquivo de configuração no diretório raiz do projeto ou em um diretório config dedicado e carregue-o através do código.

    • Python: Coloque o arquivo de configuração no diretório do projeto ou em um diretório config específico e use um método apropriado (como os.path ou pkg_resources) para carregá-lo.

  • Se você usar um arquivo de configuração personalizado, deverá especifique o caminho do arquivo (#customConfigFileName#) durante a inicialização do cliente.

Arquivo de configuração

  • Gateway dedicado

    # Credential type
    credentials_type=ak
    # AccessKey ID
    credentials_access_key_id=#access_key_id#
    # AccessKey Secret
    credentials_access_secret=#access_key_secret#
    # Use the following configuration for dedicated KMS instance gateway
    cache_client_region_id=[{"regionId":"<regionId>","endpoint":"<your_kms_instance_id>.cryptoservice.kms.aliyuncs.com"}]
                
  • Gateway compartilhado

    # Credential type
    credentials_type=ak
    # AccessKey ID
    credentials_access_key_id=#access_key_id#
    # AccessKey Secret
    credentials_access_secret=#access_key_secret#
    # Associated KMS region
    cache_client_region_id=[{"regionId":"#regionId#"}]
                
  • Gateway compartilhado (VPC)

    # Credential type
    credentials_type=ak
    # AccessKey ID
    credentials_access_key_id=#access_key_id#
    # AccessKey Secret
    credentials_access_secret=#access_key_secret#
    # Associated KMS region and VPC Endpoint
    cache_client_region_id=[{"regionId":"#regionId#","endpoint":"kms-vpc.#regionId#.aliyuncs.com","vpc":"true"}]
                

Variáveis de ambiente

Parâmetro

Valor

credentials_type

Valor fixo: ak.

credentials_access_key_id

O AccessKey ID.

credentials_access_secret

O AccessKey Secret.

cache_client_region_id

  • Gateway dedicado: [{"regionId":"<regionId>","endpoint":"<your_kms_instance_id>.cryptoservice.kms.aliyuncs.com"}].

  • Gateway compartilhado: [{"regionId":"<your_region_id>"}].

  • Gateway compartilhado (VPC): [{"regionId":"<your_region_id>","endpoint":"kms-vpc.<your_region_id>.aliyuncs.com","vpc":"true"}].

    Importante
    • Substitua <regionId> pelo ID real da região e <your_kms_instance_id> pelo ID real da instância.

    • No Linux, ao defina variáveis de ambiente com o comando export, use caracteres de escape, por exemplo: [{\"regionId\":\"<your_region_id>"}].

OIDC Role ARN

Nota

Apenas o SDK 2.0 suporta credenciais OIDC Role ARN. O SDK 1.0 não oferece esse suporte.

Etapa 1: Crie um OIDC Role ARN e configure permissões

  1. Crie um provedor OIDC

    1. Faça login no console RAM como administrador RAM. Na página SSO, clique em na aba Role-based SSO.

    2. Na aba OIDC, clique em Create IdP.

    3. Na página Create IdP, configure as informações do provedor. Para mais informações, consulte Gerencie provedores OIDC.

  2. Obter e salve as informações de identidade OIDC (ARN e Client ID)

    1. Acesse a página SSO e, na aba IdP, clique em no nome do provedor OIDC de destino.

    2. Na página de detalhes do IdP, visualize o ARN e o Client ID.

  3. Crie e autorize uma função RAM para o provedor OIDC

    1. Faça login no console RAM como administrador RAM e acesse a página Identities > Roles.

    2. Clique em Create Role. No canto superior direito da página de criação, clique em em Switch to Policy Editor.

    3. No editor de políticas, especifique o provedor OIDC. Selecione o editor visual e configure os parâmetros conforme descrito abaixo.

      Nota

      Para informações sobre outros modos, consulte Crie uma função RAM para um provedor de identidade OIDC.

      1. Na seção Select Trusted Entity, selecione IdP.

      2. Na seção Edit Trust Policy, configure os seguintes parâmetros.

        • IdP Type: Selecione OIDC.

        • IdP: Selecione o provedor OIDC criado anteriormente.

  4. Conceder permissões à função RAM OIDC para acessar o KMS

    • Método 1: Configure uma política baseada em identidade

      Retorne à página de lista Identities > Roles e clique em Grant Permission na coluna Actions da função OIDC de destino para anexar diretamente uma política de permissão de sistema integrada do KMS à função RAM. Para mais informações sobre as políticas de permissão de sistema integradas do KMS, consulte Referência de política de permissão de sistema do Key Management Service.

      Nota

      Políticas de permissão personalizadas também são suportadas. Para mais informações, consulte Crie uma política personalizada.

    • Método 2: Configure uma política baseada em recursos

      O KMS suporta políticas baseadas em recursos que concedem permissões de acesso para chaves e segredos individuais. Use essas políticas para controlar quais contas Alibaba Cloud, usuários RAM e funções RAM podem gerencie ou usar chaves e segredos do KMS. Para mais informações, consulte Políticas de chave e Políticas de segredo.

  5. Obter o OIDC Role ARN de destino

    1. Na página Identities > Roles, clique em no nome da função de destino.

    2. Na página de detalhes da função, localize o OIDC Role ARN na seção ARN.

      Nota

      O Role ARN é o ARN da função RAM a ser assumida. O formato é acs:ram::$accountID:role/$roleName, onde $accountID é o ID da conta Alibaba Cloud e $roleName é o nome da função RAM.

  6. Emitir e salve o arquivo de token OIDC

    A Alibaba Cloud não suporta login OIDC direto pelo console, mas você pode concluir o processo de SSO OIDC programaticamente. A obtenção de um token OIDC envolve um fluxo OAuth, geralmente através de um processo OAuth 2.0 padrão do provedor de identidade OIDC (IdP).

    Por exemplo: quando uma aplicação é executada em um cluster ACK com RRSA ativado, o cluster cria e monta automaticamente o arquivo de token OIDC da conta de service correspondente para o pod da aplicação.

  7. Etapa 2: Defina variáveis de ambiente ou arquivo de configuração

    O SDK suporta os dois métodos a seguir para obter credenciais de acesso:

    • Variáveis de ambiente: Os métodos de configuração variam conforme o sistema operacional. Para mais informações, consulte defina credenciais de acesso em variáveis de ambiente. .

      Aviso

      Não modifique os nomes dos parâmetros. Caso contrário, o SDK não conseguirá reconhecê-los.

    • Arquivo de configuração: O arquivo de configuração padrão é secretsmanager.properties (o nome do arquivo não pode ser alterado). Para garantir que sua aplicação carregue o arquivo de configuração corretamente, coloque-o no diretório de configuração apropriado. Os diretórios de configuração comuns para diferentes linguagens incluem:

      • Java: Coloque o arquivo de configuração no diretório src/main/resources para que seja incluído automaticamente no classpath durante a compilação.

      • Go: Coloque o arquivo de configuração no diretório raiz do projeto ou em um diretório config dedicado e carregue-o através do código.

      • Python: Coloque o arquivo de configuração no diretório do projeto ou em um diretório config específico e use um método apropriado (como os.path ou pkg_resources) para carregá-lo.

    • Se você usar um arquivo de configuração personalizado, deverá especifique o caminho do arquivo (#customConfigFileName#) durante a inicialização do cliente.

    Arquivo de configuração

    • Gateway dedicado

      # Credential type
      credentials_type=oidc_role_arn
      # Role ARN (optional. If not specified, the Default credential provider chain is used)
      credentials_role_arn=<role_arn>
      # OIDC provider ARN (optional. If not specified, the Default credential provider chain is used)
      credentials_oidc_provider_arn=<oidc_provider_arn>
      # OIDC token file path (optional. If not specified, the Default credential provider chain is used)
      credentials_oidc_token_file_path=<oidc_token_file_path>
      # KMS region and instance endpoint
      cache_client_region_id=[{"regionId":"<regionId>","endpoint":"<your_kms_instance_id>.cryptoservice.kms.aliyuncs.com"}]            
    • Gateway compartilhado

      # Credential type
      credentials_type=oidc_role_arn
      # Role ARN (optional. If not specified, the Default credential provider chain is used)
      credentials_role_arn=<role_arn>
      # OIDC provider ARN (optional. If not specified, the Default credential provider chain is used)
      credentials_oidc_provider_arn=<oidc_provider_arn>
      # OIDC token file path (optional. If not specified, the Default credential provider chain is used)
      credentials_oidc_token_file_path=<oidc_token_file_path>
      # Associated KMS region
      cache_client_region_id=[{"regionId":"<regionId>"}]
                  
    • Gateway compartilhado (VPC)

      # Credential type
      credentials_type=oidc_role_arn
      # Role ARN (optional. If not specified, the Default credential provider chain is used)
      credentials_role_arn=<role_arn>
      # OIDC provider ARN (optional. If not specified, the Default credential provider chain is used)
      credentials_oidc_provider_arn=<oidc_provider_arn>
      # OIDC token file path (optional. If not specified, the Default credential provider chain is used)
      credentials_oidc_token_file_path=<oidc_token_file_path>
      # Associated KMS region and VPC Endpoint
      cache_client_region_id=[{"regionId":"#regionId#","endpoint":"kms-vpc.#regionId#.aliyuncs.com","vpc":"true"}]
                  

    Variáveis de ambiente

    Parâmetro

    Valor

    credentials_type

    Valor fixo: oidc_role_arn.

    credentials_role_arn

    O ARN da função RAM para o provedor de identidade OIDC. Opcional. Se não especificado, a Cadeia de provedor de credenciais padrão será usada.

    credentials_oidc_provider_arn

    O ARN do provedor de identidade OIDC. Opcional. Se não especificado, a Cadeia de provedor de credenciais padrão será usada.

    credentials_oidc_token_file_path

    O caminho relativo ou absoluto para o arquivo que armazena o token OIDC. Opcional. Se não especificado, a Cadeia de provedor de credenciais padrão será usada.

    cache_client_region_id

    • Gateway dedicado: [{"regionId":"<regionId>","endpoint":"<your_kms_instance_id>.cryptoservice.kms.aliyuncs.com"}].

    • Gateway compartilhado: [{"regionId":"<your_region_id>"}].

    • Gateway compartilhado (VPC): [{"regionId":"<your_region_id>","endpoint":"kms-vpc.<your_region_id>.aliyuncs.com","vpc":"true"}].

      Importante
      • Substitua <regionId> pelo ID real da região e <your_kms_instance_id> pelo ID real da instância.

      • No Linux, ao defina variáveis de ambiente com o comando export, use caracteres de escape, por exemplo: [{\"regionId\":\"<your_region_id>"}].

    AK+RamRoleArn

    Nota

    Apenas o SDK 1.0 suporta a leitura de informações de RAM Role ARN a partir de variáveis de ambiente e arquivos de configuração padrão. O SDK 2.0 não oferece esse suporte. Se precisar desse recurso com o SDK 2.0, entre em contato com o suporte técnico.

    Etapa 1: Crie um RAM Role ARN e configure permissões

    Usuários RAM ou serviços cloud podem assumir uma função para obter permissões temporárias (token STS) em vez de usar chaves de longo prazo, o que reduz o risco de vazamento de chaves. Por exemplo, em uma tarefa temporária de processamento de dados, um usuário RAM ou service cloud assume temporariamente uma função com um RamRoleArn específico. Após a conclusão da tarefa, as permissões da função são revogadas, minimizando o risco de exposição.

    1. Crie um par de AccessKey de usuário

      1. Faça login no console RAM. No painel de navegação à esquerda, escolha Identities > Users. Na página Users, clique em no nome do usuário RAM de destino.

      2. Anexe a política de sistema AliyunSTSAssumeRoleAccess ou uma política personalizada que inclua a ação sts:AssumeRole ao usuário RAM.

      3. Na aba Authentication, na seção AccessKey, clique em em Create AccessKey e siga as instruções na tela.

    2. Crie e autorize uma função RAM:

      1. No painel de navegação à esquerda, escolha Identities > Roles. Na página Roles, clique em Create Role. Para mais informações, consulte Crie uma função RAM.

      2. Conceda permissões à função RAM para acessar o KMS.

        • Método 1: Configure uma política baseada em identidade

          Na coluna Actions da função RAM, clique em Grant Permission para anexar uma política de permissão de sistema integrada do KMS à função RAM. Para mais informações sobre as políticas de permissão de sistema do KMS, consulte Políticas de sistema para KMS.

          Nota

          Você também pode crie políticas de permissão personalizadas. Para mais informações, consulte Crie uma política personalizada.

        • Método 2: Configure uma política baseada em recursos

          O KMS suporta políticas baseadas em recursos que concedem permissões de acesso para chaves e segredos individuais. Use essas políticas para controlar quais contas Alibaba Cloud, usuários RAM e funções RAM podem gerencie ou usar chaves e segredos do KMS. Para mais informações, consulte Políticas de chave e Políticas de segredo.

    3. Obtenha o RamRoleArn da função RAM de destino. Para mais informações, consulte Visualize as informações sobre uma função RAM.

      1. No painel de navegação à esquerda, escolha Identities > Roles. Na página Roles, clique em no nome da função de destino.

      2. Na página de detalhes da função, localize o RamRoleArn na seção ARN.

        Nota

        O RamRoleArn é o Alibaba Cloud Resource Name (ARN) da função RAM a ser assumida. O formato é acs:ram::$accountID:role/$roleName, onde $accountID é o ID da conta Alibaba Cloud e $roleName é o nome da função RAM.

    4. Etapa 2: Defina variáveis de ambiente ou arquivo de configuração

      O SDK suporta os dois métodos a seguir para obter credenciais de acesso:

      • Variáveis de ambiente: Os métodos de configuração variam conforme o sistema operacional. Para mais informações, consulte defina credenciais de acesso em variáveis de ambiente. .

        Aviso

        Não modifique os nomes dos parâmetros. Caso contrário, o SDK não conseguirá reconhecê-los.

      • Arquivo de configuração: O arquivo de configuração padrão é secretsmanager.properties (o nome do arquivo não pode ser alterado). Para garantir que sua aplicação carregue o arquivo de configuração corretamente, coloque-o no diretório de configuração apropriado. Os diretórios de configuração comuns para diferentes linguagens incluem:

        • Java: Coloque o arquivo de configuração no diretório src/main/resources para que seja incluído automaticamente no classpath durante a compilação.

        • Go: Coloque o arquivo de configuração no diretório raiz do projeto ou em um diretório config dedicado e carregue-o através do código.

        • Python: Coloque o arquivo de configuração no diretório do projeto ou em um diretório config específico e use um método apropriado (como os.path ou pkg_resources) para carregá-lo.

      • Se você usar um arquivo de configuração personalizado, deverá especifique o caminho do arquivo (#customConfigFileName#) durante a inicialização do cliente.

      Arquivo de configuração

      • Gateway dedicado

        # Credential type
        credentials_type=ram_role
        # Role session name
        credentials_role_session_name=#role_session_name#
        # Role ARN
        credentials_role_arn=#role_arn#
        # AccessKey ID
        credentials_access_key_id=#access_key_id#
        # AccessKey Secret
        credentials_access_secret=#access_key_secret#
        # Use the following configuration for dedicated KMS instance gateway
        cache_client_region_id=[{"regionId":"<regionId>","endpoint":"<your_kms_instance_id>.cryptoservice.kms.aliyuncs.com"}]          
      • Gateway compartilhado

        # Credential type
        credentials_type=ram_role
        # Role session name
        credentials_role_session_name=#role_session_name#
        # Role ARN
        credentials_role_arn=#role_arn#
        # AccessKey ID
        credentials_access_key_id=#access_key_id#
        # AccessKey Secret
        credentials_access_secret=#access_key_secret#
        # Associated KMS region
        cache_client_region_id=[{"regionId":"#regionId#"}]           
      • Gateway compartilhado (VPC)

        # Credential type
        credentials_type=ram_role
        # Role session name
        credentials_role_session_name=#role_session_name#
        # Role ARN
        credentials_role_arn=#role_arn#
        # AccessKey ID
        credentials_access_key_id=#access_key_id#
        # AccessKey Secret
        credentials_access_secret=#access_key_secret#
        # Associated KMS region and VPC Endpoint
        cache_client_region_id=[{"regionId":"#regionId#","endpoint":"kms-vpc.#regionId#.aliyuncs.com","vpc":"true"}]           

      Variáveis de ambiente

      Parâmetro

      Valor

      credentials_type

      ram_role ou sts

      credentials_role_session_name

      O nome da sessão da função RAM.

      credentials_role_arn

      O ARN da função RAM.

      credentials_access_key_id

      O AccessKey ID.

      credentials_access_secret

      O AccessKey Secret.

      cache_client_region_id

      • Gateway dedicado: [{"regionId":"<regionId>","endpoint":"<your_kms_instance_id>.cryptoservice.kms.aliyuncs.com"}].

      • Gateway compartilhado: [{"regionId":"<your_region_id>"}].

      • Gateway compartilhado (VPC): [{"regionId":"<your_region_id>","endpoint":"kms-vpc.<your_region_id>.aliyuncs.com","vpc":"true"}].

        Importante
        • Substitua <regionId> pelo ID real da região e <your_kms_instance_id> pelo ID real da instância.

        • No Linux, ao defina variáveis de ambiente com o comando export, use caracteres de escape, por exemplo: [{\"regionId\":\"<your_region_id>"}].

      ClientKey (Descontinuado)

      Nota

      Apenas o SDK 1.0 suporta o tipo de credencial ClientKey. O SDK 2.0 não oferece esse suporte.

      Gateway compartilhado

      Etapa 1: Crie uma ClientKey
      1. Faça login no console do Key Management Service. Na barra de navegação superior, selecione uma região. No painel de navegação à esquerda, escolha Application Access > Multi-Cloud Access (formerly AAP).

      2. (Opcional) Crie uma regra de rede.

        Nota

        Configure uma regra de rede para restringir o acesso por endereço IP de source é opcional. No entanto, recomendamos configure uma para maior segurança.

        1. Clique em na aba Network Access Rules e depois clique em Create Network Access Rule.

        2. No painel Create Network Access Rule, defina Network Type como Public, insira os Allowed Source IP Addresses e clique em em OK.

      3. Crie uma política de permissão.

        1. Clique em na aba Policies e depois clique em Create Policy.

        2. No painel Create Policy, configure os parâmetros para o gateway compartilhado conforme descrito abaixo e clique em OK.

          1. Scope: Shared KMS Gateway

          2. Accessible Resources: Selecione os segredos que deseja acessar.

          3. (Opcional) Network Access Rules: Selecione a regra de rede criada na etapa anterior.

      4. Crie um ponto de acesso à aplicação (AAP).

        1. Clique em na aba Application Access e depois clique em Create AAP.

        2. No painel Create AAP, defina Mode como Standard Creation e configure os parâmetros conforme descrito abaixo.

          Parâmetro

          Descrição

          Authentication Method

          Selecione ClientKey.

          Encryption Password

          Insira uma string de 8 a 64 caracteres que contenha dígitos, letras e caracteres especiais: ~!@#$%^&*?_-.

          Validity Period

          Importante

          Recomendamos defina o período de validade para um ano a fim de reduzir o risco de vazamentos da ClientKey. Certifique-se de rotacionar a ClientKey antes que ela expire para evitar interrupções de service. Para mais informações, consulte Rotacionar uma ClientKey.

          Policies

          Selecione a política de permissão criada na etapa anterior.

        3. Clique em OK. O navegador baixará automaticamente a ClientKey. A ClientKey inclui os seguintes arquivos:

          • Credential (ClientKeyContent): O nome do arquivo padrão é clientKey_****.json.

          • Senha da credencial (ClientKeyPassword): O nome do arquivo padrão é clientKey_****_Password.txt.

      5. Etapa 2: Configure variáveis de ambiente ou arquivo de configuração
        • Variáveis de ambiente: Os métodos de configuração variam conforme o sistema operacional. Para mais informações, consulte defina credenciais de acesso em variáveis de ambiente. .

          Aviso

          Não modifique os nomes dos parâmetros. Caso contrário, o SDK não conseguirá reconhecê-los.

        • Arquivo de configuração: O arquivo de configuração padrão é secretsmanager.properties (o nome do arquivo não pode ser alterado). Para garantir que sua aplicação carregue o arquivo de configuração corretamente, coloque-o no diretório de configuração apropriado. Os diretórios de configuração comuns para diferentes linguagens incluem:

          • Java: Coloque o arquivo de configuração no diretório src/main/resources para que seja incluído automaticamente no classpath durante a compilação.

          • Go: Coloque o arquivo de configuração no diretório raiz do projeto ou em um diretório config dedicado e carregue-o através do código.

          • Python: Coloque o arquivo de configuração no diretório do projeto ou em um diretório config específico e use um método apropriado (como os.path ou pkg_resources) para carregá-lo.

        • Se você usar um arquivo de configuração personalizado, deverá especifique o caminho do arquivo (#customConfigFileName#) durante a inicialização do cliente.

        Arquivo de configuração

        • Abordagem 1: Configure o caminho do arquivo

          # Credential type
          credentials_type=client_key
          
          # File path to the ClientKeyPassword file (clientKey_****_Password.txt)
          client_key_password_from_file_path=#client_key_password_file_path#
          
          # File path to the ClientKeyContent file (clientKey_****.json)
          client_key_private_key_path=#client_key_private_key_file_path#
          
          # Associated KMS region
          cache_client_region_id=[{"regionId":"#regionId#"}]
                        
        • Abordagem 2: Configure a senha via variável de ambiente

          Aviso

          Primeiro, armazene a ClientKeyPassword do arquivo clientKey_****_Password.txt em uma variável de ambiente personalizada, como clientKeyPassword_content.

          # Credential type
          credentials_type=client_key
          
          # Environment variable name that stores the ClientKeyPassword content
          client_key_password_from_env_variable=#client_key_password_env_var_name#
          
          # ClientKey private key file path
          client_key_private_key_path=#client_key_private_key_file_path#
          
          # Associated KMS region
          cache_client_region_id=[{"regionId":"#regionId#"}]
                        

        Variáveis de ambiente

        O SDK suporta duas abordagens para configure a senha da credencial ClientKey:

        • Abordagem 1: Configure o caminho do arquivo da senha da ClientKey (clientKey__Password.txt)

          Parâmetro

          Valor

          credentials_type

          Valor fixo: client_key.

          client_key_password_from_file_path

          O caminho absoluto ou relativo para o arquivo ClientKeyPassword (clientKey_****_Password.txt).

          client_key_private_key_path

          O caminho absoluto ou relativo para o arquivo Credential-ClientKeyContent (clientKey_****.json).

          cache_client_region_id

          Formato: [{"regionId":"<your_region_id>"}]. No Linux, use caracteres de escape: [{\"regionId\":\"<your_region_id>"}].

        • Abordagem 2: Configure diretamente o conteúdo da senha da ClientKey

          Aviso

          Primeiro, armazene o conteúdo de clientKey_****_Password.txt em uma variável de ambiente personalizada (por exemplo, clientKeyPassword_content).

          Parâmetro

          Valor

          credentials_type

          Valor fixo: client_key.

          client_key_password_from_env_variable

          O nome da variável de ambiente que armazena o conteúdo da ClientKeyPassword, por exemplo, clientKeyPassword_content.

          client_key_private_key_path

          O caminho absoluto ou relativo para o arquivo clientKey_****.json.

          cache_client_region_id

          Formato: [{"regionId":"<your_region_id>"}]. No Linux, use caracteres de escape.

        Gateway dedicado

        Etapa 1: Crie uma ClientKey

        Você pode crie uma ClientKey usando o modo Quick Create ou Standard Create. Para mais informações sobre ClientKeys, consulte Pontos de acesso à aplicação e Crie um ponto de acesso à aplicação.

        • Método 1: Quick Create

          Este método é conveniente e eficiente, sendo adequado para testes e desenvolvimentos rápidos. A credencial de acesso criada dessa forma tem acesso total a todos os recursos na instância do KMS.

          1. Faça login no console do Key Management Service. Na barra de navegação superior, selecione uma região. No painel de navegação à esquerda, escolha Application Access > Multi-Cloud Access (formerly AAP).

          2. Na aba Application Access, clique em Create AAP. No painel Create AAP, configure os parâmetros.

            Parâmetro

            Descrição

            Mode

            Selecione Quick Creation.

            Scope (KMS Instance)

            Selecione a instância do KMS que sua aplicação precisa acessar.

            Application Access Point Name

            Insira um nome para o ponto de acesso à aplicação.

            Authentication Method

            Isso é definido como ClientKey e não pode ser alterado.

            Credential encryption algorithm

            Selecione o algoritmo de criptografia usado para criptografar a ClientKey. Valores válidos: TripleDES-CBC e RC2-CBC (padrão).

            Default Permission Policy

            O valor é key/* secret/* e não pode ser alterado. Isso significa que a aplicação pode acessar todas as chaves e segredos na instância do KMS especificada.

          3. Clique em OK. O navegador baixará automaticamente a ClientKey. A ClientKey inclui os seguintes arquivos:

            • Credential (ClientKeyContent): O nome do arquivo padrão é clientKey_****.json.

            • Senha da credencial (ClientKeyPassword): O nome do arquivo padrão é clientKey_****_Password.txt.

        • Método 2: Standard Create

          Se você precisar configure permissões de acesso refinadas para recursos, recomendamos usar o método Standard Create.

          1. Siga as instruções de Standard Create em Crie um ponto de acesso à aplicação para crie uma ClientKey para acessar o gateway dedicado. Os principais parâmetros estão descritos abaixo:

            1. Ao configure regras de rede, selecione Private para o tipo de rede.

            2. Ao configure o escopo da regra de permissão, selecione o KMS Instance ID correspondente.

          2. Após a criação, seu navegador baixará automaticamente a ClientKey, que inclui:

            • Credential (ClientKeyContent): O arquivo é nomeado clientKey_****.json por padrão.

            • Senha da credencial (ClientKeyPassword): O arquivo é nomeado clientKey_****_Password.txt por padrão.

        Etapa 2: Configure variáveis de ambiente ou arquivo de configuração
        • Variáveis de ambiente: Os métodos de configuração variam conforme o sistema operacional. Para mais informações, consulte defina credenciais de acesso em variáveis de ambiente. .

          Aviso

          Não modifique os nomes dos parâmetros. Caso contrário, o SDK não conseguirá reconhecê-los.

        • Arquivo de configuração: O arquivo de configuração padrão é secretsmanager.properties (o nome do arquivo não pode ser alterado). Para garantir que sua aplicação carregue o arquivo de configuração corretamente, coloque-o no diretório de configuração apropriado. Os diretórios de configuração comuns para diferentes linguagens incluem:

          • Java: Coloque o arquivo de configuração no diretório src/main/resources para que seja incluído automaticamente no classpath durante a compilação.

          • Go: Coloque o arquivo de configuração no diretório raiz do projeto ou em um diretório config dedicado e carregue-o através do código.

          • Python: Coloque o arquivo de configuração no diretório do projeto ou em um diretório config específico e use um método apropriado (como os.path ou pkg_resources) para carregá-lo.

        • Se você usar um arquivo de configuração personalizado, deverá especifique o caminho do arquivo (#customConfigFileName#) durante a inicialização do cliente.

        Arquivo de configuração

        Abordagem 1: Configure o caminho do arquivo

        cache_client_dkms_config_info=[{"regionId":"<your_dkms_region_id>","endpoint":"<your_dkms_endpoint>","passwordFromFilePath":"<your_password_file_path>","clientKeyFile":"<your_client_key_file_path>","ignoreSslCerts":false,"caFilePath":"<your_ca_certificate_file_path>"}]
                      

        Abordagem 2: Configure a senha via variável de ambiente

        cache_client_dkms_config_info=[{"regionId":"<your_dkms_region_id>","endpoint":"<your_dkms_endpoint>","passwordFromEnvVariable":"<YOUR_PASSWORD_ENV_VARIABLE>","clientKeyFile":"<your_client_key_file_path>","ignoreSslCerts":false,"caFilePath":"<your_ca_certificate_file_path>"}]
                      

        Variáveis de ambiente

        O SDK suporta duas abordagens para configure a senha da credencial ClientKey:

        • Abordagem 1: Configure o caminho do arquivo da senha da ClientKey

          Parâmetro

          Valor

          cache_client_dkms_config_info

          Formato: [{"regionId":"<your_dkms_region_id>","endpoint":"<your_dkms_endpoint>","passwordFromFilePath":"<your_password_file_path>","clientKeyFile":"<your_client_key_file_path>","ignoreSslCerts":false,"caFilePath":"<your_ca_certificate_file_path>"}].

        • Abordagem 2: Configure o conteúdo da senha da ClientKey via variável de ambiente

          Parâmetro

          Valor

          cache_client_dkms_config_info

          Formato: [{"regionId":"<your_dkms_region_id>","endpoint":"<your_dkms_endpoint>","passwordFromEnvVariable":"<YOUR_PASSWORD_ENV_VARIABLE>","clientKeyFile":"<your_client_key_file_path>","ignoreSslCerts":false,"caFilePath":"<your_ca_certificate_file_path>"}].

        Parâmetros de cache_client_dkms_config_info

        Parâmetro

        Descrição

        regionId

        O ID da região onde a instância do KMS está implantada. Para IDs de região, consulte Regiões e zonas.

        endpoint

        O endpoint da instância do KMS, no formato {instance_id}.kms.aliyuncs.com.

        clientKeyFile

        O caminho absoluto ou relativo para o arquivo Credential-ClientKeyContent (clientKey_****.json).

        passwordFromFilePath

        O caminho absoluto ou relativo para o arquivo ClientKeyPassword (clientKey_****_Password.txt).

        passwordFromEnvVariable

        O nome da variável de ambiente que armazena o conteúdo da ClientKeyPassword, por exemplo, clientKeyPassword_content.

        ignoreSslCerts

        Especifica se deve ignorar a validação do certificado SSL para a instância do KMS. A instância do KMS possui um certificado SSL integrado, usado com o protocolo SSL/TLS para verificação de identidade e comunicação criptografada. Valores válidos:

        • true: Ignora a validação. Não é necessário configure caFilePath.

        • false: Valida o certificado SSL.

        caFilePath

        O caminho absoluto ou relativo para o arquivo de certificado CA da instância do KMS.

        Nota

        O certificado CA é usado para validar o certificado SSL da instância do KMS. Para mais informações sobre como obter o certificado CA, consulte Obter o certificado CA da instância do KMS.

        Recuperar segredos

        Todos os exemplos abaixo usam o SDK 2.0. Para exemplos do SDK 1.0, visite o repositório de código-fonte do SDK 1.0.

        Java

        Usar configuração padrão

        O SDK lê automaticamente as informações de credenciais do arquivo secretsmanager.properties ou de variáveis de ambiente.

        import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClient;
        import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClientBuilder;
        import com.aliyuncs.kms.secretsmanager.client.V2.0.exception.CacheSecretException;
        import com.aliyuncs.kms.secretsmanager.client.V2.0.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();
                }
            }
        }
                  

        Usar arquivo de configuração personalizado

        Use esta abordagem quando o arquivo de configuração não utilizar o nome ou caminho de arquivo padrão. Especifique o caminho do arquivo de configuração (#customConfigFileName#).

        import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClient;
        import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClientBuilder;
        import com.aliyuncs.kms.secretsmanager.client.V2.0.exception.CacheSecretException;
        import com.aliyuncs.kms.secretsmanager.client.V2.0.model.SecretInfo;
        import com.aliyuncs.kms.secretsmanager.client.V2.0.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());
                }
            }
        }
                  

        Usar credenciais codificadas diretamente (hard-coded)

        Esta abordagem permite passar as informações de AccessKey e região diretamente durante a inicialização do cliente, sem gravar a AccessKey no arquivo de configuração ou em variáveis de ambiente.

        import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClient;
        import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClientBuilder;
        import com.aliyuncs.kms.secretsmanager.client.V2.0.exception.CacheSecretException;
        import com.aliyuncs.kms.secretsmanager.client.V2.0.model.RegionInfo;
        import com.aliyuncs.kms.secretsmanager.client.V2.0.service.BaseSecretManagerClientBuilder;
        import com.aliyuncs.kms.secretsmanager.client.V2.0.utils.CredentialsProviderUtils;
        
        public class CacheClientWithCaCertificateSample {
            public static void main(String[] args) {
                try {
                    // Create a RegionInfo with the CA certificate path
                    RegionInfo regionInfo = new RegionInfo();
                    regionInfo.setRegionId("#regionId#");
                    // Dedicated gateway endpoint. Omit if using shared gateway.
                    regionInfo.setEndpoint("<your_kms_instance_id>.cryptoservice.kms.aliyuncs.com");
        
                    SecretCacheClient client = SecretCacheClientBuilder.newCacheClientBuilder(
                            BaseSecretManagerClientBuilder.standard()
                                    .withCredentialsProvider(CredentialsProviderUtils.withAccessKey(
                                            System.getenv("#accessKeyId#"),
                                            System.getenv("#accessKeySecret#")))
                                    .addRegion(regionInfo)
                                    .build())
                            .build();
                    SecretInfo secretInfo = client.getSecretInfo("#secretName#");
                } catch (CacheSecretException e) {
                    e.printStackTrace();
                }
            }
        }
                  

        Usar a Cadeia de provedor de credenciais padrão da Alibaba Cloud

        A cadeia de provedor de credenciais padrão é uma estratégia de fallback. Ela busca credenciais em uma ordem predefinida até que sejam encontradas. Se todos os métodos falharem, a autenticação falhará e as credenciais não poderão ser obtidas.

        import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClient;
        import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClientBuilder;
        import com.aliyuncs.kms.secretsmanager.client.V2.0.exception.CacheSecretException;
        import com.aliyuncs.kms.secretsmanager.client.V2.0.model.SecretInfo;
        import com.aliyuncs.kms.secretsmanager.client.V2.0.service.BaseSecretManagerClientBuilder;
        
        public class CacheClientDefaultCredentialChainSample {
        
            public static void main(String[] args) {
                try {
                    SecretCacheClient client = SecretCacheClientBuilder.newCacheClientBuilder(
                            BaseSecretManagerClientBuilder.standard()
                                .withRegion("#regionId#")
                                .build())
                            .build();
                    SecretInfo secretInfo = client.getSecretInfo("#secretName#");
                    System.out.println(secretInfo);
                } catch (CacheSecretException e) {
                    e.printStackTrace();
                }
            }
        }
                  
        Nota

        Para mais exemplos, consulte Exemplos do SDK do Secrets Manager Client.

        Python

        Usar configuração padrão

        O SDK lê automaticamente as informações de credenciais do arquivo secretsmanager.properties ou de variáveis de ambiente.

        from alibabacloud_secretsmanager_client_V2.0.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__)
                  

        Usar arquivo de configuração personalizado

        Use esta abordagem quando o arquivo de configuração não utilizar o nome ou caminho de arquivo padrão.

        from alibabacloud_secretsmanager_client_V2.0.secret_manager_cache_client_builder import SecretManagerCacheClientBuilder
        from alibabacloud_secretsmanager_client_V2.0.service.default_secret_manager_client_builder import DefaultSecretManagerClientBuilder
        
        if __name__ == '__main__':
            secret_cache_client = SecretManagerCacheClientBuilder.new_cache_client_builder(
                DefaultSecretManagerClientBuilder.standard()
                    .with_custom_config_file("#customConfigFileName#")
                    .build()
            ).build()
            secret_info = secret_cache_client.get_secret_info("#secretName#")
            print(secret_info.__dict__)
                  

        Usar credenciais codificadas diretamente (hard-coded)

        Esta abordagem passa as informações de AccessKey e região diretamente durante a inicialização do cliente.

        import os
        
        from alibabacloud_secretsmanager_client_V2.0.secret_manager_cache_client_builder import SecretManagerCacheClientBuilder
        from alibabacloud_secretsmanager_client_V2.0.service.default_secret_manager_client_builder import \
            DefaultSecretManagerClientBuilder
        from alibabacloud_secretsmanager_client_V2.0.model.region_info import RegionInfo
        
        if __name__ == '__main__':
            # Create a RegionInfo with the CA certificate path
            region_info = RegionInfo(
                region_id="#regionId#",
                endpoint="#kmsInstanceEndpoint#",  # Dedicated gateway endpoint. Omit if using shared gateway.
            )
            secret_cache_client = SecretManagerCacheClientBuilder.new_cache_client_builder(
                DefaultSecretManagerClientBuilder.standard()
                    .with_access_key(
                        os.getenv("#accessKeyId#"),
                        os.getenv("#accessKeySecret#")
                    )
                    .add_region_info(region_info)
                    .build()
            ).build()
            # ... use the client
                  

        Usar a Cadeia de provedor de credenciais padrão da Alibaba Cloud

        from alibabacloud_secretsmanager_client_V2.0.secret_manager_cache_client_builder import SecretManagerCacheClientBuilder
        from alibabacloud_secretsmanager_client_V2.0.service.default_secret_manager_client_builder import DefaultSecretManagerClientBuilder
        
        if __name__ == '__main__':
            secret_cache_client = SecretManagerCacheClientBuilder.new_cache_client_builder(
                DefaultSecretManagerClientBuilder.standard()
                    .with_region("#regionId#")
                    .build()
            ).build()
            secret_info = secret_cache_client.get_secret_info("#secretName#")
            print(secret_info.__dict__)
                  
        Nota

        Para mais exemplos, consulte Exemplos do SDK do Secrets Manager Client.

        Go

        Usar configuração padrão

        package main
        
        import "github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/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)
            }
        }
                  

        Usar arquivo de configuração personalizado

        package main
        
        import (
            "github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk"
            "github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk/service"
        )
        
        func main() {
            client, err := sdk.NewSecretCacheClientBuilder(
                    service.NewDefaultSecretManagerClientBuilder().Standard().
                        WithCustomConfigFile("#customConfigFileName#").Build()).Build()
            if err != nil {
                // Handle exceptions
                panic(err)
            }
            secretInfo, err := client.GetSecretInfo("#secretName#")
            if err != nil {
                // Handle exceptions
                panic(err)
            }
        }
                  

        Usar credenciais codificadas diretamente (hard-coded)

        package main
        
        import (
            "github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk"
            "github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk/models"
            "github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk/service"
            "os"
        )
        
        func main() {
            regionInfo := &models.RegionInfo{
                RegionId: "#regionId#",
                // Dedicated gateway endpoint. Omit if using shared gateway.
                Endpoint: "<kmsInstanceId>.cryptoservice.kms.aliyuncs.com",
            }
        
            client, err := sdk.NewSecretCacheClientBuilder(
                service.NewDefaultSecretManagerClientBuilder().
                    Standard().
                    WithAccessKey(os.Getenv("#accessKeyId#"), os.Getenv("#accessKeySecret#")).
                    AddRegionInfo(regionInfo).
                    Build()).Build()
            if err != nil {
                // Handle exceptions
                panic(err)
            }
            secretInfo, err := client.GetSecretInfo("#secretName#")
            if err != nil {
                // Handle exceptions
                panic(err)
            }
        }
                  

        Usar a Cadeia de provedor de credenciais padrão da Alibaba Cloud

        package main
        
        import (
            "github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk"
            "github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk/service"
        )
        
        func main() {
            client, err := sdk.NewSecretCacheClientBuilder(
                    service.NewDefaultSecretManagerClientBuilder().Standard().
                        WithRegion("#regionId#").Build()).Build()
            if err != nil {
                // Handle exceptions
                panic(err)
            }
            secretInfo, err := client.GetSecretInfo("#secretName#")
            if err != nil {
                // Handle exceptions
                panic(err)
            }
        }
                  
        Nota

        Para mais exemplos, consulte Exemplos do SDK do Secrets Manager Client.

        Node.js

        Usar configuração padrão

        O SDK lê automaticamente as informações de credenciais do arquivo secretsmanager.properties ou de variáveis de ambiente.

        import { SecretCacheClientBuilder } from 'alibabacloud-secretsmanager-client-v2';
        
        async function example() {
          try {
            // Build client via environment variables or default configuration
            const client = await SecretCacheClientBuilder.newClient();
            const secretInfo = await client.getSecretInfo('#secretName#');
            console.log(secretInfo);
          } catch (error) {
            console.error('Error:', error);
          }
        }
        
        example();

        Usar arquivo de configuração personalizado

        Use esta abordagem quando o arquivo de configuração não utilizar o nome ou caminho de arquivo padrão. Especifique o caminho do arquivo de configuração.

        import {
          SecretCacheClientBuilder,
          BaseSecretManagerClientBuilder,
          CredentialsProviderUtils
        } from 'alibabacloud-secretsmanager-client-v2';
        
        async function example() {
          try {
            const client = await SecretCacheClientBuilder.newCacheClientBuilder(
              BaseSecretManagerClientBuilder.standard().withCustomConfigFile('#customConfigFileName#').build()
            ).build();
        
            const secretInfo = await client.getSecretInfo('#secretName#');
            console.log(secretInfo);
          } catch (error) {
            console.error('Error:', error);
          }
        }
        
        example();

        Usar credenciais codificadas diretamente (hard-coded)

        Esta abordagem passa as informações de AccessKey e região diretamente durante a inicialização do cliente.

        import {
          SecretCacheClientBuilder,
          BaseSecretManagerClientBuilder,
          CredentialsProviderUtils,
          RegionInfo
        } from 'alibabacloud-secretsmanager-client-v2';
        
        async function example() {
          try {
            // Create RegionInfo with CA certificate path
            const regionInfo = new RegionInfo();
            regionInfo.setRegionId('#regionId#');
            regionInfo.setEndpoint('#kmsInstanceEndpoint#'); // Specify KMS instance address
            
            const client = await SecretCacheClientBuilder.newCacheClientBuilder(
                BaseSecretManagerClientBuilder.standard()
                  .withCredentialsProvider(
                    CredentialsProviderUtils.withAccessKey(
                      process.env['#accessKeyId#'],
                      process.env['#accessKeySecret#']
                    )
                )
                .addRegionInfo(regionInfo) // Use RegionInfo with CA certificate path
                .build()
            ).build();
        
            const secretInfo = await client.getSecretInfo('#secretName#');
            console.log(secretInfo);
          } catch (error) {
            console.error('Error:', error);
          }
        }
        
        example();

        Usar a Cadeia de provedor de credenciais padrão da Alibaba Cloud

        import {
          SecretCacheClientBuilder,
          BaseSecretManagerClientBuilder,
          CredentialsProviderUtils
        } from 'alibabacloud-secretsmanager-client-v2';
        
        async function example() {
          try {
            const client = await SecretCacheClientBuilder.newCacheClientBuilder(
              BaseSecretManagerClientBuilder.standard()
                .withCredentialsProvider(CredentialsProviderUtils.withDefaultCredential())
                .withRegion('#regionId#')
                .build()
            ).build();
        
            const secretInfo = await client.getSecretInfo('#secretName#');
            console.log(secretInfo);
          } catch (error) {
            console.error('Error:', error);
          }
        }
        
        example();
        Nota

        Para mais exemplos, consulte Exemplos do SDK do Secrets Manager Client.

        Perguntas frequentes

        • O que fazer se o erro "cannot find the built-in CA certificate for region[$regionId], please provide the caFilePath parameter." aparecer?

          • Causa: O certificado CA integrado para a região especificada não existe no SDK.

          • Solução:

            • Atualize o SDK para a versão V2.0 mais recente.

            • Se o erro persistir após a atualização para a versão mais recente, baixe o certificado CA mais recente (disponível no console KMS em Instance Management > Instance Details) e passe o caminho do certificado CA. Você pode usar qualquer um dos seguintes métodos:

              Passar via variável de ambiente

              Adicione o parâmetro caFilePath à configuração cache_client_region_id:

              # Associated KMS region, including the CA certificate path and instance endpoint
              cache_client_region_id=[{"regionId":"<regionId>","endpoint":"<kmsInstanceId>.cryptoservice.kms.aliyuncs.com","caFilePath":"<ca_certificate_file_path>"}]
                        

              Passar via arquivo de configuração

              Adicione o parâmetro caFilePath ao secretsmanager.properties ou a um arquivo de configuração personalizado:

              # Associated KMS region, including the CA certificate path and instance endpoint
              cache_client_region_id=[{"regionId":"<regionId>","endpoint":"<kmsInstanceId>.cryptoservice.kms.aliyuncs.com","caFilePath":"<ca_certificate_file_path>"}]
                        

              Passar via credenciais codificadas diretamente (Hard-coded)

              import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClient;
              import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClientBuilder;
              import com.aliyuncs.kms.secretsmanager.client.V2.0.exception.CacheSecretException;
              import com.aliyuncs.kms.secretsmanager.client.V2.0.model.RegionInfo;
              import com.aliyuncs.kms.secretsmanager.client.V2.0.service.BaseSecretManagerClientBuilder;
              import com.aliyuncs.kms.secretsmanager.client.V2.0.utils.CredentialsProviderUtils;
              
              public class CacheClientWithCaCertificateSample {
                  public static void main(String[] args) {
                      try {
                          // Create a RegionInfo with the CA certificate path
                          RegionInfo regionInfo = new RegionInfo();
                          regionInfo.setRegionId("#regionId#");
                          regionInfo.setEndpoint("#kmsInstanceEndpoint#"); // Specify KMS instance endpoint
                          regionInfo.setCaFilePath("#caFilePath#"); // Specify CA certificate file path
              
                          SecretCacheClient client = SecretCacheClientBuilder.newCacheClientBuilder(
                                  BaseSecretManagerClientBuilder.standard()
                                          .withCredentialsProvider(CredentialsProviderUtils.withAccessKey(
                                                  System.getenv("#accessKeyId#"),
                                                  System.getenv("#accessKeySecret#")))
                                          .addRegion(regionInfo) // Use RegionInfo with CA certificate path
                                          .build())
                                  .build();
                          // ... use the client
                      } catch (CacheSecretException e) {
                          e.printStackTrace();
                      }
                  }
              }
                        
              import os
              
              from alibabacloud_secretsmanager_client_V2.0.secret_manager_cache_client_builder import SecretManagerCacheClientBuilder
              from alibabacloud_secretsmanager_client_V2.0.service.default_secret_manager_client_builder import \
                  DefaultSecretManagerClientBuilder
              from alibabacloud_secretsmanager_client_V2.0.model.region_info import RegionInfo
              
              if __name__ == '__main__':
                  # Create a RegionInfo with the CA certificate path
                  region_info = RegionInfo(
                      region_id="#regionId#",
                      endpoint="#kmsInstanceEndpoint#",  # Specify KMS instance endpoint
                      ca_file_path="#caFilePath#"  # Specify CA certificate file path
                  )
                  secret_cache_client = SecretManagerCacheClientBuilder.new_cache_client_builder(
                      DefaultSecretManagerClientBuilder.standard()
                          .with_access_key(
                              os.getenv("#accessKeyId#"),
                              os.getenv("#accessKeySecret#")
                          )
                          .add_region_info(region_info)  # Use RegionInfo with CA certificate path
                          .build()
                  ).build()
                  # ... use the client
                        
              package main
              
              import (
                  "github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk"
                  "github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk/models"
                  "github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk/service"
                  "os"
              )
              
              func main() {
                  // Create a RegionInfo with the CA certificate path
                  regionInfo := &models.RegionInfo{
                      RegionId:   "#regionId#",
                      Endpoint:   "#kmsInstanceEndpoint#", // Specify KMS instance endpoint
                      CaFilePath: "#caFilePath#",          // Specify CA certificate file path
                  }
              
                  client, err := sdk.NewSecretCacheClientBuilder(
                      service.NewDefaultSecretManagerClientBuilder().
                          Standard().
                          WithAccessKey(os.Getenv("#accessKeyId#"), os.Getenv("#accessKeySecret#")).
                          AddRegionInfo(regionInfo). // Use RegionInfo with CA certificate path
                          Build()).Build()
                  if err != nil {
                      // Handle exceptions
                      panic(err)
                  }
                  secretInfo, err := client.GetSecretInfo("#secretName#")
                  if err != nil {
                      // Handle exceptions
                      panic(err)
                  }
              }
                        
              import {
                SecretCacheClientBuilder,
                BaseSecretManagerClientBuilder,
                CredentialsProviderUtils,
                RegionInfo
              } from 'alibabacloud-secretsmanager-client-v2';
              
              async function example() {
                try {
                  // Create RegionInfo with CA certificate path
                  const regionInfo = new RegionInfo();
                  regionInfo.setRegionId('#regionId#');
                  regionInfo.setEndpoint('#kmsInstanceEndpoint#'); // Specify KMS instance address
                  regionInfo.setCaFilePath('#caFilePath#'); // Specify CA certificate file path
                  
                  const client = await SecretCacheClientBuilder.newCacheClientBuilder(
                      BaseSecretManagerClientBuilder.standard()
                        .withCredentialsProvider(
                          CredentialsProviderUtils.withAccessKey(
                            process.env['#accessKeyId#'],
                            process.env['#accessKeySecret#']
                          )
                      )
                      .addRegionInfo(regionInfo) // Use RegionInfo with CA certificate path
                      .build()
                  ).build();
              
                  const secretInfo = await client.getSecretInfo('#secretName#');
                  console.log(secretInfo);
                } catch (error) {
                  console.error('Error:', error);
                }
              }
              
              example();
        • O que fazer se o erro "env/config credentials type[client_key] is illegal" aparecer?

          • Causa: O SDK 2.0 do Alibaba Cloud Secrets Manager Client não suporta o tipo de credencial ClientKey.

          • Solução:

            • Mude para um tipo de credencial suportado, como AccessKey, ECS RAM Role ou OIDC Role ARN. Para mais informações, consulte Configure credenciais de acesso.

            • Faça downgrade para o SDK 1.0 (não recomendado).