Controlo de acesso com a IAM

Esta página descreve como pode controlar o acesso ao projeto e as autorizações do Memorystore for Redis através da gestão de identidade e de acesso (IAM).

Vista geral

Google Cloud oferece o IAM, que lhe permite conceder acesso mais detalhado a recursos Google Cloud específicos e impede o acesso indesejado a outros recursos. Esta página descreve as funções e as autorizações de IAM do Memorystore for Redis. Para uma descrição detalhada das funções e autorizações, consulte a documentação do IAM.

O Memorystore for Redis oferece um conjunto de funções predefinidas concebidas para ajudar a controlar facilmente o acesso aos seus recursos Redis. Se as funções predefinidas não fornecerem os conjuntos de autorizações de que precisa, também pode criar as suas próprias funções personalizadas. Além disso, as funções básicas mais antigas (Editor, Leitor e Proprietário) também continuam disponíveis, embora não ofereçam o mesmo controlo detalhado que as funções do Memorystore para Redis. Em particular, as funções básicas fornecem acesso a recursos em Google Cloud, em vez de apenas para o Memorystore for Redis. Para mais informações sobre as funções básicas, consulte o artigo Funções básicas.

Autorizações e funções

Esta secção resume as autorizações e as funções suportadas pelo Memorystore for Redis.

Funções predefinidas

O Memorystore for Redis oferece algumas funções predefinidas que pode usar para conceder autorizações mais detalhadas aos responsáveis. A função que atribui a um principal controla as ações que o principal pode realizar. Os membros podem ser indivíduos, grupos ou contas de serviço.

Pode conceder várias funções ao mesmo principal e, se tiver as autorizações para o fazer, pode alterar as funções concedidas a um principal em qualquer altura.

As funções mais amplas incluem as funções definidas de forma mais restrita. Por exemplo, a função de editor do Redis inclui todas as autorizações da função de leitor do Redis, juntamente com a adição de autorizações para a função de editor do Redis. Da mesma forma, a função de administrador do Redis inclui todas as autorizações da função de editor do Redis, juntamente com as respetivas autorizações adicionais.

As funções básicas (proprietário, editor e leitor) concedem autorizações em Google Cloud. As funções específicas do Memorystore for Redis fornecem apenas autorizações do Memorystore for Redis, exceto as seguintes Google Cloud autorizações, que são necessárias para a utilização geral Google Cloud :

resourcemanager.projects.get
resourcemanager.projects.list

A tabela seguinte apresenta as funções predefinidas disponíveis para o Memorystore for Redis, juntamente com as respetivas autorizações do Memorystore for Redis:

Função Nome Autorizações do Redis Descrição

roles/owner

Proprietário

redis.*

Acesso e controlo totais de todos os Google Cloud recursos; gerir o acesso dos utilizadores

roles/editor

Editor Todas as redis autorizações, exceto *.getIamPolicy & .setIamPolicy Acesso de leitura/escrita a todos os recursos Google Cloud e do Redis (controlo total, exceto a capacidade de modificar autorizações)

roles/viewer

Leitor

redis.*.get redis.*.list

Acesso só de leitura a todos os Google Cloud recursos, incluindo recursos do Redis

roles/redis.admin

Administrador do Redis

redis.*

Controlo total de todos os recursos do Memorystore for Redis.

roles/redis.editor

Editor de Redis Todas as autorizações da app redis, exceto

redis.instances.create redis.instances.delete redis.instances.upgrade redis.instances.import redis.instances.export redis.instances.updateAuth redis.instances.getAuthString redis.operations.delete

Faça a gestão das instâncias do Memorystore for Redis. Não é possível criar nem eliminar instâncias.

roles/redis.viewer

Visualizador de Redis Todas as autorizações da app redis, exceto

redis.instances.create redis.instances.delete redis.instances.update redis.instances.upgrade redis.instances.import redis.instances.export redis.instances.updateAuth redis.instances.getAuthString redis.operations.delete

Acesso só de leitura a todos os recursos do Memorystore for Redis.

Autorizações e respetivas funções

A tabela seguinte lista cada autorização que o Memorystore for Redis suporta e as funções do Memorystore for Redis que a incluem:

Autorização Função do Redis Função básica

redis.instances.list

Administrador do Redis
Editor do Redis
Visualizador do Redis
Leitor

redis.instances.get

Administrador do Redis
Editor do Redis
Visualizador do Redis
Leitor

redis.instances.create

Administrador do Redis Escritor

redis.instances.update

Administrador do Redis
Editor do Redis
Escritor

redis.instances.updateAuth

