Sobre a autenticação do IAM

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 é integrada ao Valkey AUTH, 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 sua instância do Memorystore, consulte Gerenciar a autenticação do IAM.

Autenticação do IAM para Valkey

Ao usar a autenticação do IAM, a permissão para acessar uma instância 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 memorystore.instances.connect para se autenticar com uma instância. Para receber essa permissão, vincule a conta de usuário ou de serviço ao papel predefinido de usuário de conexão do banco de dados do Memorystore (roles/memorystore.dbConnectionUser). Para mais informações sobre os papéis do IAM, consulte Papéis.

  • Recursos. Os recursos que os principais acessam são instâncias 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 uma instância específica. Para instruções, consulte Gerenciar permissões para autenticação do IAM.

Comando AUTH do Valkey

O recurso de autenticação do IAM usa o comando AUTH do Valkey para se integrar ao IAM, permitindo que os clientes forneçam um token de acesso do IAM que será verificado pela instância do Valkey 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 Conectar-se a uma instância 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 a recuperação. 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 Valkey, é 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á autenticou uma conexão, ela continua funcionando, mesmo que o token expire.

Encerrar uma conexão autenticada

Para encerrar uma conexão, use o comando CLIENT KILL do Valkey. Primeiro, execute CLIENT LIST para identificar a conexão e, em seguida, execute CLIENT KILL para encerrá-la.

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 é possível estabelecer uma conexão.

A ativação da autenticação do IAM limita a taxa de conexões de clientes 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 reiniciados ou implantados, pode haver um aumento de novas conexões. Se você atualizar os clientes gradualmente e implementar a espera exponencial, será possível absorver essa taxa reduzida.

Para conferir um exemplo de código de como usar a autenticação do IAM, consulte Exemplo de código para 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 Valkey GLIDE ou redis-py) 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 a instância do Valkey só possa ser acessada 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 seu projeto: