Configurar políticas de conexão de serviço

Nesta página, você verá como um administrador de rede pode configurar políticas de conexão de serviço para automatizar a conectividade particular com um serviço gerenciado.

Antes de começar

Funções exigidas

Para receber as permissões necessárias a fim de configurar uma rede e criar uma política de conexão de serviço, peça ao administrador para conceder a você o papel do IAM de Administrador de rede do Compute (roles/compute.networkAdmin) no projeto.

Para usar políticas de conexão de serviço com a VPC compartilhada, as contas de serviço de conectividade de rede precisam receber papéis nos projetos host e de serviço. Essas contas de serviço são configuradas automaticamente quando uma política de conexão de serviço é criada, mas os papéis podem ser removidos manualmente. Se você encontrar erros sobre permissões ausentes, um administrador da conta de serviço poderá precisar conceder os papéis novamente. Para mais informações, consulte Configurar contas de serviço para a VPC compartilhada.

Criar uma política de conexão de serviço

Com uma política de conexão de serviço, você autoriza a classe de serviço especificada a criar uma conexão de Private Service Connect entre redes VPC de produtor e consumidor.

É possível criar no máximo uma política para cada combinação de classe de serviço, região e rede VPC. Uma política determina a automação da conectividade do serviço para essa combinação específica. Ao configurar uma política, você seleciona uma sub-rede. A sub-rede é usada para alocar endereços IP para os endpoints criados por meio da política. É possível reutilizar a mesma sub-rede em várias políticas de conexão se elas compartilharem a mesma região.

Por exemplo, se você quiser usar a automação de conectividade de serviço com dois serviços em três regiões diferentes, crie seis políticas. É possível usar no mínimo três sub-redes, uma para cada região.

Depois de criar uma política de conexão de serviço, só será possível atualizar as sub-redes e o limite de conexão da política. Se você precisar atualizar outros campos, exclua a política e crie uma nova.

Console

  1. No Console do Google Cloud, acesse a página do Private Service Connect.

    Acessar a página "Private Service Connect"

  2. Clique na guia Políticas de conexão.

  3. Clique em Criar política de conexão.

  4. Digite um nome para a conexão.

  5. Especifique a classe de serviço.

    • Nos serviços do Google, faça o seguinte:
      1. Em Source service class, selecione Google services.
      2. Selecione a classe de serviço no menu Classe de serviço.
    • Para serviços de terceiros, faça o seguinte:
      1. Em Classe de serviço de origem, selecione serviços de terceiros.
      2. Em Classe de serviço, digite o nome da classe.
  6. Na seção Escopo de endpoints de destino, selecione uma Rede e uma Região a que essa política se aplica.

  7. Na seção Política, selecione uma ou mais sub-redes no menu Sub-redes. As sub-redes são usadas para alocar endereços IP para endpoints.

  8. Opcional: especifique um Limite de conexão para a política. O limite determina quantos endpoints podem ser criados usando essa política de conexão. Se omitido, não há limite.

  9. Clique em Criar política.

gcloud

Use o comando service-connection-policies create.

gcloud network-connectivity service-connection-policies create POLICY_NAME \
    --network=NETWORK \
    --project=PROJECT_ID \
    --region=REGION \
    --service-class=SERVICE_CLASS \
    --subnets=https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETS \
    --psc-connection-limit=LIMIT \
    --description=DESCRIPTION

Substitua:

  • POLICY_NAME: o nome da política de conexão de serviço.
  • NETWORK: a rede à qual esta política será aplicada.
  • PROJECT_ID: o ID do projeto ou o número do projeto da rede VPC. Para redes de VPCs compartilhadas, as políticas de conexão de serviço precisam ser implantadas no projeto host e não são compatíveis em projetos de serviço.
  • REGION: a região em que a política será aplicada. A mesma política precisa existir para todas as regiões em que você queira automatizar a conectividade do serviço.
  • SERVICE_CLASS: o identificador de recurso fornecido pelo produtor da classe de serviço.
  • SUBNETS: uma ou mais sub-redes de consumidor regulares usadas para alocar endereços IP para endpoints do Private Service Connect. Esses endereços IP são alocados automaticamente e retornados ao pool da sub-rede à medida que as instâncias de serviço gerenciado são criadas e excluídas. As sub-redes precisam estar na mesma região que a política de conexão do serviço. É possível reutilizar a mesma sub-rede em várias políticas de conexão se elas compartilharem a mesma região. É possível fornecer várias sub-redes em uma lista separada por vírgulas.
  • LIMIT: o número máximo de endpoints que podem ser criados usando essa política. Se não for especificado, não haverá nenhum limite.
  • DESCRIPTION: uma descrição opcional da política de conexão de serviço.

Por exemplo, o comando a seguir cria uma política de conexão de serviço para a classe de serviço gcp-database-service que aloca endereços IP da sub-rede managed-services. É possível criar até 10 endpoints do Private Service Connect usando esta política. Os endpoints precisam ser criados em projetos que estejam na mesma organização da instância de serviço gerenciado.

gcloud network-connectivity service-connection-policies create gcp-database-cxn-policy \
    --network=default \
    --project=my-project \
    --region=us-central1 \
    --service-class=gcp-database-service \
    --subnets=managed-service-subnet \
    --psc-connection-limit=10

Terraform

Use o recurso do Terraform para criar uma política de conexão de serviço.

# Create a VPC network
resource "google_compute_network" "default" {
  name                    = "consumer-network"
  auto_create_subnetworks = false
}

# Create a subnetwork
resource "google_compute_subnetwork" "default" {
  name          = "consumer-subnet"
  ip_cidr_range = "10.0.0.0/16"
  region        = "us-central1"
  network       = google_compute_network.default.id
}

# Create a service connection policy
resource "google_network_connectivity_service_connection_policy" "default" {
  name          = "service-connection-policy"
  location      = "us-central1"
  service_class = "gcp-memorystore-redis"
  network       = google_compute_network.default.id
  psc_config {
    subnetworks = [google_compute_subnetwork.default.id]
    limit       = 2
  }
}

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

API

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: ID do projeto.
  • REGION: a região da política de conexão do serviço.
  • POLICY_NAME: o nome da política de conexão do serviço.
  • DESCRIPTION: uma descrição opcional da política de conexão de serviço.
  • NETWORK: a rede da política de conexão do serviço.
  • LIMIT: o número máximo de endpoints que podem ser criados usando essa política. Se não for especificado, não haverá nenhum limite.
  • SUBNET: uma ou mais sub-redes de consumidor regulares usadas para alocar endereços IP para endpoints do Private Service Connect. Esses endereços IP são alocados automaticamente e retornados ao pool da sub-rede à medida que as instâncias de serviço gerenciado são criadas e excluídas. As sub-redes precisam estar na mesma região que a política de conexão do serviço. É possível reutilizar a mesma sub-rede em várias políticas de conexão se elas compartilharem a mesma região. É possível inserir vários URLs de sub-rede em uma lista separada por vírgulas.
  • SERVICE_CLASS: o identificador de recurso fornecido pelo produtor da classe de serviço.

Método HTTP e URL:

POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies?serviceConnectionPolicyId=POLICY_NAME

Corpo JSON da solicitação:

{
  "description": "DESCRIPTION",
  "network": "projects/PROJECT_ID/global/networks/NETWORK",
  "pscConfig": {
    "limit": "LIMIT",
    "subnetworks": [
      "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET"
    ]
  },
  "serviceClass": "SERVICE_CLASS"
}

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

