Crea un perimetro di servizio

Questa pagina descrive come creare un perimetro di servizio.

Prima di iniziare

Crea un perimetro di servizio

Questa sezione descrive come creare un perimetro di servizio, aggiungere progetti o reti VPC al perimetro e proteggere i servizi.

Quando crei un perimetro di servizio, facoltativamente puoi consentire l'accesso ai servizi protetti dall'esterno del perimetro e specificare quali servizi sono accessibili ad altri servizi e utenti all'interno del perimetro. Se preferisci, puoi configurare queste impostazioni dopo aver creato un perimetro.

Dopo aver creato un perimetro di servizio o aggiornato un perimetro di servizio esistente, la propagazione e l'applicazione delle modifiche potrebbero richiedere fino a 30 minuti. Durante questo periodo, il perimetro potrebbe bloccare le richieste con il seguente messaggio di errore: Error 403: Request is prohibited by organization's policy.

Console

  1. Nel menu di navigazione della console Google Cloud , fai clic su Sicurezza, quindi su Controlli di servizio VPC.

    Vai a Controlli di servizio VPC

  2. Se ti viene chiesto, seleziona l'organizzazione, la cartella o il progetto.

  3. Seleziona una policy di accesso esistente o crea una nuova policy di accesso. Assicurati che l'ambito della policy di accesso includa tutti i progetti e le reti VPC che vuoi aggiungere al perimetro.

  4. Nella pagina Controlli di servizio VPC, seleziona una modalità di applicazione forzata del perimetro. Per impostazione predefinita, è selezionata l'opzione Modalità di applicazione forzata. Se vuoi creare un perimetro in modalità dry run, fai clic su Modalità dry run.

    I perimetri in modalità di applicazione forzata impediscono attivamente l'accesso ai servizi protetti. I perimetri in modalità dry run registrano le violazioni del perimetro come se i servizi fossero protetti, ma non impediscono l'accesso ai servizi. Per saperne di più sulle modalità di applicazione forzata e dry run, consulta le informazioni sui perimetri di servizio.

  5. Fai clic su Nuovo perimetro.

  6. Nella pagina Crea un perimetro di servizio, nel campo Titolo, inserisci un nome per il perimetro.

    Il nome di un perimetro può avere una lunghezza massima di 50 caratteri, deve iniziare con una lettera e può contenere solo lettere latine ASCII (a-z, A-Z), numeri (0-9) o trattini bassi (_). Il nome del perimetro è sensibile alle maiuscole e deve essere univoco all'interno di una policy di accesso.

  7. (Facoltativo) Nel campo Descrizione, inserisci una descrizione del perimetro.

  8. Per Tipo di perimetro, seleziona Normale.

  9. In Modalità di applicazione forzata, seleziona una modalità di applicazione forzata del perimetro. Le opzioni disponibili sono Dry run e Applicazione forzata.

  10. Fai clic su Continua.

  11. Per aggiungere progetti o reti VPC che vuoi proteggere all'interno del perimetro, segui questi passaggi:

    1. Per aggiungere progetti al perimetro, fai clic su Aggiungi progetti.

      1. Nel riquadro Aggiungi progetti, seleziona i progetti che vuoi proteggere.

      2. Fai clic su Aggiungi progetti selezionati. I progetti aggiunti vengono visualizzati nella sezione Progetti.

    2. Per aggiungere reti VPC al perimetro, fai clic su Aggiungi reti.

      1. Nell'elenco dei progetti, fai clic sul progetto che contiene le reti VPC.

      2. Nel riquadro Aggiungi reti VPC, seleziona le reti VPC che vuoi proteggere.

      3. Fai clic su Aggiungi reti selezionate. Le reti aggiunte vengono visualizzate nella sezione Reti VPC.

    3. Fai clic su Continua.

  12. Per selezionare i servizi che vuoi proteggere all'interno del perimetro, segui questi passaggi:

    1. Nel riquadro Servizi limitati, fai clic su Aggiungi servizi.

    2. Nel riquadro Aggiungi servizi, seleziona i servizi che vuoi proteggere.

    3. Fai clic su Aggiungi servizi selezionati.

    4. Fai clic su Continua.

  13. (Facoltativo) Se vuoi definire quali servizi sono accessibili dagli endpoint di rete all'interno di un perimetro, nel riquadro Servizi accessibili da VPC, seleziona una delle opzioni disponibili:

    • Tutti i servizi: questa opzione consente tutti i servizi Google Cloud .

    • Nessun servizio: questa opzione non consente alcun servizio Google Cloud .

    • Tutti i servizi limitati: questa opzione consente solo i servizi Google Cloud che hai protetto in questo perimetro.

    • Servizi selezionati: questa opzione consente solo i servizi Google Cloud che hai selezionato.

      1. Fai clic su Aggiungi servizi.

      2. Nel riquadro Aggiungi servizi, seleziona i servizi che vuoi consentire.

      3. Fai clic su Aggiungi servizi selezionati.

      4. Per includere anche tutti i servizi limitati protetti dal perimetro nei servizi selezionati, fai clic sul pulsante di attivazione/disattivazione Includi tutti i servizi limitati per attivarlo.

      5. Fai clic su Continua.

    Puoi anche aggiungere servizi accessibili dopo la creazione di un perimetro.

    Per saperne di più, consulta Servizi accessibili da VPC.

  14. (Facoltativo) Per consentire l'accesso alle risorse protette dall'esterno del perimetro utilizzando i livelli di accesso, segui questi passaggi:

    1. Nel riquadro Livelli di accesso, fai clic su Aggiungi livelli di accesso.

      Puoi anche aggiungere livelli di accesso dopo la creazione di un perimetro.

    2. Seleziona le caselle di controllo corrispondenti ai livelli di accesso che vuoi applicare al perimetro.

    3. Fai clic su Aggiungi i livelli di accesso selezionati.

    4. Fai clic su Continua.

  15. Per consentire l'accesso alle risorse all'interno di un perimetro da client API esterni al perimetro, segui questi passaggi:

    1. Nel riquadro Regole in entrata, fai clic su Aggiungi una regola in entrata.

    2. Nel campo Titolo, inserisci un titolo per la regola in entrata.

    3. Nella sezione Da, specifica le origini esterne al perimetro che richiedono l'accesso. Puoi specificare progetti, livelli di accesso e reti VPC come origini.

    4. Nella sezione A, specifica le risorse all'interno del perimetro a cui possono accedere le origini.

    5. Fai clic su Continua.

    Per l'elenco degli attributi delle regole in entrata, consulta Riferimento per le regole in entrata.

  16. Per consentire l'accesso che coinvolge un client API o risorse all'interno del perimetro a risorse all'esterno di un perimetro, segui questi passaggi:

    1. Nel riquadro Regole in uscita, fai clic su Aggiungi una regola in uscita.

    2. Nel campo Titolo, inserisci un titolo per la regola in uscita.

    3. Nella sezione Da, specifica le origini interne al perimetro che richiedono l'accesso.

    4. Nella sezione A, specifica le risorse esterne al perimetro a cui possono accedere le origini.

    Per l'elenco degli attributi delle regole in uscita, consulta Riferimento per le regole in uscita.

  17. Fai clic su Crea.

