Criar uma instância do Looker (Google Cloud Core) com IP público

Esta página discute como provisionar uma instância do Looker (Google Cloud Core) de IP público.

Antes de começar

  1. No console do Google Cloud, na página do seletor de projetos, crie um projeto do Google Cloud ou navegue até um projeto atual.

    Acessar o seletor de projetos

  2. Ative a API Looker para seu projeto no console do Google Cloud. Ao ativar a API, talvez seja necessário atualizar a página do console para confirmar que ela foi ativada.

    Ativar a API

  3. Configurar um cliente OAuth e criar credenciais de autorização. O cliente OAuth permite autenticar e acessar a instância. É necessário configurar o OAuth para criar uma instância do Looker (Google Cloud Core), mesmo que você esteja usando outro método de autenticação para autenticar usuários na instância.
  4. Se você quiser usar o VPC Service Controls, crie uma instância de IP particular em vez de uma instância de IP público.

Funções exigidas

Para ter as permissões necessárias para criar uma instância do Looker (Google Cloud Core), peça ao administrador para conceder a você Administrador do Looker (roles/looker.admin) no projeto em que a instância vai residir. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.

Talvez você também precise de outros papéis do IAM se quiser configurar chaves de criptografia gerenciadas pelo cliente (CMEK). Acesse a página Controle de acesso com o IAM da documentação do Cloud Key Management Service para saber mais.

Criar uma instância do Looker (Google Cloud Core)

O Looker (Google Cloud Core) leva aproximadamente 60 minutos para gerar uma nova instância.

Para criar sua instância do Looker (Google Cloud Core), selecione uma das seguintes opções:

Console

  1. Acesse a página do produto Looker (Google Cloud Core) do seu projeto no console do Google Cloud. Se você já tiver criado uma instância do Looker (Google Cloud Core) nesse projeto, a página Instâncias será aberta.

    Acessar o Looker (Google Cloud Core)

  2. Clique em CRIAR INSTÂNCIA.
  3. Na seção Nome da instância, insira um nome para sua instância do Looker (Google Cloud Core). O nome da instância não é associado ao URL da instância do Looker (Google Cloud Core) após a criação. O nome da instância não pode ser alterado após a criação dela.
  4. Na seção Credenciais do aplicativo OAuth, digite o ID do cliente e a chave secreta OAuth que você criou quando configurou seu cliente OAuth.
  5. Na seção Região, selecione a opção apropriada no menu suspenso para hospedar sua instância do Looker (Google Cloud Core). Selecione a região no contrato de assinatura, que é onde a cota do seu projeto está alocada. As regiões disponíveis estão listadas na página de documentação dos locais do Looker (Google Cloud Core).
  6. Na seção Edição, defina a edição da instância de acordo com as necessidades da sua organização. O tipo de edição afeta alguns dos recursos disponíveis para a instância. Escolha o mesmo tipo de edição listado no contrato anual e se você tem cota alocada para ele. Estas são as opções de edição:

    • Padrão: plataforma do Looker (Google Cloud Core) para pequenas organizações ou equipes com menos de 50 usuários
    • Enterprise: plataforma do Looker (Google Cloud Core) com recursos de segurança reforçada para atender a uma ampla variedade de casos de uso internos de BI e análise
    • Incorporar: plataforma Looker (Google Cloud Core) para implantar e manter análises externas confiáveis e aplicativos personalizados em escala

    Não é possível alterar as edições após a criação da instância. Se você quiser mudar de edição, use importação e exportação para mover os dados da instância do Looker (Google Cloud Core) para uma nova instância configurada com uma edição diferente.

  7. Na seção Personalizar sua instância, clique em MOSTRAR OPÇÕES DE CONFIGURAÇÃO para exibir um grupo de configurações extras que podem ser personalizadas para a instância.

  8. Na seção Conexões, selecione apenas IP público. Uma configuração de conexão de IP público atribui um endereço IP externo acessível pela Internet e está disponível para todos os tipos de edição.

  9. Na seção Criptografia, escolha entre usar a criptografia gerenciada pelo Google padrão ou uma chave de criptografia gerenciada pelo cliente (CMEK). Consulte a página de documentação Como usar chaves de criptografia gerenciadas pelo cliente com o Looker (Google Cloud Core) para mais informações sobre a CMEK e como configurá-la antes e durante a criação da instância. Não é possível alterar o tipo de criptografia após a criação da instância.

  10. Na seção Janela de manutenção, você pode especificar o dia da semana e a hora em que o Looker (Google Cloud core) programa a manutenção. As janelas de manutenção duram uma hora. Por padrão, a opção Janela preferencial na Janela de manutenção é definida como Qualquer janela.

  11. Na seção Período de negação de manutenção, é possível especificar um bloco de dias em que o Looker (Google Cloud Core) não programa a manutenção. Os períodos de bloqueio de manutenção podem ser de até 60 dias. É preciso oferecer pelo menos 14 dias de disponibilidade de manutenção entre dois períodos de bloqueio de manutenção.

  12. Clique em Criar.