{
  "name": "projects/project-id/locations/us-central1/operations/operation-1692118768698-602f91a204523-8c6a2d93-d5c20a6a",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.networkconnectivity.v1.OperationMetadata",
    "createTime": "2023-08-15T16:59:29.236110917Z",
    "target": "projects/project-id/locations/us-central1/serviceConnectionPolicies/policy-name",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Listar políticas de conexão de serviço

Console

  1. No Console do Google Cloud, acesse a página do Private Service Connect.

    Acessar a página "Private Service Connect"

  2. Clique na guia Políticas de conexão.

  3. As políticas de conexão são exibidas.

gcloud

Use o comando service-connection-policies list.

gcloud network-connectivity service-connection-policies list \
    --region=REGION

Substitua REGION pela região em que você quer listar as políticas de conexão de serviço.

API

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: ID do projeto.
  • REGION: a região em que as políticas de conexão de serviço serão listadas.

Método HTTP e URL:

GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

{
  "serviceConnectionPolicies": [
    {
      "name": "projects/project-id/locations/us-central1/serviceConnectionPolicies/policy-1",
      "createTime": "2023-08-15T15:33:54.712819865Z",
      "updateTime": "2023-08-15T15:33:54.945630882Z",
      "description": "descriptor",
      "network": "projects/project-id/global/networks/network-two",
      "serviceClass": "service-class",
      "infrastructure": "PSC",
      "pscConfig": {
        "subnetworks": [
          "projects/project-id/regions/us-west1/subnetworks/us-west1-subnet"
        ],
        "limit": "12"
      },
      "etag": "zCqDFBG1dS7B4gNdJKPR98YMUXpSrBIz0tZB_hwOIZI"
    },
    {
      "name": "projects/project-id/locations/us-central1/serviceConnectionPolicies/policy-2",
      "createTime": "2023-08-15T16:59:29.230257109Z",
      "updateTime": "2023-08-15T16:59:29.508994923Z",
      "description": "descriptor",
      "network": "projects/project-id/global/networks/custom-test",
      "serviceClass": "service-class",
      "infrastructure": "PSC",
      "pscConfig": {
        "subnetworks": [
          "projects/project-id/regions/us-central1/subnetworks/subnet-one"
        ],
        "limit": "25"
      },
      "etag": "nB603i61nRGMZpNjWoWMM6wRzsgM8QN9C9v5QFLyOa8"
    }
  ]
}

Descrever uma política de conexão de serviço

Console

  1. No Console do Google Cloud, acesse a página do Private Service Connect.

    Acessar a página "Private Service Connect"

  2. Clique na guia Políticas de conexão.

  3. Clique na política de conexão do serviço que você quer ver.

gcloud

Use o comando service-connection-policies describe.

gcloud network-connectivity service-connection-policies describe POLICY_NAME \
    --region=REGION

Substitua:

  • POLICY_NAME: o nome da política de conexão de serviço que você quer descrever.
  • REGION: a região da política de conexão de serviço que você quer descrever.

API

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: ID do projeto.
  • REGION: a região da política de conexão do serviço.
  • POLICY_NAME: o nome da política de conexão do serviço a ser descrita.

Método HTTP e URL:

GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies/POLICY_NAME

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

{
  "name": "projects/project-id/locations/us-central1/serviceConnectionPolicies/policy-name",
  "createTime": "2023-08-15T16:59:29.230257109Z",
  "updateTime": "2023-08-15T16:59:29.508994923Z",
  "description": "description",
  "network": "projects/project-id/global/networks/custom-test",
  "serviceClass": "gcp-memorystore-redis",
  "infrastructure": "PSC",
  "pscConfig": {
    "subnetworks": [
      "projects/project-id/regions/us-central1/subnetworks/subnet-one"
    ],
    "limit": "25"
  },
  "etag": "nB603i61nRGMZpNjWoWMM6wRzsgM8QN9C9v5QFLyOa8"
}

Atualizar uma política de conexão de serviço

É possível atualizar as sub-redes e o limite de conexão de uma política de conexão de serviço.

Se você remover uma sub-rede da política de conexão de serviço, o seguinte se aplicará:

  • Os endpoints atuais do Private Service Connect não são afetados.
  • Novos endpoints não usam a sub-rede removida.

Se você atualizar o limite de uma política de conexão de serviço, o seguinte se aplicará:

  • Os endpoints atuais não serão afetados.
  • Se o novo limite de conexões for menor que o número atual de endpoints associados à política, a automação da conectividade do serviço bloqueará a criação de novos endpoints que usam essa política.
  • Se o novo limite de conexões for maior que o número atual de endpoints associados à política, será possível criar endpoints que foram bloqueados anteriormente pelo limite.

Se você atualizar uma política de conexão de serviço e não especificar um limite de conexão, a política atualizada não terá limite de conexão.

Console

  1. No Console do Google Cloud, acesse a página do Private Service Connect.

    Acessar a página "Private Service Connect"

  2. Clique na guia Políticas de conexão.

  3. Clique na política de conexão do serviço que você quer editar.

  4. Clique em Editar.

  5. Para atualizar as sub-redes da política, faça o seguinte:

    1. Clique em Sub-redes e selecione as sub-redes que você quer associar à política.
    2. Clique em OK.
  6. Para atualizar o limite de conexões da política, insira um novo valor no campo Limite de conexão.

  7. Clique em Atualizar política.

gcloud

Use o comando service-connection-policies update.

gcloud network-connectivity service-connection-policies update POLICY_NAME \
    --region=REGION
    --project=PROJECT_ID
    --subnets=SUBNETS
    --psc-connection-limit=LIMIT
  • POLICY_NAME: o nome da política de conexão de serviço.
  • REGION: a região da política de conexão de serviço. Não é possível atualizar a região de uma política.
  • PROJECT_ID: o ID do projeto ou o número do projeto da política.
  • SUBNETS: uma ou mais sub-redes de consumidor regulares usadas para alocar endereços IP para endpoints do Private Service Connect. Esses endereços IP são alocados automaticamente e retornados ao pool da sub-rede à medida que as instâncias de serviço gerenciado são criadas e excluídas. As sub-redes precisam estar na mesma região que a política de conexão do serviço. É possível reutilizar a mesma sub-rede em várias políticas de conexão se elas compartilharem a mesma região. É possível fornecer várias sub-redes em uma lista separada por vírgulas.
  • LIMIT: o número máximo de endpoints que podem ser criados usando essa política. Se não for especificado, não haverá nenhum limite.

API

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: ID do projeto.
  • REGION: a região da política de conexão de serviço. Não é possível atualizar a região de uma política.
  • POLICY_NAME: o nome da política de conexão de serviço.
  • LIMIT: o número máximo de endpoints que podem ser criados usando essa política. Se não for especificado, não haverá nenhum limite.
  • SUBNET: uma ou mais sub-redes de consumidor regulares usadas para alocar endereços IP para endpoints do Private Service Connect. Esses endereços IP são alocados automaticamente e retornados ao pool da sub-rede à medida que as instâncias de serviço gerenciado são criadas e excluídas. As sub-redes precisam estar na mesma região que a política de conexão do serviço. É possível reutilizar a mesma sub-rede em várias políticas de conexão se elas compartilharem a mesma região. É possível inserir vários URLs de sub-rede em uma lista separada por vírgulas.
  • NETWORK: a rede da política de conexão do serviço.

Método HTTP e URL:

PATCH https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies/POLICY_NAME

Corpo JSON da solicitação:

{
  "pscConfig": {
    "limit": "LIMIT",
    "subnetworks": [
      "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET"
    ]
  },
  "network": "projects/PROJECT_ID/global/networks/NETWORK"
}

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

{
  "name": "projects/project-id/locations/us-central1/operations/operation-1692118768698-602f91a204523-8c6a2d93-d5c20a6a",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.networkconnectivity.v1.OperationMetadata",
    "createTime": "2023-08-15T16:59:29.236110917Z",
    "target": "projects/project-id/locations/us-central1/serviceConnectionPolicies/policy-name",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Excluir uma política de conexão de serviço

É possível excluir uma política de conexão de serviço se você terminar de usar o serviço ou quiser parar de automatizar a conectividade. A exclusão da política será bloqueada se as conexões ativas do Private Service Connect estiverem associadas à política. Antes de excluir uma política de conexão de serviço, exclua todas as conexões ativas desativando todas as instâncias de serviço associadas.

Console

  1. No Console do Google Cloud, acesse a página do Private Service Connect.

    Acessar a página "Private Service Connect"

  2. Clique na guia Políticas de conexão.

  3. Selecione as políticas de conexão de serviço que você quer excluir e clique em Excluir.

gcloud

Use o comando service-connection-policies delete.

gcloud network-connectivity service-connection-policies delete POLICY_NAME \
    --region=REGION

Substitua:

  • POLICY_NAME: o nome da política de conexão do serviço que você quer excluir.
  • REGION: a região da política de conexão do serviço que você quer excluir.

API

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: ID do projeto.
  • REGION: a região da política de conexão do serviço.
  • POLICY_NAME: o nome da política de conexão do serviço a ser excluída.

Método HTTP e URL:

DELETE https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies/POLICY_NAME

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

{
  "name": "projects/project-id/locations/us-central1/operations/operation-1692128792549-602fb6f98194a-e0275435-36edc095",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.networkconnectivity.v1.OperationMetadata",
    "createTime": "2023-08-15T19:46:32.605032867Z",
    "target": "projects/project-id/locations/us-central1/serviceConnectionPolicies/policy-name",
    "verb": "delete",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Configurar contas de serviço para a VPC compartilhada

As contas de serviço são configuradas automaticamente quando você usa políticas de conexão de serviço com a VPC compartilhada, mas os papéis podem ser removidos manualmente. Se você encontrar erros sobre permissões ausentes, tente conceder os papéis novamente.

Para conceder os papéis necessários, um administrador da conta de serviço pode seguir as informações a seguir.

Conceder papéis à conta de serviço no projeto de serviço

gcloud

  1. Conceder o papel de Agente de serviço de conectividade da rede (roles/networkconnectivity.serviceAgent) à conta de serviço de conectividade de rede do projeto de serviço. Conceder o papel no projeto de serviço.

    gcloud projects add-iam-policy-binding SERVICE_PROJECT_NUMBER \
        --member=serviceAccount:service-SERVICE_PROJECT_NUMBER@gcp-sa-networkconnectivity.iam.gserviceaccount.com \
        --role=roles/networkconnectivity.serviceAgent
    

    Substituir SERVICE_PROJECT_NUMBER pelo número do projeto de serviço.

  2. Conceder o papel de usuário da rede do Compute (roles/compute.networkUser) à conta de serviço de conectividade de rede do projeto de serviço. Escolha uma das opções a seguir.

    • Conceda o papel no projeto host.

      gcloud projects add-iam-policy-binding HOST_PROJECT_NUMBER \
          --member=serviceAccount:service-SERVICE_PROJECT_NUMBER@gcp-sa-networkconnectivity.iam.gserviceaccount.com \
          --role=roles/compute.networkUser
      

      Substitua HOST_PROJECT_NUMBER pelo número do projeto host.

    • Conceda o papel em cada uma das sub-redes no projeto host associadas à política de conexão de serviço. Use o seguinte comando para cada sub-rede.

      gcloud compute networks subnets add-iam-policy-binding SUBNET \
          --member=serviceAccount:service-SERVICE_PROJECT_NUMBER@gcp-sa-networkconnectivity.iam.gserviceaccount.com \
          --role=roles/compute.networkUser \
          --region=REGION \
          --project=HOST_PROJECT_NUMBER
      

      Substitua:

      • SUBNET: o nome da sub-rede associada à política de conexão de serviço.
      • REGION: a região da sub-rede.

Conceder papel à conta de serviço no projeto host

gcloud

  1. Conceda o papel de Agente de serviço de conectividade da rede (roles/networkconnectivity.serviceAgent) à conta de serviço de conectividade de rede do projeto de serviço. Conceda o papel no projeto host.

    gcloud projects add-iam-policy-binding HOST_PROJECT_NUMBER \
        --member=serviceAccount:service-HOST_PROJECT_NUMBER@gcp-sa-networkconnectivity.iam.gserviceaccount.com \
        --role=roles/networkconnectivity.serviceAgent
    

    Substitua HOST_PROJECT_NUMBER pelo número do projeto host.

A seguir