O Key Management Service (KMS) utiliza pontos de acesso a aplicativos (AAPs) para controlar como aplicativos autogerenciados se autenticam e acessam chaves e segredos em uma instância do KMS. Antes que um aplicativo possa usar uma chave ou segredo, ele deve se autenticar por meio de um AAP.
Um AAP é composto por dois elementos: uma política de permissões e uma credencial.
Crie um AAP separado para cada aplicativo que acessa o KMS. Dessa forma, cada aplicativo possui suas próprias permissões de acesso e pode ser auditado de maneira independente.
Como funciona
Cada AAP aplica duas camadas de controle:
Política de permissões — define quais chaves e segredos o aplicativo pode acessar e a partir de quais endereços IP
Credencial — autentica a identidade do aplicativo antes de conceder acesso
Políticas de permissões
Uma política de permissões especifica quais recursos do KMS um aplicativo pode acessar e sob quais condições. Cada AAP suporta até três políticas de permissões.
Cada política inclui os seguintes itens:
Permissões RBAC — as operações que o aplicativo tem autorização para executar
Recursos acessíveis — as chaves ou segredos que o aplicativo pode acessar
Regras de acesso à rede — os endereços IP de origem dos quais o acesso é permitido
Permissões RBAC
|
Função |
Escopo |
Operações suportadas |
|
CryptoServiceKeyUser |
Chaves em uma instância do KMS |
Operações criptográficas via Instance API. Consulte Lista de operações por função. |
|
CryptoServiceSecretUser |
Segredos em uma instância do KMS |
Operações relacionadas a segredos via Instance API. Consulte Lista de operações por função. |
|
SecretUser |
Todos os segredos na conta atual da Alibaba Cloud |
GetSecretValue via OpenAPI |
Credenciais
Uma credencial comprova a identidade do aplicativo que acessa o KMS. Dois tipos de credenciais são suportados: chave de cliente e função RAM.
Escolha um tipo de credencial
|
Cenário |
Tipo de credencial |
|
O aplicativo requer autenticação de identidade e comportamento para usar chaves ou segredos em uma instância do KMS |
Chave de cliente |
|
O aplicativo executa no Elastic Compute Service (ECS), Container Service for Kubernetes (ACK) ou Function Compute e está associado a uma função do Resource Access Management (RAM) |
Função RAM |
Chave de cliente
Uma chave de cliente assina as solicitações do aplicativo para o KMS e verifica essas assinaturas. Ela consiste em duas partes:
Application Access Secret(ClientKeyContent)
Password
Limites de ciclo de vida:
|
Propriedade |
Valor |
|
Período de validade padrão |
Cinco anos (recomenda-se um ano) |
|
Máximo de chaves de cliente por AAP |
Três |
|
Armazenamento |
O KMS não armazena chaves de cliente. Se você perder uma chave de cliente, exclua-a e crie uma nova. |
|
Resposta a comprometimento |
Exclua imediatamente a chave comprometida e crie uma substituta. |
Para rotacionar uma chave de cliente antes que ela expire, consulte Alterar uma chave de cliente. Após mudar para a nova chave, exclua a antiga do KMS.
Função RAM
Utilize uma função RAM quando seu aplicativo executar no ECS, ACK ou Function Compute, já estiver associado a uma função RAM e você precisar recuperar um valor de segredo usando um endpoint do KMS. O KMS autentica solicitações da OpenAPI usando o RAM — nenhuma chave de cliente é necessária.
SDKs que suportam autenticação por chave de cliente
Diferentes SDKs do KMS suportam métodos distintos de autenticação. Para uma visão geral completa, consulte Referências de SDK.
Os seguintes SDKs suportam autenticação por chave de cliente:
|
SDK |
Escopo de acesso |
Tipo de endpoint |
|
KMS Instance SDK |
Chaves e segredos em uma instância do KMS |
Endpoint da instância do KMS (requer chave de cliente) |
|
Secret SDK |
Segredos em uma instância do KMS ou segredos em toda a conta atual da Alibaba Cloud |
Endpoint da instância do KMS ou endpoint do KMS |
Ao usar o Secret SDK com um endpoint do KMS, você pode se autenticar com uma chave de cliente, um par de AccessKey de um usuário RAM ou uma função RAM. O tipo de endpoint depende de como você configura o escopo da política de permissões: defina-o como uma instância do KMS para usar um endpoint de instância do KMS ou defina-o como Shared KMS Gateway para usar um endpoint do KMS.
Notificações de expiração de chave de cliente
A Alibaba Cloud envia notificações de expiração por e-mail ou mensagem interna nos seguintes intervalos antes que uma chave de cliente expire: seis meses, três meses, um mês e sete dias.
Para configurar alertas proativos, configure o CloudMonitor para enviar notificações 180 dias, 90 dias, 30 dias e 7 dias antes da expiração. Consulte Eventos de alerta.
Logs e auditoria
Eventos de gerenciamento
O KMS integra-se ao ActionTrail para registrar eventos de gerenciamento de AAPs. Consulte Eventos de auditoria do KMS e Usar o ActionTrail para consultar eventos do KMS.
Logs de chamadas de chave de cliente
O KMS integra-se ao Simple Log Service (SLS) para registrar chamadas feitas com chaves de cliente. Os logs são retidos por 180 dias e podem ser pesquisados na página do Simple Log Service for KMS. Para verificar se uma chave de cliente específica foi usada, insira seu ID na caixa de pesquisa em kms_audit_log. Se o campo access_key_id nos resultados corresponder ao ID da chave de cliente, significa que a chave foi chamada.
Próximos passos
Acessar uma instância do KMS usando um AAP — crie um AAP e integre-o ao seu aplicativo
Referências de SDK — escolha e integre um SDK
Descrição de endpoints — entenda a diferença entre endpoints de instância do KMS e endpoints do KMS
Cotas de desempenho — limites de QPS (consultas por segundo)