Crea e gestisci Private Service Connect interfacce

Questa pagina descrive in che modo gli amministratori di rete dei produttori possono creare e gestire le interfacce Private Service Connect. Le interfacce Private Service Connect consentono alle reti Virtual Private Cloud (VPC) dei producer di servizi di avviare connessioni alle reti VPC dei consumer.

Prima di iniziare

Ruoli

Per ottenere le autorizzazioni necessarie per creare interfacce Private Service Connect, chiedi all'amministratore di concederti i seguenti ruoli IAM sul tuo progetto:

Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Il ruolo Amministratore istanze Compute (v1) contiene le Autorizzazione compute.instances.pscInterfaceCreate, necessaria per creare Interfacce Private Service Connect.

Crea e configura un'interfaccia di Private Service Connect

Per creare e configurare un'istanza di una macchina virtuale (VM) con un'interfaccia Private Service Connect, completa i seguenti passaggi.

Crea una VM con un'interfaccia Private Service Connect

Quando crei un'interfaccia di Private Service Connect, crei una VM che abbia almeno due interfacce di rete. La prima interfaccia si connette a una subnet del produttore. La seconda interfaccia è un Interfaccia di Private Service Connect che richiede una connessione a un collegamento di rete in una rete consumer.

Se la connessione viene accettata, Google Cloud assegna all'interfaccia di Private Service Connect, un indirizzo IP interno una subnet specificata dal collegamento di rete.

Se crei un'interfaccia di Private Service Connect che fa riferimento un collegamento di rete configurato accettare manualmente le connessioni e il progetto dell'interfaccia non è nell'elenco di accettazione del collegamento di rete, la creazione della VM dell'interfaccia Private Service Connect ha esito negativo. Nella in questo caso, collabora con l'organizzazione consumer per aggiungere il tuo progetto all' dall'elenco di istanze gestite di Private Service Connect, quindi creerò un'interfaccia Private Service Connect.

Quando crei un'interfaccia Private Service Connect, puoi optionally assegnare uno o più intervalli IP di alias interni. Se prevedi di assegnare intervalli IP alias, contatta l'organizzazione consumer per determinare gli intervalli di indirizzi IP appropriati.

Per assegnare un intervallo IP alias, specifica la lunghezza del prefisso dell'intervallo nel CIDR la notazione. Quando assegni uno o più intervalli IP alias a un'interfaccia Private Service Connect, Google Cloud alloca gli intervalli IP alias dall'indirizzo IP principale dell'intervallo di indirizzi della subnet associata collegamento di rete. L'interfaccia di Private Service Connect l'indirizzo IP principale viene allocato dall'esterno di qualsiasi intervallo IP alias. Se nella subnet dell'attacco alla rete non sono presenti indirizzi IP sufficienti per allocare l'indirizzo IP principale e gli intervalli IP alias, la creazione della VM dell'interfaccia Private Service Connect non va a buon fine. Puoi trovare gli indirizzi IP specifici assegnati descrivendo la VM dell'interfaccia.

Console

  1. Nella console Google Cloud, vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Fai clic su Crea istanza.

  3. Inserisci un nome.

  4. Seleziona una Regione corrispondente alla regione dell'attacco alla rete a cui vuoi connetterti.

  5. Seleziona una Zona.

  6. Fai clic su Opzioni avanzate.

  7. Fai clic su Networking.

  8. Nella sezione Interfacce di rete, fai clic sulla prima interfaccia di rete, ovvero l'interfaccia di rete principale, e poi segui questi passaggi:

    1. Seleziona una Rete per l'interfaccia di rete principale.
    2. Seleziona una subnet per l'interfaccia di rete principale. Questa subnet deve trovarsi nella stessa regione del collegamento di rete dell'interfaccia Private Service Connect.
  9. Fai clic su Aggiungi un'interfaccia di rete.

  10. Per Tipo di interfaccia, seleziona Private Service Connect.

  11. Inserisci un URL del collegamento di rete.

  12. Seleziona un tipo di stack IP. Per creare un'interfaccia Private Service Connect a doppio stack, la subnet dell'attacco alla rete deve essere a doppio stack.

  13. (Facoltativo) Per aggiungere un intervallo IP alias, nella casella Lunghezza prefisso, inserisci la lunghezza del prefisso, ad esempio /30. Puoi aggiungere più intervalli IP alias facendo clic su Aggiungi intervallo IP. e inserendo la lunghezza del prefisso per ogni intervallo IP alias aggiuntivo. che vuoi aggiungere.

  14. Fai clic su Fine.

  15. Fai clic su Crea.

gcloud

Per creare una VM con un'interfaccia Private Service Connect solo IPv4, utilizza il 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'

