Configurar e usar o modo sem chave do cluster

Este documento descreve como configurar e usar o recurso de modo sem chave do cluster para o Google Distributed Cloud (somente software) em bare metal. Em vez de chaves de conta de serviço, o modo sem chave usa tokens de curta duração e a Federação de identidade da carga de trabalho para criar e proteger seus clusters. As credenciais de curta duração da conta de serviço estão na forma de tokens de acesso OAuth 2.0. Os tokens de acesso expiram após uma hora por padrão, exceto os tokens de extração de imagem, que expiram após 12 horas.

O modo sem chave está disponível apenas para clusters da versão 1.30 e mais recentes.

Por outro lado, o modo com chave, o método padrão para criar e proteger clusters, usa chaves de conta de serviço baixadas. Ao criar um cluster autogerenciado (administrador, híbrido ou independente), especifique o caminho para as chaves baixadas. As chaves são armazenadas como secrets no cluster e em todos os clusters de usuários gerenciados. Por padrão, as chaves de conta de serviço não expiram e são um risco de segurança quando não são gerenciadas corretamente.

O modo sem chave oferece dois benefícios principais em relação ao uso de chaves de conta de serviço:

  • Segurança aprimorada: as chaves de conta de serviço são um risco de segurança quando não são gerenciadas corretamente. Os tokens OAuth 2.0 e a federação de identidade da carga de trabalho são consideradas as práticas recomendadas para chaves de conta de serviço. Para mais informações sobre tokens de conta de serviço, consulte Credenciais de conta de serviço de curta duração. Para mais informações sobre a Federação de identidade da carga de trabalho, consulte Federação de identidade da carga de trabalho.

  • Menor manutenção: as chaves de conta de serviço exigem mais manutenção. A rotação e a proteção regulares dessas chaves podem ser uma carga administrativa significativa.

Enquanto esse recurso está em Pré-lançamento, há algumas limitações.

Antes de começar

Nas seções a seguir, você cria contas de serviço e concede os papéis necessários para o modo sem chave. As instruções de configuração neste documento não substituem as instruções em Configurar recursos do Google Cloud. Elas são necessárias além dos pré-requisitos de instalação do software do Google Distributed Cloud padrão. As contas de serviço necessárias para o modo sem chave são semelhantes às descritas em Configurar recursos do Google Cloud, mas têm nomes exclusivos para não interferir nos clusters que usam as chaves padrão da conta de serviço.

Esta página é destinada a administradores, arquitetos e operadores que configuram, monitoram e gerenciam o ciclo de vida da infraestrutura de tecnologia subjacente. Para saber mais sobre papéis comuns e tarefas de exemplo referenciados no conteúdo do Google Cloud, consulte Tarefas e papéis de usuário comuns do GKE Enterprise.

A tabela a seguir descreve as contas de serviço necessárias para o modo sem chave:

Conta de serviço Finalidade Papéis
ADMIN_SA Você usa essa conta de serviço para gerar tokens. Cada token tem os privilégios associados aos papéis da conta de serviço. roles/gkehub.admin
roles/logging.admin
roles/monitoring.admin
roles/monitoring.dashboardEditor
roles/iam.serviceAccountAdmin
roles/iam.serviceAccountTokenCreator
baremetal-controller O Agente do Connect usa essa conta de serviço para manter uma conexão entre o cluster e o Google Cloud e para registrar os clusters com uma frota. Essa conta de serviço também atualiza os tokens da conta de serviço baremetal-gcr. roles/gkehub.admin
roles/monitoring.dashboardEditor
roles/serviceusage.serviceUsageViewer
baremetal-cloud-ops O Agente do Stackdriver usa essa conta de serviço para exportar registros e métricas de clusters para o Cloud Logging e o Cloud Monitoring. roles/logging.logWriter
roles/monitoring.metricWriter
roles/stackdriver.resourceMetadata.writer
roles/opsconfigmonitoring.resourceMetadata.writer
roles/monitoring.dashboardEditor
roles/monitoring.viewer
roles/serviceusage.serviceUsageViewer
roles/kubernetesmetadata.publisher
baremetal-gcr O Google Distributed Cloud usa esta conta de serviço para baixar as imagens de contêiner do Container Registry. Nenhum

Criar e configurar contas de serviço para o modo sem chave

As seções a seguir contêm instruções para criar as contas de serviço necessárias e conceder a elas os papéis necessários para o modo sem chave. Para uma lista das contas de serviço e dos papéis obrigatórios, consulte a tabela na seção anterior.

Criar contas de serviço

