Controle de acesso ao projeto

Nesta página, você encontra as instruções para controlar o acesso e as permissões de projetos do Cloud SQL com o Identity and Access Management (IAM).

Visão geral

O Google Cloud oferece o Gerenciamento de identidade e acesso (IAM), que permite a concessão de acesso mais granular a recursos específicos do Google Cloud e impede o acesso indesejado a outros recursos. Saiba mais sobre os papéis e permissões do IAM do Google Cloud SQL. Para uma descrição detalhada do Google Cloud IAM, consulte a documentação do IAM.

O Cloud SQL fornece um conjunto de papéis predefinidos, projetados para ajudar você a controlar o acesso aos recursos do Cloud SQL. Também é possível criar papéis personalizados próprios se os papéis predefinidos não fornecerem os conjuntos de permissões necessárias. Além disso, os papéis básicos de legado (Editor, Leitor e Proprietário) também estão disponíveis, mas não fornecem o mesmo controle granular que os papéis do Cloud SQL. Em particular, os papéis básicos fornecem acesso a recursos no Google Cloud e não apenas para o Cloud SQL. Para mais informações sobre papéis básicos, consulte Papéis básicos.

Permissões e papéis

As permissões e os papéis compatíveis com o Cloud SQL estão resumidos nesta seção.

Papéis predefinidos

O Cloud SQL dispõe de alguns papéis predefinidos que você pode usar para fornecer permissões mais granulares aos membros do projeto. As ações realizadas por um deles são controladas pelo papel concedido a ele. Os membros do projeto podem ser indivíduos, grupos ou contas de serviço.

Conceda diversos papéis ao mesmo membro e altere os papéis concedidos a um membro do projeto a qualquer momento, desde que você tenha permissões para isso.

Os papéis mais amplos incluem os definidos de maneira mais restrita. Por exemplo, no Cloud SQL, o papel de Editor inclui todas as permissões do papel de Leitor e mais as permissões de adição do papel de Editor. Da mesma forma, todas as permissões do papel de editor com as permissões adicionais dele são incluídas pelo papel de administrador.

Os papéis básicos, como Proprietário, Editor e leitor, fornecem permissões no Google Cloud. Os papéis específicos do Cloud SQL fornecem somente permissões do Cloud SQL, exceto as seguintes permissões do Google Cloud, que são necessárias para o uso geral dele:

  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.use

A tabela a seguir lista os papéis predefinidos disponíveis para o Cloud SQL e as permissões do serviço:

Papel Nome Permissões do Cloud SQL Descrição
roles/owner Proprietário cloudsql.* Controle e acesso total a todos os recursos do Google Cloud, gerenciar acesso do usuário
roles/editor Editor Todas as permissões cloudsql, exceto
cloudsql.*.getIamPolicy e
cloudsql.*.setIamPolicy
Acesso de leitura e gravação a todos os recursos do Google Cloud e do Cloud SQL (controle total, exceto pela capacidade de modificar permissões)
roles/viewer Leitor cloudsql.*.export
cloudsql.*.get
cloudsql.*.list
Acesso somente leitura a todos os recursos do Google Cloud, incluindo recursos do Cloud SQL
roles/cloudsql.admin administrador do Cloud SQL cloudsql.* Controle total de todos os recursos do Cloud SQL.
roles/cloudsql.editor Editor do Cloud SQL cloudsql.instances.addServerCa
cloudsql.instances.connect
cloudsql.instances.export
cloudsql.instances.failover
cloudsql.instances.get
cloudsql.instances.list
cloudsql.instances.listServerCas
cloudsql.instances.restart
cloudsql.instances.rotateServerCa
cloudsql.instances.truncateLog
cloudsql.instances.update
cloudsql.databases.create
cloudsql.databases.get
cloudsql.databases.list
cloudsql.databases.update
cloudsql.backupRuns.create
cloudsql.backupRuns.get
cloudsql.backupRuns.list
cloudsql.sslCerts.get
cloudsql.sslCerts.list
cloudsql.users.list
Gerenciar recursos do Cloud SQL. Sem capacidade de ver ou modificar permissões, nem modificar usuários ou sslCerts. Sem capacidade de importar dados ou restaurar a partir de um backup, clonar, excluir ou promover instâncias. Sem capacidade de iniciar ou interromper réplicas. Sem capacidade de excluir bancos de dados, réplicas ou backups.
roles/cloudsql.viewer Leitor do Cloud SQL cloudsql.*.export
cloudsql.*.get
cloudsql.*.list
cloudsql.instances.listServerCa
Acesso somente leitura a todos os recursos do Cloud SQL.
roles/cloudsql.client Cliente do Cloud SQL cloudsql.instances.connect
cloudsql.instances.get
Acesso de conectividade a instâncias do Cloud SQL no App Engine e Cloud SQL Proxy. Não é necessário para o acesso a uma instância usando endereços IP.

