Funções e permissões

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.

Por exemplo: estabelecer ligação a partir de uma aplicação executada num contentor do Docker.

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

roles/resourcemanager.organizationViewer

Veja o registo de alterações de membros do grupo do IAM.

roles/logging.viewer

Conceder, ver e definir autorizações do IAM ao nível do projeto.

roles/resourcemanager.projectIamAdmin

Conceder, ver e definir autorizações da IAM ao nível da pasta.

roles/resourcemanager.folderIamAdmin

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:

  1. 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.
  2. 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 e cloudsql.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:

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

  1. Aceda à página IAM e administração na Google Cloud consola
  2. No menu pendente do projeto na barra superior, selecione o projeto ao qual quer adicionar um membro.
  3. Clique em Adicionar. É apresentada a caixa de diálogo Adicionar membros e funções ao projeto.
  4. No campo Novos membros, especifique o nome da entidade à qual está a conceder acesso.
  5. 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.
  6. 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

  1. Aceda à página IAM e administração na Google Cloud consola
  2. No menu pendente do projeto na barra superior, selecione o projeto cuja política quer ver.
  3. 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

  1. Aceda à página IAM e administração na Google Cloud consola
  2. No menu pendente do projeto na barra superior, selecione o projeto do qual quer remover um membro.
  3. Certifique-se de que está a ver as autorizações por Membros e selecione os membros que quer remover.
  4. Clique em Remover.
  5. 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ção setIamPolicy 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?