Limita le versioni TLS

In questa pagina viene descritto come impedire l'accesso alle risorse Google Cloud rifiutando le richieste effettuate utilizzando TLS (Transport Layer Security) 1.0 o 1.1.

Panoramica

Google Cloud supporta più versioni del protocollo TLS. Per soddisfare i requisiti di conformità, puoi rifiutare le richieste di handshake dai client che utilizzano versioni TLS precedenti.

Questa funzionalità è fornita dal vincolo dei criteri dell'organizzazione di gcp.restrictTLSVersion. Il vincolo può essere applicato a organizzazioni, cartelle o progetti nella gerarchia delle risorse. Il vincolo gcp.restrictTLSVersion utilizza un elenco negato, che nega i valori espliciti e consente tutti gli altri. Se provi a usare una lista consentita, si verificherà un errore.

A causa del comportamento della valutazione della gerarchia dei criteri dell'organizzazione, la limitazione della versione TLS si applica al nodo delle risorse specificato e a tutti i relativi nodi figlio. Ad esempio, se rifiuti TLS versione 1.0 per un'organizzazione, questo viene negato anche per tutte le cartelle e tutti i progetti (figli) che discendono da quell'organizzazione.

Puoi eseguire l'override della limitazione della versione TLS ereditata aggiornando il criterio dell'organizzazione su una risorsa figlio. Ad esempio, se il criterio dell'organizzazione nega TLS 1.0 a livello di organizzazione, puoi rimuovere la limitazione per una cartella secondaria impostando un criterio dell'organizzazione separato per quella cartella. Se la cartella ha delle risorse secondarie, il criterio della cartella verrà applicato anche a ciascuna risorsa secondaria in base all'ereditarietà dei criteri.

Prima di iniziare

  • Per impostare, modificare o eliminare un criterio dell'organizzazione, devi prima ricevere il ruolo Amministratore criteri organizzazione (roles/orgpolicy.policyAdmin) Identity and Access Management (IAM).

Limitare una versione TLS

Per limitare una o più versioni TLS, completa i seguenti passaggi:

Console

  1. Apri la pagina Criteri organizzazione nella console Google Cloud.

    Vai a Criteri dell'organizzazione

  2. Seleziona il selettore di progetti nella parte superiore della pagina.

  3. Dal selettore del progetto, scegli la risorsa per cui vuoi impostare il criterio dell'organizzazione.

  4. Seleziona il vincolo Limita la versione TLS dall'elenco nella pagina Criteri dell'organizzazione.

  5. Per aggiornare il criterio dell'organizzazione per questa risorsa, fai clic su Modifica.

  6. Nella pagina Modifica, seleziona Personalizza.

  7. In Applicazione delle norme, seleziona un'opzione di applicazione:

    • Per unire e valutare insieme i criteri dell'organizzazione, seleziona Unisci con padre. Per ulteriori informazioni sull'ereditarietà e sulla gerarchia delle risorse, consulta Informazioni sulla valutazione della gerarchia.

    • Per eseguire l'override dei criteri ereditati da una risorsa padre, seleziona Sostituisci.

  8. Fai clic su Aggiungi regola.

  9. In Valori del criterio, il valore predefinito è Nega tutto. Seleziona Personalizzato.

  10. In Tipo di criterio, seleziona Rifiuta.

  11. In Valori personalizzati, inserisci una versione TLS da negare. I seguenti valori sono valori personalizzati validi:

    • TLS_VERSION_1 per TLS 1.0
    • TLS_VERSION_1_1 per TLS 1.1

    Se stai limitando più di una versione TLS, fai clic su Aggiungi valore e inserisci il valore nel campo aggiuntivo.

  12. Per completare e applicare il criterio dell'organizzazione, fai clic su Salva.

gcloud

Utilizza il comando gcloud org-policies set-policy per impostare un criterio dell'organizzazione sulla risorsa desiderata:

gcloud org-policies set-policy POLICY_PATH

POLICY_PATH è il percorso completo del file dei criteri dell'organizzazione. Se utilizzi il formato YAML, dovrebbe essere simile al seguente:

name: RESOURCE_TYPE/RESOURCE_ID/policies/gcp.restrictTLSVersion
spec:
  rules:
  - values:
    deniedValues:
    - TLS_VERSION_1
    - TLS_VERSION_1_1

Sostituisci con quanto segue:

  • RESOURCE_TYPE è organizations, folders o projects.

  • RESOURCE_ID è l'ID organizzazione, l'ID cartella, l'ID progetto o il numero del progetto, a seconda del tipo di risorsa specificato in RESOURCE_TYPE.

Esegui questo comando per verificare che il criterio sia stato applicato:

gcloud org-policies describe gcp.restrictTLSVersion --RESOURCE_TYPE=RESOURCE_ID --effective

Sostituisci con quanto segue:

  • RESOURCE_TYPE è organization, folder o project.

  • RESOURCE_ID è l'ID organizzazione, l'ID cartella, l'ID progetto o il numero del progetto, a seconda del tipo di risorsa specificato in RESOURCE_TYPE.

Testa il criterio

