Proteja o acesso às suas instâncias usando a autenticação básica baseada em token

Além da autenticação do Identity and Access Management (IAM), é possível usar a autenticação básica baseada em token para proteger o acesso às suas instâncias do Memorystore para Valkey. Como uma solução leve, a autenticação básica baseada em token permite que os clientes verifiquem as identidades nos seus aplicativos usando os tokens.

A autenticação básica baseada em token tem requisitos mínimos de recursos e uma baixa sobrecarga de recursos. Além disso, se as cargas de trabalho atuais no Memorystore for Redis ou nos aplicativos locais já usarem a autenticação básica baseada em token, esse recurso vai facilitar uma transição tranquila ao migrar para o Memorystore for Valkey.

Vantagens

Ao usar a autenticação básica baseada em token, você tem os seguintes benefícios:

  • Flexibilidade: para instâncias novas e atuais, ative a autenticação a qualquer momento. Quando você ativa a autenticação básica baseada em token, suas instâncias ficam seguras. Para todas as novas conexões, os usuários precisam fornecer um token de autenticação para autenticar nas instâncias.
  • Rotação sem inatividade: gire os tokens de usuário sem causar inatividade nos seus aplicativos.
  • Compatibilidade: o superusuário default mantém os mesmos privilégios concedidos a esse usuário. A autenticação básica baseada em token adiciona uma camada extra de proteção. Isso garante a compatibilidade com versões anteriores ao migrar suas cargas de trabalho do Memorystore para Redis para o Memorystore para Valkey.

Modos de autenticação

A autenticação básica baseada em token é compatível com dois modos principais:

  • Autenticação simples: um método direto em que um usuário envia um token de autenticação para se autenticar como o usuário default.
  • Autenticação multiusuário: gerencie vários usuários para autenticar o acesso às suas instâncias.

Práticas recomendadas

Por motivos de segurança, recomendamos que você use as seguintes práticas recomendadas para autenticação básica baseada em token:

  • Alternar tokens de usuário: use uma política de rotação para tokens de usuário.
  • Use o Secret Manager: não codifique as credenciais básicas de autenticação baseada em token de um usuário no código do aplicativo. Em vez disso, armazene-as no Secret Manager e recupere-as no tempo de execução.

    O Secret Manager oferece um cofre criptografado e centralizado para credenciais de usuário, o que elimina a expansão de secrets e reduz a sobrecarga operacional do gerenciamento manual de credenciais. Ele aplica controles de acesso usando o IAM e gera registros de auditoria automaticamente. Isso garante a conformidade e evita a exposição de credenciais.

  • Combine a autenticação básica baseada em token com o Transport Layer Security (TLS): ao usar a autenticação básica baseada em token, recomendamos que você ative a criptografia em trânsito. Isso garante que os nomes de usuário e tokens de autenticação não sejam enviados em texto simples pela rede.

Antes de começar

Antes de começar a proteger suas instâncias usando a autenticação básica baseada em token, conclua os pré-requisitos nesta seção.

Verificar o suporte do cliente para autenticação básica baseada em token

Para confirmar que seus aplicativos cliente podem oferecer suporte à autenticação básica baseada em token, verifique se eles podem usar o comando AUTH.

O usuário default se autentica nos aplicativos cliente usando o seguinte comando:

AUTH TOKEN

Nesse comando, TOKEN é o token de autenticação do usuário padrão.

Todos os outros usuários se autenticam usando o seguinte comando:

AUTH USERNAME TOKEN

Nesse comando, USERNAME e TOKEN são o nome de usuário e o token de autenticação do usuário.

Para mais informações sobre o comando AUTH, consulte AUTH na documentação do Valkey.

Use o console Google Cloud , a Google Cloud CLI e as APIs