Sostituisci quanto segue:

  • INSTANCE_NAME: il nome della nuova istanza
  • ZONE: la zona della nuova istanza
  • MACHINE_TYPE: il tipo di macchina dell'istanza, che può essere predefinito o personalizzato.
  • IMAGE_PROJECT: il progetto dell'immagine. Ad esempio, se specifichi debian-10-buster-v20230809 come immagine, specifica debian-cloud come progetto immagine. Puoi visualizza un elenco di immagini, progetti e famiglie di immagini disponibili per utilizzando Comando gcloud compute images list.
  • IMAGE: una versione specifica di un'immagine pubblica, ad esempio debian-10-buster-v20230809.
  • PRODUCER_NETWORK: la rete dell'istanza.
  • PRODUCER_SUBNET: la subnet della macchina virtuale all'interfaccia di rete principale. Questa subnet deve trovarsi nella stessa regione del collegamento di rete dell'interfaccia Private Service Connect.
  • CONSUMER_PROJECT_ID: l'ID del consumatore a cui vuoi connetterti.
  • ATTACHMENT_NAME: il nome del collegamento di rete a cui richiedere una connessione.

Per assegnare all'interfaccia Private Service Connect sia un indirizzo IPv4 che un indirizzo IPv6, specifica stack-type='IPV4_IPv6'. La rete collegamento a cui fa riferimento l'interfaccia deve essere associato a un subnet a doppio stack.

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''

Per assegnare all'interfaccia Private Service Connect una o più intervalli IP alias, specifica la lunghezza del prefisso di ciascun intervallo IP alias che vuoi assegnare:

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'

Sostituisci ALIAS_IP_RANGE con uno o più della lunghezza dei prefissi nella notazione CIDR. Puoi includere più lunghezze per i prefissi in un elenco separato da punti e virgola, ad esempio /24;/28.

API

Per creare una VM con un'interfaccia Private Service Connect solo IPv4, invia una richiesta POST al metodo 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"
    }
  ]
}

Sostituisci quanto segue:

  • PRODUCER_PROJECT_ID: l'ID del progetto del producer.
  • INSTANCE_ZONE: la zona della nuova istanza.
  • MACHINE_TYPE_ZONE: la zona del tipo di macchina.
  • MACHINE_TYPE: il tipo di macchina della nuova VM, che possono essere predefiniti personalizzato.
  • VM_NAME: il nome della nuova VM.
  • IMAGE_PROJECT: il progetto contenente l'immagine. Ad esempio, se specifichi debian-10-buster-v20200309 come immagine, specifica debian-cloud come progetto immagine.
  • IMAGE: una versione specifica di un immagine pubblica, ad esempio debian-10-buster-v20200309.
  • PRODUCER_PROJECT_ID: l'ID progetto dell'interfaccia.
  • PRODUCER_NETWORK: il nome del produttore rete VPC.
  • SUBNET_REGION: la regione della subnet dell'interfaccia di rete principale. Questa subnet deve trovarsi nella stessa regione del collegamento di rete dell'interfaccia Private Service Connect.
  • SUBNET: il nome della subnet dell'interfaccia di rete principale.
  • CONSUMER_PROJECT_ID: l'ID del progetto consumer.
  • ATTACHMENT_REGION: la regione del collegamento di rete.
  • ATTACHMENT_NAME: nome del collegamento di rete.

Per assegnare all'interfaccia Private Service Connect sia un indirizzo IPv4 che un indirizzo IPv6, specifica "stack-type": "IPV4_IPv6". Il collegamento alla rete a cui fa riferimento l'interfaccia deve essere associato a una subnet a doppio stack.

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"
    }
  ]
}

Per assegnare all'interfaccia Private Service Connect una o più intervalli IP alias, specifica la lunghezza del prefisso di ogni intervallo IP alias che desideri assegnare.

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"
    }
  ]
}

Sostituisci ALIAS_IP_RANGE con una lunghezza del prefisso in CIDR notazione, ad esempio /28. Puoi specificare più intervalli IP di alias nell'elenco aliasIpRanges nel seguente formato:

"aliasIpRanges": [
  {
    "ipCidrRange": "/28"
  },
  {
    "ipCidrRange": "/30"
  }
]

Per ulteriori informazioni sulla creazione di istanze VM, consulta Creare e avviare un'istanza VM.

Consenti connettività SSH

Assicurati che le regole firewall siano configurate su consenti connessioni SSH in entrata alla VM della tua interfaccia Private Service Connect.

Trova il nome Google Cloud dell'interfaccia Private Service Connect

Per configurare il routing, devi conoscere il nome Google Cloud del tuo Interfaccia di Private Service Connect.

