Esta página apresenta instruções sobre tarefas comuns para o recurso de autenticação do IAM no Memorystore para Valkey. Para mais detalhes sobre o recurso, consulte Sobre a autenticação do IAM.
Criar uma instância com a autenticação do IAM
Para criar uma instância do Memorystore para Valkey que usa a autenticação do IAM, execute o comando create
:
gcloud beta memorystore instances create INSTANCE_ID --region=REGION_ID --network=NETWORK --node-type=NODE_TYPE --shard-count=SHARD_COUNT --auth-mode=iam-auth
Substitua:
INSTANCE_ID é o ID da instância do Memorystore para Valkey que você está criando. O ID da instância precisa ter de 1 a 63 caracteres e usar apenas letras minúsculas, números ou hifens. Ele precisa começar com uma letra minúscula e terminar com uma letra minúscula ou um número.
REGION_ID é a região em que você quer colocar a instância.
NETWORK é a rede usada para criar a instância. Ele precisa usar o formato
projects/NETWORK_PROJECT_ID/global/networks/NETWORK_ID
. O ID de rede usado aqui precisa corresponder ao ID usado pela política de conexão de serviço. Caso contrário, a operaçãocreate
falhará. Para mais detalhes, consulte Rede.NODE_TYPE é o tipo de nó escolhido. Os valores aceitos são:
shared-core-nano
standard-small
highmem-medium
highmem-xlarge
Para mais detalhes sobre tipos de nó e configurações de instância, consulte Especificação de instância e de nó.
SHARD_COUNT determina o número de fragmentos na sua instância. A contagem de fragmentos determina a capacidade total de memória para armazenar dados de instância. Para mais detalhes sobre a especificação da instância, consulte Especificação de instâncias e nós.
Conceder permissões para a autenticação do IAM
Para conceder um acesso do IAM, conceda ao principal o papel
roles/memorystore.dbConnectionUser
usando as Instruções para conceder papéis do IAM.
Por padrão, conceder a um principal o papel roles/memorystore.dbConnectionUser
permite
que ele acesse todas as instâncias do projeto.
Criar uma função de administrador limitada do IAM para uma instância
Talvez você queira criar um papel que possa modificar as permissões do IAM
da conexão de instância sem conceder acesso de administrador
do IAM. Para isso, crie um administrador limitado do IAM para o papel roles/memorystore.dbConnectionUser
. Para mais
detalhes, acesse Criar administradores limitados do IAM.
Conectar-se a uma instância que usa a autenticação do IAM
Se você ainda não tem uma VM do Compute Engine que use a mesma rede autorizada da instância do Valkey, crie uma e conecte-se a ela seguindo o Guia de início rápido sobre como usar uma VM do Linux.
Para se conectar à instância, ative os seguintes escopos de acesso e APIs no seu projeto:
Escopo da API do 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 para escopos.
API Memorystore for Valkey. Para acessar um link para ativar a API, clique no botão a seguir:
Memorystore for Valkey
Instale
valkey-cli
na VM do Compute Engine seguindo as instruções em Instalar Valkey.Execute o comando a seguir para receber um token de acesso para seu usuário do IAM:
gcloud auth print-access-token
Conecte-se ao endpoint de descoberta da instância:
valkey-cli -h NETWORK_ADDRESS -p PORT -a ACCESS_TOKEN -c
Substitua:
NETWORK_ADDRESS é o endereço de rede da instância. Para conferir o endereço de rede, consulte Conferir informações da instância.
PORT é o número da porta das instâncias. Para conferir o número da porta, consulte Conferir informações da instância.
ACCESS_TOKEN é o token de acesso do IAM recuperado nas etapas anteriores.
Execute o comando
CLUSTER SHARDS
para conferir a topologia do nó. Anote um dos endereços IP e números de porta do nó.Conecte-se ao nó escolhido executando o seguinte comando:
valkey-cli -h NODE_IP_ADDRESS -p NODE_PORT -a ACCESS_TOKEN -c
Substitua:
- NODE_IP_ADDRESS é o endereço IP do nó encontrado na etapa anterior.
- NODE_PORT é o número da porta do nó encontrado na etapa anterior.
Execute um comando
SET
eGET
do Valkey para verificar se você estabeleceu uma conexão autenticada com o nó da sua instância.Depois de concluir o teste de conexão com a instância do Valkey, exclua a VM do Compute Engine usada para se conectar à instância do Valkey. Isso ajuda a evitar cobranças na sua conta do Cloud Billing.
Execute o comando a seguir para usar o valkey-cli para autenticar e se conectar à instância, substituindo as variáveis pelos valores apropriados:
valkey-cli -h NETWORK_ADDRESS -p PORT -a ACCESS_TOKEN -c
Substitua:
NETWORK_ADDRESS é o endereço de rede da instância. Para conferir o endereço de rede, consulte Conferir informações da instância.
PORT é o número da porta das instâncias. Para conferir o número da porta, consulte Conferir informações da instância.
ACCESS_TOKEN é o token de acesso do IAM recuperado nas etapas anteriores.
Execute um comando
SET
eGET
do Valkey para verificar se você estabeleceu uma conexão autenticada com a instância.Após concluir o teste de conexão com a instância do Valkey, exclua a VM do Compute Engine usada para se conectar à instância do Valkey. Isso ajuda a evitar cobranças na sua conta do Cloud Billing.
Automatizar a recuperação de tokens de acesso
É recomendável automatizar a recuperação do token de acesso no seu app, já que os tokens de acesso não podem ser codificados facilmente devido à vida útil curta.
(Opcional) Crie uma conta de serviço para seu app, se ainda não tiver feito isso. Consulte Criar e gerenciar uma conta de serviço.
gcloud iam service-accounts create SA_NAME \ --description="DESCRIPTION" \ --display-name="DISPLAY_NAME"
Substitua:
- SA_NAME é o nome da conta de serviço.
- DESCRIPTION é uma descrição opcional da conta de serviço.
- DISPLAY_NAME é um nome de conta de serviço a ser exibido no console do Google Cloud .
Conceda à conta de serviço a permissão
memorystore.dbConnectionUser
no projeto.gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SA_NAME@PROJECT_ID.iam.gserviceaccount.com" \ --role="memorystore.dbConnectionUser"
Substitua:
- PROJECT_ID é o ID do projeto.
- SA_NAME é o nome da conta de serviço.
- ROLE_NAME é o nome de um papel, como
roles/compute.osLogin
.
Autentique seu aplicativo como a conta de serviço especificada. Consulte contas de serviço para mais informações.
Para conferir exemplos de código que mostram como autenticar seu aplicativo usando bibliotecas de cliente conhecidas, consulte Exemplos de código de biblioteca de cliente de autenticação do IAM.
Exemplo de código para se conectar a uma instância que usa a autenticação do IAM
Para conferir um exemplo de código compatível com Valkey sobre como configurar uma biblioteca de cliente para se conectar a uma instância que usa a autenticação do IAM, consulte Exemplo de código da biblioteca de cliente da autenticação do IAM.