Administrador do Redis Escritor

redis.instances.getAuthString

Administrador do Redis Escritor

redis.instances.delete

Administrador do Redis Escritor

redis.instances.upgrade

Administrador do Redis Escritor

redis.instances.import

Administrador do Redis Escritor

redis.instances.export

Administrador do Redis Escritor

redis.locations.list

Administrador do Redis
Editor do Redis
Visualizador do Redis
Leitor

redis.locations.get

Administrador do Redis
Editor do Redis
Visualizador do Redis
Leitor

redis.operations.list

Administrador do Redis
Editor do Redis
Visualizador do Redis
Leitor

redis.operations.get

Administrador do Redis
Editor do Redis
Visualizador do Redis
Leitor

redis.operations.delete

Administrador do Redis Escritor

Funções personalizadas

Se as funções predefinidas não satisfizerem os requisitos exclusivos da sua empresa, pode definir as suas próprias funções personalizadas com as autorizações que especificar. Para suportar isto, o IAM oferece funções personalizadas. Quando criar funções personalizadas para o Memorystore for Redis, certifique-se de que inclui resourcemanager.projects.get e resourcemanager.projects.list. Caso contrário, a Google Cloud consola não funciona corretamente para o Memorystore for Redis. Para mais informações, consulte o artigo Dependências de autorizações. Para saber como criar uma função personalizada, consulte o artigo Criar uma função personalizada.

Autorizações necessárias para tarefas comuns na Google Cloud consola

Para permitir que um utilizador trabalhe com o Memorystore para Redis através da Google Cloud consola, a função do utilizador tem de incluir a autorização resourcemanager.projects.get e resourcemanager.projects.list.

A tabela seguinte apresenta as outras autorizações necessárias para algumas tarefas comuns na consola Google Cloud :

Tarefa Autorizações adicionais necessárias
Apresentar a página de fichas de instâncias

redis.instances.get
redis.instances.list

Crie e edite uma instância

redis.instances.create
redis.instances.get
redis.instances.list
compute.networks.list

Elimine uma instância

redis.instances.delete
redis.instances.get
redis.instances.list

Estabeleça ligação a uma instância a partir do Cloud Shell

redis.instances.get
redis.instances.list
redis.instances.update

Veja informações da instância

redis.instances.get
monitoring.timeSeries.list

Importe e exporte ficheiros de cópias de segurança RDB

redis.instances.import
redis.instances.export

Atualize a versão do Redis de uma instância

redis.instances.upgrade

Autorizações necessárias para comandos gcloud

Para permitir que um utilizador trabalhe com o Memorystore for Redis através de comandos gcloud, a função do utilizador tem de incluir a autorização resourcemanager.projects.get e a autorização resourcemanager.projects.list.

A tabela seguinte indica as autorizações que o utilizador que invoca um comando gcloud tem de ter para cada subcomando gcloud redis:

Comando Autorizações necessárias
gcloud redis instances auth

redis.instances.updateAuth
redis.instances.getAuthString

gcloud redis instances create

redis.instances.get
redis.instances.create

gcloud redis instances delete

redis.instances.delete

gcloud redis instances update

redis.instances.get
redis.instances.update

gcloud redis instances list

redis.instances.list

gcloud redis instances describe

redis.instances.get

gcloud redis instances import

redis.instances.import

gcloud redis instances export

redis.instances.export

gcloud redis instances upgrade

redis.instances.upgrade

gcloud redis operations list

redis.operations.list

gcloud redis operations describe

redis.operations.get

gcloud redis regions list

redis.locations.list

gcloud redis regions describe

redis.locations.get

gcloud redis zones list

redis.locations.list

Autorizações necessárias para métodos da API

A tabela seguinte lista as autorizações que o autor da chamada tem de ter para chamar cada método na API Memorystore for Redis ou para realizar tarefas usando Google Cloud ferramentas que usam a API (como a Google Cloud consola ou a ferramenta de linha de comandosgcloud):

Método Autorizações necessárias

locations.get

redis.locations.get

locations.list

redis.locations.list

instances.create

redis.instances.create

instances.delete

redis.instances.delete

instances.get

redis.instances.get

instances.list

redis.instances.list

instances.patch

redis.instances.update

instances.import

redis.instances.import

instances.export

redis.instances.export

instances.upgrade

redis.instances.upgrade

operations.get

redis.operations.get

operations.list

redis.operations.list

A conta de serviço do Memorystore for Redis

Cada instância do Memorystore for Redis tem uma conta de serviço que usa para comunicar com outros Google Cloud recursos.

