Criar e gerenciar interfaces do Private Service Connect
Nesta página, descrevemos como os administradores de rede do produtor podem criar e gerenciar interfaces do Private Service Connect. As interfaces do Private Service Connect permitem que redes de nuvem privada virtual (VPC) do produtor de serviços iniciem conexões com redes VPC do consumidor.
Antes de começar
- Você precisa ativar a API Compute Engine no projeto.
- Encontre o URL do anexo de rede ao qual você quer se conectar.
- Se o anexo de rede estiver configurado para aceitar manualmente as conexões, verificar se um administrador de rede adicionou seu projeto à rede na lista de aceitação do anexo.
Papéis
Para receber as permissões necessárias para criar interfaces do Private Service Connect, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:
-
Administrador da instância da computação (v1) (
roles/compute.instanceAdmin.v1
) -
Administrador de rede do Compute (
roles/compute.networkAdmin
)
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.
O papel Administrador da instância da computação (v1) contém a
permissão compute.instances.pscInterfaceCreate
, que é necessária para criar
interfaces do Private Service Connect.
Criar e configurar uma interface do Private Service Connect
Para criar e configurar uma máquina virtual (VM) que tenha uma interface de Private Service Connect, conclua as etapas a seguir.
Criar uma VM com uma interface do Private Service Connect
Ao criar uma interface do Private Service Connect, você cria uma VM que tem pelo menos duas interfaces de rede. A primeira interface se conecta a uma sub-rede de produtor. A segunda é uma interface do Private Service Connect que solicita uma conexão com um anexo de rede em uma rede de consumidor.
Se a conexão for aceita, o Google Cloud atribuirá à interface do Private Service Connect um endereço IP interno da sub-rede que é especificado pelo anexo de rede.
Se você criar uma interface do Private Service Connect que se refere a um anexo de rede configurado para aceitar conexões manualmente e o projeto da interface não estiver na lista de aceitação do anexo de rede, a criação da VM da interface do Private Service Connect falhará. Nesse caso, trabalhe com a organização do consumidor para adicionar seu projeto à lista de aceitações e crie uma interface do Private Service Connect.
Ao criar uma interface do Private Service Connect, é possível atribuir a ela um ou mais intervalos de IP de alias internos. Se você planeja atribuir intervalos de IP do alias, entre em contato com a organização do consumidor para determinar os intervalos de endereços IP apropriados.
Para atribuir um intervalo de IP do alias, especifique o tamanho do prefixo do intervalo na notação CIDR. Quando você atribui um ou mais intervalos de IP de alias a uma interface do Private Service Connect, o Google Cloud aloca os intervalos de IP do alias do intervalo de endereços IP principal da sub-rede associada ao anexo de rede. , O endereço IP principal da interface do Private Service Connect é alocado de fora de qualquer intervalo de IP do alias. Se não houver endereços IP suficientes na sub-rede do anexo de rede para alocar o endereço IP principal e os intervalos de IP do alias, a criação da VM da interface do Private Service Connect falhará. É possível encontrar os endereços IP específicos atribuídos descrevendo a VM da interface.
Console
No console do Google Cloud, acesse a página Instâncias de VMs.
Clique em Criar instância.
Digite um Nome.
Selecione uma Região que corresponda à região do anexo de rede a que você quer se conectar.
Selecione uma Zona.
Clique em Opções avançadas.
Clique em Rede.
Na seção Interfaces de rede, clique na primeira interface de rede, que é a principal, e faça o seguinte:
- Selecione uma Rede para a interface de rede principal.
- Selecione uma Sub-rede para a interface de rede principal. Essa sub-rede precisa estar na mesma região que o anexo de rede da interface do Private Service Connect.
Clique em Adicionar uma interface de rede.
Em Tipo de interface, selecione Private Service Connect.
Insira um URL de anexo de rede.
Selecione um tipo de pilha de IP. Para criar uma interface do Private Service Connect de pilha dupla, a sub-rede do anexo de rede precisa ser de pilha dupla.
Opcional: para adicionar um intervalo de IP do alias, na caixa Comprimento do prefixo, digite o tamanho do prefixo, por exemplo,
/30
. Para adicionar vários intervalos de IP do alias, clique em Adicionar intervalo de IP e insira o tamanho do prefixo de cada intervalo de IP do alias que quiser incluir.Clique em Concluído.
Clique em Criar.
gcloud
Para criar uma VM com uma interface do Private Service Connect somente IPv4, use o
comando instances create
.
gcloud compute instances create INSTANCE_NAME \ --zone=ZONE \ --machine-type=MACHINE_TYPE \ --image-project=IMAGE_PROJECT \ --image=IMAGE \ --network-interface='network=PRODUCER_NETWORK,subnet=PRODUCER_SUBNET,no-address' \ --network-interface='network-attachment=projects/CONSUMER_PROJECT_ID/regions/REGION/networkAttachments/ATTACHMENT_NAME'
Substitua:
INSTANCE_NAME
: o nome da nova instância.ZONE
: a zona da nova instânciaMACHINE_TYPE
: o tipo de máquina da instância, que pode ser predefinido ou personalizado.IMAGE_PROJECT
: o projeto da imagem. Por exemplo, se você especificardebian-10-buster-v20230809
como a imagem, especifiquedebian-cloud
como o projeto da imagem. É possível ver uma lista de imagens, projetos de imagens e famílias de imagens disponíveis usando o comandogcloud compute images list
.IMAGE
: uma versão específica de uma imagem pública. Por exemplo,debian-10-buster-v20230809
.PRODUCER_NETWORK
: a rede da instância.PRODUCER_SUBNET
: a sub-rede da interface de rede principal da VM. Essa sub-rede precisa estar na mesma região que o anexo de rede da interface do Private Service Connect.CONSUMER_PROJECT_ID
: o ID do consumidor ao qual você quer se conectar.ATTACHMENT_NAME
: o nome do anexo de rede para solicitar uma conexão.
Para atribuir um endereço IPv4 e um IPv6 à interface do Private Service Connect, especifique stack-type='IPV4_IPv6'
. O anexo de rede
a que a interface se refere precisa estar associado a uma
sub-rede de pilha dupla.
gcloud compute instances create INSTANCE_NAME \ --zone=ZONE \ --machine-type=MACHINE_TYPE \ --image-project=IMAGE_PROJECT \ --image=IMAGE \ --network-interface='network=PRODUCER_NETWORK,subnet=PRODUCER_SUBNET,no-address' \ --network-interface='network-attachment=projects/CONSUMER_PROJECT_ID/regions/REGION/networkAttachments/ATTACHMENT_NAME,stack-type='IPV4_IPV6''
Para atribuir à interface do Private Service Connect um ou mais intervalos de IP de alias, especifique o tamanho do prefixo de cada intervalo de IP do alias que você quer atribuir:
gcloud compute instances create INSTANCE_NAME \ --zone=ZONE \ --machine-type=MACHINE_TYPE \ --image-project=IMAGE_PROJECT \ --image=IMAGE \ --network-interface='network=PRODUCER_NETWORK,subnet=PRODUCER_SUBNET,no-address' \ --network-interface='network-attachment=projects/CONSUMER_PROJECT_ID/regions/REGION/networkAttachments/ATTACHMENT_NAME,aliases=ALIAS_IP_RANGE'
Substitua ALIAS_IP_RANGE
por um ou mais comprimentos de prefixo na notação CIDR. É possível incluir vários comprimentos de prefixo em uma lista separada por ponto e vírgula, por exemplo, /24;/28
.
API
Para criar uma VM com uma interface do Private Service Connect somente IPv4, envie uma solicitação POST
para o
método instances.insert
.
POST https://compute.googleapis.com/compute/v1/projects/PRODUCER_PROJECT_ID/zones/INSTANCE_ZONE/instances { "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "name": "VM_NAME", "disks": [ { "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" }, "boot": true } ], "networkInterfaces": [ { "network": "https://compute.googleapis.com/compute/v1/projects/PRODUCER_PROJECT_ID/global/networks/PRODUCER_NETWORK", "subnetwork": "https://compute.googleapis.com/compute/v1/projects/PRODUCER_PROJECT_ID/regions/SUBNET_REGION/subnetworks/SUBNET" }, { "networkAttachment": "projects/CONSUMER_PROJECT_ID/regions/ATTACHMENT_REGION/networkAttachments/ATTACHMENT_NAME" } ] }
Substitua:
PRODUCER_PROJECT_ID
: o ID do projeto do produtor.INSTANCE_ZONE
: a zona da nova instância.MACHINE_TYPE_ZONE
: a zona do tipo de máquina;MACHINE_TYPE
: o tipo de máquina da nova VM, que pode ser predefinida ou personalizada.VM_NAME
: o nome da nova VM.IMAGE_PROJECT
: o projeto que contém a imagem. Por exemplo, se você especificardebian-10-buster-v20200309
como a imagem, especifiquedebian-cloud
como o projeto da imagem.IMAGE
: uma versão específica de uma imagem pública. Por exemplo,debian-10-buster-v20200309
PRODUCER_PROJECT_ID
: o ID do projeto da interface.PRODUCER_NETWORK
: o nome da rede VPC do produtorSUBNET_REGION
: a região da sub-rede da interface de rede principal. Essa sub-rede precisa estar na mesma região que o anexo de rede da interface do Private Service Connect.SUBNET
: o nome da sub-rede da interface de rede principal.CONSUMER_PROJECT_ID
: o ID do projeto do consumidor.ATTACHMENT_REGION
: a região do anexo de rede.ATTACHMENT_NAME
: o nome do anexo de rede.
Para atribuir um endereço IPv4 e um IPv6 à interface do Private Service Connect, especifique "stack-type": "IPV4_IPv6"
. O anexo de rede
a que a interface se refere precisa estar associado a uma
sub-rede de pilha dupla.
POST https://compute.googleapis.com/compute/v1/projects/PRODUCER_PROJECT_ID/zones/INSTANCE_ZONE/instances { "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "name": "VM_NAME", "disks": [ { "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" }, "boot": true } ], "networkInterfaces": [ { "network": "https://compute.googleapis.com/compute/v1/projects/PRODUCER_PROJECT_ID/global/networks/PRODUCER_NETWORK", "subnetwork": "https://compute.googleapis.com/compute/v1/projects/PRODUCER_PROJECT_ID/regions/SUBNET_REGION/subnetworks/SUBNET" }, { "networkAttachment": "projects/CONSUMER_PROJECT_ID/regions/ATTACHMENT_REGION/networkAttachments/ATTACHMENT_NAME", "stackType": "IPV4_IPV6" } ] }
Para atribuir à interface do Private Service Connect um ou mais intervalos de IP de alias, especifique o tamanho do prefixo de cada intervalo de IP do alias que você quer atribuir.
POST https://compute.googleapis.com/compute/v1/projects/PRODUCER_PROJECT_ID/zones/INSTANCE_ZONE/instances { "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "name": "VM_NAME", "disks": [ { "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" }, "boot": true } ], "networkInterfaces": [ { "network": "https://compute.googleapis.com/compute/v1/projects/PRODUCER_PROJECT_ID/global/networks/PRODUCER_NETWORK", "subnetwork": "https://compute.googleapis.com/compute/v1/projects/PRODUCER_PROJECT_ID/regions/SUBNET_REGION/subnetworks/SUBNET" }, { "aliasIpRanges": [ { "ipCidrRange": "ALIAS_IP_RANGE" } ], "networkAttachment": "projects/CONSUMER_PROJECT_ID/regions/ATTACHMENT_REGION/networkAttachments/ATTACHMENT_NAME" } ] }
Substitua ALIAS_IP_RANGE
por um tamanho de prefixo na notação CIDR, por exemplo, /28
. É possível especificar vários intervalos de IP de alias
na lista de aliasIpRanges
da seguinte forma:
"aliasIpRanges": [ { "ipCidrRange": "/28" }, { "ipCidrRange": "/30" } ]
Para mais informações sobre como criar instâncias de VM, consulte Criar e iniciar uma instância de VM.
Permitir conectividade SSH
Verifique se as regras de firewall estão configuradas para permitir conexões SSH de entrada com a VM da interface do Private Service Connect.
Encontrar o nome do Google Cloud da sua interface do Private Service Connect
Para configurar o roteamento, você precisa saber o nome do Google Cloud da sua interface do Private Service Connect.
Console
No console do Google Cloud, acesse Instâncias de VM.
Clique no nome da VM que tem a interface do Private Service Connect.
Na seção Interfaces de rede, encontre e anote o nome da interface do Private Service Connect, por exemplo,
nic1
.
gcloud
Use o comando
compute instances describe
.gcloud compute instances describe VM_NAME --zone=ZONE
Substitua:
VM_NAME
: o nome da VM com a interface do Private Service Connect.ZONE
: a zona da VM.
Na saída do comando, localize e anote o nome do Google Cloud da sua interface do Private Service Connect, por exemplo,
nic1
.
Encontrar o nome do SO convidado da interface do Private Service Connect
Para configurar o roteamento, você precisa saber o nome do SO convidado da interface do Private Service Connect, que é diferente do nome da interface no Google Cloud.
Para encontrar o nome da interface em uma VM do Debian, siga as etapas abaixo. Para VMs com outros sistemas operacionais, consulte a documentação pública do sistema operacional.
- Conecte-se à VM da interface do Private Service Connect.
Execute este comando:
ip address
Na lista de interfaces de rede, localize e anote o nome da interface associado ao endereço IP da interface do Private Service Connect, por exemplo,
ens5
.
Encontrar o IP do gateway da interface do Private Service Connect
Para configurar o roteamento, você precisa saber o endereço IP do gateway padrão da interface do Private Service Connect.
Faça a seguinte solicitação
GET
da VM da interface para o servidor de metadados associado:curl http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/INTERFACE_NUMBER/gateway -H "Metadata-Flavor: Google" && echo
Substitua
INTERFACE_NUMBER
pela parte numérica do nome do Google Cloud para a interface do Private Service Connect. Por exemplo, se o nome da interface fornic1
, use um valor de1
.
Adicionar rotas para sub-redes de consumidores
É necessário adicionar uma rota ao gateway padrão da interface do Private Service Connect para cada sub-rede do consumidor que se conecta à interface do Private Service Connect. Isso garante que o tráfego vinculado à rede do consumidor saia da interface do Private Service Connect.
As etapas a seguir descrevem como atualizar temporariamente a tabela de roteamento de uma VM que usa o sistema operacional Debian. Para atualizar a tabela permanentemente ou para atualizar a rota em um sistema operacional diferente, consulte a documentação pública do sistema operacional.
Execute o seguinte comando para cada sub-rede de consumidor que se conecta à interface do Private Service Connect:
sudo ip route add CONSUMER_SUBNET_RANGE via GATEWAY_IP dev OS_INTERFACE_NAME
Substitua:
CONSUMER_SUBNET_RANGE
: o intervalo de endereços IP da sub-rede do consumidor.GATEWAY_IP
: o endereço IP do gateway padrão para a sub-rede da interface.OS_INTERFACE_NAME
: o nome do SO convidado da interface do Private Service Connect. Por exemplo,ens5
.
Criar um modelo de instância com uma interface do Private Service Connect
É possível criar modelos de instância que incluem interfaces do Private Service Connect.
Console
Acesse a página Modelos de instância.
Clique em Criar modelo de instância.
Digite um Nome para o modelo de instância.
Clique em Opções avançadas.
Clique em Rede.
Na seção Interfaces de rede, clique na seta
.Selecione uma Rede e uma Sub-rede para a interface de rede principal do modelo de instância.
Clique em Concluído.
Clique em Adicionar uma interface de rede.
Clique em Private Service Connect.
Selecione uma Rede e uma Sub-rede para a interface do Private Service Connect.
Clique em Concluído.
Clique em Criar.
gcloud
Use o comando instance-templates create
.
gcloud compute instance-templates create NAME \ --machine-type=MACHINE_TYPE \ --network-interface=subnet=SUBNET \ --region=REGION \ --image-project=IMAGE_PROJECT \ --image=IMAGE \ --network-interface=network-attachment=projects/ATTACHMENT_PROJECT_ID/regions/ATTACHMENT_REGION/networkAttachments/ATTACHMENT_NAME
Substitua:
NAME
: o nome do modelo de instância.MACHINE_TYPE
: o tipo de máquina predefinido ou personalizado para VMs criadas usando esse modelo de instância. Por exemplo: (f1-micro
)SUBNET
: a sub-rede do modelo de instância. Quando você cria uma VM usando esse modelo de instância, a interface de rede principal da VM recebe um endereço IP interno dessa sub-rede.REGION
: a região da sub-rede do modelo de instância.IMAGE_PROJECT
: o projeto da imagem. Por exemplo, se você especificardebian-10-buster-v20230809
como a imagem, especifiquedebian-cloud
como o projeto da imagem. É possível ver uma lista de imagens, projetos de imagens e famílias de imagens disponíveis usando o comandogcloud compute images list
.IMAGE
: uma versão específica de uma imagem pública. Por exemplo,debian-10-buster-v20230809
.ATTACHMENT_PROJECT_ID
: o ID do projeto do anexo de rede.ATTACHMENT_REGION
: a região do anexo de rede..ATTACHMENT_NAME
: o nome do anexo de rede. Quando você cria uma VM usando esse modelo de instância, a interface do Private Service Connect solicita uma conexão com esse anexo de rede.Você pode especificar outras configurações, como o nome da imagem e o tamanho do disco de inicialização. Para mais informações, consulte Criar um novo modelo de instância.
API
Faça uma solicitação POST
ao
método instanceTemplates.insert
.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates { "name": "NAME", "properties": { "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "machineType": "MACHINE_TYPE", "networkInterfaces": [ { "subnetwork": "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/SUBNET_REGION/subnetworks/SUBNET" }, { "networkAttachment": "projects/ATTACHMENT_PROJECT_ID/regions/ATTACHMENT_REGION/networkAttachments/NETWORK_ATTACHMENT" } ] } }
Substitua:
PROJECT_ID
: o ID do projeto em que o modelo de instância será criado.NAME
: o nome do modelo de instância.IMAGE_PROJECT
: o projeto da imagem. Por exemplo, se você especificardebian-10-buster-v20230809
como a imagem, especifiquedebian-cloud
como o projeto da imagem. Para uma lista de imagens e projetos de imagem disponíveis, use o comandogcloud compute images list
.IMAGE
: uma versão específica de uma imagem pública. Por exemplo,debian-10-buster-v20230809
.MACHINE_TYPE
: o tipo de máquina predefinido ou personalizado para VMs criadas usando esse modelo de instância. Por exemplo,f1-micro
SUBNET_REGION
: a região da sub-rede do modelo de instância.SUBNET
: a sub-rede do modelo de instância. Quando você cria uma VM usando esse modelo de instância, a interface de rede principal da VM recebe um endereço IP interno dessa sub-rede.ATTACHMENT_PROJECT_ID
: o ID do projeto do anexo de rede.ATTACHMENT_REGION
: a região do anexo de rede..NETWORK_ATTACHMENT
: o nome do anexo de rede. Quando você cria uma VM usando esse modelo de instância, a interface do Private Service Connect solicita uma conexão com esse anexo de rede.
Para mais informações sobre como criar modelos de instância, consulte Como criar modelos de instância.
Usar uma interface do Private Service Connect com o VPC Service Controls
É possível usar as interfaces do Private Service Connect com o VPC Service Controls. Isso permite que uma rede VPC do produtor acesse APIs e serviços do Google por meio de uma rede VPC do consumidor, enquanto a organização do consumidor pode aplicar os benefícios de segurança do VPC Service Controls.
Para usar uma interface do Private Service Connect com o VPC Service Controls, é preciso atualizar a tabela de roteamento da VM da interface do Private Service Connect. Substitua a rota padrão por uma que envie tráfego pela interface do Private Service Connect para o gateway padrão dela.
As etapas a seguir atualizam temporariamente a tabela de roteamento para VMs que usam o Debian. Para adicionar a rota permanentemente ou para atualizar a rota para um sistema operacional diferente, consulte a documentação pública do sistema operacional.
Console
No console do Google Cloud, acesse a página Instâncias de VMs:
Clique no nome da VM que tem a interface do Private Service Connect.
Execute este comando:
sudo ip route replace default via GATEWAY_IP dev OS_INTERFACE_NAME
Substitua:
GATEWAY_IP
: o endereço IP do gateway padrão para a sub-rede da interface.OS_INTERFACE_NAME
: o nome do SO convidado da interface do Private Service Connect. Por exemplo,ens5
.
Descrever uma interface do Private Service Connect
É possível descrever uma VM para visualizar os detalhes da interface do Private Service Connect. O endereço IP da interface, os intervalos de IP do alias, o anexo de rede e a sub-rede do consumidor estão listados na seção de interfaces de rede da descrição da VM.
Console
No console do Google Cloud, acesse a página Instâncias de VMs.
Clique na VM que tem sua interface do Private Service Connect.
Na seção Interfaces de rede, confira os detalhes da interface do Private Service Connect.
gcloud
gcloud compute instances describe VM_NAME --zone=ZONE
Substitua:
VM_NAME
: o nome da VM da interface.ZONE
: a zona da VM.
API
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Substitua:
PROJECT_ID
: o ID do projeto da VM.ZONE
: a zona da VM.VM_NAME
: o nome da VM.
Excluir uma VM com uma interface do Private Service Connect
Para excluir uma interface do Private Service Connect, você precisa excluir a instância de VM a que está conectada. Para mais informações, consulte Excluir uma instância.
A seguir
- Configure a segurança de uma rede que tenha uma conexão de interface do Private Service Connect.
- Gerencie a sobreposição de destino em uma rede que tenha uma conexão de interface do Private Service Connect.