Se suas aplicações precisam acessar segredos, como senhas de contas ou chaves de acesso, use o Key Management Service (KMS) para armazená-los. Suas aplicações podem recuperar esses segredos dinamicamente do KMS por meio de um SDK da Alibaba Cloud, um SDK de instância do KMS ou um SDK de segredos. Essa abordagem evita vazamentos de informações e operações maliciosas causados pelo armazenamento de segredos em texto simples.
Por que usar o gerenciamento de segredos
Segredos vazados, como senhas de contas de banco de dados, senhas de contas de servidor, chaves SSH e chaves de acesso, representam uma grande ameaça à segurança dos dados. Para reduzir o risco de vazamentos, proteja eficazmente seus segredos e faça sua rotação periódica. O recurso de gerenciamento de segredos do KMS oferece as seguintes vantagens de segurança:
O KMS criptografa e armazena valores de segredos com algoritmos de criptografia robustos. Isso impede vazamentos de segredos e ativos de alto valor causados por codificação fixa (hardcoding) e melhora a segurança dos dados.
Permite acesso seguro e conveniente ao cliente, permitindo que suas aplicações usem segredos dinamicamente com pouca ou nenhuma alteração no código.
-
A rotação imediata permite atualizar segredos sem afetar suas aplicações e serviços.
NotaEste recurso está disponível apenas para segredos RAM, segredos de banco de dados (no modo de conta dupla gerenciada) e segredos ECS quando integrados por meio de um SDK de segredos.
Oferece rotação de alta frequência para segredos totalmente dinâmicos, o que reduz o período de validade do segredo e diminui o risco de comprometimento.
Permite gerenciamento de segurança centralizado e em larga escala por meio de APIs e ferramentas de infraestrutura como código (IaC), como Resource Orchestration Service (ROS) ou Terraform.
Casos de uso
Esta seção apresenta um exemplo de gerenciamento de nome de usuário e senha para um banco de dados autogerenciado, ilustrando um caso de uso básico de armazenamento e recuperação de segredos.
Se você usa um banco de dados ApsaraDB RDS, recomendamos o uso de um segredo de banco de dados. Para mais informações, consulte Gerenciar e usar segredos de banco de dados.

Um administrador de segurança configura o nome de usuário e a senha necessários para a aplicação MyApp acessar o banco de dados de destino.
O administrador de segurança cria um segredo genérico chamado 'MyDbCreds' no KMS para armazenar o nome de usuário e a senha.
Quando a MyApp precisa acessar o banco de dados, ela usa um SDK cliente de segredos para solicitar o segredo 'MyDbCreds' ao KMS.
O KMS recupera o segredo criptografado, descriptografa-o e retorna o valor em texto simples para a MyApp via HTTPS.
A MyApp analisa o segredo em texto simples retornado para obter o nome de usuário e a senha e usa essas credenciais para acessar o banco de dados.
Para a aplicação MyApp, chamar uma API do KMS para recuperar o nome de usuário e a senha do banco de dados evita os riscos de segurança associados à codificação fixa de segredos. A figura a seguir mostra a diferença entre o uso de segredos codificados fixos e o uso de segredos gerenciados pelo KMS.

