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 |
---|---|---|---|
|
Proprietário |
|
Acesso e controlo totais de todos os Google Cloud recursos; gerir o acesso dos utilizadores |
|
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) |
|
Leitor |
|
Acesso só de leitura a todos os Google Cloud recursos, incluindo recursos do Redis |
|
Administrador do Redis |
|
Controlo total de todos os recursos do Memorystore for Redis. |
|
Editor de Redis | Todas as autorizações da app redis , exceto
|
Faça a gestão das instâncias do Memorystore for Redis. Não é possível criar nem eliminar instâncias. |
|
Visualizador de Redis | Todas as autorizações da app redis , exceto
|
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 |
---|---|---|
|
Administrador do Redis Editor do Redis Visualizador do Redis |
Leitor |
|
Administrador do Redis Editor do Redis Visualizador do Redis |
Leitor |
|
Administrador do Redis | Escritor |
|
Administrador do Redis Editor do Redis |
Escritor |
|
Administrador do Redis | Escritor |
|
Administrador do Redis | Escritor |
|
Administrador do Redis | Escritor |
|
Administrador do Redis | Escritor |
|
Administrador do Redis | Escritor |
|
Administrador do Redis | Escritor |
|
Administrador do Redis Editor do Redis Visualizador do Redis |
Leitor |
|
Administrador do Redis Editor do Redis Visualizador do Redis |
Leitor |
|
Administrador do Redis Editor do Redis Visualizador do Redis |
Leitor |
|
Administrador do Redis Editor do Redis Visualizador do Redis |
Leitor |
|
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 |
|
Crie e edite uma instância |
|
Elimine uma instância |
|
Estabeleça ligação a uma instância a partir do Cloud Shell |
|
Veja informações da instância |
|
Importe e exporte ficheiros de cópias de segurança RDB |
|
Atualize a versão do Redis de uma instância |
|
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 |
|
gcloud redis instances create |
|
gcloud redis instances delete |
|
gcloud redis instances update |
|
gcloud redis instances list |
|
gcloud redis instances describe |
|
gcloud redis instances import |
|
gcloud redis instances export |
|
gcloud redis instances upgrade |
|
gcloud redis operations list |
|
gcloud redis operations describe |
|
gcloud redis regions list |
|
gcloud redis regions describe |
|
gcloud redis zones 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 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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?
- Saiba como conceder e revogar o acesso.
- Saiba mais sobre o IAM.
- Saiba mais acerca das funções personalizadas.