Console

  1. Nella console Google Cloud, vai a Istanze VM:

    Vai a Istanze VM

  2. Fai clic sul nome della VM con l'interfaccia Private Service Connect.

  3. Nella sezione Interfacce di rete, trova e prendi nota del nome del tuo ad esempio l'interfaccia di Private Service Connect, nic1.

gcloud

  1. Usa il comando compute instances describe.

    gcloud compute instances describe VM_NAME
      --zone=ZONE
    

    Sostituisci quanto segue:

    • VM_NAME: il nome della VM a cui si trova il tuo Interfaccia di Private Service Connect.
    • ZONE: la zona della VM.
  2. Nell'output del comando, individua e prendi nota del nome di Google Cloud dell'interfaccia Private Service Connect, ad esempio nic1.

Trovare il nome del sistema operativo guest dell'interfaccia di Private Service Connect

Per configurare il routing, devi conoscere il nome del sistema operativo guest della tua interfaccia Private Service Connect, che è diverso dal nome dell'interfaccia in Google Cloud.

Per trovare il nome dell'interfaccia su una VM Debian, procedi nel seguente modo. Per le VM con altri sistemi operativi, consulta la documentazione pubblica del sistema operativo.

  1. Connettiti alla VM della tua interfaccia Private Service Connect.
  2. Esegui questo comando:

    ip address
    

    Nell'elenco delle interfacce di rete, individua e prendi nota del nome dell'interfaccia associato all'IP della tua interfaccia Private Service Connect indirizzo IP, ad esempio ens5.

Trova l'IP gateway dell'interfaccia di Private Service Connect

Per configurare il routing, devi conoscere l'indirizzo IP del gateway predefinito dell'interfaccia Private Service Connect.

  1. Connettiti alla VM dell'interfaccia Private Service Connect.

  2. Invia la seguente richiesta GET dalla VM dell'interfaccia al server di metadati associato:

    curl http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/INTERFACE_NUMBER/gateway -H "Metadata-Flavor: Google" && echo
    

    Sostituisci INTERFACE_NUMBER con la parte numerica del nome di Google Cloud per l'interfaccia Private Service Connect. Ad esempio, se il nome dell'interfaccia è nic1, utilizza il valore 1.

Aggiungi route per le subnet consumer

Devi aggiungere una route all'interfaccia di Private Service Connect gateway predefinito per ogni subnet consumer che si connette Interfaccia di Private Service Connect. In questo modo, il traffico destinato alla rete del consumatore esce dall'interfaccia Private Service Connect.

I passaggi seguenti spiegano come aggiornare temporaneamente la tabella di routing per un VM che utilizza il sistema operativo Debian. Per aggiornare la tabella in modo permanente o per aggiornare il percorso su un altro sistema operativo, consulta la documentazione pubblica del sistema operativo.

  1. Connettiti alla VM della tua interfaccia Private Service Connect.

  2. Esegui il seguente comando per ogni subnet consumer che si connette all'interfaccia Private Service Connect:

    sudo ip route add CONSUMER_SUBNET_RANGE via GATEWAY_IP dev OS_INTERFACE_NAME
    

    Sostituisci quanto segue:

Crea un modello di istanza con un'interfaccia Private Service Connect

Puoi creare modelli di istanze includono le interfacce Private Service Connect.

Console

  1. Vai alla pagina Modelli di istanza.

    Vai a Modelli di istanza

  2. Fai clic su Crea modello istanza.

  3. Inserisci un Nome per il modello di istanza.

  4. Fai clic su Opzioni avanzate.

  5. Fai clic su Networking.

  6. Nella sezione Interfacce di rete, fai clic sul pulsante freccia di espansione.

  7. Seleziona una rete e una subnet per il campo all'interfaccia di rete principale.

  8. Fai clic su Fine.

  9. Fai clic su Aggiungi un'interfaccia di rete.

  10. Fai clic su Private Service Connect.

  11. Seleziona una rete e una subnet per Interfaccia di Private Service Connect.

  12. Fai clic su Fine.

  13. Fai clic su Crea.

gcloud

Utilizza il 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

