Esta página tem procedimentos para criar ou editar instâncias do Cloud SQL para permitir que utilizadores, contas de serviço ou grupos configurados para usar a autenticação de base de dados do IAM do Cloud SQL. Para saber mais sobre a integração da IAM do Cloud SQL, consulte o artigo Autenticação da IAM.
Uma instância criada recentemente tem quatro bases de dados do sistema:
information_schema: fornece acesso aos metadados da base de dados, informações sobre o servidor MySQL.mysql: o esquema do sistema. Contém tabelas que armazenam informações necessárias para o servidor MySQL durante a execução.performance_schema: uma funcionalidade para monitorizar a execução do servidor MySQL a um nível baixo.sys: contém um conjunto de objetos que ajuda os DBAs e os programadores a interpretar os dados recolhidos pelo esquema de desempenho.
Antes de começar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
 - 
    
    
      
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
 - 
      Create a project: To create a project, you need the Project Creator
      (
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles. 
 - 
  
    
Verify that billing is enabled for your Google Cloud project.
 - 
      
Install the gcloud CLI.
 - 
          
Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.
 - 
        
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init - 
    
    
      
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
 - 
      Create a project: To create a project, you need the Project Creator
      (
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles. 
 - 
  
    
Verify that billing is enabled for your Google Cloud project.
 - 
      
Install the gcloud CLI.
 - 
          
Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.
 - 
        
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init - 
    Certifique-se de que tem as funções de administrador do Cloud SQL e leitor do Compute na sua conta de utilizador.
    
    
Saiba mais acerca das funções e autorizações.
 - Nova arquitetura de rede SQL: pode ter até 1000 instâncias por projeto.
 - Arquitetura de rede SQL antiga: pode ter até 100 instâncias por projeto.
 - Usar ambas as arquiteturas: o seu limite vai estar entre 100 e 1000, consoante a distribuição das suas instâncias pelas duas arquiteturas.
 - 
Na Google Cloud consola, aceda à página Instâncias do Cloud SQL.
 - Clique em Criar instância.
 - Clique em Escolher MySQL.
 - Introduza um nome para o ID da instância. Não inclua informações confidenciais nem de identificação pessoal no nome da instância, uma vez que é visível externamente. Não tem de incluir o ID do projeto no nome da instância. O ID do projeto é incluído automaticamente quando adequado (por exemplo, nos ficheiros de registo).
 - Introduza uma palavra-passe para o utilizador root.
 - No menu Versão da base de dados, selecione uma versão da base de dados.
 - Na secção Escolha a região e a disponibilidade zonal, selecione a região e a zona para a sua instância. Coloque a instância na mesma região que os recursos que acedem à mesma. Não é possível modificar a região selecionada no futuro. Normalmente, não precisa de especificar uma zona.
 - Na secção Personalize a sua instância, clique em Mostrar opções de configuração e, de seguida, expanda Flags.
 - Clique em Adicionar flag.
 - No menu Escolha uma bandeira, selecione a bandeira 
cloudsql_iam_authentication. Certifique-se de que Ativado está selecionado como o valor desta flag e, de seguida, clique em Concluído. - Configure outras definições da instância, conforme necessário. Para mais informações sobre as definições, consulte o artigo Definições.
 - Clique em Criar instância.
 - INSTANCE_NAME: o nome da nova instância.
 - MYSQL_VERSION: a versão do MySQL (como MYSQL_5_7 ou MYSQL_8_0).
 - NUMBER_OF_CORES: o número de núcleos na máquina.
 - AMOUNT_OF_MEMORY: a quantidade de memória na máquina. Deve ser fornecida uma unidade de tamanho (por exemplo, 3072 MiB ou 9 GiB).
 - ZONE: zona do Compute Engine preferencial (como us-central1-a ou us-central1-b).
 - PASSWORD: crie uma palavra-passe para o utilizador raiz.
 - Inicie o Cloud Shell.
 - 
    
Defina o Google Cloud projeto predefinido onde quer aplicar as suas configurações do Terraform.
Só tem de executar este comando uma vez por projeto e pode executá-lo em qualquer diretório.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
As variáveis de ambiente são substituídas se definir valores explícitos no ficheiro de configuração do Terraform.
 - 
    No Cloud Shell, crie um diretório e um novo ficheiro nesse diretório. O nome do ficheiro tem de ter a extensão 
.tf, por exemplo,main.tf. Neste tutorial, o ficheiro é denominadomain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
 - 
    
Se estiver a seguir um tutorial, pode copiar o código de exemplo em cada secção ou passo.
Copie o exemplo de código para o ficheiro
main.tfcriado recentemente.Opcionalmente, copie o código do GitHub. Isto é recomendado quando o fragmento do Terraform faz parte de uma solução completa.
 - Reveja e modifique os parâmetros de exemplo para aplicar ao seu ambiente.
 - Guarde as alterações.
 - 
    Inicialize o Terraform. Só tem de fazer isto uma vez por diretório.
    
terraform init
Opcionalmente, para usar a versão mais recente do fornecedor Google, inclua a opção
-upgrade:terraform init -upgrade
 - 
    Reveja a configuração e verifique se os recursos que o Terraform vai criar ou
    atualizar correspondem às suas expetativas:
    
terraform plan
Faça correções à configuração conforme necessário.
 - 
    Aplique a configuração do Terraform executando o seguinte comando e introduzindo 
yesno comando:terraform apply
Aguarde até que o Terraform apresente a mensagem "Apply complete!" (Aplicação concluída!).
 - Abra o seu Google Cloud projeto para ver os resultados. Na Google Cloud consola, navegue para os seus recursos na IU para se certificar de que o Terraform os criou ou atualizou.
 - Para desativar a proteção contra eliminação, no ficheiro de configuração do Terraform, defina o argumento 
deletion_protectioncomofalse.deletion_protection = "false"
 - Aplique a configuração do Terraform atualizada executando o seguinte comando e
            introduzindo 
yesno comando:terraform apply
 - 
             
Remova os recursos aplicados anteriormente com a sua configuração do Terraform executando o seguinte comando e introduzindo
yesno comando:terraform destroy
 - INSTANCE_ID: o ID de instância pretendido
 - REGION: a região pretendida, como us-east-1
 - PROJECT_ID: o ID do projeto
 - LOCATION_ID: o ID da localização
 - DATABASE_VERSION: string enum da versão da base de dados.
    Por exemplo: 
MYSQL_8_0 - PASSWORD: a palavra-passe do utilizador de raiz
 - MACHINE_TYPE: string enum do tipo de máquina (nível), como:
    
db-custom-[CPUS]-[MEMORY_MBS] - INSTANCE_ID: o ID de instância pretendido
 - REGION: a região pretendida, como us-east-1
 - PROJECT_ID: o ID do projeto
 - LOCATION_ID: o ID da localização
 - DATABASE_VERSION: string enum da versão da base de dados.
    Por exemplo: 
MYSQL_8_0 - PASSWORD: a palavra-passe do utilizador de raiz
 - MACHINE_TYPE: string enum do tipo de máquina (nível), como:
    
db-custom-[CPUS]-[MEMORY_MBS] - 
Na Google Cloud consola, aceda à página Instâncias do Cloud SQL.
 - Para abrir a página Vista geral de uma instância, clique no nome da instância.
 - Clique em Edit.
 - Na secção Personalize a sua instância, expanda Flags.
 - Clique em Adicionar flag.
 - No menu Escolha uma bandeira, selecione a bandeira 
cloudsql_iam_authentication. Certifique-se de que Ativado está selecionado como o valor desta flag e, de seguida, clique em Concluído. - Configure outras definições da instância, conforme necessário. Para mais informações sobre as definições, consulte o artigo Definições.
 - Clique em Guardar.
 - INSTANCE_NAME: o nome da nova instância.
 - PROJECT_ID: o ID do projeto
 - LOCATION_ID: o ID da localização
 - INSTANCE_ID: o ID de instância pretendido
 - REGION: a região pretendida
 - DATABASE_VERSION: string enum da versão da base de dados.
  
  Por exemplo: 
MYSQL_8_0 - PASSWORD: a palavra-passe do utilizador de raiz
 - MACHINE_TYPE: string enum do tipo de máquina (nível), como:
    
db-custom-[CPUS]-[MEMORY_MBS] - PROJECT_ID: o ID do projeto
 - LOCATION_ID: o ID da localização
 - INSTANCE_ID: o ID de instância pretendido
 - REGION: a região pretendida
 - DATABASE_VERSION: string enum da versão da base de dados.
  
  Por exemplo: 
MYSQL_8_0 - PASSWORD: a palavra-passe do utilizador de raiz
 - MACHINE_TYPE: string enum do tipo de máquina (nível), como:
    
db-custom-[CPUS]-[MEMORY_MBS] - Saiba mais acerca da autenticação da base de dados do IAM.
 - Saiba como configurar inícios de sessão de réplicas de leitura para a autenticação de base de dados do IAM.
 - Saiba como criar utilizadores e contas de serviço que usam a autenticação de base de dados da IAM do Cloud SQL.
 - Saiba como adicionar uma associação de política de IAM a um utilizador ou a uma conta de serviço.
 - Saiba como iniciar sessão numa base de dados do Cloud SQL através da autenticação de base de dados do IAM.
 - Saiba como gerir utilizadores e contas de serviço para a autenticação de base de dados do IAM.
 
O número máximo de instâncias que pode ter num único projeto depende da arquitetura de rede dessas instâncias:
Apresente um registo de apoio ao cliente para pedir um aumento. As réplicas de leitura são contabilizadas como instâncias.
Configure novas instâncias para a autenticação de base de dados do IAM
Para configurar uma nova instância do Cloud SQL para a autenticação de base de dados da IAM,
tem de ativar a flag cloudsql_iam_authentication.
Depois de ativar esta flag, pode adicionar utilizadores do IAM, contas de serviço ou grupos à instância do Cloud SQL.
Para configurar uma nova instância do Cloud SQL para usar a autenticação de base de dados da IAM:
Consola
gcloud
Executar
gcloud sql instances create
com o parâmetro --database-flags definido como
cloudsql_iam_authentication=on.
Substitua o seguinte:
gcloud sql instances create INSTANCE_NAME \ --database-version=MYSQL_VERSION \ --cpu=NUMBER_OF_CORES \ --memory=AMOUNT_OF_MEMORY \ --zone=ZONE_NAME \ --root-password=PASSWORD \ --database-flags=cloudsql_iam_authentication=on
Terraform
Para criar uma instância com a autenticação da base de dados do IAM ativada, use um recurso do Terraform.
Aplique as alterações
Para aplicar a configuração do Terraform num Google Cloud projeto, conclua os passos nas secções seguintes.
Prepare o Cloud Shell
Prepare o diretório
Cada ficheiro de configuração do Terraform tem de ter o seu próprio diretório (também denominado módulo raiz).
Aplique as alterações
Eliminar as alterações
Para eliminar as alterações, faça o seguinte:
REST v1
Não inclua informações confidenciais nem de identificação pessoal (IIP) no nome da instância, uma vez que é visível externamente.
Não tem de incluir o ID do projeto no nome da instância. O ID do projeto é incluído automaticamente quando necessário (por exemplo, nos ficheiros de registo).
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/instances
Corpo JSON do pedido:
{
  "name": "INSTANCE_ID",
  "region": "REGION",
  "databaseVersion": "DATABASE_VERSION",
  "rootPassword": "PASSWORD",
  "settings": {
    "tier": "MACHINE_TYPE",
    "backupConfiguration": {
      "enabled": true
    },
    "databaseFlags": [
      {
        "name": "cloudsql_iam_authentication",
        "value": "on"
      }
    ]
  }
}
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-01T19:13:21.834Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}
REST v1beta4
Não inclua informações confidenciais nem de identificação pessoal (IIP) no nome da instância, uma vez que é visível externamente.
Não tem de incluir o ID do projeto no nome da instância. O ID do projeto é incluído automaticamente quando necessário (por exemplo, nos ficheiros de registo).
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
Método HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/locations/LOCATION_ID/instances
Corpo JSON do pedido:
{
  "name": "INSTANCE_ID",
  "region": "REGION",
  "databaseVersion": "DATABASE_VERSION",
  "rootPassword": "PASSWORD",
  "settings": {
    "tier": "MACHINE_TYPE",
    "backupConfiguration": {
      "enabled": true
    },
    "databaseFlags": [
      {
        "name": "cloudsql_iam_authentication",
        "value": "on"
      }
    ]
  }
}
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-01T19:13:21.834Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}
Configure instâncias existentes para a autenticação de base de dados do IAM
Para configurar uma instância do Cloud SQL existente para a autenticação de base de dados do IAM, tem de
ativar a flag cloudsql_iam_authentication.
Depois de ativar esta flag, pode adicionar utilizadores do IAM, contas de serviço ou grupos à instância do Cloud SQL.
Para configurar uma instância do Cloud SQL existente para usar a autenticação de base de dados da IAM:
Consola
gcloud
Para informações sobre a instalação e o início da utilização da CLI gcloud, consulte o artigo Instale a CLI gcloud. Para obter informações sobre como iniciar a Cloud Shell, consulte o artigo Use a Cloud Shell.
Para este procedimento, use
  gcloud
  sql instances patch.
