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 Identity and Access Management (IAM) é concedido pelo Google Cloud Platform. Ele permite um acesso mais granular aos recursos específicos da plataforma e impede o acesso a outros recursos. Saiba mais sobre os papéis e permissões do IAM do Google Cloud SQL. Para uma descrição detalhada do IAM do GCP, consulte a documentação do IAM.

O Cloud SQL dispõe de um conjunto de papéis predefinidos, projetados para ajudar você a controlar facilmente o acesso aos recursos do Cloud SQL. Você também pode criar papéis personalizados próprios se as funções predefinidas não fornecerem os conjuntos de permissões necessárias. Além disso, os papéis primários legados (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. Os papéis primários concedem acesso a recursos em todo o Google Cloud Platform, não apenas no Cloud SQL. Para mais informações sobre esses papéis, consulte Papéis primários.

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 primários (proprietário, editor, leitor) fornecem permissões no Google Cloud Platform. Os papéis específicos do Cloud SQL concedem apenas permissões desse serviço, com exceção das seguintes permissões do GCP, que são necessárias para o uso geral dessa plataforma:

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

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 Platform, gerenciar acesso do usuário
roles/writer Editor Todas as permissões para cloudsql, exceto para
cloudsql.*.getIamPolicy e
cloudsql.*.setIamPolicy
Acesso de leitura e gravação a todos os recursos do Google Cloud Platform e Cloud SQL. Controle total, exceto para a capacidade de modificar permissões.
roles/reader Leitor cloudsql.*.export
cloudsql.*.get
cloudsql.*.list
Acesso somente de leitura a todos os recursos do Google Cloud Platform, incluindo os 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.listServerCa
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 instâncias específicas. 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

Veja na tabela a seguir cada permissão compatível com o Cloud SQL, os papéis nele incluídos e o papel primário legado.

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 acomodar isso, o IAM oferece papéis personalizados.

Ao criar papéis personalizados para o Cloud SQL, se incluir cloudsql.instances.list ou cloudsql.instances.get, certifique-se de incluir ambos. Caso contrário, o console do GCP não funcionará corretamente para o Cloud SQL.

Permissões necessárias para tarefas comuns no console do GCP

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

Veja na tabela a seguir as permissões que o autor da chamada precisa ter para chamar cada método na Cloud SQL API ou para executar tarefas usando as ferramentas do GCP que utilizam a API, como o console do Google Cloud Platform ou a ferramenta de linha de comando do 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.get
instances.failover cloudsql.instances.failover
instances.get cloudsql.instances.export
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

Gerenciamento do Cloud SQL for MySQL IAM

Receba e configure as políticas e papéis de IAM usando o Console do Google Cloud Platform, os métodos IAM da API ou o Cloud SDK. Para mais informações, consulte Como conceder, alterar e revogar acesso aos membros do projeto.

Próximas etapas

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Cloud SQL para MySQL