Esegui il deployment del progetto base

Last reviewed 2023-12-20 UTC

Questa sezione descrive il processo che puoi utilizzare per eseguire il deployment del progetto base, convenzioni di denominazione e alternative ai suggerimenti relativi ai progetti.

Riepilogo

Per eseguire il deployment degli elementi di base aziendali in linea con le best practice e i suggerimenti di questo progetto, segui le attività di alto livello riassunte in questa sezione. Il deployment richiede una combinazione di passaggi di configurazione preliminari, deployment automatico tramite terraform-example-foundation su GitHub e passaggi aggiuntivi che devono essere configurati manualmente al termine del deployment iniziale della base.

Processo Passaggi

Prerequisiti prima di eseguire il deployment delle risorse della pipeline di base

Completa i seguenti passaggi prima di eseguire il deployment della pipeline di base:

Per connetterti a un ambiente on-premise esistente, prepara seguenti:

Passaggi per eseguire il deployment di terraform-example-foundation da GitHub

Segui le istruzioni del file README per ogni fase per eseguire il deployment di terraform-example-foundation da GitHub:

Passaggi aggiuntivi dopo il deployment di IaC

Dopo aver eseguito il deployment del codice Terraform, completa quanto segue:

Controlli amministrativi aggiuntivi per i clienti con carichi di lavoro sensibili

Google Cloud fornisce controlli amministrativi aggiuntivi che possono aiutarti a di sicurezza e conformità. Tuttavia, alcuni controlli comportano costi aggiuntivi o compromessi operativi che potrebbero non essere appropriati per ogni cliente. Questi controlli richiedono anche input personalizzati per le tue esigenze specifiche che non possono essere completamente automatizzati nel progetto con un valore predefinito per clienti.

Questa sezione illustra i controlli di sicurezza che puoi applicare in modo centralizzato alla base. Questa sezione non intende essere esaustiva di tutti i controlli di sicurezza che puoi applicare a carichi di lavoro specifici. Per ulteriori informazioni sui prodotti e sulle soluzioni di sicurezza di Google, visita il Centro best practice per la sicurezza di Google Cloud.

Valuta se i seguenti controlli sono appropriati per la tua base in base ai requisiti di conformità, alla propensione al rischio e alla sensibilità dei dati.

Controllo Descrizione

Protezione le tue risorse con i Controlli di servizio VPC

I Controlli di servizio VPC ti consentono di definire criteri di sicurezza che impediscono l'accesso ai servizi gestiti da Google al di fuori di un perimetro attendibile, bloccano l'accesso ai dati da posizioni non attendibili e mitigano i rischi di esfiltrazione di dati. Tuttavia, Controlli di servizio VPC può causare l'interruzione dei servizi esistenti finché non definisci le eccezioni per consentire i pattern di accesso previsti.

Valuta se il valore della riduzione dei rischi di esfiltrazione giustifica la maggiore complessità e l'overhead operativo associato all'adozione dei Controlli di servizio VPC. Il blueprint prepara le reti con limitazioni e le variabili facoltative per configurare i Controlli di servizio VPC, ma il perimetro non viene attivato finché non esegui passaggi aggiuntivi per progettarlo e attivarlo.

Limita le posizioni delle risorse

Potrebbero essere previsti requisiti normativi secondo cui le risorse cloud devono di cui è stato eseguito il deployment in località geografiche approvate. Questo vincolo dei criteri dell'organizzazione richiede che sia possibile eseguire il deployment delle risorse solo nell'elenco di località definire.

Abilitare Assured Workloads

Assured Workloads fornisce controlli di conformità aggiuntivi che ti aiutano a rispettare regimi normativi specifici. Il progetto fornisce facoltativi nella pipeline di deployment per l'abilitazione.

Attivare l'accesso ai dati log

Potresti avere l'obbligo di registrare tutti gli accessi a determinati dati sensibili o risorse.

Valuta dove i tuoi carichi di lavoro gestiscono dati sensibili che richiedono log di accesso ai dati e attiva i log per ogni servizio e ambiente che lavora con dati sensibili.

Attivare l'approvazione accesso

Access Approval garantisce che l'assistenza clienti e il team di ingegneria di Cloud richiedano la tua approvazione esplicita ogni volta che devono accedere ai contenuti dei tuoi clienti.

Valutare il processo operativo richiesto per esaminare le richieste di Access Approval per ridurre i possibili ritardi la risoluzione degli incidenti di assistenza.

Attivare Key Access Justifications