Il vincolo del criterio di limitazione della versione TLS può essere testato per qualsiasi servizio nell'ambito. Il comando curl di esempio riportato di seguito convalida la limitazione della versione TLS per un bucket Cloud Storage.

  curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://storage.googleapis.com/storage/v1/b/GCS_BUCKET_NAME/o" \
  --tlsvTLS_VERSION --tls-max TLS_VERSION --ciphers DEFAULT@SECLEVEL=0

Non c'è spazio tra --tlsv e il valore. Ad esempio: --tlsv1.1

Sostituisci con quanto segue:

  • GCS_BUCKET_NAME è il nome di un bucket Cloud Storage nel tuo progetto, ad esempio mybucketname.

  • TLS_VERSION è una versione TLS come 1.0 o 1.1 negata nel criterio configurato.

La richiesta curl di esempio seguente mostra che l'elemento GCS_BUCKET_NAME è impostato su mybucketname e il valore TLS_VERSION è impostato su 1.1:

  curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://storage.googleapis.com/storage/v1/b/mybucketname/o" \
  --tlsv1.1 --tls-max 1.1 --ciphers DEFAULT@SECLEVEL=0

Se il criterio dell'organizzazione è configurato in modo da limitare TLS_VERSION_X, qualsiasi tentativo di accedere alle risorse con TLS_VERSION_X nel progetto con limitazioni ai criteri in questo comando di esempio non andrà a buon fine. Viene restituito un messaggio che descrive il motivo dell'errore.

Request is disallowed by organization's constraints/gcp.restrictTLSVersion
constraint for 'projects/PROJECT_NUMBER' to use service
'SERVICE_NAME.googleapis.com' by violated TLS version `TLS_VERSION_X`

Questo output include i seguenti valori:

  • PROJECT_NUMBER: il numero del progetto che ospita la risorsa citata nel comando precedente.
  • SERVICE_NAME: il nome del servizio nell'ambito bloccato dal criterio di limitazione TLS.

Servizi supportati

La limitazione della versione TLS è supportata dai seguenti servizi:

  • apigateway.googleapis.com
  • appengine.googleapis.com
  • artifactregistry.googleapis.com
  • assuredworkloads.googleapis.com
  • bigquery.googleapis.com
  • bigqueryreservation.googleapis.com
  • bigtableadmin.googleapis.com
  • binaryauthorization.googleapis.com
  • cloudasset.googleapis.com
  • cloudbuild.googleapis.com
  • clouddebugger.googleapis.com
  • cloudfunctions.googleapis.com
  • cloudkms.googleapis.com
  • cloudresourcemanager.googleapis.com
  • cloudscheduler.googleapis.com
  • cloudsearch.googleapis.com
  • cloudtasks.googleapis.com
  • cloudtrace.googleapis.com
  • composer.googleapis.com
  • compute.googleapis.com
  • container.googleapis.com
  • containeranalysis.googleapis.com
  • datacatalog.googleapis.com
  • dataflow.googleapis.com
  • datafusion.googleapis.com
  • datalabeling.googleapis.com
  • datamigration.googleapis.com
  • dataproc.googleapis.com
  • datastore.googleapis.com
  • deploymentmanager.googleapis.com
  • dialogflow.googleapis.com
  • dlp.googleapis.com
  • dns.googleapis.com
  • domains.googleapis.com
  • file.googleapis.com
  • firebaserules.googleapis.com
  • firestore.googleapis.com
  • genomics.googleapis.com
  • healthcare.googleapis.com
  • iam.googleapis.com
  • iamcredentials.googleapis.com
  • iap.googleapis.com
  • identitytoolkit.googleapis.com
  • language.googleapis.com
  • lifesciences.googleapis.com
  • logging.googleapis.com
  • managedidentities.googleapis.com
  • memcache.googleapis.com
  • metastore.googleapis.com
  • ml.googleapis.com
  • monitoring.googleapis.com
  • networkmanagement.googleapis.com
  • notebooks.googleapis.com
  • osconfig.googleapis.com
  • policytroubleshooter.googleapis.com
  • privateca.googleapis.com
  • pubsub.googleapis.com
  • pubsublite.googleapis.com
  • recommender.googleapis.com
  • redis.googleapis.com
  • run.googleapis.com
  • runtimeconfig.googleapis.com
  • secretmanager.googleapis.com
  • servicecontrol.googleapis.com
  • servicedirectory.googleapis.com
  • servicenetworking.googleapis.com
  • sourcerepo.googleapis.com
  • spanner.googleapis.com
  • sqladmin.googleapis.com
  • storage.googleapis.com

  • storagetransfer.googleapis.com

  • sts.googleapis.com

  • texttospeech.googleapis.com

  • tpu.googleapis.com

  • videointelligence.googleapis.com

  • vision.googleapis.com

  • workflowexecutions.googleapis.com

  • workflows.googleapis.com

Servizi non supportati

Il vincolo del criterio dell'organizzazione per la limitazione della versione TLS non è applicabile per i seguenti servizi:

  • App Engine (*.appspot.com)
  • Cloud Functions (*.cloudfunctions.net),
  • Cloud Run (*.run.app)
  • Private Service Connect
  • Domini personalizzati

Per limitare le versioni TLS per questi servizi, utilizza Cloud Load Balancing insieme al criterio di sicurezza SSL.

Passaggi successivi