O Memorystore oferece o recurso de autenticação do Identity and Access Management (IAM), que usa o IAM para ajudar você a gerenciar melhor o acesso de login para usuários e contas de serviço. A autenticação baseada no IAM se integra ao AUTH do Redis, permitindo que você gire as credenciais (tokens do IAM) sem depender de senhas estáticas.
Para instruções sobre como configurar a autenticação do IAM para o cluster do Memorystore, consulte Gerenciar a autenticação do IAM.
Autenticação do IAM para Redis
Ao usar a autenticação do IAM, a permissão para acessar um cluster do Memorystore não é concedida diretamente ao usuário final. Em vez disso, as permissões são agrupadas em papéis, que são concedidos a principais. Para mais informações, consulte a visão geral do IAM.
Os administradores que se autenticam com o IAM podem usar a autenticação do IAM do Memorystore para gerenciar centralmente o controle de acesso às instâncias usando políticas do IAM. As políticas do IAM envolvem as seguintes entidades:
Principais. No Memorystore, é possível usar dois tipos de principais: uma conta de usuário e uma conta de serviço (para aplicativos). Outros tipos de principais, como grupos do Google, domínios do Google Workspace ou domínios do Cloud Identity, ainda não são compatíveis com a autenticação do IAM. Para mais informações, consulte Conceitos relacionados à identidade.
Papéis. Para a autenticação do IAM do Memorystore, um usuário precisa da permissão redis.clusters.connect para se autenticar com um cluster. Para receber essa permissão, vincule a conta de usuário ou de serviço ao papel predefinido Usuário de conexão de banco de dados do cluster do Redis (roles/redis.dbConnectionUser). Para mais informações sobre os papéis do IAM, consulte Papéis.
Recursos. Os recursos que os principais acessam são clusters do Memorystore. Por padrão, as vinculações de política do IAM são aplicadas para envolvidos no projeto, de modo que os principais recebam permissões de papel para todas as instâncias do Memorystore no projeto. No entanto, as vinculações de política do IAM podem ser restritas a um cluster específico. Para instruções, consulte Gerenciar permissões para autenticação do IAM.
Comando AUTH do Redis
O recurso de autenticação do IAM usa o comando AUTH do Redis para se integrar ao IAM, permitindo que os clientes forneçam um token de acesso do IAM que será verificado pelo cluster do Memorystore antes de permitir o acesso aos dados.
Como todo comando, o comando AUTH é enviado não criptografado, a menos que a criptografia em trânsito esteja ativada.
Para um exemplo de como o comando AUTH pode ser, consulte Como se conectar a um cluster do Redis que usa a autenticação do IAM.
Período do token de acesso do IAM
Por padrão, o token de acesso do IAM que você recupera como parte da autenticação expira uma hora após ser recuperado. Como alternativa, ao gerar o token de acesso, é possível estender o tempo de expiração do token por até 12 horas.
Ao estabelecer uma nova conexão do Redis, é necessário apresentar um token de acesso válido usando o comando AUTH. Se o token expirar, será necessário receber um novo token para estabelecer novas conexões. No entanto, se você já tiver autenticado uma conexão, ela continuará funcionando, mesmo que o token expire.
Encerrar uma conexão autenticada
Se você quiser encerrar a conexão, use o comando CLIENT KILL do Redis. Para encontrar a conexão que você quer encerrar, primeiro execute CLIENT LIST, que retorna conexões de cliente em ordem de idade. Em seguida, execute CLIENT KILL para encerrar a conexão.
Ativar a autenticação do IAM
A ativação da autenticação do IAM não degrada a performance do estado estável. No entanto, ela afeta a taxa em que você pode estabelecer uma conexão.
A ativação da autenticação do IAM limita a taxa de conexões de cliente estabelecidas a cada segundo. Isso ocorre porque a autenticação do IAM do Google Cloud precisa autenticar cada nova conexão. No estado estável, um aplicativo ativa pools de conexão para que esse impacto seja insignificante. No entanto, quando os aplicativos cliente são atualizados por implantações ou processamento de rejeição, pode haver um fluxo de conexões estabelecidas novamente. Se você atualizar os clientes gradualmente e implementar backoffs exponenciais, poderá absorver essa taxa reduzida.
Para conferir um exemplo de código de como usar a autenticação do IAM, consulte Exemplo de código de autenticação do IAM e criptografia em trânsito.
Práticas recomendadas para evitar o cache duplo de tokens
Para evitar falhas de autenticação causadas pelo cache duplo de tokens, siga estas práticas recomendadas:
- Buscar tokens sob demanda: use provedores de credenciais dinâmicas ou callbacks fornecidos pela biblioteca de cliente (como redis-py, Lettuce ou Jedis) para buscar tokens sob demanda para novas conexões.
- Inspecionar carimbos de data/hora de expiração: se você usar uma programação de atualização personalizada, inspecione o carimbo de data/hora de expiração real do token ou ajuste o limite de atualização antecipada da biblioteca de autenticação.
Segurança e privacidade
A autenticação do IAM ajuda a garantir que o cluster do Redis só possa ser acessado por principais autorizados do IAM. A criptografia TLS não é fornecida, a menos que a criptografia em trânsito esteja ativada. Por esse motivo, recomendamos que a criptografia em trânsito seja ativada ao usar a autenticação do IAM.
Conectar-se a uma VM do Compute Engine
Se você estiver usando uma VM do Compute Engine para se conectar a uma instância que usa a autenticação do IAM, ative os seguintes escopos de acesso e APIs para o projeto:
Escopo da API Cloud Platform. Para instruções sobre como ativar esse escopo, consulte Anexar a conta de serviço e atualizar o escopo de acesso. Para uma descrição das práticas recomendadas para esse escopo de acesso, consulte Práticas recomendadas de escopos.
API Memorystore for Redis Cluster. Para um link para ativar a API, clique no botão a seguir:
Memorystore for Redis Cluster