Le giustificazioni per l'accesso alle chiavi ti consentono di controllare in modo programmatico se Google può accedere alle tue chiavi di crittografia, ad esempio per le operazioni automatiche e per consentire all'assistenza clienti di accedere ai contenuti dei clienti.

Valuta il costo e l'overhead operativo associato a Key Access Justifications, nonché ai suoi su Cloud External Key Manager (Cloud EKM).

Disattiva Cloud Shell

Cloud Shell è una di sviluppo online. Questa shell è ospitata su un server gestito da Google al di fuori del tuo ambiente. Pertanto, non è soggetta ai controlli che definisci che potresti aver implementato sulle tue workstation di sviluppo.

Se vuoi controllare rigorosamente le workstation che uno sviluppatore può utilizzare per accedere al cloud e le risorse, disabilita Cloud Shell. Potresti anche valutare Cloud Workstations per un un'opzione di workstation configurabile nel proprio ambiente.

Limita l'accesso alla console Google Cloud

Google Cloud ti consente di limitare l'accesso alla console Google Cloud in base all'accesso attributi di livello come appartenenza ai gruppi, intervalli di indirizzi IP attendibili e verifica del dispositivo. Alcuni attributi richiedono un abbonamento aggiuntivo a Chrome Enterprise Premium.

Valuta i pattern di accesso che ritieni attendibili per l'accesso degli utenti alle applicazioni basate sul web come la console, come parte di un percorso zero il deployment attendibile.

Convenzioni di denominazione

Ti consigliamo di adottare una convenzione di denominazione standardizzata per le tue risorse Google Cloud. La seguente tabella descrive le tradizionali per i nomi delle risorse nel progetto.

Risorsa Convenzione di denominazione

Cartella

fldr-environment

environment è una descrizione delle risorse a livello di cartella all'interno dell'organizzazione Google Cloud. Ad esempio, bootstrap, common, production, nonproduction, development o network.

Ad esempio: fldr-production

ID progetto

prj-environmentcode-description-randomid

  • environmentcode è una forma abbreviata del campo dell'ambiente (uno tra b, c, p, n, d o net). I progetti host VPC condivisi utilizzano il valore environmentcode dell'ambiente associato. Progetti per risorse di networking condivisi tra ambienti, come Progetto interconnect, usa l'ambiente net le API nel tuo codice.
  • description sono informazioni aggiuntive sul progetto. Tu possono utilizzare abbreviazioni brevi leggibili da una persona.
  • randomid è un suffisso randomizzato per evitare collisioni per nomi delle risorse che devono essere univoci a livello globale per mitigare i malintenzionati dei nomi delle risorse. Il blueprint aggiunge automaticamente un identificativo alfanumerico di quattro caratteri casuale.

Ad esempio: prj-c-logging-a1b2

Rete VPC

vpc-environmentcode-vpctype-vpcconfig

  • environmentcode è una forma breve del campo Ambient (uno di b, c, p, n, d o net).
  • vpctype è uno di shared, float o peer.
  • vpcconfig è base o restricted per indicare se la rete deve essere utilizzata con Controlli di servizio VPC o meno.

Ad esempio: vpc-p-shared-base

Subnet

sn-environmentcode-vpctype-vpcconfig-region{-description}

  • environmentcode è una forma breve del campo Ambient (uno di b, c, p, n, d o net).
  • vpctype è uno di shared, float o peer.
  • vpcconfig è base o restricted per indicare se la rete è destinata a essere utilizzata con i Controlli di servizio VPC.
  • region è qualsiasi Google Cloud valido regione in cui si trova la risorsa. Ti consigliamo di rimuovere i trattini e di usare una forma abbreviata di alcune regioni e indicazioni per evitare di superare i limiti di caratteri. Ad esempio, au (Australia), na (Nord America), sa (Sud America), eu (Europa), se (sud-est) o ne (nord-est).
  • description sono informazioni aggiuntive sulla subnet. Puoi utilizza abbreviazioni brevi leggibili da una persona.

Ad esempio: sn-p-shared-restricted-uswest1

Criteri firewall

fw-firewalltype-scope-environmentcode{-description}

  • firewalltype è hierarchical o network.
  • scope è global o Google Cloud regione in cui si trova la risorsa. Ti consigliamo di rimuovere i trattini e di usare una forma abbreviata di alcune regioni e indicazioni per evitare di raggiungere il limite di caratteri. Ad esempio, au (Australia), na (Nord America), sa (Sud America), eu (Europa), se (sud-est) o ne (nord-est).
  • environmentcode è una forma abbreviata del campo dell'ambiente (b, c, p, n, d o net) proprietario della risorsa di criteri.
  • description sono informazioni aggiuntive sul criterio firewall gerarchico. Puoi utilizzare abbreviazioni brevi leggibili da una persona.

Ad esempio:

fw-hierarchical-global-c-01

fw-network-uswest1-p-shared-base

Router Cloud

cr-environmentcode-vpctype-vpcconfig-region{-description}

  • environmentcode è una forma abbreviata del campo dell'ambiente (uno tra b, c, p, n, d o net).
  • vpctype è uno di shared, float o peer.
  • vpcconfig è base o restricted per indicare se la rete deve essere utilizzata con Controlli di servizio VPC o meno.
  • region è qualsiasi account Google Cloud valido regione in cui si trova la risorsa. Ti consigliamo di rimuovere i trattini e di usare una forma abbreviata di alcune regioni e indicazioni per evitare di raggiungere il limite di caratteri. Ad esempio, au (Australia), na (Nord America), sa (Sud America), eu (Europa), se (sud-est) o ne (nord-est).
  • description sono informazioni aggiuntive sul Cloud Router. Puoi utilizzare abbreviazioni brevi leggibili da una persona.

Ad esempio: cr-p-shared-base-useast1-cr1

Connessione Cloud Interconnect

ic-dc-colo

  • dc è il nome del tuo data center a cui Cloud Interconnect è connesso.
  • colo è la colocation della struttura che Cloud Interconnect dai dati on-premise nel nostro centro.

Ad esempio: ic-mydatacenter-lgazone1

Collegamento VLAN Cloud Interconnect

vl-dc-colo-environmentcode-vpctype-vpcconfig-region{-description}

  • dc è il nome del data center a cui è connesso un Cloud Interconnect.
  • colo è il nome della struttura di collocamento con cui è associato il peering di Cloud Interconnect dal data center on-premise.
  • environmentcode è una forma breve del campo Ambient (uno di b, c, p, n, d o net).
  • vpctype è uno di shared, float o peer.
  • vpcconfig è base o restricted per indicare se la rete deve essere utilizzata con Controlli di servizio VPC o meno.
  • region è qualsiasi account Google Cloud valido regione in cui si trova la risorsa. Ti consigliamo di rimuovere i trattini e di usare una forma abbreviata di alcune regioni e indicazioni per evitare di raggiungere il limite di caratteri. Ad esempio, au (Australia), na (Nord America), sa (Sud America), eu (Europa), se (sud-est) o ne (nord-est).
  • description sono informazioni aggiuntive sulla VLAN. Puoi utilizza abbreviazioni brevi leggibili da una persona.

Ad esempio: vl-mydatacenter-lgazone1-p-shared-base-useast1-cr1

Gruppo

grp-gcp-description@example.com

dove description sono ulteriori informazioni sul gruppo. Puoi utilizzare abbreviature brevi e leggibili.

Ad esempio: grp-gcp-billingadmin@example.com

Ruolo personalizzato

rl-description

Dove description sono informazioni aggiuntive sul ruolo. Puoi usare video brevi e facilmente leggibili da una persona o abbreviazioni di questo genere.

Ad esempio: rl-customcomputeadmin

Service account

sa-description@projectid.iam.gserviceaccount.com

Dove:

  • description sono informazioni aggiuntive sull'account di servizio. Puoi utilizzare abbreviazioni brevi leggibili da una persona.
  • projectid è l'identificatore univoco globale del progetto.

Ad esempio: sa-terraform-net@prj-b-seed-a1b2.iam.gserviceaccount.com

Bucket di archiviazione

bkt-projectid-description

Dove:

  • projectid è l'identificatore del progetto univoco a livello globale.
  • description sono informazioni aggiuntive sul bucket di archiviazione. Puoi utilizzare abbreviazioni brevi e leggibili.

Ad esempio: bkt-prj-c-infra-pipeline-a1b2-app-artifacts

Alternative ai consigli predefiniti

Le best practice consigliate nel blueprint potrebbero non funzionare per tutti i clienti. Puoi personalizzare i suggerimenti per soddisfare le tue esigenze specifiche. La tabella seguente illustra alcune delle varianti comuni che potresti richiedere in base al tuo stack tecnologico esistente e alle tue modalità di lavoro.

Area decisionale Possibili alternative

Organizzazione: il progetto utilizza una singola organizzazione come nodo radice per tutte le risorse.