Para criar as contas de serviço para o modo sem chave, siga estas etapas:

  1. Na estação de trabalho do administrador, faça login na CLI do Google Cloud:

    gcloud auth login
    
  2. Se preferir, crie a conta de serviço administrativa:

    O nome da conta de serviço ADMIN_SA é arbitrário. Você pode até usar uma conta de serviço que já existe, caso ela tenha as funções identificadas na tabela da seção anterior, mas isso não é recomendado porque viola o princípio de privilégio mínimo.

    gcloud iam service-accounts create ADMIN_SA \
        --project=PROJECT_ID
    

    Substitua PROJECT_ID pelo ID do projeto do Google Cloud.

  3. Crie as contas de serviço padrão para o recurso sem chave:

    As contas de serviço padrão para o recurso sem chave têm nomes predefinidos que podem ser personalizados, se você quiser.

    gcloud iam service-accounts create baremetal-controller \
        --project=PROJECT_ID
    
    gcloud iam service-accounts create baremetal-cloud-ops \
        --project=PROJECT_ID
    
    gcloud iam service-accounts create baremetal-gcr \
        --project=PROJECT_ID
    

    Substitua PROJECT_ID pelo ID do projeto do Google Cloud.

Adicionar vinculações de políticas de gerenciamento de identidade e acesso a contas de serviço

  1. Adicione vinculações de política do IAM para os papéis necessários da conta de serviço ADMIN_SA:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/gkehub.admin
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/logging.admin
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/monitoring.admin
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/monitoring.dashboardEditor
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/iam.serviceAccountAdmin
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/iam.serviceAccountTokenCreator
    
  2. Adicione vinculações de política do IAM para os papéis necessários da conta de serviço baremetal-controller:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:baremetal-controller@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/gkehub.admin
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:baremetal-controller@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/monitoring.dashboardEditor
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:baremetal-controller@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/serviceusage.serviceUsageViewer
    
  3. Adicione vinculações de política do IAM para os papéis necessários da conta de serviço baremetal-cloud-ops:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/logging.logWriter
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/monitoring.dashboardEditor
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/monitoring.metricWriter
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/opsconfigmonitoring.resourceMetadata.writer
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/stackdriver.resourceMetadata.writer
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/monitoring.viewer
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/serviceusage.serviceUsageViewer
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/kubernetesmetadata.publisher
    
  4. Conceda à conta de serviço baremetal-controller a capacidade de gerar tokens de acesso em nome da conta de serviço baremetal-gcr:

    gcloud iam service-accounts add-iam-policy-binding \
        baremetal-gcr@PROJECT_ID.iam.gserviceaccount.com \
        --member=serviceAccount:baremetal-controller@PROJECT_ID.iam.gserviceaccount.com \
        --role=roles/iam.serviceAccountTokenCreator
    

Configurar a federação de identidade da carga de trabalho para clusters

Para dar acesso ao Google Cloud com a Federação de Identidade da Carga de Trabalho para GKE, crie uma política de permissão do IAM que conceda acesso a um recurso específico do Google Cloud a um principal que corresponda à identidade do seu aplicativo. Nesse caso, a federação de identidade da carga de trabalho concede acesso a operadores específicos no cluster. Para mais informações sobre a Federação de Identidade da Carga de Trabalho para GKE, consulte Federação de identidade da carga de trabalho na documentação do IAM.

Adicionar vinculações de política do IAM para o operador do cluster

Os comandos a seguir concedem à conta de serviço do Kubernetes anthos-cluster-operator a capacidade de imitar a conta de serviço baremetal-controller e interagir com os recursos do Google Cloud em nome do cluster:

  1. Para cada cluster sem chave (ou cluster sem chave planejado), incluindo o cluster de inicialização, conceda ao anthos-cluster-operator no cluster a capacidade de representar a conta de serviço baremetal-controller:

    No comando abaixo, o principalSet consiste no pool de identidade de carga de trabalho e uma conta de serviço do Kubernetes, anthos-cluster-operator, no namespace kube-system.

    gcloud iam service-accounts add-iam-policy-binding \
        baremetal-controller@PROJECT_ID.iam.gserviceaccount.com \
        --member=principalSet://iam.googleapis.com/projects/PROJECT_NUM/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/attribute.fleetclusteridentity/projects/PROJECT_ID/locations/REGION/memberships/CLUSTER_NAME/ns/kube-system/sa/anthos-cluster-operator \
        --role=roles/iam.workloadIdentityUser \
        --project=PROJECT_ID
    

    Substitua:

  2. Verifique as vinculações de políticas para a conta de serviço baremetal-controller:

    gcloud iam service-accounts get-iam-policy \
        baremetal-controller@PROJECT_ID.iam.gserviceaccount.com
    

    A resposta será assim:

    bindings:
    - members:
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/bmctl-admin-ws/kube-system/anthos-cluster-operator
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/admin-cluster/kube-system/anthos-cluster-operator
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/user-cluster/kube-system/anthos-cluster-operator
      role: roles/iam.workloadIdentityUser
    etag: BwYoN3QLig0=
    version: 1
    