Substitua o seguinte:
gcloud sql instances patch INSTANCE_NAME \ --database-flags=cloudsql_iam_authentication=on
Esta ação repõe todas as outras definições de flags da base de dados existentes. Para mais orientações sobre a definição de flags de base de dados, consulte o artigo Defina uma flag de base de dados.
REST v1
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/instances
Corpo JSON do pedido:
{
  "name": "INSTANCE_ID",
  "region": "REGION",
  "databaseVersion": "DATABASE_VERSION",
  "rootPassword": "PASSWORD",
  "settings": {
    "tier": "MACHINE_TYPE",
    "backupConfiguration": {
      "enabled": true
    }
    "databaseFlags":
    [
      {
        "name": "cloudsql_iam_authentication",
        "value": "on"
      }
    ]
  }
}
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-01T19:13:21.834Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}
REST v1beta4
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
Método HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/locations/LOCATION_ID/instances
Corpo JSON do pedido:
{
  "name": "INSTANCE_ID",
  "region": "REGION",
  "databaseVersion": "DATABASE_VERSION",
  "rootPassword": "PASSWORD",
  "settings": {
    "tier": "MACHINE_TYPE",
    "backupConfiguration": {
      "enabled": true
    }
    "databaseFlags":
    [
      {
        "name": "cloudsql_iam_authentication",
        "value": "on"
      }
    ]
  }
}
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-01T19:13:21.834Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}