Decidi una gerarchia delle risorse per la zona di destinazione di Google Cloud scenari in cui potresti preferire l'uso di più organizzazioni, ad esempio:

  • La tua organizzazione include società secondarie che hanno maggiori probabilità di essere vendute future o che funzionano come entità completamente separate.
  • Vuoi eseguire esperimenti in un ambiente sandbox senza connettività con la tua organizzazione esistente.

Struttura delle cartelle: il progetto ha una semplice cartella con carichi di lavoro suddivisi in production, non-production e development cartelle nel livello superiore.

Decidi una gerarchia delle risorse per la zona di destinazione di Google Cloud per strutturare le cartelle in base a come vuoi gestirle, risorse ed ereditare criteri come:

  • Cartelle basate sugli ambienti di applicazione
  • Cartelle basate su entità regionali o società controllate
  • Cartelle basate sul framework di responsabilizzazione

Criteri dell'organizzazione: il progetto applica tutti vincoli dei criteri dell'organizzazione a livello del nodo organizzazione.

Potresti avere criteri di sicurezza o modalità di lavoro diversi per diverse parti dell'attività. In questo scenario, applica i vincoli dei criteri dell'organizzazione a un nodo inferiore nella gerarchia delle risorse. Esamina l'elenco completo di organizzazione vincoli previsti dalle norme che aiutano a soddisfare i tuoi requisiti.

Strumenti per la pipeline di deployment: il progetto base utilizza Cloud Build per eseguire la pipeline di automazione.

Potresti preferire altri prodotti per la pipeline di deployment, ad esempio Terraform Enterprise, GitLab Runners, GitHub Actions o Jenkins. Il blueprint include indicazioni alternative per ogni prodotto.

Repository di codice per il deployment: il progetto utilizza Cloud Source Repositories come repository Git privato gestito.

Utilizza il tuo sistema di controllo della versione preferito per gestire i repository di codice, ad esempio GitLab, GitHub o Bitbucket.

Se utilizzi una connessione privata per un repository privato ospitato nel tuo ambiente on-premise, percorso di rete dal repository a Google Cloud completamente gestito di Google Cloud.

Provider di identità: il blueprint presuppone un Active Directory on-premise e federa le identità con Cloud Identity utilizzando Google Cloud Directory Sync.

Se usi già Google Workspace, puoi utilizzare le identità Google che sono già gestiti in Google Workspace.

Se non disponi di un di identità esistente, puoi creare e gestire direttamente le identità degli utenti in Cloud Identity.

Se hai già un provider di identità, come Okta, Ping o Azure Enter, puoi gestire gli account utente nel tuo provider di identità esistente e sincronizzarli con Cloud Identity.

Se hai requisiti di sovranità dei dati o di conformità che ti impediscono di utilizzare Cloud Identity e se non hai bisogno di identità utente Google gestite per altri servizi Google come Google Ads o Google Marketing Platform, potresti preferire la federazione delle identità del personale. In questo scenario, tieni presente le limitazioni previste dalle app supportate Google Cloud.

Più regioni: il blueprint esegue il deployment di risorse regionali in due regioni Google Cloud diverse per contribuire a progettare carichi di lavoro tenendo conto dei requisiti di alta disponibilità e di disaster recovery.

Se hai utenti finali in più località geografiche, puoi configurare altre regioni Google Cloud per creare risorse più vicine all'utente finale con meno latenza.

Se hai vincoli di sovranità dei dati o se le tue esigenze di disponibilità possono essere soddisfatte in una singola regione, puoi configurare una sola regione Google Cloud.

Allocazione degli indirizzi IP: il progetto fornisce un insieme di di indirizzi IP esterni.

Potresti dover modificare gli intervalli di indirizzi IP specifici utilizzati in base alla disponibilità degli indirizzi IP nel tuo ambiente ibrido esistente. Se modifichi gli intervalli di indirizzi IP, utilizza il blueprint come guida per il numero e le dimensioni degli intervalli richiesti e consulta gli intervalli di indirizzi IP validi per Google Cloud.

Networking ibrido: il progetto utilizza Dedicated Interconnect su più siti fisici e Regioni di Google Cloud per ottenere la massima disponibilità e larghezza di banda.

A seconda dei requisiti relativi a costi, larghezza di banda e affidabilità, potresti configurare Partner Interconnect o Cloud VPN.

Se devi iniziare a eseguire il deployment delle risorse con prima di poter completare una connessione Dedicated Interconnect potresti iniziare con Cloud VPN e passare all'uso Dedicated Interconnect più avanti.