Adicionar vinculações de política do IAM para os operadores do Google Cloud Observability

Os comandos a seguir concedem às seguintes contas de serviço do Kubernetes do Google Cloud Observability a capacidade de imitar a conta de serviço baremetal-cloud-ops e interagir com os recursos do Google Cloud em nome do cluster:

  • cloud-audit-logging
  • gke-metrics-agent
  • kubestore-collector
  • metadata-agent
  • stackdriver-log-forwarder
  1. Para cada cluster sem chave (ou cluster sem chave planejado), incluindo o cluster de inicialização, conceda aos operadores do Google Cloud Observability no cluster a capacidade de imitar a conta de serviço baremetal-cloud-ops:

    Em cada um dos comandos a seguir, o principalSet consiste no pool de identidade da carga de trabalho e em uma conta de serviço do Kubernetes, como cloud-audit-logging, no namespace kube-system.

    gcloud iam service-accounts add-iam-policy-binding \
        baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --member=principalSet://iam.googleapis.com/projects/PROJECT_NUM/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/attribute.fleetclusteridentity/projects/PROJECT_ID/locations/REGION/memberships/CLUSTER_NAME/ns/kube-system/sa/cloud-audit-logging \
        --role=roles/iam.workloadIdentityUser \
        --project=PROJECT_ID
    
    gcloud iam service-accounts add-iam-policy-binding \
        baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --member=principalSet://iam.googleapis.com/projects/PROJECT_NUM/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/attribute.fleetclusteridentity/projects/PROJECT_ID/locations/REGION/memberships/CLUSTER_NAME/ns/kube-system/sa/gke-metrics-agent \
        --role=roles/iam.workloadIdentityUser \
        --project=PROJECT_ID
    
    gcloud iam service-accounts add-iam-policy-binding \
        baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --member=principalSet://iam.googleapis.com/projects/PROJECT_NUM/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/attribute.fleetclusteridentity/projects/PROJECT_ID/locations/REGION/memberships/CLUSTER_NAME/ns/kube-system/sa/kubestore-collector \
        --role=roles/iam.workloadIdentityUser \
        --project=PROJECT_ID
    
    gcloud iam service-accounts add-iam-policy-binding \
        baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --member=principalSet://iam.googleapis.com/projects/PROJECT_NUM/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/attribute.fleetclusteridentity/projects/PROJECT_ID/locations/REGION/memberships/CLUSTER_NAME/ns/kube-system/sa/metadata-agent \
        --role=roles/iam.workloadIdentityUser \
        --project=PROJECT_ID
    
    gcloud iam service-accounts add-iam-policy-binding \
        baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \
        --member=principalSet://iam.googleapis.com/projects/PROJECT_NUM/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/attribute.fleetclusteridentity/projects/PROJECT_ID/locations/REGION/memberships/CLUSTER_NAME/ns/kube-system/sa/stackdriver-log-forwarder \
        --role=roles/iam.workloadIdentityUser \
        --project=PROJECT_ID
    
  2. Verifique as vinculações de políticas para a conta de serviço baremetal-cloud-ops:

    gcloud iam service-accounts get-iam-policy \
        baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com
    

    A resposta será assim:

    bindings:
    - members:
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/bmctl-admin-ws/kube-system/cloud-audit-logging
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/bmctl-admin-ws/kube-system/gke-metrics-agent
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/bmctl-admin-ws/kube-system/kubestore-collector
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/bmctl-admin-ws/kube-system/metadata-agent
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/bmctl-admin-ws/kube-system/stackdriver-log-forwarder
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/admin-cluster/kube-system/cloud-audit-logging
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/admin-cluster/kube-system/gke-metrics-agent
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/admin-cluster/kube-system/kubestore-collector
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/admin-cluster/kube-system/metadata-agent
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/admin-cluster/kube-system/stackdriver-log-forwarder
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/user-cluster/kube-system/cloud-audit-logging
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/user-cluster/kube-system/gke-metrics-agent
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/user-cluster/kube-system/kubestore-collector
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/user-cluster/kube-system/metadata-agent
      - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/user-cluster/kube-system/stackdriver-log-forwarder
      role: roles/iam.workloadIdentityUser
    etag: BwYhT4gL-dY=
    version: 1
    

Configuração do cluster