Permissões e os papéis delas

A tabela a seguir lista todas as permissões compatíveis com o Cloud SQL, os papéis do Cloud SQL que incluem a função e o papel básico dela.

Permissão Papéis do Cloud SQL Papel legado
cloudsql.backupRuns.create Administrador do Cloud SQL
Editor do Cloud SQL
Editor
cloudsql.backupRuns.delete Administrador do Cloud SQL Editor
cloudsql.backupRuns.get Administrador do Cloud SQL
Editor do Cloud SQL
Leitor do Cloud SQL
Leitor
cloudsql.backupRuns.list Administrador do Cloud SQL
Editor do Cloud SQL
Leitor do Cloud SQL
Leitor
cloudsql.databases.create Administrador do Cloud SQL
Editor do Cloud SQL
Editor
cloudsql.databases.delete Administrador do Cloud SQL
Editor do Cloud SQL
Editor
cloudsql.databases.get Administrador do Cloud SQL
Editor do Cloud SQL
Leitor do Cloud SQL
Leitor
cloudsql.databases.getIamPolicy Administrador do Cloud SQL Proprietário
cloudsql.databases.list Administrador do Cloud SQL
Editor do Cloud SQL
Leitor do Cloud SQL
Leitor
cloudsql.databases.setIamPolicy Administrador do Cloud SQL Proprietário
cloudsql.databases.update Administrador do Cloud SQL
Editor do Cloud SQL
Editor
cloudsql.instance.addServerCa Administrador do Cloud SQL
Editor do Cloud SQL
Editor
cloudsql.instances.clone Administrador do Cloud SQL Editor
cloudsql.instances.connect Administrador do Cloud SQL
Cliente do Cloud SQL
Editor do Cloud SQL
Editor
cloudsql.instances.create Administrador do Cloud SQL
Editor do Cloud SQL
Editor
cloudsql.instances.delete Administrador do Cloud SQL Editor
cloudsql.instances.demoteMaster Administrador do Cloud SQL Editor
cloudsql.instances.export Administrador do Cloud SQL
Editor do Cloud SQL
Leitor do Cloud SQL
Leitor
cloudsql.instances.failover Administrador do Cloud SQL
Editor do Cloud SQL
Editor
cloudsql.instances.get Administrador do Cloud SQL
Cliente do Cloud SQL
Editor do Cloud SQL
Leitor do Cloud SQL
Leitor
cloudsql.instances.getIamPolicy Administrador do Cloud SQL Proprietário
cloudsql.instances.import Administrador do Cloud SQL Editor
cloudsql.instances.list Administrador do Cloud SQL
Editor do Cloud SQL
Leitor do Cloud SQL
Leitor
cloudsql.instance.listServerCa Leitor do Cloud SQL Leitor
cloudsql.instances.promoteReplica Administrador do Cloud SQL Editor
cloudsql.instances.resetSslConfig Administrador do Cloud SQL Editor
cloudsql.instances.restart Administrador do Cloud SQL
Editor do Cloud SQL
Editor
cloudsql.instances.restoreBackup Administrador do Cloud SQL Editor
cloudsql.instance.rotateServerCa Administrador do Cloud SQL
Editor do Cloud SQL
Editor
cloudsql.instances.setIamPolicy Administrador do Cloud SQL Proprietário
cloudsql.instances.startReplica Administrador do Cloud SQL Editor
cloudsql.instances.stopReplica Administrador do Cloud SQL Editor
cloudsql.instances.truncateLog Administrador do Cloud SQL
Editor do Cloud SQL
Editor
cloudsql.instances.update Administrador do Cloud SQL
Editor do Cloud SQL
Editor
cloudsql.sslCerts.create Administrador do Cloud SQL Editor
cloudsql.sslCerts.delete Administrador do Cloud SQL
Editor do Cloud SQL
Editor
cloudsql.sslCerts.get Administrador do Cloud SQL
Editor do Cloud SQL
Leitor do Cloud SQL
Leitor
cloudsql.sslCerts.list Administrador do Cloud SQL
Editor do Cloud SQL
Leitor do Cloud SQL
Leitor
cloudsql.users.create Administrador do Cloud SQL
Editor do Cloud SQL
Editor
cloudsql.users.delete Administrador do Cloud SQL
Editor do Cloud SQL
Editor
cloudsql.users.list Administrador do Cloud SQL
Editor do Cloud SQL
Leitor do Cloud SQL
Leitor
cloudsql.users.update Administrador do Cloud SQL Editor

