Restringir versões de TLS

Nesta página, descrevemos como impedir o acesso aos recursos do Google Cloud negando solicitações feitas usando o Transport Layer Security (TLS) 1.0 ou 1.1.

Visão geral

O Google Cloud oferece suporte a várias versões do protocolo TLS. Para atender aos requisitos de conformidade, convém negar solicitações de handshake de clientes que usam versões de TLS mais antigas.

Essa funcionalidade é fornecida pela restrição gcp.restrictTLSVersion na política da organização. A restrição pode ser aplicada em organizações, pastas ou projetos na hierarquia de recursos. A restrição gcp.restrictTLSVersion usa uma lista de negação, que nega valores explícitos e permite todos os outros. Ocorrerá um erro se você tentar usar uma lista de permissões.

Devido ao comportamento da avaliação da hierarquia de políticas da organização, a restrição de versão do TLS se aplica ao nó de recurso especificado e a todos os filhos dele. Por exemplo, se você negar o TLS versão 1.0 para uma organização, ele também será negado para todas as pastas e projetos (filhos) que descendem dessa organização.

É possível modificar a restrição de versão de TLS herdada atualizando a política da organização em um recurso filho. Por exemplo, se a política da organização negar o TLS 1.0 no nível da organização, será possível remover a restrição para uma pasta filha definindo uma política da organização separada nessa pasta. Se a pasta tiver filhos, a política da pasta também será aplicada a cada recurso filho devido à herança da política.

Antes de começar

  • Para definir, alterar ou excluir uma política da organização, você precisa primeiro receber o papel de Administrador de políticas da organização (roles/orgpolicy.policyAdmin) do Identity and Access Management (IAM).

Restringir uma versão do TLS

Para restringir uma ou mais versões do TLS, siga estas etapas:

Console

  1. Abra a página Políticas da organização no console do Google Cloud.

    Acessar as políticas da organização

  2. Selecione o seletor de projetos na parte superior da página.

  3. No seletor de projeto, escolha o recurso para o qual você quer definir a política da organização.

  4. Selecione a restrição Restringir versão do TLS na lista da página Políticas da organização.

  5. Para atualizar a política da organização para esse recurso, clique em Editar.

  6. Na página Editar, selecione Personalizar.

  7. Em Política de aplicação, selecione uma opção para aplicação:

    • Para mesclar e avaliar as políticas da organização juntas, selecione Mesclar com pai. Para mais informações sobre herança e hierarquia de recursos, consulte Noções básicas sobre a avaliação da hierarquia.

    • Para modificar políticas herdadas de um recurso pai, selecione Substituir.

  8. Clique em Adicionar regra.

  9. Em Valores da política, o valor padrão é definido como Negar tudo. Selecione Personalizado em vez disso.

  10. Em Tipo de política, selecione Negar.

  11. Em Valores personalizados, digite uma versão do TLS que você quer negar. Os seguintes valores são valores personalizados válidos:

    • TLS_VERSION_1 para TLS 1.0
    • TLS_VERSION_1_1 para TLS 1.1

    Se você estiver restringindo mais de uma versão do TLS, clique em Adicionar valor e insira o valor no campo adicional.

  12. Para finalizar e aplicar a política da organização, clique em Salvar.

gcloud

Use o comando gcloud org-policies set-policy para definir uma política da organização no recurso pretendido:

gcloud org-policies set-policy POLICY_PATH

POLICY_PATH é o caminho completo para o arquivo de política da organização, que será semelhante ao seguinte se você estiver usando o formato YAML:

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

Substitua pelo seguinte:

  • RESOURCE_TYPE é organizations, folders ou projects.

  • RESOURCE_ID é o ID da organização, da pasta, do ID ou o número do projeto, dependendo do tipo de recurso especificado em RESOURCE_TYPE.

Execute o seguinte comando para verificar se a política foi aplicada:

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

Substitua pelo seguinte:

  • RESOURCE_TYPE é organization, folder ou project.

  • RESOURCE_ID é o ID da organização, da pasta, do ID ou o número do projeto, dependendo do tipo de recurso especificado em RESOURCE_TYPE.

Testar a política

A restrição da política de restrição de versão do TLS pode ser testada para qualquer serviço no escopo. O exemplo de comando curl a seguir valida a restrição de versão do TLS para um bucket do 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

Não há espaço entre --tlsv e o valor. Por exemplo: --tlsv1.1

Substitua pelo seguinte:

  • GCS_BUCKET_NAME é um nome de bucket do Cloud Storage no projeto, como mybucketname.

  • TLS_VERSION é uma versão de TLS como 1.0 ou 1.1 negada na política configurada.

O exemplo de solicitação curl a seguir mostra GCS_BUCKET_NAME definido como mybucketname e TLS_VERSION definido como 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 a política da organização estiver configurada para restringir TLS_VERSION_X, qualquer tentativa de acessar recursos com TLS_VERSION_X no projeto restrito por política neste comando de exemplo falhará. Uma mensagem de erro é retornada descrevendo o motivo dessa falha.

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`

Esta saída inclui os seguintes valores:

  • PROJECT_NUMBER: o número do projeto que hospeda o recurso indicado no comando anterior.
  • SERVICE_NAME: o nome do serviço no escopo bloqueado pela política de restrição de TLS.

Serviços com suporte

A restrição de versão do TLS é suportada pelos seguintes serviços:

  • 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

Serviços sem suporte

A restrição da política da organização para restrição de versão do TLS não é aplicável aos seguintes serviços:

  • App Engine (*.appspot.com)
  • Cloud Functions (*.cloudfunctions.net),
  • Cloud Run (*.run.app)
  • Private Service Connect
  • Domínios personalizados

Para restringir as versões TLS para esses serviços, use o Cloud Load Balancing com a política de segurança SSL.

A seguir