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), você pode usar a autenticação básica baseada em token para proteger o acesso às instâncias do Memorystore for Valkey. Como uma solução leve, a autenticação básica baseada em token permite que os clientes verifiquem as identidades nos 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 para Redis ou nos aplicativos locais já usam a autenticação básica baseada em token, esse recurso facilita uma transição tranquila ao migrar para o Memorystore for Valkey.

Benefícios

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, as instâncias ficam seguras. Para todas as novas conexões, os usuários precisam fornecer um token de autenticação para se autenticar nas instâncias.
  • Rotação sem inatividade: gire os tokens de usuário sem causar inatividade nos aplicativos.
  • Compatibilidade: o default superusuário mantém os mesmos privilégios que são 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 as cargas de trabalho do Memorystore para Redis para o Memorystore for Valkey.

Modos de autenticação

A autenticação básica baseada em token oferece suporte a dois modos principais de autenticação:

  • 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 instâncias.

Práticas recomendadas

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

  • Girar tokens de usuário: use uma política de rotação para tokens de usuário.
  • Usar o Secret Manager: não codifique as credenciais de autenticação básica baseada em token de um usuário no código do aplicativo. Em vez disso, armazene-as no Secret Manager e recupere-as no ambiente 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.

  • Combinar 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 os tokens de autenticação não sejam enviados em texto simples pela rede.

Antes de começar

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

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

Para confirmar se os 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

Para esse 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

Para esse 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.

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

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

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

    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, verifique se tem a versão mais recente executando gcloud components update. Para acessar os comandos da CLI gcloud do Memorystore for Valkey, você precisa da versão 489.0.0 ou mais recente 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 Google Cloud projeto:

  • roles/memorystore.admin (o 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 for Valkey oferece suporte às 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 aceito 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 gcloud beta memorystore instances create comando.

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 aceito para restringir o acesso de um usuário à instância.

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.

A ativação da autenticação básica baseada em token pode causar inatividade para aplicativos que tentam criar novas conexões, porque o Memorystore for Valkey exige solicitações autenticadas. Embora as conexões atuais não sejam afetadas, para usar a autenticação básica baseada em token para qualquer tentativa de conexão subsequente à 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 gcloud beta memorystore instances update comando.

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 para a qual 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 atua 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 de autenticação básica baseada em token usando a CLI gcloud.

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

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 de autenticação básica baseada em token para uma instância usando a CLI gcloud.

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

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 de autenticação básica 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 visualizar informações sobre um usuário de autenticação básica baseada em token usando a CLI gcloud.

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

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 visualizar informações.
  • INSTANCE_ID: o ID da instância em que o usuário pode se autenticar.
  • 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 gcloud beta memorystore instances token-auth-users delete comando.

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 da qual 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 for Valkey não encerra as conexões atuais. 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 for 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 girar o token atual do usuário sem causar inatividade nos aplicativos.

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

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

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 para o qual 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 para um usuário usando a CLI gcloud.

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

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 que o usuário pode acessar usando os tokens de autenticação.
  • REGION: a região em que a instância está localizada.

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

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

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

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 visualizar 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

A exclusão de um token de autenticação de um usuário é uma ação de segurança crítica 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 gcloud beta memorystore instances token-auth-users auth-tokens delete comando.

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 que tem um token que você quer excluir.

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

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

  • String do identificador uniforme de recursos (URI, na sigla em inglês): essa string única e formatada é usada por conveniência, porque todas as informações de conexão necessárias (por exemplo, o nome de usuário e o token de autenticação do usuário, e o endereço IP e o nome do host da instância) estão contidas em uma string.
  • Flags: esse método é mais adequado para uso individual da 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, cada método de conexão é explicado.

Usar uma string de URI

Para se conectar a partir 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 de usuário que está tentando se conectar a 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 a partir 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 de usuário que está tentando se conectar a 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.

Girar o token de autenticação de um usuário sem inatividade

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

  1. Criar 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. Atualizar os aplicativos: atualize os aplicativos para usar o novo token.
  3. Excluir o token de autenticação do usuário: o Memorystore for Valkey remove o primeiro token. O usuário só pode usar o segundo token para se autenticar nos aplicativos.

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

O Memorystore for Valkey gera registros de auditoria de atividade de 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.