Limita le versioni TLS

In questa pagina viene descritto come impedire l'accesso alle risorse Google Cloud negando 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 di TLS precedenti.

Questa funzionalità è fornita dal vincolo dei criteri dell'organizzazione gcp.restrictTLSVersion. Il vincolo può essere applicato a organizzazioni, cartelle o progetti nella gerarchia delle risorse. Il vincolo gcp.restrictTLSVersion utilizza un elenco negazione, che nega i valori espliciti e consente tutti gli altri. Se provi a utilizzare una lista consentita, si verifica 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 suoi elementi secondari. Ad esempio, se rifiuti TLS versione 1.0 per un'organizzazione, verrà negato anche per tutte le cartelle e tutti i progetti (secondari) che discendono da quell'organizzazione.

Puoi eseguire l'override della limitazione della versione TLS ereditata aggiornando il criterio dell'organizzazione per una risorsa secondaria. 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 a causa dell'ereditarietà dei criteri.

Prima di iniziare

  • Per impostare, modificare o eliminare un criterio dell'organizzazione, devi prima disporre del 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 dell'organizzazione nella console Google Cloud.

    Vai a Criteri dell'organizzazione

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

  3. Dal selettore dei progetti, seleziona la risorsa per la quale vuoi impostare il criterio dell'organizzazione.

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

  5. Per personalizzare 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 criterio, il valore predefinito è Rifiuta tutti. 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 limiti 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, che dovrebbe avere il seguente aspetto se utilizzi il formato YAML:

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 di 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 di progetto, a seconda del tipo di risorsa specificato in RESOURCE_TYPE.

Testa il criterio

Il vincolo del criterio di limitazione della versione di TLS può essere testato per qualsiasi servizio nell'ambito. Il comando di esempio riportato di seguito convalida la limitazione della versione di 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

Non devono esserci spazi tra --tlsv e il valore. Ad esempio: --tlsv1.1

Sostituisci con quanto segue:

  • GCS_BUCKET_NAME è il nome di un bucket Cloud Storage nel 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 il valore 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

Se il criterio dell'organizzazione è configurato per limitare TLS_VERSION_X, qualsiasi tentativo di accedere alle risorse con TLS_VERSION_X nel progetto limitato ai criteri in questo comando di esempio avrà esito negativo. Viene restituito un messaggio di errore che ne descrive il motivo.

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 indicata nel comando precedente.
  • SERVICE_NAME: il nome del servizio nell'ambito bloccato dal criterio di limitazione TLS.

Servizi supportati

La limitazione della versione di 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 relativo al criterio dell'organizzazione per la limitazione della versione di TLS non è applicabile ai 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