Para usar o console Google Cloud , a CLI gcloud e as APIs, faça o seguinte:

  1. No console do Google Cloud , na página do seletor de projetos, selecione ou crie um projeto do Google Cloud .

    Acessar o seletor de projetos

  2. Verifique se o faturamento foi ativado para o projeto. Saiba como verificar se o faturamento está ativado em um projeto.
  3. Instale e inicialize a Google Cloud CLI (CLI gcloud).

    Observação:se você instalou a CLI gcloud, execute gcloud components update para verificar se tem a versão mais recente. Para acessar os comandos da CLI gcloud do Memorystore para Valkey, você precisa ter pelo menos a versão 489.0.0 da CLI gcloud.

  4. Ative a API Memorystore for Valkey.
    API Memorystore for Valkey
  5. Ative a API Network Connectivity.
    API Network Connectivity
  6. Ative a API Service Consumer Management.
    API Service Consumer Management

Atribuir papéis

Para configurar a autenticação básica baseada em token para suas instâncias, você precisa ter um destes papéis do IAM no seu projeto Google Cloud :

  • roles/memorystore.admin (papel de administrador do Memorystore)
  • roles/owner (o papel de proprietário)
  • roles/editor (o papel de Editor)

Gerenciar a autenticação básica baseada em token para instâncias

O Memorystore para Valkey é compatível com as seguintes ações para gerenciar a autenticação básica baseada em token para instâncias:

Criar uma instância com autenticação básica baseada em token

Ao criar uma instância com autenticação básica baseada em token, você tem um método leve e amplamente compatível para restringir o acesso de um usuário à instância.

É possível criar a instância usando a CLI gcloud.

Para criar uma instância com a autenticação básica baseada em token ativada, use o comando gcloud beta memorystore instances create.

gcloud beta memorystore instances create INSTANCE_ID \
--location=REGION \
--authorization-mode=token-auth

Faça as seguintes substituições:

  • INSTANCE_ID: o ID da instância que você quer criar para usar a autenticação básica baseada em token
  • REGION: a região em que você quer que a instância esteja localizada.

Ativar a autenticação básica baseada em token para uma instância

Ao ativar a autenticação básica baseada em token para uma instância, você tem um método leve e amplamente compatível para restringir o acesso de um usuário a ela.

O usuário default pode se autenticar na instância usando apenas o token. Todos os outros usuários se autenticam usando um nome de usuário e um token padrão. Para mais informações, consulte Verificar o suporte do cliente para autenticação básica baseada em token.

Ativar a autenticação básica baseada em token pode causar tempo de inatividade para aplicativos que tentam criar novas conexões porque o Memorystore para Valkey exige solicitações autenticadas. Embora as conexões atuais não sejam afetadas, para usar a autenticação básica baseada em token em qualquer tentativa de conexão subsequente com a instância, é necessário atualizar os aplicativos. Para mais informações, consulte Conectar-se a uma instância usando a autenticação básica baseada em token.

É possível ativar a autenticação básica baseada em token para uma instância usando a CLI gcloud.

Para ativar a autenticação básica baseada em token, use o comando gcloud beta memorystore instances update.

gcloud beta memorystore instances update INSTANCE_ID \
--location=REGION \
--authorization-mode=token-auth

Faça as seguintes substituições:

  • INSTANCE_ID: o ID da instância em que você quer ativar a autenticação básica baseada em token.
  • REGION: a região em que a instância está localizada.

Criar um usuário de autenticação básica baseada em token para uma instância

Ao criar um usuário de autenticação básica baseada em token para uma instância, você configura a instância para permitir a autenticação multiusuário. Depois que o usuário faz login inicialmente, esse modo de autenticação funciona como uma credencial segura e revogável para novas conexões. O usuário pode continuar usando o token de autenticação até que ele seja excluído ou o usuário seja removido.

É possível criar um usuário básico de autenticação baseada em token usando a CLI gcloud.

Para criar o usuário, use o comando gcloud beta memorystore instances create-token-auth-user.

gcloud beta memorystore instances create-token-auth-user INSTANCE_ID \
--location=REGION \
--token-auth-user=USERNAME

Faça as seguintes substituições:

  • INSTANCE_ID: o ID da instância para a qual você quer criar um usuário de autenticação básica baseada em token.
  • REGION: a região em que a instância está localizada.
  • USERNAME: o nome de usuário do usuário

