Prima di iniziare
Prima di impostare o modificare il criterio dataform.restrictGitRemotes
, individua gli URL completi
degli archivi Git remoti che vuoi inserire nella lista consentita.
Per trovare l'URL completo di un repository Git remoto già collegato a un repository Dataform:
Nella console Google Cloud, vai alla pagina Dataform.
Seleziona un repository e fai clic su Impostazioni.
Tieni presente che gli URL dei repository remoti visualizzati nella pagina Dataform sono abbreviati e non possono essere utilizzati nel criterio
dataform.restrictGitRemotes
.Nella pagina Impostazioni, in Impostazioni di connessione Git, copia il valore Origine repository.
Il valore Origine repository è l'URL completo del repository remoto. Puoi utilizzare questo URL nel criterio
dataform.restrictGitRemotes
.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per gestire le norme dell'organizzazione,
chiedi all'amministratore di concederti il ruolo IAM Amministratore delle norme dell'organizzazione (roles/orgpolicy.policyAdmin
) nell'organizzazione.
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Questo ruolo predefinito contiene le autorizzazioni necessarie per gestire i criteri dell'organizzazione. Per visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni richieste:
Autorizzazioni obbligatorie
Per gestire le norme dell'organizzazione sono necessarie le seguenti autorizzazioni:
-
orgpolicy.constraints.list
-
orgpolicy.policies.create
-
orgpolicy.policies.delete
-
orgpolicy.policies.list
-
orgpolicy.policies.update
-
orgpolicy.policy.get
-
orgpolicy.policy.set
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Informazioni sulla limitazione dei repository Git remoti
Puoi collegare un repository Dataform a un repository GitHub o GitLab.
Ti consigliamo di limitare il pool di repository remoti a cui possono connettersi i repository Dataform per impedire ad attori malintenzionati di accedere alla base di codice e ai token di accesso di Dataform tramite copie non protette del tuo repository.
Puoi utilizzare Organization Policy Service per creare un criterio dell'organizzazione che limiti gli URL dei repository Git a cui può connettersi Dataform.
Il vincolo per limitare i repository Git remoti in Dataform è:
constraints/dataform.restrictGitRemotes
Per utilizzare la limitazione, crea un criterio dell'organizzazione con un allowedValues
elenco di URL
di repository Git remoti che possono connettersi a un repository Dataform.
I repository Git remoti sono identificati dal loro indirizzo URL completo.
Il criteriodataform.restrictGitRemotes
ha un effetto retroattivo, il che significa che il vincolo influisce sui repository Dataform esistenti.
Quando il criterio dell'organizzazione è attivo, il repository Dataform può collegarsi solo ai repository Git remoti elencati nell'elenco allowedValues
. I repository Git remoti non definiti esplicitamente nel criterio dell'organizzazione non possono connettersi a un repository Dataform.
Se non imposti il criterio dataform.restrictGitRemotes
,
la comunicazione tra i repository Dataform e i repository Git remoti
non è limitata.
Puoi utilizzare il criterio dataform.restrictGitRemotes
nei seguenti modi:
Allow all
- I repository Dataform sono autorizzati a connettersi a tutti gli URL dei repository remoto. Seleziona questa opzione se la tua organizzazione non vuole bloccare alcuna comunicazione con i repository remoti. In alternativa, per consentire tutti gli URL dei repository remoti, puoi lasciare il criterio dell'organizzazione non impostato.
- Elenco di URL
allowedValues
- I repository Dataform possono connettersi solo ai repository remote inclusi nella lista consentita. Seleziona questa opzione per impedire l'esfiltrazione di dati.
Deny all
- I repository Dataform non sono autorizzati a connettersi a URL remoti. Seleziona questa opzione se la tua organizzazione vuole bloccare tutte le comunicazioni e utilizzare i repository Dataform.
Specifiche per l'inserimento nella lista consentita dei repository Git remoti
Puoi applicare questo vincolo di elenco solo ai repository GitHub e GitLab.
Il criterio dell'organizzazione viene applicato in modo retroattivo e influisce sui repository Dataform esistenti.
Questo vincolo accetta
allowedValues
, che blocca la connessione a tutti gli altri repository Git remoti, oDeny all
. Il valore predefinito èAllow all
: un criterio dell'organizzazione non impostato consente la comunicazione con tutti i repository Git remoti. Ti consigliamo di impostare il criterio dell'organizzazione suallowedValues
.Spetta a te o a un amministratore con le autorizzazioni richieste gestire e mantenere il criterio. Assicurati che la comunicazione sull'amministratore delle norme sia chiara all'interno della tua organizzazione.
Imposta il vincolo del criterio dell'organizzazione a livello di organizzazione
Console
- Vai alla pagina /Organizational Policies/Organization Policies.
- Se necessario, seleziona l'organizzazione richiesta dal menu a discesa del progetto.
- Fai clic su Limita i git remote per i repository in Dataform.
- Fai clic su Gestisci criterio. Se non riesci a fare clic sul pulsante Gestisci criterio, significa che non disponi delle autorizzazioni corrette.
Seleziona Personalizza per impostare il criterio dell'organizzazione per repository Git remoti specifici.
Seleziona Applicazione delle norme e Tipo di norme.
In Valori criterio, seleziona Personalizzato.
Inserisci l'URL completo di un repository Git remoto.
Fai clic su Nuovo valore criterio e inserisci gli URL completi dei repository Git remoti, se necessario.
Fai clic su Salva per applicare la limitazione.
gcloud
Per impostare una limitazione per i repository Git remoti, devi prima avere l'ID della tua organizzazione. Puoi trovare l'ID organizzazione eseguendo il
comando organizations list
e cercando l'ID numerico nella risposta:
gcloud organizations list
Gcloud CLI restituisce un elenco di organizzazioni nel seguente formato:
DISPLAY_NAME ID example-organization1 29252605212 example-organization2 1234567890
Utilizza il
comando gcloud resource-manager org-policies set-policy
per impostare il criterio dell'organizzazione. Devi fornire il criterio come file JSON o YAML.
Crea un file JSON nel seguente formato:
{ "name": "organizations/ORGANIZATION_ID/policies/dataform.restrictGitRemotes", "spec": { "rules": [ { "values": { "allowedValues": ["https://github.com/example/allowed-repository.git"] } } ] } }
Sostituisci ORGANIZATION_ID
con l'ID numerico dell'organizzazione.
Se non vuoi che i repository Dataform possano connettersi a
qualsiasi repository Git remoto, puoi impostare un criterio dell'organizzazione con denyAll
impostato su true
:
{ "name": "organizations/ORGANIZATION_ID/policies/dataform.restrictGitRemotes", "spec": { "rules": [ { "denyAll": true } ] } }
Sostituisci ORGANIZATION_ID
con l'ID numerico dell'organizzazione.
API
Utilizza l'API setOrgPolicy()
per definire la limitazione. Dataform è autorizzato a connettersi agli URL dei repository Git
remoti nell'elenco allowedValue
specificato.
Ad esempio, di seguito è riportata una richiesta di applicazione del vincolo dataform.restrictGitRemotes
a un'organizzazione a cui possono connettersi i repository Git remoti selezionati di Dataform:
POST https://orgpolicy.googleapis.com/v2/organizations/ORGANIZATION_ID/policies
dove ORGANIZATION_ID
è l'ID numerico dell'organizzazione.
Ora, nel corpo della richiesta, fornisci il criterio dell'organizzazione desiderato per questo vincolo:
{ "name": "organizations/ORGANIZATION_ID/policies/dataform.restrictGitRemotes", "spec": { "rules": [ { "values": { "allowedValues": ["https://github.com/example/allowed-repository.git"] } } ] } }
Replace <code><var>ORGANIZATION_ID</var></code> with the numeric ID
of the organization.
Se non vuoi che i repository Dataform possano connettersi a
qualsiasi repository Git remoto, puoi impostare un criterio dell'organizzazione con
denyAll
impostato su true
:
{ "name": "organizations/ORGANIZATION_ID/policies/dataform.restrictGitRemotes", "spec": { "rules": [ { "denyAll": true } ] } }
Replace <code><var>ORGANIZATION_ID</var></code> with the numeric ID
of the organization.
Se il criterio dell'organizzazione è già impostato, devi eseguire la seguente richiesta con la definizione del criterio dell'organizzazione come corpo della richiesta:
PATCH https://orgpolicy.googleapis.com/v2/organizations/ORGANIZATION_ID/policies/dataform.restrictGitRemotes
Imposta il criterio dell'organizzazione a livello di progetto
L'impostazione di un criterio dell'organizzazione a livello di progetto sostituisce o si unisce al criterio dell'organizzazione a livello di organizzazione. In caso di unione, denyAll
ha la precedenza su allowedValues
. Ad esempio, se il criterio dell'organizzazione a livello di organizzazione è impostato su denyAll
e il criterio unito a livello di progetto elenca un URL del repository remoto nell'elenco allowedValues
, Dataform non è autorizzato a connettersi al repository remoto. In questo caso, il criterio dell'organizzazione a livello di progetto deve aggirare il criterio a livello di organizzazione, in modo che Dataform possa connettersi al repository remoto. Per scoprire di più sulla gerarchia delle norme dell'organizzazione, consulta Informazioni sulla valutazione della gerarchia.
Console
Segui la stessa procedura descritta in Impostare il vincolo dei criteri dell'organizzazione a livello di organizzazione, ma scegli il progetto che ti interessa dal selettore dei progetti anziché dall'organizzazione.
gcloud
Utilizza il
comando gcloud resource-manager org-policies set-policy
per impostare il criterio dell'organizzazione. Devi fornire il criterio come file JSON o YAML.
Crea un file JSON nel seguente formato:
{ "name": "projects/PROJECT_ID_OR_NUMBER/policies/dataform.restrictGitRemotes", "spec": { "rules": [ { "values": { "allowedValues": ["https://github.com/example/allowed-repository.git"] } } ] } }
Sostituisci PROJECT_ID_OR_NUMBER
con l'ID o il numero di progetto per questo criterio dell'organizzazione.
Quindi, passa il file con la richiesta:
gcloud resource-manager org-policies set-policy MY_POLICY.JSON --project=PROJECT_ID
API
Utilizza l'API setOrgPolicy()
per definire la limitazione. Dataform è autorizzato a connettersi agli URL dei repository Git
remoti nell'elenco allowedValue
specificato.
Ad esempio, di seguito è riportata una richiesta di applicazione del vincolo dataform.restrictGitRemotes
a un'organizzazione in cui i repository Dataform possono connettersi solo ai repository Git remoti selezionati e il criterio constraints/dataform.restrictGitRemotes
non è ancora impostato:
POST https://orgpolicy.googleapis.com/v2/projects/PROJECT_ID_OR_NUMBER/policies
Il corpo della richiesta contiene il criterio dell'organizzazione desiderato per questo vincolo:
{ "name": "projects/PROJECT_ID_OR_NUMBER/policies/dataform.restrictGitRemotes", "spec": { "rules": [ { "values": { "allowedValues": ["https://github.com/example/allowed-repository.git"] } } ] } }
Sostituisci PROJECT_ID_OR_NUMBER
con l'ID o il numero del progetto per questa richiesta.
Di seguito è riportata una richiesta di applicazione del vincolo dataform.restrictGitRemotes
a un'organizzazione in cui i repository Dataform possono connettersi solo ai repository Git remoti selezionati e il criterio constraints/dataform.restrictGitRemotes
è già impostato:
PATCH https://orgpolicy.googleapis.com/v2/projects/PROJECT_ID_OR_NUMBER/policies/dataform.restrictGitRemotes
Il corpo della richiesta contiene il criterio dell'organizzazione desiderato per questo vincolo:
{ "name": "projects/PROJECT_ID_OR_NUMBER/policies/dataform.restrictGitRemotes", "spec": { "rules": [ { "values": { "allowedValues": ["https://github.com/example/allowed-repository.git"] } } ] } }
Sostituisci PROJECT_ID_OR_NUMBER
con l'ID o il numero del progetto per questa richiesta.
Best practice per l'inserimento nella lista consentita dei remote Git
Per ridurre il rischio di esfiltrazione dei dati, imposta esplicitamente il vincolo
dataform.restrictGitRemotes
per inserire nella lista consentita una selezione di repository Git remoti attendibili.Se utilizzi solo repository Dataform non collegati ai repository Git remoti, imposta il vincolo
dataform.restrictGitRemotes
suDeny All
.Evita di utilizzare l'elenco
deniedValues
con questo vincolo. Se definisci valori nell'elencodeniedValues
, significa che solo i repository Git remoti nell'elencodeniedValues
sono soggetti a limitazioni per la connessione. Questo potrebbe essere un problema di sicurezza se vuoi controllare esattamente a quali repository Git remoti può connettersi Dataform. Se vuoi rimuovere alcuni repository Git remoti dall'elencoallowedValues
, aggiorna i criteri dell'organizzazione esistenti per rimuoverli dall'elencoallowedValues
anziché inserire il repository remoto nell'elencodeniedValues
a un livello di gerarchia inferiore.Se vuoi impostare un criterio dell'organizzazione su gran parte della gerarchia delle risorse, ma esentare determinati progetti, ripristina il criterio dell'organizzazione predefinito utilizzando il metodo
setOrgPolicy
specificando l'oggettorestoreDefault
per consentire a tutti i repository Dataform dei progetti di essere collegati ai repository Git remoti. I criteri attualmente in vigore per i progetti non sono interessati dall'impostazione predefinita.Utilizza i Criteri dell'organizzazione insieme ai ruoli IAM per controllare meglio l'accesso al codice di Dataform.
Tutti i repository Dataform all'interno dell'organizzazione o del progetto con il criterio dell'organizzazione abilitato sono soggetti a questo criterio. Se si tratta di un problema, ti consigliamo di configurare altri servizi e prodotti in un altro progetto a cui non è stato applicato il criterio dell'organizzazione e di utilizzare VPC condiviso, se necessario.
Prima di impostare il criterio
dataform.restrictGitRemotes
, assicurati di comunicare i criteri dell'organizzazione e il relativo amministratore all'interno della tua organizzazione. Spetta a te o a un amministratore con le autorizzazioni richieste gestire e mantenere il criterio.
Passaggi successivi
- Per scoprire di più sul criterio dell'organizzazione, consulta Introduzione al Servizio Criteri dell'organizzazione.
- Per scoprire di più sui vincoli delle policy dell'organizzazione, consulta Vincoli delle policy dell'organizzazione.
- Per scoprire come gestire le Google Cloud risorse con Resource Manager, consulta Gestire le Google Cloud risorse.