Restringir versões TLS

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

Visão geral

OGoogle Cloud é compatível com várias versões do protocolo TLS. Para atender aos requisitos de compliance, talvez seja necessário negar solicitações de handshake de clientes que usam versões anteriores do TLS. Para isso, use a gcp.restrictTLSVersion restrição da política da organização.

A restrição gcp.restrictTLSVersion pode ser aplicada a organizações, pastas ou projetos na hierarquia de recursos. A restrição usa uma lista de bloqueio, que nega valores explícitos e permite todos os outros. Um erro vai ocorrer se você tentar usar uma lista de permissão.

Devido ao comportamento da avaliação da hierarquia da política 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 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 substituir a restrição de versão do 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, você poderá remover a restrição de uma pasta filha definindo uma política separada nessa pasta. Se a pasta tiver filhos, a política dela também será aplicada a cada recurso filho devido à herança de políticas.

Antes de começar

  • Para definir, alterar ou excluir uma política da organização, primeiro você precisa 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 projetos, selecione o recurso em que 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 nesse 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 saber mais informações sobre herança e hierarquia de recursos, consulte Noções básicas sobre avaliação de 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 é Negar tudo. Selecione Personalizado.

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

  11. Em Valores personalizados, insira uma versão do TLS a ser negada. Os seguintes valores são 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:

gcloud org-policies set-policy POLICY_PATH

POLICY_PATH é o caminho completo para o arquivo de política da organização, que deve 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 em qualquer serviço no escopo. O comando curl de exemplo 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 é o nome de um bucket do Cloud Storage no seu projeto, como mybucketname.

  • TLS_VERSION é uma versão do 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 pela política neste exemplo de comando vai 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 mencionado no comando anterior.
  • SERVICE_NAME: o nome do serviço no escopo bloqueado pela política de restrição de TLS.

Serviços compatíveis

A restrição de versão do TLS é compatível com qualquer API de recurso Google Cloud que tenha um cabeçalho assinado pelo Google Front End (GFE).

Serviços sem suporte

A restrição da política da organização de restrição de versão do TLS não se aplica aos seguintes serviços:

  • Apigee
  • App Engine (*.appspot.com)
  • Funções do Cloud Run (*.cloudfunctions.net),
  • Cloud Run (*.run.app)
  • Private Service Connect
  • Domínios personalizados

Para restringir as versões do TLS nesses serviços, use o Cloud Load Balancing com as políticas de SSL. Você também pode usar a restrição constraints/compute.requireSslPolicy predefinida com restrições personalizadas para políticas de SSL e aplicar restrições de versão do TLS e de pacote de criptografia aos balanceadores de carga.

A seguir