gcloud

  1. Se você estiver usando a CMEK, crie a conta de serviço do Looker e siga as instruções para configurá-la primeiro.
  2. Use o comando gcloud looker instances create para criar a instância:

    gcloud looker instances create INSTANCE_NAME \
    --project=PROJECT_ID \
    --oauth-client-id=OAUTH_CLIENT_ID \
    --oauth-client-secret=OAUTH_CLIENT_SECRET \
    --region=REGION \
    --edition=EDITION \
    [--consumer-network=CONSUMER_NETWORK --private-ip-enabled --reserved-range=RESERVED_RANGE]
    [--no-public-ip-enabled]
    [--public-ip-enabled]
    [--async]
    

    Substitua:

    • INSTANCE_NAME: um nome para sua instância do Looker (Google Cloud Core); ela não está associada ao URL da instância.
    • PROJECT_ID: o nome do projeto do Google Cloud em que você está criando a instância do Looker (Google Cloud Core).
    • OAUTH_CLIENT_ID e OAUTH_CLIENT_SECRET: o ID e a chave secreta do cliente OAuth que você criou quando configurou o cliente OAuth. Após a criação da instância, insira o URL da instância na seção URIs de redirecionamento autorizados do cliente OAuth.
    • REGION: a região em que sua instância do Looker (Google Cloud Core) está hospedada. Selecione a região que corresponde à região no contrato de assinatura. As regiões disponíveis estão listadas na página de documentação dos locais do Looker (Google Cloud Core).
    • EDITION: a edição da instância. Os valores possíveis são core-standard-annual, core-enterprise-annual ou core-embed-annual. Não é possível mudar as edições após a criação da instância. Se quiser mudar uma edição, use a opção de importação e exportação para migrar os dados da instância do Looker (Google Cloud Core) para uma nova instância configurada com outra edição.
    • CONSUMER_NETWORK: sua rede VPC ou VPC compartilhada. Precisa ser definido se você estiver criando uma instância de IP particular.
    • RESERVED_RANGE: o intervalo de endereços IP na VPC em que o Google vai provisionar uma sub-rede para sua instância do Looker (Google Cloud Core). Não defina um intervalo se você estiver ativando uma conexão de rede de IP particular para a instância.

    Inclua também estas sinalizações:

    • --public-ip-enabled é usado para ativar o IP público.
    • Recomendamos usar --async ao criar uma instância do Looker (Google Cloud Core).
  3. É possível adicionar mais parâmetros para aplicar outras configurações da instância:

    [--maintenance-window-day=MAINTENANCE_WINDOW_DAY
          --maintenance-window-time=MAINTENANCE_WINDOW_TIME]
    [--deny-maintenance-period-end-date=DENY_MAINTENANCE_PERIOD_END_DATE
          --deny-maintenance-period-start-date=DENY_MAINTENANCE_PERIOD_START_DATE
          --deny-maintenance-period-time=DENY_MAINTENANCE_PERIOD_TIME]
    --kms-key=KMS_KEY_ID
    
    Substitua:

    • MAINTENANCE_WINDOW_DAY: precisa ser um destes valores: friday, monday, saturday, sunday, thursday, tuesday, wednesday. Consulte a página de documentação Gerenciar políticas de manutenção do Looker (Google Cloud Core) para mais informações sobre as configurações da janela de manutenção.
    • MAINTENANCE_WINDOW_TIME e DENY_MAINTENANCE_PERIOD_TIME: precisam estar na hora UTC no formato de 24 horas (por exemplo, 13:00, 17:45).
    • DENY_MAINTENANCE_PERIOD_START_DATE e DENY_MAINTENANCE_PERIOD_END_DATE: precisam estar no formato YYYY-MM-DD.
    • KMS_KEY_ID: precisa ser a chave criada ao configurar as chaves de criptografia gerenciadas pelo cliente (CMEK).

Terraform

Use o seguinte Terraform recurso para provisionar uma instância padrão do Looker (Google Cloud Core) com funcionalidade básica:

# Creates a Standard edition Looker (Google Cloud core) instance with basic functionality enabled.
resource "google_looker_instance" "main" {
  name             = "my-instance"
  platform_edition = "LOOKER_CORE_STANDARD"
  region           = "us-central1"
  oauth_config {
    client_id     = "my-client-id"
    client_secret = "my-client-secret"
  }
}

Use o seguinte Terraform recurso para provisionar uma instância padrão do Looker (Google Cloud Core) com outras configurações aplicadas:

