Nesta página, descrevemos como controlar o acesso e as permissões a projetos do Memorystore para Redis usando o gerenciamento de identidade e acesso (IAM, na sigla em inglês).
Visão geral
O Google Cloud oferece IAM, que permite conceder acesso mais granular a recursos específicos do Google Cloud e impede o acesso indesejado a outros recursos. Nesta página, descrevemos os papéis e as permissões do IAM do Memorystore para Redis. Para uma descrição detalhada dos papéis e permissões, consulte a documentação do IAM.
O Memorystore para Redis fornece um conjunto de papéis predefinidos projetados para ajudar a controlar facilmente o acesso aos recursos do Redis. Se os papéis predefinidos não fornecerem os conjuntos de permissões necessárias, você poderá criar seus próprios papéis personalizados. Além disso, os papéis básicos antigos (Editor, Visualizador e Proprietário) também estão disponíveis para você, embora não forneçam o mesmo controle refinado que os papéis do Memorystore para Redis. Em particular, os papéis básicos fornecem acesso a recursos no Google Cloud, e não apenas no Memorystore para Redis. Para mais informações sobre papéis básicos, consulte Papéis básicos.
Permissões e papéis
Nesta seção, apresentamos um resumo das permissões e papéis compatíveis com o Memorystore para Redis.
Papéis predefinidos
O Memorystore para Redis fornece alguns papéis predefinidos que podem ser usados para fornecer permissões mais refinadas aos principais. O papel concedido a um principal controla quais ações ele pode tomar. Os principais podem ser indivíduos, grupos ou contas de serviço.
É possível conceder vários papéis ao mesmo principal. Se você tiver permissões para isso, poderá alterar os papéis concedidos a um principal a qualquer momento.
Os papéis mais amplos incluem os definidos de maneira mais restrita. Por exemplo, no papel de editor do Redis estão todas as permissões do papel de leitor do Redis, mais as permissões do editor. Da mesma forma, no papel de administrador, estão todas as permissões do papel de editor, além das respectivas permissões adicionais.
Os papéis básicos, como Proprietário, Editor e leitor, fornecem permissões no Google Cloud. Os papéis específicos do Memorystore para Redis fornecem apenas permissões do Memorystore para Redis, exceto as permissões a seguir do Google Cloud, que são necessárias para o uso geral do Google Cloud:
resourcemanager.projects.get
resourcemanager.projects.list
Na tabela a seguir, listamos os papéis predefinidos disponíveis para o Memorystore para Redis, além das permissões do Memorystore para Redis:
Papel | Nome | Permissões do Redis | Descrição |
---|---|---|---|
|
Proprietário |
|
Controle e acesso total a todos os recursos do Google Cloud, gerencie o acesso do usuário |
|
Editor | Todas as permissões redis , exceto *.getIamPolicy e
.setIamPolicy |
Acesso de leitura e gravação a todos os recursos do Google Cloud e do Redis (controle total, exceto a capacidade de modificar permissões) |
|
Visualizador |
|
Acesso somente leitura a todos os recursos do Google Cloud, incluindo recursos do Redis |
|
Administrador do Redis |
|
Controle total de todos os recursos do Cloud Memorystore para Redis. |
|
Editor do Redis | Todas as permissões redis , exceto
|
Gerencie instâncias do Memorystore para Redis. Não é possível criar ou excluir instâncias. |
|
Visualizador do Redis | Todas as permissões redis , exceto
|
Acesso somente leitura a todos os recursos do Memorystore para Memorystore. |
Permissões e respectivos papéis
Na tabela a seguir, listamos cada permissão compatível com o Memorystore para Redis e os papéis do Memorystore para Redis que a incluem:
Permissão | Papel Redis | Papel básico |
---|---|---|
|
Administrador do Redis Editor do Redis Visualizador do Redis |
Leitor |
|
Administrador do Redis Editor do Redis Visualizador do Redis |
Leitor |
|
Administrador do Redis | Gravador |
|
Administrador do Redis Editor do Redis |
Gravador |
|
Administrador do Redis | Editor |
|
Administrador do Redis | Editor |
|
Administrador do Redis | Editor |
|
Administrador do Redis | Editor |
|
Administrador do Redis | Editor |
|
Administrador do Redis | Gravador |
|
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 | Gravador |
Papéis personalizados
Se os papéis predefinidos não atenderem aos requisitos exclusivos de sua empresa, defina papéis personalizados próprios e especifique as respectivas permissões. Para isso,
o IAM oferece papéis personalizados. Ao criar papéis personalizados
para o Memorystore para Redis, inclua resourcemanager.projects.get
e resourcemanager.projects.list
.
Caso contrário, o console do Google Cloud não vai funcionar corretamente
no Memorystore para Redis. Para mais informações,
consulte Dependências de permissão.
Para saber como criar um papel personalizado, consulte Como criar um papel personalizado.
Permissões necessárias para tarefas comuns no console do Google Cloud.
Para permitir que um usuário trabalhe com o Memorystore para Redis usando
o console do Google Cloud, o papel do usuário precisa incluir as
permissões resourcemanager.projects.get
e resourcemanager.projects.list
.
Na tabela a seguir, fornecemos as outras permissões necessárias para algumas tarefas comuns no console do Google Cloud:
Tarefa | Permissões adicionais necessárias |
---|---|
Exibir a página de listagem de instâncias |
|
Criar e editar uma instância |
|
Excluir uma instância |
|
Conectar-se a uma instância do Cloud Shell |
|
Como exibir informações da instância |
|
Como importar e exportar arquivos de backup do RDB |
|
Como fazer upgrade da versão do Redis de uma instância |
|
Permissões necessárias para comandos gcloud
Para permitir que um usuário trabalhe com o Memorystore para Redis
usando comandos gcloud
, o papel do usuário precisa
incluir as permissões resourcemanager.projects.get
e resourcemanager.projects.list
.
Na tabela a seguir, listamos as permissões que o usuário que invoca um comando
gcloud
precisa ter para cada subcomando gcloud redis
:
Comando | Permissõ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 |
|
Permissões necessárias para métodos de API
A tabela a seguir lista as permissões que o autor da chamada precisa ter para chamar cada
método na API Memorystore for Redis ou para executar tarefas
usando ferramentas do Google Cloud que usam a API
(como o console do Google Cloud ou a ferramenta de linha de comando gcloud
):
Método | Permissões necessárias |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A conta de serviço do Memorystore para Redis
Cada instância do Memorystore para Redis tem uma conta de serviço que é usada para se comunicar com outros recursos do Google Cloud.
Às vezes, como ao exportar ou usar o CMEK, é necessário conceder papéis ou permissões específicas à conta de serviço.
Formato da conta de serviço do Memorystore para Redis
A conta de serviço da sua instância usa um dos dois formatos diferentes, dependendo de quando ela foi criada.
O primeiro formato é:
[PROJECT_NUMBER]-compute@developer.gserviceaccount.com
O segundo formato é:
service-[PROJECT_NUMBER]@cloud-redis.iam.gserviceaccount.com
Para conferir a fonte de verdade sobre qual conta de serviço sua instância usa, consulte Conferir a conta de serviço da sua instância.
Problemas conhecidos
Às vezes, uma conta de serviço que usa 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
etapas para resolver esses problemas, consulte Problemas com a política da organização de compartilhamento restrito de domínio.
Acesse a conta de serviço da sua instância:
Para conferir a conta de serviço da sua instância, execute o seguinte comando e anote a conta de serviço listada em persistenceIamIdentity
:
gcloud redis instances describe [INSTANCE_ID] --region=[REGION]
Permissões do Redis AUTH
A tabela a seguir mostra as permissões mínimas necessárias para um usuário concluir algumas tarefas básicas do Memorystore para Redis AUTH.
Permissões necessárias | Criar uma instância do Memorystore com o Redis AUTH ativado | Ativar / desativar o AUTH em uma instância existente do Redis | Ver a string AUTH | Ver se o AUTH está ativado / desativado 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 |
Permissões de criptografia em trânsito
A tabela abaixo mostra as permissões necessárias para ativar e gerenciar a criptografia em trânsito para o Memorystore para Redis.
Permissões necessárias | Criar uma instância do Memorystore com criptografia em trânsito | Fazer o download da autoridade de certificação |
---|---|---|
redis.instances.create
|
✓ | X |
redis.instances.get
|
X | ✓ |
Permissões da política de manutenção
A tabela abaixo mostra as permissões necessárias para gerenciar a política de manutenção do Memorystore para Redis.
Permissões necessárias | Criar uma instância do Memorystore com uma política de manutenção ativada | Criar ou modificar políticas de manutenção em uma instância do Memorystore | Como visualizar as configurações da política de manutenção | Como reprogramar uma 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 | ✓ |
Permissões necessárias para importação e exportação
O uso de papéis personalizados para importação e exportação requer dois papéis personalizados separados. Um papel personalizado para o usuário e outro para a conta de serviço da instância do Redis. O papel personalizado da conta de serviço usa permissões no nível do bucket do Cloud Storage.
Para encontrar a conta de serviço da sua instância, consulte Acessar a conta de serviço da sua instância.
Permissões para a conta de serviço
Observe que você só precisa conceder permissões de armazenamento à conta de serviço no nível do intervalo, não ao projeto inteiro. Para instruções, consulte Como adicionar um principal a uma política no nível do intervalo.
Depois de conceder permissões no nível do intervalo da conta de serviço, ignore a mensagem "O Memorystore não consegue verificar se a conta de serviço xxxx@xxxx.gserviceaccount.com tem as permissões necessárias para importar/exportar. Se você precisar de ajuda para verificar ou atualizar as permissões, entre em contato com o administrador do projeto. Para as permissões necessárias, consulte a documentação de permissões de importação/exportação." Se você aplicar as permissões listadas abaixo aos papéis personalizados da conta de usuário e da conta de serviço, a importação/exportação será bem-sucedida.
Permissões para o papel personalizado da conta de serviço | Importar com gcloud | Exportar com gcloud | Importar com o console do Google Cloud | Exportar com o console do Google Cloud |
---|---|---|---|---|
storage.buckets.get |
✓ | ✓ | ✓ | ✓ |
storage.objects.get |
✓ | X | ✓ | X |
storage.objects.create |
X | ✓ | X | ✓ |
storage.objects.delete |
X | Opcional. Concede permissão para substituir o arquivo RDB atual. |
X | Opcional. Concede permissão para substituir o arquivo RDB atual. |
Permissões para a conta de usuário
Permissões para o papel personalizado da conta de usuário | Importar com gcloud | Exportar com gcloud | Importar com o console do Google Cloud | Exportar com o console do Google Cloud |
---|---|---|---|---|
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 | ✓ | ✓ |
A seguir
- Saiba como conceder e revogar acesso.
- Saiba mais sobre IAM.
- Saiba mais sobre papéis personalizados.