VPC Service Controls para Cloud Service Mesh (gerenciado)

O Cloud Service Mesh (gerenciado) é compatível com o VPC Service Controls como um recurso de disponibilidade geral (GA) para novos planos de controle.

Para saber se o plano de controle oferece suporte ao VPC Service Controls em disponibilidade geral, confira o recurso da malha o estado da sua assinatura para a condição VPCSC_GA_SUPPORTED.

gcloud container fleet mesh describe --project FLEET_PROJECT_ID

A saída é semelhante a:

(...)
membershipStates:
  projects/FLEET_PROJECT_NUMBER/locations/MEMBERSHIP_LOCATION/memberships/MEMBERSHIP_ID:
    servicemesh:
      conditions:
      - code: VPCSC_GA_SUPPORTED
        details: This control plane supports VPC Service Controls GA.
        documentationLink: http://cloud.google.com/service-mesh/docs/managed/VPC Service Controls
        severity: INFO
(...)

Se você já tem um plano de controle que não informa as VPCSC_GA_SUPPORTED e quiser depender do VPC Service Controls, entre em contato com o suporte.

Antes de começar

A política da organização e o perímetro de serviço do VPC Service Controls são configurados nível da organização. Verifique se você recebeu os papéis adequados para administrar o VPC Service Controls.

Configurar o perímetro de serviço do VPC Service Controls

Crie ou atualize o perímetro de serviço:

  1. Adicione os projetos de cluster e de frota ao perímetro de serviço. Ter uma malha de serviço distribuída entre vários VPC Service Controls perímetros de segurança.

  2. Adicione serviços restritos ao perímetro de serviço.

    Você precisa adicionar serviços específicos às listas de serviços permitidos e restritos no o perímetro de serviço, para que o cluster do Cloud Service Mesh possa acessá-los. O acesso aos serviços também é restrito na rede de nuvem privada virtual (VPC) do cluster.

    Não adicionar esses serviços pode causar uma falha na instalação do Cloud Service Mesh ou não funcione corretamente. Por exemplo, se você não adicionar o parâmetro API de configuração de malha no perímetro de serviço, a instalação falha e as cargas de trabalho não vão receber a configuração do Envoy plano de controle.

    Console

    1. Siga as etapas em Como atualizar um perímetro de serviço para editar o perímetro.
    2. Clique na página Editar perímetro de serviço da VPC.
    3. Em Serviços restritos, Serviços a serem protegidos, clique em Adicionar serviços.
    4. Na caixa de diálogo Especificar serviços a serem restringidos, clique em Filtrar serviços e digite API de configuração de malha.
    5. Marque a caixa de seleção do serviço.
    6. Clique em Adicionar API Mesh Configuration.
    7. Repita as etapas de c a f para adicionar:
      • API Cloud Service Mesh Certificate Authority
      • API GKE Hub
      • API Cloud IAM
      • API Cloud Monitoring
      • Cloud Trace API
      • API Cloud Monitoring
      • API Google Cloud Resource Manager
      • API Google Compute Engine
      • API Google Container Registry
      • API Artifact Registry
      • API Google Cloud Storage
      • API Cloud Logging
      • API Security Token Service
    8. Clique em Salvar.

    gcloud

    Para atualizar a lista de serviços restritos, use o comando update e especifique os serviços a serem adicionados como uma lista delimitada por vírgulas:

    gcloud access-context-manager perimeters update PERIMETER_NAME \
      --add-restricted-services=meshconfig.googleapis.com,meshca.googleapis.com,gkehub.googleapis.com,iam.googleapis.com,monitoring.googleapis.com,cloudtrace.googleapis.com,monitoring.googleapis.com,cloudresourcemanager.googleapis.com,compute.googleapis.com,containerregistry.googleapis.com,artifactregistry.googleapis.com,storage.googleapis.com,logging.googleapis.com,sts.googleapis.com \
      --policy=POLICY_NAME

    Em que:

    • PERIMETER_NAME é o nome do perímetro de serviço que você quer atualizar.

    • POLICY_NAME é o nome numérico da política de acesso da sua organização. Por exemplo, 330193482019.

  3. Clique em Serviços acessíveis da VPC e defina como "Todos os serviços restritos", para que os serviços restritos na etapa acima ainda possam ser acessados no perímetro do VPC Service Controls.

  4. A menos que você esteja instalando o Cloud Service Mesh de uma rede no perímetro, adicione um regra de entrada para permitir que a identidade que executa o comando asmcli acesse o perímetro de serviço.

    Para mais informações, consulte Como atualizar um perímetro de serviço.

Instalar o Cloud Service Mesh gerenciado em um perímetro do VPC Service Controls

Siga as etapas em Configurar o Cloud Service Mesh gerenciado página. Depois, verificar se o plano de controle foi provisionado com sucesso e não há erros relacionados ao VPC Service Controls.

Solução de problemas

Não é possível criar o cluster com a imagem mais recente do GKE 1.22

Há um problema conhecido que impede a criação de um cluster com a versão mais recente 1.22 Imagem em um ambiente restrito do VPC Service Controls. A solução é criar esse cluster primeiro com a imagem padrão do canal GKE e, em seguida, fazer upgrade da imagem:

gcloud container clusters create CLUSTER \
  --region REGION \
  --release-channel=rapid \
  --workload-pool=PROJECT_ID.svc.id.goog \
  --project PROJECT_ID
gcloud container clusters upgrade CLUSTER \
  --region REGION \
  --master --cluster-version 1.22 \
  --project PROJECT_ID

Os contêineres não podem fazer o download das imagens.

Isso pode acontecer se as imagens estiverem localizadas fora do perímetro de serviço. Mova as imagens para um bucket localizado dentro do perímetro ou atualize o perímetro para adicionar uma regra de saída. Normalmente, a regra de saída pode permitir que identidades selecionadas acessem a API Container Registry, a API Artifact Registry e a API Cloud Storage.

O campo "Status" do CRD ControlPlaneRevision mostra erros do VPC Service Controls

Caso contrário, execute este comando para mais informações sobre o erro:

gcloud logging read --project=PROJECT_ID \
'protoPayload.metadata.@type=type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata'

Em que:

  • PROJECT_ID é o ID do projeto que encontra erros.