gcloud

Per creare un nuovo perimetro in modalità di applicazione forzata, utilizza il comando gcloud access-context-manager perimeters create.

gcloud access-context-manager perimeters create NAME \
  --title=TITLE \
  --resources=RESOURCES \
  --restricted-services=RESTRICTED-SERVICES \
  --ingress-policies=INGRESS-FILENAME.yaml \
  --egress-policies=EGRESS-FILENAME.yaml \
  [--access-levels=LEVELS] \
  [--enable-vpc-accessible-services] \
  [--vpc-allowed-services=ACCESSIBLE-SERVICES] \
  --policy=POLICY_NAME

Per creare un nuovo perimetro in modalità dry run, utilizza il comando gcloud access-context-manager perimeters dry-run create.

gcloud access-context-manager perimeters dry-run create NAME \
  --perimeter-title=TITLE \
  --perimeter-type=TYPE \
  --perimeter-resources=RESOURCES \
  --perimeter-restricted-services=RESTRICTED-SERVICES \
  --perimeter-ingress-policies=INGRESS-FILENAME.yaml \
  --perimeter-egress-policies=EGRESS-FILENAME.yaml \
  [--perimeter-access-levels=LEVELS] \
  [--perimeter-enable-vpc-accessible-services] \
  [--perimeter-vpc-allowed-services=ACCESSIBLE-SERVICES] \
  --policy=POLICY_NAME