A diferença mais óbvia na configuração de clusters que usam o modo sem chave é que você não especifica caminhos para chaves de contas de serviço transferidas por download.

  1. Ao preencher as configurações do cluster no arquivo de configuração, deixe os caminhos da chave da conta de serviço na seção de credenciais em branco, conforme mostrado no exemplo abaixo:

    gcrKeyPath:
    sshPrivateKeyPath: /home/USERNAME/.ssh/id_rsa
    gkeConnectAgentServiceAccountKeyPath:
    gkeConnectRegisterServiceAccountKeyPath:
    cloudOperationsServiceAccountKeyPath:
    ---
    apiVersion: v1
    kind: Namespace
    metadata:
      name: cluster-CLUSTER_NAME
    ---
    apiVersion: baremetal.cluster.gke.io/v1
    kind: Cluster
    metadata:
      name: CLUSTER_NAME
      namespace: cluster-CLUSTER_NAME
    spec:
      type: admin
      profile: default
      anthosBareMetalVersion: 1.30.0-gke.1930
      ...
    
  2. Opcionalmente, defina nomes personalizados para as contas de serviço no modo sem chave:

    A especificação de nomes personalizados permite usar contas de serviço atuais. Ao especificar o mesmo nome personalizado para mais de uma conta de serviço, é possível consolidar em menos contas de serviço.

    apiVersion: baremetal.cluster.gke.io/v1
    kind: Cluster
    metadata:
      name: CLUSTER_NAME
      namespace: cluster-CLUSTER_NAME
      annotations:
        baremetal.cluster.gke.io/controller-service-account: "CUSTOM_CONTROLLER_GSA"
        baremetal.cluster.gke.io/cloud-ops-service-account: "CUSTOM_CLOUD_OPS_GSA"
        baremetal.cluster.gke.io/gcr-service-account: "CUSTOM_GCR_GSA"
    spec:
      type: admin
      profile: default
      anthosBareMetalVersion: 1.30.0-gke.1930
        ...
    

Operação de cluster

Quando estiver tudo pronto para criar, fazer upgrade ou excluir um cluster do modo sem chave, siga estas etapas:

  1. Faça login na CLI do Google Cloud:

    gcloud auth login
    
  2. Na estação de trabalho do administrador, crie e faça o download de uma chave para a conta de serviço ADMIN_SA:

    gcloud iam service-accounts keys create TMP_KEY_FILE_PATH \
        --iam-account=ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com
    

    Substitua TMP_KEY_FILE_PATH pelo caminho, incluindo o nome do arquivo de chave salvo.

  3. Autorize o acesso ao Google Cloud com a conta de serviço ADMIN_SA:

    gcloud auth activate-service-account ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com \
        --key-file=TMP_KEY_FILE_PATH
    
  4. Exclua o arquivo de chave JSON salvo:

    rm TMP_KEY_FILE_PATH
    
  5. Na estação de trabalho do administrador, crie uma variável de ambiente GCP_ACCESS_TOKEN com o valor de um token de acesso criado pela conta de serviço ADMIN_SA:

    export GCP_ACCESS_TOKEN=$(gcloud auth print-access-token \
        --impersonate-service-account=ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com)
    

    Por padrão, o token de acesso tem uma vida útil de 1 hora.

  6. Verifique se o token é gerado pela conta de serviço ADMIN_SA com a expiração correta:

    curl "https://oauth2.googleapis.com/tokeninfo?access_token=$GCP_ACCESS_TOKEN"
    

    A resposta precisa incluir linhas semelhantes a esta:

    ...
    "expires_in": "3582",
    "email": "ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com)",
    ...
    

    O valor de expiração está em segundos e precisa ser menor que 3600, o que indica que o token expira em menos de uma hora.

  7. Execute um comando bmctl para criar, fazer upgrade ou excluir um cluster do modo sem chave:

    Se o bmctl detectar que a variável de ambiente GCP_ACCESS_TOKEN foi configurada, ele vai realizar a validação do token. Se o token for válido, o bmctl vai usá-lo para operações de cluster no modo sem chave.

    Para clusters que usam o modo sem chave, os comandos a seguir exigem que a variável de ambiente GCP_ACCESS_TOKEN seja definida como um token de acesso válido e ativo:

    • bmctl create cluster -c CLUSTER_NAME
    • bmctl reset cluster -c CLUSTER_NAME
    • bmctl upgrade cluster -c CLUSTER_NAME

Limitações

Enquanto o modo sem chave está em pré-lançamento, os recursos a seguir não são compatíveis com clusters executados no modo sem chave:

  • Como usar um servidor proxy
  • VPC Service Controls

A seguir