Se non disponi di un on-premise, potresti non aver bisogno del networking ibrido.

Perimetro Controlli di servizio VPC: il progetto consiglia un unico perimetro che include tutti i progetti di servizio associati in una rete VPC limitata. I progetti associati a una rete VPC di base non incluse all'interno del perimetro.

Potresti avere un caso d'uso che richiede perimetri per un'organizzazione oppure potresti decidere di non usare Controlli di servizio VPC.

Per informazioni, consulta decidere come mitigare l'esfiltrazione di dati tramite le API di Google.

Secret Manager: il blueprint esegue il deployment di un progetto per l'utilizzo di Secret Manager nella cartella common per i segreti a livello di organizzazione e di un progetto in ogni cartella dell'ambiente per i segreti specifici dell'ambiente.

Se hai un unico team responsabile della gestione e del controllo dei secret sensibili nell'intera organizzazione, potresti preferire utilizzare un solo progetto per gestire l'accesso ai secret.

Se consenti ai team dei carichi di lavoro di gestire e i loro segreti, potresti non usare un progetto centralizzato per gestire l'accesso ai secret e lascia che i team utilizzino le proprie istanze Secret Manager nei progetti dei carichi di lavoro.

Cloud KMS: il blueprint esegue il deployment di un progetto per l'utilizzo di Cloud KMS nella cartella common per le chiavi a livello di organizzazione e di un progetto per ogni cartella dell'ambiente per le chiavi in ogni ambiente.

Se hai un solo team responsabile della gestione e del controllo di crittografia delle chiavi di crittografia in tutta l'organizzazione, potresti preferire utilizzarne una progetto per la gestione dell'accesso alle chiavi. Un approccio centralizzato può aiutare a di conformità come i custodi delle chiavi PCI.

Se consenti ai team dei carichi di lavoro gestire le proprie chiavi, potreste non usare un progetto centralizzato per la l'accesso alle chiavi, ma consente ai team di utilizzare le proprie Cloud KMS nei progetti dei carichi di lavoro.

Sink dei log aggregati: il blueprint configura un insieme di sink dei log nel nodo dell'organizzazione in modo che un team di sicurezza centrale possa esaminare gli audit log dell'intera organizzazione.

Potrebbero esserci diversi team responsabili dell'auditing parti dell'azienda e questi team potrebbero richiedere log diversi per eseguire le di lavoro. In questo scenario, progetta più sink aggregati nel modo appropriato cartelle e progetti e creare filtri in modo che ogni team riceva solo i log necessari o i log di progettazione viste per un controllo granulare degli accessi a un bucket di log comune.

Granularità delle pipeline di infrastruttura: il blueprint utilizza un modello in cui ogni unità aziendale ha una pipeline di infrastruttura separata per gestire i progetti di carichi di lavoro.

Potresti preferire una singola pipeline dell'infrastruttura gestita da un se hai un team centrale responsabile del deployment di tutti i progetti dell'infrastruttura. Questo team centrale può accettare richieste di pull dal carico di lavoro team da rivedere e approvare prima della creazione del progetto oppure il team può creare il pull richiedersi in risposta a un sistema basato su ticket.

Potresti preferire pipeline più granulari se i singoli team di workload hanno la possibilità di personalizzare le proprie pipeline e vuoi progettare account di servizio con privilegi più granulari per le pipeline.

Esportazioni SIEM: il blueprint gestisce tutti i risultati relativi alla sicurezza in Security Command Center.

Decidi se esportare i risultati di sicurezza da Security Command Center in strumenti come Google Security Operations o nel tuo SIEM esistente oppure se i team utilizzeranno la console per visualizzare e gestire i risultati di sicurezza. Potresti configurare più esportazioni con filtri univoci per team diversi con ambiti e responsabilità diversi.

Ricerca DNS per i servizi Google Cloud on-premise: il blueprint configura un endpoint Private Service Connect univoco per ogni VPC condivisa, il che può contribuire ad attivare progetti con più perimetri Controlli di servizio VPC.

Potresti non richiedere il routing da un ambiente on-premise agli endpoint Private Service Connect a questo livello di granularità se non hai bisogno di più perimetri di Controlli di servizio VPC.

Anziché mappare gli host on-premise agli endpoint Private Service Connect in base all'ambiente, puoi semplificare questo design utilizzando un singolo endpoint Private Service Connect con il bundle API appropriato oppure gli endpoint generici per private.googlepais.com e restricted.googleapis.com.

Passaggi successivi