Por vezes (como quando exporta ou usa o CMEK), tem de conceder funções ou autorizações específicas à conta de serviço.

Formato da conta de serviço do Memorystore for Redis

A conta de serviço da sua instância usa um de dois formatos diferentes, consoante a data de criação.

  • O primeiro formato é:

    PROJECT_NUMBER-compute@developer.gserviceaccount.com

  • O segundo formato é:

    service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com

Problemas conhecidos

Por vezes, uma conta de serviço que use o formato [PROJECT_NUMBER]-compute@developer.gserviceaccount.com pode entrar em conflito com a política da sua organização. Para mais informações e passos para resolver este problema, consulte o artigo Problemas com a política de partilha restrita por domínio da organização.

Veja a conta de serviço da sua instância

Para ver a conta de serviço da sua instância, execute o seguinte comando e tome nota da conta de serviço apresentada em persistenceIamIdentity:

gcloud redis instances describe [INSTANCE_ID] --region=[REGION]

Autorizações AUTH do Redis

A tabela seguinte mostra as autorizações mínimas de que um utilizador precisa para concluir algumas tarefas básicas de AUTH do Memorystore para Redis.

Autorizações necessárias Crie uma instância do Memorystore com a autenticação Redis ativada Ative / desative a AUTH numa instância do Redis existente Veja a string AUTH Veja se a AUTH está ativada / desativada para uma instância do Redis
redis.instances.create X X X
redis.instances.update X X X
redis.instances.get X X X
redis.instances.updateAuth X X
redis.instances.getAuthString X X X

Autorizações de encriptação em trânsito

A tabela abaixo mostra as autorizações necessárias para ativar e gerir a encriptação em trânsito para o Memorystore for Redis.

Autorizações necessárias Crie uma instância do Memorystore com encriptação em trânsito Transfira a autoridade de certificação
redis.instances.create X
redis.instances.get X

Autorizações da política de manutenção

A tabela abaixo mostra as autorizações necessárias para gerir a política de manutenção do Memorystore para Redis.

Autorizações necessárias Crie uma instância do Memorystore com uma política de manutenção ativada Crie ou modifique políticas de manutenção numa instância do Memorystore existente Veja as definições da política de manutenção Reagendar manutenção
redis.instances.create X X X
redis.instances.update X X X
redis.instances.get X X X
redis.instances.rescheduleMaintenance X X X

Autorizações necessárias para importação e exportação

A utilização de funções personalizadas para importar e exportar requer duas funções personalizadas separadas. Uma função personalizada para o utilizador e uma função personalizada adicional para a conta de serviço da instância do Redis. A função personalizada para a conta de serviço usa autorizações ao nível do contentor do Cloud Storage.

Para encontrar a conta de serviço da sua instância, consulte o artigo Veja a conta de serviço da sua instância

Autorizações para a conta de serviço

Tenha em atenção que só precisa de conceder autorizações de armazenamento à conta de serviço ao nível do contentor e não de todo o projeto. Para obter instruções, consulte o artigo Adicionar um principal a uma política ao nível do contentor.

Depois de conceder autorizações ao nível do contentor à sua conta de serviço, pode ignorar a mensagem que indica "O Memorystore não consegue verificar se a conta de serviço xxxx@xxxx.gserviceaccount.com tem as autorizações necessárias para importar/exportar. Para receber ajuda na validação ou atualização de autorizações, contacte o administrador do seu projeto. Para ver as autorizações necessárias, consulte a documentação sobre autorizações de importação/exportação." Se aplicar as autorizações indicadas abaixo a funções personalizadas para a conta de utilizador e a conta de serviço, a importação/exportação é bem-sucedida.

Autorizações para a função personalizada da conta de serviço Importe com o gcloud Exporte com o gcloud Importe com a Google Cloud consola Exporte com a Google Cloud consola
storage.buckets.get
storage.objects.get X X
storage.objects.create X X
storage.objects.delete X Opcional.
(concede autorização para substituir o ficheiro RDB existente).
X Opcional.
(concede autorização para substituir o ficheiro RDB existente).

Autorizações da conta de utilizador

Autorizações da função personalizada para a conta de utilizador Importe com o gcloud Exporte com o gcloud Importe com a Google Cloud consola Exporte com a Google Cloud consola
resourcemanager.projects.get X X
redis.instances.get
redis.instances.list X X X X
redis.instances.import X X
redis.instances.export X X
redis.operations.get X
redis.operations.list X X
redis.operations.cancel
storage.buckets.list X X
storage.buckets.get X X
storage.objects.list X X
storage.objects.get X X

O que se segue?