Proteja o acesso aos seus clusters 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 aos clusters no Memorystore for Redis Cluster. 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 Redis Cluster.

Benefícios

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

  • Flexibilidade: para clusters novos e atuais, ative a autenticação a qualquer momento. Quando você ativa a autenticação básica baseada em token, os clusters ficam seguros. Para todas as novas conexões, os usuários precisam fornecer um token para autenticar nos clusters.
  • Rotação sem inatividade: gire os tokens de usuário sem causar inatividade nos aplicativos.
  • Compatibilidade: o superusuário default mantém os mesmos privilégios que são concedidos a ele. 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 Redis Cluster.

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 aos clusters.

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

  • 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 não sejam enviados em texto simples pela rede.

Antes de começar

Antes de começar a proteger os clusters 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 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 Redis.

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, execute gcloud components update para verificar se tem a versão mais recente. Para acessar os comandos da CLI gcloud do Memorystore for Redis Cluster, é necessário ter pelo menos a versão 489.0.0 da CLI gcloud.

  4. Ative a API do Memorystore for Redis Cluster.
    API do Memorystore for Redis Cluster
  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 seus clusters, é necessário ter um destes papéis do IAM no seu Google Cloud projeto:

  • roles/redis.admin (o papel de administrador do Redis)
  • roles/owner (o papel de proprietário)
  • roles/editor (o papel de editor)

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

O Memorystore for Redis Cluster oferece suporte às seguintes ações para gerenciar a autenticação básica baseada em token para clusters:

Criar um cluster com autenticação básica baseada em token

Ao criar um cluster 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 ao cluster.

É possível criar o cluster usando a CLI gcloud.

Para criar um cluster com a autenticação básica baseada em token ativada, use o gcloud beta redis clusters create comando.

gcloud beta redis clusters create CLUSTER_ID \
--region=REGION \
--auth-mode=token-auth

Faça as seguintes substituições:

  • CLUSTER_ID: o ID do cluster que você quer criar para usar a autenticação básica baseada em token
  • REGION: a região em que você quer que o cluster esteja localizado

Ativar a autenticação básica baseada em token para um cluster

Ao ativar a autenticação básica baseada em token para um cluster, você tem um método leve e amplamente aceito para restringir o acesso de um usuário ao cluster.

O usuário default pode se autenticar no cluster 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 Redis Cluster 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 ao cluster, é necessário atualizar os aplicativos. Para mais informações, consulte Conectar-se a um cluster usando a autenticação básica baseada em token.

É possível ativar a autenticação básica baseada em token para um cluster usando a CLI gcloud.

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

gcloud beta redis clusters update CLUSTER_ID \
--region=REGION \
--auth-mode=token-auth

Faça as seguintes substituições:

  • CLUSTER_ID: o ID do cluster para o qual você quer ativar a autenticação básica baseada em token
  • REGION: a região em que o cluster está localizado

Criar um usuário de autenticação básica baseada em token para um cluster

Ao criar um usuário de autenticação básica baseada em token para um cluster, você configura o cluster 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 redis clusters create-token-auth-user comando.

gcloud beta redis clusters create-token-auth-user CLUSTER_ID \
--region=REGION \
--token-auth-user=USERNAME

Faça as seguintes substituições:

  • CLUSTER_ID: o ID do cluster para o qual você quer criar um usuário de autenticação básica baseada em token
  • REGION: a região em que o cluster está localizado
  • USERNAME: o nome de usuário do usuário

Listar usuários de autenticação básica baseada em token para um cluster

É possível recuperar uma lista de usuários de autenticação básica baseada em token para um cluster usando a CLI gcloud.

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

gcloud beta redis clusters token-auth-users list \
--cluster=CLUSTER_ID \
--region=REGION

Faça as seguintes substituições:

  • CLUSTER_ID: o ID do cluster para o qual você quer recuperar uma lista de usuários de autenticação básica baseada em token.
  • REGION: a região em que o cluster está localizado

Visualizar 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 redis clusters token-auth-users describe comando.