Papéis personalizados

Se os papéis predefinidos não atenderem aos requisitos exclusivos de sua empresa, defina papéis personalizadas próprios e especifique as respectivas permissões. Para isso, o IAM oferece papéis personalizados.

Ao criar papéis personalizados para o Cloud SQL, se você incluir cloudsql.instances.list ou cloudsql.instances.get, certifique-se de incluir os dois. Caso contrário, o Console do Cloud não funcionará corretamente no Cloud SQL.

Permissões necessárias para tarefas comuns no Console do Cloud

Tarefa Outras permissões obrigatórias
Exibir a página de listagem de instâncias cloudsql.instances.list
resourcemanager.projects.get
Criar uma instância cloudsql.instances.create
cloudsql.instances.get
cloudsql.instances.list
resourcemanager.projects.get
Conectar-se a uma instância do Cloud Shell cloudsql.instances.get
cloudsql.instances.list
cloudsql.instances.update
resourcemanager.projects.get
Criar um usuário cloudsql.instances.get
cloudsql.instances.list
cloudsql.users.create
cloudsql.users.list
resourcemanager.projects.get
Exibir informações da instância cloudsql.instances.get
cloudsql.instances.list
cloudsql.users.list
monitoring.timeSeries.list
resourcemanager.projects.get

Permissões necessárias para comandos do gcloud sql