Sostituisci quanto segue:

  • NAME è il nome del perimetro.

    Il nome di un perimetro può avere una lunghezza massima di 50 caratteri, deve iniziare con una lettera e può contenere solo lettere latine ASCII (a-z, A-Z), numeri (0-9) o trattini bassi (_). Il nome del perimetro è sensibile alle maiuscole e deve essere univoco all'interno di una policy di accesso.

  • TITLE è il titolo leggibile del perimetro.

  • TYPE è il tipo di perimetro. Ad esempio, un perimetro "normale" o un perimetro "bridge".

  • RESOURCES è un elenco separato da virgole di uno o più numeri di progetto o nomi di reti VPC. Ad esempio, projects/12345 o //compute.googleapis.com/projects/my-project/global/networks/vpc1. Sono consentiti solo progetti e reti VPC. Formato progetto: projects/project_number. Formato VPC: //compute.googleapis.com/projects/project-id/global/networks/network_name. Se specifichi progetti, sono supportati solo i numeri di progetto. Non puoi utilizzare il nome o l'ID progetto.

  • RESTRICTED-SERVICES è un elenco separato da virgole di uno o più servizi. Ad esempio, storage.googleapis.com o storage.googleapis.com,bigquery.googleapis.com.

  • INGRESS-FILENAME è un file JSON o YAML che contiene i valori degli attributi di origine, identità, progetto e servizio. Per l'elenco degli attributi delle regole in entrata, consulta Riferimento per le regole in entrata.

  • EGRESS-FILENAME è un file JSON o YAML che contiene i valori degli attributi di identità, progetto e servizio. Per l'elenco degli attributi delle regole in uscita, consulta Riferimento per le regole in uscita.

  • POLICY_NAME è il nome numerico della policy di accesso della tua organizzazione. Ad esempio, 330193482019. Devi includere il nome della policy solo se non hai impostato una policy di accesso predefinita.

Opzioni aggiuntive:

  • --access-levels o --perimeter-access-levels è obbligatorio solo se vuoi aggiungere livelli di accesso quando crei il perimetro. LEVELS è un elenco separato da virgole di uno o più livelli di accesso che vuoi applicare al perimetro di servizio.

    Puoi anche aggiungere livelli di accesso dopo aver creato il perimetro.

  • --enable-vpc-accessible-services e --vpc-allowed-services oppure --perimeter-enable-vpc-accessible-services e --perimeter-vpc-allowed-services sono obbligatori solo se vuoi aggiungere servizi accessibili da VPC quando crei il perimetro. ACCESSIBLE-SERVICES è un elenco separato da virgole di uno o più servizi a cui vuoi consentire l'accesso dalle reti all'interno del tuo perimetro. L'accesso a tutti i servizi non inclusi in questo elenco viene impedito.

    Puoi rendere accessibile un servizio solo se contemporaneamente lo proteggi durante la configurazione del perimetro.

    Per includere rapidamente tutti i servizi protetti da un perimetro, specifica RESTRICTED-SERVICES nell'elenco per ACCESSIBLE-SERVICES. Ad esempio, --perimeter-vpc-allowed-services=RESTRICTED-SERVICES.

    Puoi anche definire i servizi accessibili da VPC dopo aver creato il perimetro.

Ad esempio, il seguente comando crea un nuovo perimetro in modalità dry run denominato ProdPerimeter, che include i progetti example-project e example-project2 e limita le API Cloud Storage e BigQuery.

gcloud access-context-manager perimeters \
  dry-run create ProdPerimeter --perimeter-title="Production Perimeter" \
  --perimeter-type="regular" \
  --perimeter-resources=projects/12345,projects/67890 \
  --perimeter-restricted-services=storage.googleapis.com,bigquery.googleapis.com \
  --perimeter-ingress-policies=ingress.yaml \
  --perimeter-egress-policies=egress.yaml \
  --policy=330193482019

API

Per creare un perimetro di servizio, chiama accessPolicies.servicePerimeters.create.

 POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/servicePerimeters

Dove:

  • POLICY_NAME è il nome numerico della policy di accesso della tua organizzazione. Ad esempio, 330193482019.

Corpo della richiesta

Il corpo della richiesta deve includere una risorsa ServicePerimeter che definisce il perimetro di servizio.

Per la risorsa ServicePerimeter, specifica PERIMETER_TYPE_REGULAR per perimeterType.

Modalità dry run

Il perimetro proposto deve essere incluso come spec e useExplicitDryRunSpec deve essere impostato su true.

Corpo della risposta

In caso di esito positivo, il corpo della risposta alla chiamata contiene una risorsa Operation che fornisce dettagli sull'operazione POST.

Passaggi successivi