Listar usuários de autenticação básica baseada em token para uma instância

É possível recuperar uma lista de usuários básicos de autenticação baseada em token para uma instância usando a CLI gcloud.

Para listar os usuários, use o comando gcloud beta memorystore instances token-auth-users list.

gcloud beta memorystore instances token-auth-users list \
--instance=INSTANCE_ID \
--location=REGION

Faça as seguintes substituições:

  • INSTANCE_ID: o ID da instância para a qual você quer recuperar uma lista de usuários básicos de autenticação baseada em token.
  • REGION: a região em que a instância está localizada.

Ver informações sobre um usuário de autenticação básica baseada em token

É possível conferir informações sobre um usuário de autenticação básica baseada em token usando a CLI gcloud.

Para ver informações sobre o usuário, use o comando gcloud beta memorystore instances token-auth-users describe.

gcloud beta memorystore instances token-auth-users describe USERNAME \
--instance=INSTANCE_ID \
--location=REGION

Faça as seguintes substituições:

  • USERNAME: o nome de usuário do usuário de autenticação básica baseada em token sobre o qual você quer ver informações.
  • INSTANCE_ID: o ID da instância em que o usuário pode fazer a autenticação
  • REGION: a região em que a instância está localizada.

Excluir um usuário de autenticação básica baseada em token de uma instância

Ao excluir um usuário de autenticação básica baseada em token de uma instância, você revoga os direitos de acesso do usuário à instância.

É possível excluir um usuário de autenticação básica baseada em token de uma instância usando a CLI gcloud.

Para excluir o usuário, use o comando gcloud beta memorystore instances token-auth-users delete.

gcloud beta memorystore instances token-auth-users delete USERNAME \
--instance=INSTANCE_ID \
--location=REGION

Faça as seguintes substituições:

  • USERNAME: o nome de usuário do usuário de autenticação básica baseada em token.
  • INSTANCE_ID: o ID da instância de que você quer excluir o usuário
  • REGION: a região em que a instância está localizada.

Para o usuário que você está excluindo, o Memorystore para Valkey não encerra as conexões existentes. Para encerrar essas conexões, execute o seguinte comando em todos os nós da instância:

CLIENT KILL USER USERNAME

Gerenciar a autenticação básica baseada em token para usuários

O Memorystore para Valkey oferece suporte às seguintes ações para gerenciar a autenticação básica baseada em token para usuários:

Criar um token de autenticação para um usuário

Ao criar um token de autenticação para um usuário, é possível fazer a rotação do token atual dele sem causar tempo de inatividade nos seus aplicativos.

É possível criar um token de autenticação para um usuário usando a CLI gcloud.

Para criar o usuário, use o comando gcloud beta memorystore instances token-auth-users create-auth-token.

gcloud beta memorystore instances token-auth-users create-auth-token USERNAME \
--instance=INSTANCE_ID \
--location=REGION

Faça as seguintes substituições:

  • USERNAME: o nome de usuário da pessoa para quem você quer criar um token de autenticação
  • INSTANCE_ID: o ID da instância que o usuário pode acessar usando o token.
  • REGION: a região em que a instância está localizada.

Listar tokens de autenticação para um usuário

É possível recuperar uma lista de tokens de autenticação de um usuário usando a CLI gcloud.

Para listar os tokens, use o comando gcloud beta memorystore instances token-auth-users auth-tokens list.

gcloud beta memorystore instances token-auth-users auth-tokens list \
--token-auth-user=USERNAME \
--instance=INSTANCE_ID \
--location=REGION

Faça as seguintes substituições:

  • USERNAME: o nome de usuário a que os tokens de autenticação pertencem.
  • INSTANCE_ID: o ID da instância a que o usuário pode acessar usando os tokens de autenticação.
  • REGION: a região em que a instância está localizada.

Ver informações sobre um token de autenticação de um usuário

É possível conferir informações sobre um token de autenticação de um usuário usando a CLI gcloud.