gcloud beta redis clusters token-auth-users describe USERNAME \
--cluster=CLUSTER_ID \
--region=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
  • CLUSTER_ID: o ID do cluster ao qual o usuário pode se autenticar
  • REGION: a região em que o cluster está localizado

Excluir um usuário de autenticação básica baseada em token de um cluster

Ao excluir um usuário de autenticação básica baseada em token de um cluster, você revoga os direitos de acesso do usuário ao cluster.

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

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

gcloud beta redis clusters token-auth-users delete USERNAME \
--cluster=CLUSTER_ID \
--region=REGION

Faça as seguintes substituições:

  • USERNAME: o nome de usuário do usuário de autenticação básica baseada em token
  • CLUSTER_ID: o ID do cluster do qual você quer excluir o usuário
  • REGION: a região em que o cluster está localizado

Para o usuário que você está excluindo, o Memorystore for Redis Cluster não encerra as conexões atuais. Para encerrar essas conexões, execute o seguinte comando em todos os nós do cluster:

CLIENT KILL USER USERNAME

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

O Memorystore for Redis Cluster 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 redis clusters token-auth-users create-auth-token comando.

gcloud beta redis clusters token-auth-users create-auth-token USERNAME \
--cluster=CLUSTER_ID \
--region=REGION

Faça as seguintes substituições:

  • USERNAME: o nome de usuário para o qual você quer criar um token de autenticação
  • CLUSTER_ID: o ID do cluster que o usuário pode acessar usando o token
  • REGION: a região em que o cluster está localizado

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 redis clusters token-auth-users auth-tokens list comando.

gcloud beta redis clusters token-auth-users auth-tokens list \
--token-auth-user=USERNAME \
--cluster=CLUSTER_ID \
--region=REGION

Faça as seguintes substituições:

  • USERNAME: o nome de usuário ao qual os tokens de autenticação pertencem
  • CLUSTER_ID: o ID do cluster que o usuário pode acessar usando os tokens de autenticação
  • REGION: a região em que o cluster está localizado

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 redis clusters token-auth-users auth-tokens describe comando.

gcloud beta redis clusters token-auth-users auth-tokens describe AUTH_TOKEN \
--cluster=CLUSTER_ID \
--region=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
  • CLUSTER_ID: o ID do cluster que o usuário pode acessar usando o token
  • REGION: a região em que o cluster está localizado
  • USERNAME: o nome de usuário ao qual 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 redis clusters token-auth-users auth-tokens delete comando.

gcloud beta redis clusters token-auth-users auth-tokens delete AUTH_TOKEN \
--cluster=CLUSTER_ID \
--region=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
  • CLUSTER_ID: o ID do cluster que você quer impedir que o usuário acesse excluindo o token
  • REGION: a região em que o cluster está localizado
  • USERNAME: o nome de usuário que tem um token que você quer excluir

Conectar-se a um cluster usando a autenticação básica baseada em token

É possível usar os seguintes métodos para se conectar a um cluster 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, o nome de usuário e o token do usuário, e o endereço IP e o nome do host do cluster) estão contidas em uma string.
  • Flags: esse método é mais adequado para uso individual de ferramenta de linha de comando uso, 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 uma VM do Compute Engine ou a um ambiente compatível usando uma string de URI, use o seguinte comando:

redis-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 ao cluster
  • TOKEN: o token de autenticação do usuário
  • IP_ADDRESS: o endereço IP do cluster
  • PORT: o número da porta reservada para o cluster

Usar flags

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

redis-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 ao cluster
  • TOKEN: o token de autenticação do usuário
  • IP_ADDRESS: o endereço IP do cluster
  • PORT: o número da porta reservada para o cluster

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 Redis Cluster gera um segundo token válido. Os dois tokens são válidos.
  2. Atualizar seus aplicativos: atualize seus aplicativos para usar o novo token.
  3. Excluir o token de autenticação do usuário: o Memorystore for Redis Cluster 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 Redis Cluster 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.