Sostituisci quanto segue:

  • NAME: il nome del modello di istanza.
  • MACHINE_TYPE: il predefinita o tipo di macchina personalizzata per le VM create utilizzando questo modello di istanza, ad esempio f1-micro.
  • SUBNET: la subnet del modello di istanza. Quando crei una VM utilizzando questo modello di istanza, la rete principale a un'interfaccia utente è assegnato a un indirizzo IP interno da questa subnet.
  • REGION: la regione del campo una subnet.
  • IMAGE_PROJECT: il progetto del image. Ad esempio, se specifichi debian-10-buster-v20230809 come immagine, specifica debian-cloud come progetto immagine. Puoi visualizzare un elenco di immagini, progetti di immagini e famiglie di immagini disponibili utilizzando il comando gcloud compute images list.
  • IMAGE: una versione specifica di un file immagine, ad esempio debian-10-buster-v20230809.
  • ATTACHMENT_PROJECT_ID: l'ID della rete progetto dell'allegato.
  • ATTACHMENT_REGION: la regione del collegamento alla rete.
  • ATTACHMENT_NAME: il nome del collegamento alla rete. Quando crei una VM utilizzando questo modello di istanza, l'interfaccia Private Service Connect richiede una connessione a questo collegamento di rete.

    Puoi specificare una configurazione aggiuntiva, ad esempio il nome dell'immagine e le dimensioni del disco di avvio. Per saperne di più, consulta Creare un nuovo modello di istanza.

API

Invia una richiesta POST al metodo 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"
      }
    ]
  }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto per la creazione del modello di istanza.
  • NAME: il nome del modello di istanza.
  • IMAGE_PROJECT: il progetto del image. Ad esempio, se specifichi debian-10-buster-v20230809 come immagine, specifica debian-cloud come progetto immagine. Puoi visualizzare un elenco di immagini e progetti di immagini disponibili utilizzando il comando gcloud compute images list.
  • IMAGE: una versione specifica di un'immagine pubblica, ad esempio debian-10-buster-v20230809.
  • MACHINE_TYPE: il valore predefinito o tipo di macchina personalizzata per le VM create utilizzando questo modello di istanza, ad esempio f1-micro.
  • SUBNET_REGION: la regione della subnet del modello di istanza.
  • SUBNET: la subnet del modello di istanza. Quando crei una VM utilizzando questo modello di istanza, la rete principale a un'interfaccia utente è assegnato a un indirizzo IP interno da questa subnet.
  • ATTACHMENT_PROJECT_ID: l'ID del progetto dell'allegato della rete.
  • ATTACHMENT_REGION: la regione della rete allegato.
  • NETWORK_ATTACHMENT: il nome del collegamento alla rete. Quando crei una VM utilizzando questo modello di istanza, l'interfaccia di Private Service Connect richiede una connessione a questo collegamento di rete.

Per saperne di più sulla creazione di modelli di istanze, consulta Creare modelli di istanze.

Utilizza un'interfaccia Private Service Connect con Controlli di servizio VPC

Puoi utilizzare le interfacce Private Service Connect con Controlli di servizio VPC. Questo consente a un producer Accesso di rete VPC alle API e ai servizi Google tramite un consumer sulla rete VPC, mentre l'organizzazione consumer può applicare vantaggi in termini di sicurezza dei Controlli di servizio VPC.

Per utilizzare un'interfaccia Private Service Connect con Controlli di servizio VPC, devi aggiornare la tabella di routing del Private Service Connect dell'interfaccia utente. Sostituisci la route predefinita con una che invia traffico tramite l'interfaccia di Private Service Connect Gateway predefinito dell'interfaccia Private Service Connect.

I passaggi seguenti aggiornano temporaneamente la tabella di routing per le VM che utilizzano Debian. Per aggiungere il percorso in modo permanente o per aggiornarlo per un sistema operativo diverso, consulta la documentazione pubblica del sistema operativo.

Console

  1. Nella console Google Cloud, vai alla pagina Istanze VM:

    Vai a Istanze VM

  2. Fai clic sul nome della VM con Interfaccia di Private Service Connect.

  3. Esegui questo comando:

    sudo ip route replace default via GATEWAY_IP dev OS_INTERFACE_NAME
    

    Sostituisci quanto segue:

Descrivere un'interfaccia Private Service Connect

Puoi descrivere una VM per visualizzare i dettagli della sua interfaccia Private Service Connect. L'indirizzo IP dell'interfaccia, gli intervalli IP alias, i collegamenti di rete e le subnet consumer sono elencati della descrizione della VM.

Console

  1. Nella console Google Cloud, vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Fai clic sulla VM con Private Service Connect a riga di comando.

  3. Nella sezione Interfacce di rete, visualizza i dettagli della tua interfaccia Private Service Connect.

gcloud

gcloud compute instances describe VM_NAME
    --zone=ZONE

Sostituisci quanto segue:

  • VM_NAME: il nome della VM dell'interfaccia.
  • ZONE: la zona della VM.

API

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME

Sostituisci quanto segue:

  • PROJECT_ID: ID progetto della VM.
  • ZONE: la zona della VM.
  • VM_NAME: il nome della VM.

Elimina una VM con un'interfaccia Private Service Connect

Per eliminare un'interfaccia Private Service Connect, devi eliminare l'istanza VM a cui è collegata. Per ulteriori informazioni, vedi Eliminare un'istanza.

Passaggi successivi