Comando Permissões necessárias
gcloud sql backups create cloudsql.backupRuns.create
gcloud sql backups delete cloudsql.backupRuns.delete
gcloud sql backups describe cloudsql.backupRuns.get
gcloud sql backups list cloudsql.backupRuns.list
gcloud sql backups restore cloudsql.backupRuns.get
cloudsql.instances.restoreBackup
gcloud sql connect cloudsql.instances.get
cloudsql.instances.update
gcloud sql databases create cloudsql.databases.create
gcloud sql databases delete cloudsql.databases.delete
gcloud sql databases describe cloudsql.databases.get
gcloud sql databases list cloudsql.databases.list
gcloud sql databases patch cloudsql.databases.get
cloudsql.databases.update
gcloud sql export cloudsql.instances.export
cloudsql.instances.get
gcloud sql flags list Nenhuma
gcloud sql import cloudsql.instances.import
gcloud sql instances clone cloudsql.instances.clone
gcloud sql instances create cloudsql.instances.create
gcloud sql instances delete cloudsql.instances.delete
gcloud sql instances describe cloudsql.instances.get
gcloud sql instances export cloudsql.instances.export
gcloud sql instances failover cloudsql.instances.failover
gcloud sql instances import cloudsql.instances.import
gcloud sql instances list cloudsql.instances.list
gcloud sql instances patch cloudsql.instances.get
cloudsql.instances.update
gcloud sql instances promote-replica cloudsql.instances.promoteReplica
gcloud sql instances reset-ssl-config cloudsql.instances.resetSslConfig
gcloud sql instances restart cloudsql.instances.restart
gcloud sql instances restore-backup cloudsql.backupRuns.get
cloudsql.instances.restoreBackup
gcloud sql operations describe cloudsql.instances.get
gcloud sql operations list cloudsql.instances.get
gcloud sql operations wait cloudsql.instances.get
gcloud sql ssl client-certs create cloudsql.sslCerts.create
gcloud sql ssl client-certs delete cloudsql.sslCerts.delete
gcloud sql ssl client-certs describe cloudsql.sslCerts.list
gcloud sql ssl client-certs list cloudsql.sslCerts.list
gcloud sql tiers list Nenhuma
gcloud sql users create cloudsql.users.create
gcloud sql users delete cloudsql.users.delete
gcloud sql users list cloudsql.users.list
gcloud sql users set-password cloudsql.users.update

Permissões necessárias para métodos de API

Na tabela a seguir, estão listadas as permissões que o autor da chamada precisa ter para chamar cada método na API Cloud SQL Admin ou para executar tarefas usando ferramentas do Google Cloud que utilizam a API (como o Console do Google Cloud ou a ferramenta de linha de comando gcloud).

Todas as permissões são aplicadas ao projeto. Não é possível aplicar permissões diferentes com base na instância ou em outro objeto de nível inferior.

Método Permissões necessárias
backupRuns.delete cloudsql.backupRuns.delete
backupRuns.get cloudsql.backupRuns.get
backupRuns.insert cloudsql.backupRuns.create
backupRuns.list cloudsql.backupRuns.list
databases.delete cloudsql.databases.delete
databases.get cloudsql.databases.get
databases.insert cloudsql.databases.create
databases.list cloudsql.databases.list
databases.patch cloudsql.databases.update, cloudsql.databases.get
databases.update cloudsql.databases.update
flags.list Nenhuma
instances.clone cloudsql.instances.clone
instances.delete cloudsql.instances.delete
instances.export cloudsql.instances.export
instances.failover cloudsql.instances.failover
instances.get cloudsql.instances.get
instances.import cloudsql.instances.import
instances.insert cloudsql.instances.create
instances.list cloudsql.instances.list
instances.patch cloudsql.instances.get, cloudsql.instances.update
instances.promoteReplica cloudsql.instances.promoteReplica
instances.resetSslConfig cloudsql.instances.resetSslConfig
instances.restart cloudsql.instances.restart
instances.restoreBackup cloudsql.instances.restoreBackup, cloudsql.backupRuns.get
instances.startReplica cloudsql.instances.startReplica
instances.stopReplica cloudsql.instances.stopReplica
instances.truncateLog cloudsql.instances.truncateLog
instances.update cloudsql.instances.update
operations.get cloudsql.instances.get
operations.list cloudsql.instances.get
sslCerts.delete cloudsql.sslCerts.delete
sslCerts.get cloudsql.sslCerts.get
sslCerts.insert cloudsql.sslCerts.create
sslCerts.list cloudsql.sslCerts.list
users.delete cloudsql.users.delete
users.insert cloudsql.users.create
users.list cloudsql.users.list
users.update cloudsql.users.update

Como gerenciar o Cloud SQL para IAM do MySQL

É possível receber e definir políticas e papéis do IAM usando o Console do Google Cloud, os métodos do IAM da API ou o SDK do Cloud. Para mais informações, consulte Como conceder, alterar e revogar o acesso a membros do projeto.

A seguir