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 compute.machineTypes.list compute.machineTypes.get compute.projects.get
roles/compute.viewer |
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 |
Gerenciar o Cloud SQL para IAM do PostgreSQL
É 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
- Saiba como conceder e revogar acesso a membros do projeto.
- Saiba mais sobre IAM.
- Saiba mais sobre papéis básicos.
- Saiba mais sobre controle de acesso a instâncias.
- Saiba mais sobre controle de acesso a bancos de dados.
- Saiba mais sobre papéis personalizados.