Componentes de um segredo
Um segredo consiste em metadados e uma ou mais versões. Faça login no console do KMS e visualize os detalhes de um segredo na página Secrets.
-
Metadados
Incluem informações como nome do segredo, Alibaba Cloud Resource Name (ARN), hora de criação, tipo de segredo, chave de criptografia e tags.
ImportanteA chave de criptografia criptografa apenas o valor do segredo, não os metadados. A chave e o segredo devem pertencer à mesma instância do KMS, e a chave deve ser simétrica.
-
Versões de segredo
Um segredo pode ter várias versões. Cada versão inclui um número de versão, rótulos de estágio e um valor de segredo.
Uma versão de segredo pode ter vários rótulos de estágio, mas cada rótulo pode apontar para apenas uma versão.
-
Rótulo de estágio: identificador exclusivo dentro de um segredo. Os rótulos de estágio incluem rótulos integrados e personalizados.
-
Rótulos de estágio integrados:
ACSCurrent: versão atual do segredo. Este rótulo sempre aponta para o valor mais recente.
ACSPrevious: versão anterior do segredo.
-
ACSPending: rótulo temporário usado durante a rotação do segredo. O KMS remove este rótulo após a conclusão da rotação.
NotaAo recuperar um valor de segredo chamando uma operação de API, o KMS retorna o valor associado ao rótulo de estágio ACSCurrent.
Os rótulos de estágio integrados funcionam como ponteiros. Por exemplo, ao armazenar pela primeira vez uma versão de segredo (v1), ela recebe o rótulo ACSCurrent. Se você armazenar uma nova versão (v2), o rótulo ACSCurrent passa para v2, e v1 é automaticamente rotulado como ACSPrevious.
-
Rótulos de estágio personalizados: defina múltiplos rótulos de estágio personalizados para cada versão de segredo.
ImportanteApenas segredos genéricos aceitam rótulos de estágio personalizados. O número total de rótulos de estágio personalizados e integrados para um segredo não pode exceder oito.
-
Valor do segredo: informações sensíveis armazenadas no segredo. Podem ser uma string ou dados binários.
NotaQuando o número de versões de um segredo excede o limite, a versão mais antiga sem associação a nenhum rótulo de estágio é excluída automaticamente.
Rotação de segredos
A rotação de segredos é o processo de atualização de um segredo mediante a criação de uma nova versão. Essa prática aumenta a segurança ao limitar o tempo de vida útil do segredo. A nova versão recebe automaticamente o rótulo ACSCurrent, e as aplicações recuperam dinamicamente o valor do segredo solicitando a versão ACSCurrent.
Processo de rotação
Métodos de rotação
Rotação automática: configure um cronograma de rotação e o KMS rotacionará o segredo automaticamente ao final do período especificado. Configure a rotação automática para segredos RAM, segredos de banco de dados e segredos ECS diretamente no KMS. Para segredos genéricos, implemente a rotação periódica usando o Function Compute.
Resposta de emergência: realize a rotação imediata de um segredo comprometido. Há suporte para isso em segredos RAM, segredos de banco de dados e segredos ECS. Para rotacionar imediatamente um segredo genérico, armazene manualmente um novo valor de segredo.
Tipos de segredos suportados
O KMS suporta quatro tipos de segredos: segredos genéricos, segredos RAM, segredos de banco de dados e segredos ECS. A tabela a seguir fornece detalhes sobre cada tipo.
NotaSegredos RAM, segredos de banco de dados e segredos ECS são totalmente gerenciados. Após começar a gerenciar esses segredos no KMS, execute todas as rotações dentro do KMS. Não altere o status nem os exclua nos respectivos serviços de source. Tais ações interrompem o processo de rotação de segredos no KMS e podem causar falhas nas aplicações ao recuperar segredos.
Para gerenciar a rotação de um segredo, incluindo suas versões e rótulos de estágio, utilize um segredo genérico.
Tipo
Descrição
Método de rotação
Referência
Segredo genérico
Tipo básico de segredo suportado pelo KMS. Use-o para armazenar quaisquer dados sensíveis, como senhas de contas, chaves de acesso, chaves e tokens OAuth ou chaves de API.
-
Execute uma rotação imediata armazenando um novo valor de segredo. Isso cria uma nova versão do segredo.
-
Configure a rotação periódica usando o Function Compute.
Segredo RAM
Tipo de segredo totalmente gerenciado suportado pelo KMS. Use-o para armazenar a chave de acesso de um usuário RAM.
-
Configure a rotação periódica no KMS.
-
Execute uma rotação imediata no KMS.
Segredo de banco de dados
Tipo de segredo totalmente gerenciado suportado pelo KMS. Use-o para armazenar credenciais de conta para bancos de dados, como instâncias ApsaraDB RDS e instâncias PolarDB.
-
Configure a rotação periódica no KMS.
-
Execute uma rotação imediata no KMS.
Segredo ECS
Tipo de segredo totalmente gerenciado suportado pelo KMS. Use-o para armazenar o nome de usuário e a senha ou o par de chaves SSH usado para fazer login em uma instância ECS.
-
Configure a rotação periódica no KMS.
-
Execute uma rotação imediata no KMS.
Faturamento
Antes de usar segredos, adquira uma instância do KMS e configure uma cota de segredos. Para mais informações sobre os preços das instâncias do KMS, consulte Faturamento. Para instruções sobre como adquirir uma instância do KMS, consulte Adquirir e ativar uma instância do KMS.
Controle de acesso e auditoria
Use o Resource Access Management (RAM) para controlar permissões de acesso e operação em segredos. Para mais informações sobre como configurar políticas de permissão, consulte Políticas personalizadas do RAM para o KMS.
Use o ActionTrail para registrar operações como criação, rotação e recuperação de segredos. Para mais informações, consulte Consultar registros de uso de chaves e segredos.
Tópicos relacionados