Esta página fornece informações sobre as funções e as autorizações da gestão de identidade e de acesso (IAM) e como são usadas com instâncias do Cloud SQL.
Introdução
Esta página centra-se nos aspetos da IAM relevantes especificamente para o Cloud SQL. Para uma discussão detalhada sobre o IAM e as respetivas funcionalidades em geral, consulte o artigo Identity and Access Management. Em particular, consulte a secção Gerir políticas de IAM. A IAM permite-lhe controlar quem tem acesso aos recursos no seu Google Cloud projeto. O conjunto de regras de acesso que aplica a um recurso chama-se política do IAM. Uma política de IAM aplicada ao seu projeto define as ações que os utilizadores podem realizar em todos os recursos no seu projeto.
Os membros são o "quem" do IAM. Os membros podem ser utilizadores individuais, grupos, domínios ou até mesmo o público em geral. São atribuídas funções aos membros, que lhes concedem a capacidade de realizar ações no Cloud SQL, bem como Google Cloud de forma mais geral. Cada função é uma coleção de uma ou mais autorizações. As autorizações são as unidades básicas do IAM: cada autorização permite-lhe realizar uma determinada ação. Consulte os papéis da IAM no Cloud SQL e as autorizações da IAM no Cloud SQL para ver listas completas de todas as funções e autorizações disponíveis no Cloud SQL.
Quando usa uma conta para se ligar a uma instância do Cloud SQL, a conta tem de ter a função Cloud SQL > Cliente (roles/cloudsql.client
), que inclui as autorizações necessárias para a ligação.
Pode adicionar funções a uma conta na consola na página IAM e administrador > IAM e ver que autorizações pertencem a que funções na página IAM e administrador > Funções.
O Cloud SQL usa contas de serviço para a autenticação entre o Cloud SQL e outros Google Cloud produtos. As contas de serviço fornecem credentials
no formato JSON, que transfere da consola e usa para autenticação em vários cenários.
Funções e autorizações do Cloud SQL com o proxy Auth do Cloud SQL
Se estiver a estabelecer ligação a uma instância do Cloud SQL a partir de uma instância do Compute Engine através do proxy Auth do Cloud SQL, pode usar a conta de serviço predefinida do Compute Engine associada à instância do Compute Engine.
Tal como acontece com todas as contas que se ligam a uma instância do Cloud SQL, a conta de serviço tem de ter a função Cloud SQL > Cliente.
Funções e autorizações do Cloud SQL com opções sem servidor
AsGoogle Cloud opções sem servidor incluem o App Engine e o Cloud Run.Use uma conta de serviço para autorizar o acesso a partir destas opções. A conta de serviço autoriza o acesso a todo o Cloud SQL num projeto específico. Quando cria uma aplicação ou funções do Cloud Run, este serviço cria esta conta por si. Pode encontrar a conta na página IAM e administrador > IAM com o sufixo adequado:
Opção sem servidor | Sufixo da conta de serviço |
---|---|
App Engine | @gae-api-prod.google.com.iam.gserviceaccount.com |
Funções do Cloud Run | @appspot.gserviceaccount.com |
Cloud Run | compute@developer.gserviceaccount.com |
Funções e autorizações do Cloud SQL com o Cloud Storage
As funcionalidades de importação e exportação no Cloud SQL funcionam em conjunto. As exportações escrevem no Cloud Storage e as importações leem a partir daí. Por este motivo, a conta de serviço que usa para estas operações precisa de autorizações de leitura e escrita no Cloud Storage:
- Para importar dados para o Cloud Storage e exportar dados do mesmo, a conta de serviço da instância do Cloud SQL tem de ter a função do IAM definida no projeto.
storage.objectAdmin
Pode encontrar o nome da conta de serviço da instância na consola na página Vista geral da instância. Google Cloud - Pode usar o comando
gcloud storage buckets add-iam-policy-binding
para conceder esta função de IAM à conta de serviço do contentor. - Para obter ajuda na definição de funções e autorizações de IAM, consulte o artigo Usar autorizações de IAM.
- Para mais informações, consulte o artigo sobre o IAM para o Cloud Storage.
Funções e autorizações do Cloud SQL com autenticação de grupos do IAM
Quando usa a autenticação de grupos da IAM, cria grupos. Em seguida, pode usar os grupos para gerir o acesso e os privilégios da base de dados às suas instâncias do Cloud SQL.
A tabela seguinte lista as funções necessárias para gerir a autenticação de grupos do IAM.
Ação | Funções |
---|---|
Criar, ver e gerir grupos. |
|
Veja o registo de alterações de membros do grupo do IAM. |
|
Conceder, ver e definir autorizações do IAM ao nível do projeto. |
|
Conceder, ver e definir autorizações da IAM ao nível da pasta. |
|
O administrador pode conceder funções do Cloud SQL ou dar autorizações do Cloud SQL individuais a cada grupo. Os membros de cada grupo herdam funções e autorizações.
Funções e autorizações do Cloud SQL para a integração do Dataplex Universal Catalog
Para conceder acesso aos metadados do Cloud SQL no catálogo universal do Dataplex, pode atribuir a função roles/cloudsql.schemaViewer
a um utilizador ou adicionar a autorização cloudsql.schemas.view
a uma função personalizada.
Para mais informações, consulte o artigo Faça a gestão de recursos do Cloud SQL com o Dataplex Universal Catalog.
Autorização para aceder a instâncias privadas do Cloud SQL
Quando outro Google Cloud serviço, como o BigQuery, precisa de comunicar com a sua instância do Cloud SQL para aceder a dados e fazer consultas a estes dados através de uma ligação privada, o serviço usa um caminho interno em vez dos endereços IP privados na nuvem privada virtual (VPC). Não é possível controlar nem restringir o tráfego com configurações ao nível da VPC, regras de firewall, políticas de rotas nem interromper a interligação.
Em alternativa, o Cloud SQL oferece uma flag de configuração na sua instância para controlar se deve ativar ou desativar este caminho interno para outros serviços que acedem à sua base de dados. Google Cloud
Controle e revogue a autorização
Quando outro Google Cloud serviço, como o BigQuery, tenta aceder à sua instância privada do Cloud SQL, tem de fornecer uma identidade legítima com a autorização cloudsql.instances.connect
do IAM.
Normalmente, existem duas formas de um serviço o conseguir:
- Encaminhando as credenciais do utilizador. Um serviço pode encaminhar a identidade do IAM do utilizador para o Cloud SQL para avaliar a autorização de acesso a uma instância. Neste cenário, o utilizador tem de ter autorizações da IAM suficientes para que o Cloud SQL possa estabelecer uma ligação com êxito.
Usar uma conta de serviço. Um serviço, como o BigQuery, pode usar uma conta de serviço pré-configurada para se ligar a uma instância do Cloud SQL. Neste caso, a conta de serviço tem de ter autorizações de IAM suficientes.
Por exemplo, para a ligação federada entre o BigQuery e o Cloud SQL, é criada uma conta de serviço denominada
service-{PROJECT_NUMBER}@gcp-sa-bigqueryconnection.iam.gserviceaccount.com
quando a API Google BigQuery Connection é ativada. Esta conta de serviço tem duas autorizações do Cloud SQL:cloudsql.instances.connect
ecloudsql.instances.get
. O BigQuery usa estas autorizações para aceder a uma instância privada do Cloud SQL através de um caminho interno.
Para controlar a autorização de quem pode usar este caminho interno, pode conceder e revogar as autorizações de IAM para a identidade de IAM do utilizador que o Google Cloud serviço, como o BigQuery, usa para se ligar à sua instância do Cloud SQL. Para mais informações sobre como conceder e revogar autorizações no BigQuery, consulte o artigo Configurar o acesso ao Cloud SQL.
Funções e autorizações do Cloud SQL com outros cenários
O Cloud SQL interage com outros Google Cloud produtos e ferramentas. Estas interações também requerem funções e autorizações específicas que podem variar entre cenários. A documentação do Cloud SQL fornece informações detalhadas sobre estes requisitos para cada caso abaixo:
- Estabelecer ligação ao Cloud SQL a partir de aplicações externas.
- Usar chaves de encriptação geridas pelo cliente (CMEK).
- Funções da IAM para administrar os VPC Service Controls.
- Para se ligar a uma instância do Cloud SQL a partir de uma aplicação em execução no Google Kubernetes Engine, tem de criar um segredo para o ficheiro de chave JSON de uma conta de serviço.
Use o IAM com projetos
As secções seguintes mostram como concluir tarefas básicas de IAM em projetos.
Para concluir as seguintes tarefas, tem de ter as autorizações de IAM resourcemanager.projects.getIamPolicy
e resourcemanager.projects.setIamPolicy
.
Adicione um membro a uma política ao nível do projeto
Para ver uma lista de funções associadas ao Cloud SQL, consulte Funções de IAM.
Consola
- Aceda à página IAM e administração na Google Cloud consola
- No menu pendente do projeto na barra superior, selecione o projeto ao qual quer adicionar um membro.
- Clique em Adicionar. É apresentada a caixa de diálogo Adicionar membros e funções ao projeto.
- No campo Novos membros, especifique o nome da entidade à qual está a conceder acesso.
- No menu pendente Selecionar uma função, conceda a função adequada ao membro. As funções que afetam os recursos do Cloud SQL encontram-se nos submenus Projeto e Cloud SQL.
- Clique em Guardar.
gcloud
Para adicionar uma política IAM ao nível do projeto, use
gcloud beta projects add-iam-policy-binding
.
Veja a Política IAM de um projeto
Consola
- Aceda à página IAM e administração na Google Cloud consola
- No menu pendente do projeto na barra superior, selecione o projeto cuja política quer ver.
- Existem duas formas de ver as autorizações do projeto:
- Vista por Membros: veja a coluna Função associada a membros individuais para ver as funções de cada membro.
- Vista por funções: use o menu pendente associado a funções individuais para ver que membros têm a função.
gcloud
Para ver a política de IAM de um projeto, use o comando
gcloud beta projects get-iam-policy
.
Remova um membro de uma política ao nível do projeto
Consola
- Aceda à página IAM e administração na Google Cloud consola
- No menu pendente do projeto na barra superior, selecione o projeto do qual quer remover um membro.
- Certifique-se de que está a ver as autorizações por Membros e selecione os membros que quer remover.
- Clique em Remover.
- Na janela de sobreposição apresentada, clique em Confirmar.
gcloud
Para remover uma Política IAM ao nível do projeto, use
gcloud beta projects remove-iam-policy-binding
.
Práticas recomendadas
A IAM, como qualquer outra definição administrativa, requer uma gestão ativa para ser eficaz. Antes de tornar um recurso acessível a outros utilizadores, certifique-se de que sabe que funções quer que cada uma dessas pessoas desempenhe. Ao longo do tempo, as alterações na gestão de projetos, nos padrões de utilização e na propriedade organizacional podem exigir que modifique as definições do IAM nos projetos, especialmente se gerir o Cloud SQL numa organização grande ou para um grupo grande de utilizadores. Ao avaliar e planear as definições de controlo de acesso, tenha em atenção as seguintes práticas recomendadas:
Use o princípio do menor privilégio ao conceder acesso. O princípio do menor privilégio é uma diretriz de segurança para conceder acesso aos seus recursos. Quando concede acesso com base no princípio do menor privilégio, dá a um utilizador apenas o acesso de que precisa para realizar a tarefa atribuída.
Evite conceder funções com a autorização
setIamPolicy
a pessoas que não conhece. A concessão da autorizaçãosetIamPolicy
permite que um utilizador altere as autorizações e assuma o controlo dos dados. Deve usar funções com autorização apenas quando quiser delegar o controlo administrativo sobre objetos e contentores.setIamPolicy
Certifique-se de que delega o controlo administrativo dos seus recursos. Deve certificar-se de que os seus recursos continuam a poder ser geridos por outros membros da equipa se um indivíduo com acesso administrativo sair do grupo. Seguem-se duas formas comuns de o fazer:
- Atribua a função Administrador do Cloud SQL para o seu projeto a um grupo em vez de a um indivíduo.
- Atribua a função de administrador do Cloud SQL para o seu projeto a, pelo menos, dois indivíduos.
O que se segue?
- Saiba mais sobre como controlar o acesso