# Creates a Standard edition Looker (Google Cloud core) instance with full functionality enabled.

resource "google_looker_instance" "main" {
  name              = "my-instance"
  platform_edition  = "LOOKER_CORE_STANDARD"
  region            = "us-central1"
  public_ip_enabled = true
  admin_settings {
    allowed_email_domains = ["google.com"]
  }
  // User metadata config is only available when platform edition is LOOKER_CORE_STANDARD.
  user_metadata {
    additional_developer_user_count = 10
    additional_standard_user_count  = 10
    additional_viewer_user_count    = 10
  }
  maintenance_window {
    day_of_week = "THURSDAY"
    start_time {
      hours   = 22
      minutes = 0
      seconds = 0
      nanos   = 0
    }
  }
  deny_maintenance_period {
    start_date {
      year  = 2050
      month = 1
      day   = 1
    }
    end_date {
      year  = 2050
      month = 2
      day   = 1
    }
    time {
      hours   = 10
      minutes = 0
      seconds = 0
      nanos   = 0
    }
  }
  oauth_config {
    client_id     = "my-client-id"
    client_secret = "my-client-secret"
  }
}

Use o seguinte Terraform recurso para provisionar uma instância do Looker (Google Cloud Core) Enterprise com uma conexão de rede particular:

# Creates an Enterprise edition Looker (Google Cloud core) instance with full, Private IP functionality.
resource "google_looker_instance" "main" {
  name               = "my-instance"
  platform_edition   = "LOOKER_CORE_ENTERPRISE_ANNUAL"
  region             = "us-central1"
  private_ip_enabled = true
  public_ip_enabled  = false
  reserved_range     = google_compute_global_address.main.name
  consumer_network   = data.google_compute_network.main.id
  admin_settings {
    allowed_email_domains = ["google.com"]
  }
  encryption_config {
    kms_key_name = google_kms_crypto_key.main.id
  }
  maintenance_window {
    day_of_week = "THURSDAY"
    start_time {
      hours   = 22
      minutes = 0
      seconds = 0
      nanos   = 0
    }
  }
  deny_maintenance_period {
    start_date {
      year  = 2050
      month = 1
      day   = 1
    }
    end_date {
      year  = 2050
      month = 2
      day   = 1
    }
    time {
      hours   = 10
      minutes = 0
      seconds = 0
      nanos   = 0
    }
  }
  oauth_config {
    client_id     = "my-client-id"
    client_secret = "my-client-secret"
  }
  depends_on = [
    google_service_networking_connection.main,
    google_kms_crypto_key.main
  ]
}

resource "google_kms_key_ring" "main" {
  name     = "keyring-example"
  location = "us-central1"
}

resource "google_kms_crypto_key" "main" {
  name     = "crypto-key-example"
  key_ring = google_kms_key_ring.main.id
}

resource "google_service_networking_connection" "main" {
  network                 = data.google_compute_network.main.id
  service                 = "servicenetworking.googleapis.com"
  reserved_peering_ranges = [google_compute_global_address.main.name]
}

resource "google_compute_global_address" "main" {
  name          = "looker-range"
  purpose       = "VPC_PEERING"
  address_type  = "INTERNAL"
  prefix_length = 20
  network       = data.google_compute_network.main.id
}

data "google_project" "main" {}

data "google_compute_network" "main" {
  name = "default"
}

resource "google_kms_crypto_key_iam_member" "main" {
  crypto_key_id = google_kms_crypto_key.main.id
  role          = "roles/cloudkms.cryptoKeyEncrypterDecrypter"
  member        = "serviceAccount:service-${data.google_project.main.number}@gcp-sa-looker.iam.gserviceaccount.com"
}

Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.

A criação da instância não pode ser pausada ou encerrada depois de iniciada. Quando o recurso do Terraform for provisionado, o terminal vai mostrar a seguinte mensagem:

Creation complete after XmXs [id=projects/PROJECT-ID/locations/REGION/instances/my-instance-randomly-generated-name]

Apply complete! Resources: X added, X changed, X destroyed.

Para conferir o status da nova instância, que vai receber um nome gerado aleatoriamente, acesse a página Instâncias no console.

Durante a criação da instância, você pode ver o status dela na página Instâncias do console. Também é possível conferir a atividade de criação de instâncias clicando no ícone de notificações no menu do console do Google Cloud.

Depois que a instância de IP público for criada, o URL público dela aparecerá na coluna URL da instância da página Instâncias.

Depois que a instância for criada, insira o URL dela na seção URIs de redirecionamento autorizados do cliente OAuth.

Depois que a instância for criada e você concluir a configuração do OAuth, acesse o URL dela, que será mostrado na página Instâncias.

A seguir