Restringir versões do TLS

Nesta página, descrevemos como impedir o acesso aos recursos do Google Cloud negar 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 compliance, negue as solicitações de handshake de clientes que usam versões anteriores do TLS. Para fazer isso, use a restrição da política da organização gcp.restrictTLSVersion.

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

Devido ao comportamento 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. 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 TLS herdada atualizando a política da organização em um recurso filho. Por exemplo, se sua organização nega o TLS 1.0 no nível da organização, remova a restrição para uma pasta filha, basta definir uma política da organização separada nessa pasta. Se a pasta tiver filhos, a política dela também será aplicada em 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 Administrador de políticas da organização (roles/orgpolicy.policyAdmin) Cloud 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 Políticas da organização.

  5. Para atualizar a política da organização para este 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 a 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 é definido como Negar tudo. Selecionar Personalizado.

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

  11. Em Valores personalizados, insira uma versão do TLS para negar. Os valores a seguir 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:

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 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 é 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 o 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 comando de exemplo vai falhar. Uma mensagem de erro é retornada descreve o motivo da 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 com suporte

A restrição de versão do TLS é compatível com todas as APIs de recursos do Google Cloud que têm um cabeçalho assinado pelo Google Front End (GFE).

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)
  • Funções do Cloud Run (*.cloudfunctions.net)
  • Cloud Run (*.run.app)
  • Private Service Connect
  • Domínios personalizados

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

A seguir