Para conferir as informações, use o comando gcloud beta memorystore instances token-auth-users auth-tokens describe.

gcloud beta memorystore instances token-auth-users auth-tokens describe AUTH_TOKEN \
--instance=INSTANCE_ID \
--location=REGION \
--token-auth-user=USERNAME

Faça as seguintes substituições:

  • AUTH_TOKEN: o nome do token de autenticação sobre o qual você quer ver informações.
  • INSTANCE_ID: o ID da instância que o usuário pode acessar usando o token.
  • REGION: a região em que a instância está localizada.
  • USERNAME: o nome de usuário a que o token de autenticação pertence.

Excluir um token de autenticação de um usuário

Excluir um token de autenticação de um usuário é uma ação de segurança essencial que invalida o token.

É possível excluir um token de autenticação de um usuário usando a CLI gcloud.

Para excluir o token, use o comando gcloud beta memorystore instances token-auth-users auth-tokens delete.

gcloud beta memorystore instances token-auth-users auth-tokens delete AUTH_TOKEN \
--instance=INSTANCE_ID \
--location=REGION \
--token-auth-user=USERNAME

Faça as seguintes substituições:

  • AUTH_TOKEN: o nome do token de autenticação que você quer excluir do usuário
  • INSTANCE_ID: o ID da instância que você quer impedir que o usuário acesse excluindo o token
  • REGION: a região em que a instância está localizada.
  • USERNAME: o nome de usuário do usuário que tem um token que você quer excluir

Conectar-se a uma instância usando a autenticação básica baseada em token

Use os seguintes métodos para se conectar a uma instância usando a autenticação básica baseada em token:

  • String de identificador uniforme de recursos (URI): essa string única e formatada é usada por conveniência porque todas as informações de conexão necessárias (por exemplo, nome de usuário e token de autenticação do usuário, além de endereço IP e nome do host da instância) estão contidas em uma string.
  • Flags: esse método é mais adequado para uso individual de ferramenta de linha de comando, scripts ou ambientes em que a configuração é dividida em variáveis de ambiente separadas usando vários argumentos separados.

Nas seções a seguir, explicamos cada método de conexão.

Usar uma string de URI

Para se conectar de uma VM do Compute Engine ou de um ambiente compatível usando uma string de URI, use o seguinte comando:

valkey-cli -u
redis://USERNAME:TOKEN@IP_ADDRESS:PORT

Faça as seguintes substituições:

  • USERNAME: o nome do usuário que está tentando se conectar à instância
  • TOKEN: o token de autenticação do usuário.
  • IP_ADDRESS: o endereço IP da instância
  • PORT: o número da porta reservada para a instância

Usar flags

Para se conectar de uma VM do Compute Engine ou de um ambiente compatível usando flags, use o seguinte comando:

valkey-cli --user USERNAME -a TOKEN -h IP_ADDRESS -p PORT

Faça as seguintes substituições:

  • USERNAME: o nome do usuário que está tentando se conectar à instância
  • TOKEN: o token de autenticação do usuário.
  • IP_ADDRESS: o endereço IP da instância
  • PORT: o número da porta reservada para a instância

Fazer a rotação do token de autenticação de um usuário sem período de inatividade

Para fazer a rotação do token de autenticação de um usuário sem causar inatividade nos aplicativos, faça o seguinte:

  1. Crie um token de autenticação adicional para o usuário: o Memorystore for Valkey gera um segundo token válido. Os dois tokens são válidos.
  2. Atualize seus aplicativos: atualize os apps para usar o novo token.
  3. Exclua o token de autenticação do usuário: o Memorystore para Valkey remove o primeiro token. O usuário pode usar apenas o segundo token para autenticar nos seus aplicativos.

Registros de acesso para autenticação básica baseada em token

O Memorystore para Valkey gera registros de auditoria de atividade do administrador e de acesso a dados para operações associadas a tokens de autenticação e usuários. Para mais informações sobre esses registros de auditoria, consulte Monitorar o acesso usando registros de auditoria.