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 para Redis Cluster. 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 para Redis ou nos aplicativos locais já usarem a autenticação básica baseada em token, esse recurso facilitará uma transição tranquila ao migrar para o Memorystore para Redis Cluster.

Vantagens

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

  • Flexibilidade: para clusters novos e atuais, é possível ativar a autenticação a qualquer momento. Quando você ativa a autenticação básica baseada em token, seus 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 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 for Redis Cluster.

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

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

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

Antes de começar

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

Usar 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 Redis Cluster, você precisa ter pelo menos a versão 489.0.0 da CLI gcloud.

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

  • roles/redis.admin (a função 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 para Redis Cluster é compatível com as 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 compatível para restringir o acesso de um usuário ao cluster.

É possível criar o cluster usando o console do Google Cloud ou a CLI gcloud.

Console

Para criar um cluster e ativar a autenticação básica baseada em token, consulte Criar instâncias.

gcloud

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

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 compatível 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 tempo de inatividade para aplicativos que tentam criar novas conexões, porque o Memorystore para 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 em qualquer tentativa de conexão subsequente com o 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 o console Google Cloud ou a CLI gcloud.

Console

  1. No console Google Cloud , acesse a página Memorystore para Redis Cluster.

    Memorystore for Redis Cluster

  2. Clique no cluster em que você quer ativar a autenticação básica baseada em token.

  3. Na página Visão geral do cluster, role até o card Segurança.

  4. Ao lado do campo Modo de autenticação, clique em Editar ().

    Se Autenticação do IAM ou Autenticação por token aparecerem ao lado do campo, significa que você já ativou a autenticação do IAM ou a autenticação básica baseada em token para o cluster.

  5. Na caixa de diálogo Modo de autenticação, selecione a opção Autenticação por token e clique em Atualizar cluster.

gcloud

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

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 em que 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 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 o console Google Cloud ou a CLI gcloud.

Console

  1. No console Google Cloud , acesse a página Memorystore para Redis Cluster.

    Memorystore for Redis Cluster

  2. Clique no cluster para o qual você quer criar um usuário de autenticação básica baseada em token.

  3. Na gaveta de navegação, clique no item de menu Usuários.

    Se esse item de menu não aparecer na gaveta, você não criou um cluster com autenticação básica nem ativou a autenticação básica baseada em token para o cluster.

  4. Na página Usuários, clique em Adicionar usuário.

  5. Na caixa de diálogo Adicionar usuário, insira um ID para o usuário e clique em Adicionar.

gcloud

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

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 o console do Google Cloud ou a CLI gcloud.

Console

  1. No console Google Cloud , acesse a página Memorystore para Redis Cluster.

    Memorystore for Redis Cluster

  2. Clique no cluster para o qual você quer recuperar uma lista de usuários de autenticação básica baseada em token.

  3. Na gaveta de navegação, clique no item de menu Usuários. Na página Usuários, uma lista de usuários básicos de autenticação baseada em token é exibida.

    Se o item de menu Usuários não aparecer na gaveta de navegação, significa que você não criou um cluster com autenticação básica ou ativou a autenticação básica baseada em token para o cluster.

gcloud

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

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.

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

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 ver informações.
  • CLUSTER_ID: o ID do cluster em que o usuário pode fazer a autenticação
  • 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 o Google Cloud console ou a CLI gcloud.

Console

  1. No console Google Cloud , acesse a página Memorystore para Redis Cluster.

    Memorystore for Redis Cluster

  2. Clique no cluster em que você quer excluir um usuário de autenticação básica baseada em token.

  3. Na gaveta de navegação, clique no item de menu Usuários.

    Se esse item de menu não aparecer na gaveta, significa que você não criou um cluster com autenticação básica ou ativou a autenticação básica baseada em token para o cluster.

  4. Na página Usuários, ao lado do ID do usuário que você quer excluir, clique em Ações ().

  5. No menu exibido, selecione Remover usuário.

  6. Na caixa de diálogo Excluir usuário?, insira o ID do usuário e clique em Excluir. O Memorystore for Redis Cluster exclui o usuário e todos os tokens de autenticação associados a ele.

  7. Opcional: para o usuário que você está excluindo, o Memorystore para 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
    

gcloud

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

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 da autenticação básica baseada em token.
  • CLUSTER_ID: o ID do cluster de que 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 também exclui todos os tokens de autenticação associados a ele. Além disso, 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 é compatível com as 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

Quando você cria um usuário de autenticação básica baseada em token para um cluster, o Memorystore for Redis Cluster cria um token de autenticação para o usuário automaticamente. No entanto, é possível criar um token de autenticação adicional para o usuário. Ao fazer isso, você pode alternar o token atual do usuário sem causar inatividade nos aplicativos.

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

Console

  1. No console Google Cloud , acesse a página Memorystore para Redis Cluster.

    Memorystore for Redis Cluster

  2. Clique no cluster que tem um usuário para quem você quer criar um token de autenticação.

  3. Na gaveta de navegação, clique no item de menu Usuários.

    Se esse item de menu não aparecer na gaveta, significa que você não criou um cluster com autenticação básica ou ativou a autenticação básica baseada em token para o cluster.

  4. Na página Usuários, ao lado do ID do usuário para quem você quer criar um token de autenticação, clique em Ações ().

  5. No menu exibido, selecione Adicionar token de autenticação.

  6. Na caixa de diálogo Adicionar token de autenticação, clique em Adicionar.

    Se um usuário já tiver dois tokens de autenticação, antes de criar outro token para ele, exclua um token atual.

gcloud

Para criar o token, use o comando gcloud beta redis clusters token-auth-users create-auth-token.

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.

Se um usuário já tiver dois tokens de autenticação, será necessário excluir um token atual antes de criar outro.

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

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 a que os tokens de autenticação pertencem
  • CLUSTER_ID: o ID do cluster a que o usuário pode acessar usando os tokens de autenticação.
  • REGION: a região em que o cluster está localizado.

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

É possível conferir informações sobre tokens de autenticação de um usuário usando o Google Cloud console ou a CLI gcloud.

Console

  1. No console Google Cloud , acesse a página Memorystore para Redis Cluster.

    Memorystore for Redis Cluster

  2. Clique no cluster que tem os tokens de autenticação de um usuário sobre os quais você quer ver informações.

  3. Na gaveta de navegação, clique no item de menu Usuários.

    Se o item de menu não aparecer na gaveta, você não criou um cluster com autenticação básica ou ativou a autenticação básica baseada em token para o cluster.

  4. Na página Usuários, ao lado do ID do usuário, clique em Ações ().

  5. No menu exibido, selecione Ver tokens de autenticação. Na caixa de diálogo Tokens de autenticação, as seguintes informações são exibidas:

    • O ID do usuário.
    • O número de tokens de autenticação que o usuário tem (um ou dois).
    • A versão de cada token de autenticação, junto com a data e a hora em que o Memorystore for Redis Cluster criou cada versão. Sempre que você cria um token de autenticação para um usuário, o Memorystore para Redis Cluster cria uma versão incremental do token.
    • Os tokens de autenticação.
  6. Opcional: para conseguir um token de autenticação do usuário e usá-lo para se conectar a um cluster, clique em Copiar () ao lado de um token e cole-o em um editor de texto.

  7. Clique em Concluído.

gcloud

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

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 ver 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 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 o console do Google Cloud ou a CLI gcloud.

Console

  1. No console Google Cloud , acesse a página Memorystore para Redis Cluster.

    Memorystore for Redis Cluster

  2. Clique no cluster que tem um usuário de quem você quer excluir um token de autenticação.

  3. Na gaveta de navegação, clique no item de menu Usuários.

    Se esse item de menu não aparecer na gaveta, você não criou um cluster com autenticação básica nem ativou a autenticação básica baseada em token para o cluster.

  4. Na página Usuários, ao lado do ID do usuário de quem você quer excluir um token de autenticação, clique em Ações ().

  5. No menu exibido, selecione Excluir token de autenticação.

  6. Na caixa de diálogo Excluir token de autenticação?, faça o seguinte:

    1. No menu Token de autenticação, selecione o token que você quer excluir.
    2. No campo ID de token Auth, insira o número da versão do token (por exemplo, version-1).
    3. Clique em Excluir.

gcloud

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

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 do 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, além do endereço IP e do 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, 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:

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

Faça as seguintes substituições:

  • USERNAME: o nome de usuário da pessoa 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 de uma VM do Compute Engine ou de 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 da pessoa 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

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

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

  1. Crie 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. Atualize seus aplicativos: atualize os aplicativos para usar o novo token.
  3. Exclua o token de autenticação do usuário: o Memorystore for Redis Cluster 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 for Redis Cluster gera registros de auditoria de atividade do administrador e de acesso aos 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.