Gerenciar a autenticação do IAM

Esta página apresenta instruções sobre tarefas comuns para o recurso de autenticação do IAM no Memorystore para Valkey. Para saber mais 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 o IAM do Cloud, 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 letras, 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 deve usar formato: projects/NETWORK_PROJECT_ID/global/networks/NETWORK_ID. O o ID de rede usado aqui precisa corresponder ao ID de rede usado pela conexão de serviço política. Caso contrário, a operação create 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âncias, consulte Especificação de instância e nó.

  • SHARD_COUNT determina o número de fragmentos nos seus 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ância e de nó.

Conceder permissões para 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 um papel de administrador do IAM limitado para uma instância

Talvez você queira criar um papel que possa modificar as permissões do IAM de conexão de instância sem conceder acesso de administrador do IAM. Para isso, é preciso criar um bucket do IAM administrador para o papel roles/memorystore.dbConnectionUser. Para mais Para mais detalhes, acesse Criar administradores limitados do IAM.

Conectar-se a uma instância que usa a autenticação do IAM

  1. 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 se conecte a ela seguindo o Guia de início rápido sobre como usar uma VM do Linux.

  2. Para se conectar à instância, ative os seguintes escopos de acesso e APIs no seu projeto:

  3. Instale valkey-cli na VM do Compute Engine seguindo as instruções em Instalar o Valkey.

  4. Execute o comando a seguir para receber um token de acesso do IAM usuário:

    gcloud auth print-access-token
    
  5. Conecte-se ao endpoint de descoberta da instância:

    valkey-cli -h NETWORK_ADDRESS -p PORT -a ACCESS_TOKEN -c
    

    Substitua:

  6. Execute o comando CLUSTER SHARDS para visualizar a topologia de nós. Criar uma nota usando um dos endereços IP e números de porta do nó.

  7. 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ó que você encontrou na etapa anterior.
    • NODE_PORT é o número da porta do nó encontrado na etapa anterior.
  8. Execute um comando SET e GET do Valkey para verificar se você estabeleceu uma uma conexão autenticada ao nó da instância.

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

  10. Execute o comando a seguir para usar valkey-cli na autenticação e na conexão com sua instância, substituindo as variáveis pelos valores apropriados:

    valkey-cli -h NETWORK_ADDRESS -p PORT -a ACCESS_TOKEN -c
    

    Substitua:

  11. Execute um comando SET e GET do Valkey para verificar se você estabeleceu uma conexão autenticada com a instância.

  12. Depois de testar sua conexão com a instância do Valkey, exclua a VM do Compute Engine que você usou 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.

  1. (Opcional) Crie uma conta de serviço para o aplicativo, caso ainda não tenha feito isso. Consulte Como 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.
  2. Conceda à sua conta de serviço a permissão memorystore.dbConnectionUser no seu 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.
  3. Autentique seu aplicativo como a conta de serviço fornecida. Consulte contas de serviço para mais informações.

    Para 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 o IAM Auth

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 IAM, consulte Exemplo de código da biblioteca de cliente de autenticação IAM.