O KMS oferece três tipos de SDK: Alibaba Cloud SDK, Credentials SDK e KMS Instance SDK (não recomendado). Este tópico descreve os fluxos de integração, métodos de autenticação, APIs compatíveis e tipos de gateway de cada um, para que você possa escolha o SDK mais adequado às suas necessidades de negócio.
Fluxo de integração do SDK
Alibaba Cloud SDK
O Alibaba Cloud SDK é um pacote de dependências que encapsula as openapi da Alibaba Cloud, ajudando desenvolvedores a crie rapidamente aplicações relacionadas à Alibaba Cloud. Ele oferece suporte tanto a API de plano de controle para chaves e credenciais quanto a API de plano de dados. Está disponível em Java, Python, C++, PHP, .NET (apenas C#), Go, TypeScript e Swift. Para mais informações, consulte Alibaba Cloud SDK.
API compatíveis
O Alibaba Cloud SDK permite chamar openapi para execute operações de plano de controle e operações de plano de dados do KMS. Para mais informações sobre as API compatíveis, consulte OpenAPIs supported by Alibaba Cloud SDK.
Operações de plano de controle: gerencie chaves padrão e instâncias do KMS — crie chaves, credenciais ou instâncias e modifique tags.
-
Operações de plano de dados:
Operações criptográficas: criptografia/descriptografia simétrica e assimétrica, criptografia por envelope, geração de chaves de dados, assinatura digital e verificação de assinatura.
Recuperação de credenciais: obtenha os valores de credenciais armazenadas em uma instância do KMS.
Em produção, implemente retentativa de erros e cache de credenciais para lidar com flutuações de rede e evitar falhas na recuperação de credenciais. Para estratégias de retentativa, consulte Retry requests with exponential backoff.
Tipos de gateway compatíveis
O Alibaba Cloud SDK oferece suporte a gateway compartilhados ou dedicados para acessar openapi e API de instância. Operações de API de plano de controle exigem gateway compartilhados, enquanto operações de API de plano de dados aceitam tanto gateway compartilhados quanto dedicados.
Tipo de gateway | Cenário recomendado | API compatíveis |
gateway compartilhado |
| Todas as openapi |
gateway dedicado |
| openapi de operações criptográficas e recuperação de credenciais |
Credentials SDK
O Credentials SDK é um wrapper personalizado baseado nas openapi e API de instância do KMS. Ele fornece cache e atualização de credenciais dentro da aplicação, garantindo maior estabilidade de negócio e integração simplificada. Oferece suporte exclusivamente à recuperação de credenciais e inclui três tipos de SDK: Credential Client, Credential JDBC Client e RAM Credential Plugin. Está disponível em Java (Java 8+), Python e Go. Para mais informações, consulte Credentials SDK.
Tipos de Credentials SDK
SDK | Descrição |
| |
| |
|
API compatíveis
O Credentials SDK oferece suporte apenas a operações de recuperação de credenciais por meio de openapi e API de instância (não recomendado). Para gerenciamento de credenciais (plano de controle), utilize o Alibaba Cloud SDK.
Tipos de gateway compatíveis
O Credentials SDK recupera credenciais por meio de gateway compartilhados ou dedicados.
Tipo de gateway | Cenário recomendado |
gateway compartilhado |
|
gateway dedicado |
|
KMS Instance SDK (não recomendado)
O KMS Instance SDK acessa endpoints de gateway dedicado para operações criptográficas e recuperação de credenciais. Está disponível em Java (Java 8+), PHP, Go, Python e .NET (apenas C#). Para mais detalhes, consulte KMS Instance SDK.
Endpoints por tipo de gateway
O KMS fornece dois tipos de endpoint:
-
Endpoint de gateway compartilhado (endpoint do service KMS): endereço global do KMS, acessível pela internet pública ou VPC.
Formato:
kms.<region-id>.cryptoservice.kms.aliyuncs.com. Para informações sobre o ID da região, consulte Regions and zones.Exemplo: para China (Hangzhou), o endpoint público é
kms.cn-hangzhou.aliyuncs.come o endpoint VPC ékms-vpc.cn-hangzhou.aliyuncs.com.
-
Endpoint de gateway dedicado (endpoint de instância do KMS): endereço de uma instância específica do KMS, acessível apenas por redes privadas.
Formato:
<kms-instance-id>.cryptoservice.kms.aliyuncs.com.Exemplo:
kst-hzz65f176a0ogplgq****.cryptoservice.kms.aliyuncs.com.
Autenticação e autorização
O KMS oferece suporte a autenticação RAM e autenticação AAP (Application Access Point). gateway compartilhados aceitam ambas; gateway dedicados aceitam apenas AAP.
-
Autenticação RAM: funções RAM, tokens STS, funções RAM de instâncias ECS, AccessKey e outros métodos. Para mais informações, consulte Manage credentials.
ImportanteAo utilizar autenticação RAM para acessar chaves e credenciais em uma instância por meio de um gateway dedicado, é necessário configure um certificado CA.
Autenticação AAP (não recomendada): crie um Application Access Point e baixe o arquivo ClientKey, que contém a Credential (ClientKeyContent) e a senha da credencial (ClientKeyPassword).
Autenticação RAM
AccessKey
Por padrão, uma conta Alibaba Cloud tem permissões de administrador para todos os recursos, e isso não pode ser alterado. Para garantir a segurança dos recursos, recomendamos crie um par de AccessKey por meio de um usuário RAM e conceder apenas as permissões necessárias.
Faça login no console do RAM. Na página Users, clique em no nome do usuário RAM de destino.
Na aba Secret Management, na seção AccessKey, clique em Create AccessKey.
-
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 associar 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 System policies for KMS.
NotaTambém é possível crie políticas de permissão personalizadas. Para mais informações, consulte Create a custom policy.
-
Método 2: configure uma política baseada em recurso
O KMS oferece suporte a políticas baseadas em recurso que concedem permissões de acesso a chaves e credenciais individuais. Utilize essas políticas para controlar quais contas Alibaba Cloud, usuários RAM e funções RAM podem gerencie ou utilizar chaves e credenciais do KMS. Para mais informações, consulte Key policies e Secret policies.
-
Função RAM de instância ECS
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 Instance RAM roles.
-
Faça login no console do RAM e crie uma função RAM para um service Alibaba Cloud confiável.
Tipo de entidade confiável: selecione Elastic Compute Service.
Entidade confiável: selecione Elastic Compute Service (ECS).
-
Conceda à função RAM permissões 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 associar 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 System policies for KMS.
NotaTambém é possível crie políticas de permissão personalizadas. Para mais informações, consulte Create a custom policy.
-
Método 2: configure uma política baseada em recurso
O KMS oferece suporte a políticas baseadas em recurso que concedem permissões de acesso a chaves e credenciais individuais. Utilize essas políticas para controlar quais contas Alibaba Cloud, usuários RAM e funções RAM podem gerencie ou utilizar chaves e credenciais do KMS. Para mais informações, consulte Key policies e Secret policies.
-
Faça login no console do ECS e associe a função RAM a uma instância ECS.
Token STS
O Security Token Service (STS) emite uma credencial de acesso temporária, um token STS, para um usuário RAM ou função RAM. Esse token permite acessar o KMS com permissões específicas durante um período de validade limitado. Após a expiração, o token se torna inválido automaticamente.
Faça login no console do RAM para crie um usuário RAM ou uma função RAM. Para mais informações, consulte Create a RAM user e Create a RAM role.
Conceda a permissão
AliyunSTSAssumeRoleAccessao usuário RAM ou à função RAM. Para mais informações, consulte Manage RAM user permissions e Grant permissions to a RAM role.-
Conceda ao usuário RAM ou à função RAM permissões para acessar o KMS.
-
Método 1: configure uma política baseada em identidade
Na coluna Actions da função ou do usuário RAM, clique em Grant Permission para associar uma política de permissão de sistema integrada do KMS. Para mais informações sobre as políticas de permissão de sistema do KMS, consulte System policies for KMS.
NotaTambém é possível crie políticas de permissão personalizadas. Para mais informações, consulte Create a custom policy.
-
Método 2: configure uma política baseada em recurso
O KMS oferece suporte a políticas baseadas em recurso que concedem permissões de acesso a chaves e credenciais individuais. Utilize essas políticas para controlar quais contas Alibaba Cloud, usuários RAM e funções RAM podem gerencie ou utilizar chaves e credenciais do KMS. Para mais informações, consulte Key policies e Secret policies.
-
Utilize o usuário RAM ou a função RAM para chamar a operação STS AssumeRole e obter uma credencial de acesso STS temporária. Para mais informações, consulte AssumeRole.
RamRoleArn
Usuários RAM ou service cloud podem assumir uma função para obter permissões temporárias (token STS) em vez de utilizar chaves de longa duração, reduzindo 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.
-
crie um par de AccessKey de usuário
Faça login no console do RAM. No painel de navegação à esquerda, escolha . Na página Users, clique em no nome do usuário RAM de destino.
Associe a política de sistema
AliyunSTSAssumeRoleAccessou uma política personalizada que inclua a açãosts:AssumeRoleao usuário RAM.Na aba Secret Management, na seção AccessKey, clique em Create AccessKey.
-
crie e autorize uma função RAM:
No painel de navegação à esquerda, escolha . Na página Roles, clique em Create Role. Para mais informações, consulte Create a RAM role.
-
Conceda à função RAM permissões 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 associar 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 System policies for KMS.
NotaTambém é possível crie políticas de permissão personalizadas. Para mais informações, consulte Create a custom policy.
-
Método 2: configure uma política baseada em recurso
O KMS oferece suporte a políticas baseadas em recurso que concedem permissões de acesso a chaves e credenciais individuais. Utilize essas políticas para controlar quais contas Alibaba Cloud, usuários RAM e funções RAM podem gerencie ou utilizar chaves e credenciais do KMS. Para mais informações, consulte Key policies e Secret policies.
-
-
Obtenha o RamRoleArn da função RAM de destino. Para mais informações, consulte View the information about a RAM role.
No painel de navegação à esquerda, escolha . Na página Roles, clique em no nome da função de destino.
-
Na página de detalhes da função, localize o RamRoleArn na seção ARN.
NotaO RamRoleArn é o Alibaba Cloud Resource Name (ARN) da função RAM a ser assumida. O formato é
acs:ram::$accountID:role/$roleName, em que$accountIDé o ID da conta Alibaba Cloud e$roleNameé o nome da função RAM.
OIDC Role ARN
-
crie um provedor OIDC
Faça login no console do RAM como administrador RAM. Na página SSO, clique em na aba Role-based SSO.
Na aba OIDC, clique em Create IdP.
Na página Create IdP, configure as informações do provedor. Para mais informações, consulte Manage OIDC providers.
-
Obtenha e salve as informações de identidade OIDC (ARN e Client ID)
acesse a página SSO e, na aba IdP, clique em no nome do provedor OIDC de destino.
Na página de detalhes do IdP, você pode visualize o ARN e o Client ID.
-
crie e autorize uma função RAM para o provedor OIDC
Faça login no console do RAM como administrador RAM e acesse a página .
clique em Create Role. No canto superior direito da página de criação, clique em Switch to Policy Editor.
-
No editor de políticas, especifique o provedor OIDC. selecione o editor visual e configure os parâmetros conforme descrito abaixo.
NotaPara informações sobre outros modos, consulte Create a RAM role for an OIDC identity provider.
Na seção Select Trusted Entity, selecione IdP.
-
Na seção Edit Trust Policy, configure os parâmetros a seguir.
IdP Type: selecione OIDC.
IdP: selecione o provedor OIDC criado anteriormente.
-
Conceda à função RAM OIDC permissões 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 associar 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 Key Management Service System Permission Policy Reference.
NotaPolíticas de permissão personalizadas também são compatíveis. Para mais informações, consulte Create a custom policy.
-
Método 2: configure uma política baseada em recurso
O KMS oferece suporte a políticas baseadas em recurso que concedem permissões de acesso a chaves e credenciais individuais. Utilize essas políticas para controlar quais contas Alibaba Cloud, usuários RAM e funções RAM podem gerencie ou utilizar chaves e credenciais do KMS. Para mais informações, consulte Key policies e Secret policies.
-
-
Obtenha o OIDC Role ARN de destino
Na página , clique em no nome da função de destino.
-
Na página de detalhes da função, localize o OIDC Role ARN na seção ARN.
NotaO Role ARN é o ARN da função RAM a ser assumida. O formato é
acs:ram::$accountID:role/$roleName, em que$accountIDé o ID da conta Alibaba Cloud e$roleNameé o nome da função RAM.
-
Emita e salve o arquivo de token OIDC
A Alibaba Cloud não oferece suporte ao login OIDC direto pelo console, mas é possível concluir o processo de SSO OIDC de forma programática. A obtenção de um token OIDC envolve um fluxo OAuth, geralmente por meio de um processo padrão OAuth 2.0 do provedor de identidade OIDC (IdP).
Por exemplo: quando uma aplicação é executada em um cluster ACK com o RRSA ativado, o cluster cria e monta automaticamente o arquivo de token OIDC de conta de service correspondente para o pod da aplicação.
Autenticação AAP (não recomendada)
Configuração de gateway compartilhado
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 .
-
(Opcional) crie uma regra de rede.
NotaA configuração de uma regra de rede para restringir o acesso por endereço IP de source é opcional. No entanto, recomendamos configurá-la para maior segurança.
clique em na aba Network Access Rules e depois clique em Create Network Access Rule.
No painel Create Network Access Rule, defina Network Type como Public, insira os Allowed Source IP Addresses e clique em OK.
-
crie uma política de permissão.
clique em na aba Policies e depois clique em Create Policy.
-
No painel Create Policy, configure os parâmetros para o gateway compartilhado conforme descrito abaixo e clique em OK.
Scope: Shared KMS Gateway
Accessible Resources: selecione as credenciais que você deseja acessar.
(Opcional) Network Access Rules: selecione a regra de rede criada na etapa anterior.
-
crie um ponto de acesso de aplicação (AAP).
clique em na aba Application Access e depois clique em Create AAP.
-
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 contendo dígitos, letras e caracteres especiais:
~!@#$%^&*?_-.Validity Period
ImportanteRecomendamos defina o período de validade como um ano para reduzir o risco de vazamento do ClientKey. Faça a rotação do ClientKey antes da expiração para evitar interrupções no service. Para mais informações, consulte Rotate a ClientKey.
Policies
selecione a política de permissão criada na etapa anterior.
-
clique em OK. O navegador baixa automaticamente o ClientKey. O ClientKey inclui os seguintes arquivos:
Credential (ClientKeyContent): O nome de arquivo padrão é
clientKey_****.json.Senha da credencial (ClientKeyPassword): O nome de arquivo padrão é
clientKey_****_Password.txt.
Configuração de gateway dedicado
É possível crie um ClientKey utilizando o modo Quick Create ou Standard Create. Para mais informações sobre ClientKeys, consulte Application access points e Create an application access point.
-
Método 1: Quick Create
Este método é prático e eficiente, sendo adequado para testes e desenvolvimento rápidos. A credencial de acesso criada dessa forma tem acesso total a todos os recursos da instância do KMS.
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 .
-
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 da aplicação.
Authentication Method
Este valor é definido como ClientKey e não pode ser alterado.
Encryption Algorithm
selecione o algoritmo de criptografia para criptografar o ClientKey. Valores válidos: TripleDES-CBC e RC2-CBC (padrão).
NotaO RC2-CBC funciona na maioria dos ambientes e é recomendado. Se o seu ambiente possui requisitos de algoritmo mais rigorosos e não oferece suporte ao RC2-CBC, selecione TripleDES-CBC.
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 credenciais na instância do KMS especificada. -
clique em OK. O navegador baixa automaticamente o ClientKey. O ClientKey inclui os seguintes arquivos:
Credential (ClientKeyContent): O nome de arquivo padrão é
clientKey_****.json.Senha da credencial (ClientKeyPassword): O nome de arquivo padrão é
clientKey_****_Password.txt.
-
Método 2: Standard Create
Se você precisar configure permissões de acesso granulares para recursos, recomendamos utilizar o método Standard Create.
-
Siga as instruções de Standard Create em Create an application access point para crie um ClientKey de acesso ao gateway dedicado. Os principais parâmetros estão descritos abaixo:
Ao configure as regras de rede, selecione Private para o tipo de rede.
Ao configure o escopo da regra de permissão, selecione o KMS Instance ID correspondente.
-
Após a criação, o navegador baixa automaticamente o ClientKey, que inclui:
Credential (ClientKeyContent): O arquivo é nomeado
clientKey_****.jsonpor padrão.Senha da credencial (ClientKeyPassword): O arquivo é nomeado
clientKey_****_Password.txtpor padrão.
-