Restringir pacotes de criptografia TLS

Nesta página, descrevemos como impedir o acesso a recursos do Google Cloud negando solicitações feitas com determinados pacotes de criptografia Transport Layer Security (TLS) menos seguros.

Visão geral

Google Cloud é compatível com vários pacotes de criptografia TLS. Para atender a requisitos de segurança ou conformidade, talvez seja necessário negar solicitações de clientes que usam pacotes de criptografia TLS menos seguros.

Essa capacidade é fornecida pela restrição da política da organização gcp.restrictTLSCipherSuites. A restrição pode ser aplicada a organizações, pastas ou projetos na hierarquia de recursos.

Você pode usar a restrição gcp.restrictTLSCipherSuites como uma lista de permissões ou de proibições:

  • Lista de permissões: permite um conjunto específico de algoritmos de criptografia. Todas as outras são negadas.
  • Lista de bloqueio: bloqueia um conjunto específico de pacotes de criptografia. Todos os outros são permitidos.

Devido ao comportamento da avaliação da hierarquia de políticas da organização, a restrição "Restringir pacotes de criptografia TLS" se aplica ao nó de recurso especificado e a todos os filhos dele. Por exemplo, se você permitir apenas determinados pacotes de criptografia TLS para uma organização, isso também se aplicará a todas as pastas e projetos (filhos) que descendem dessa organização.

Antes de começar

Para receber as permissões necessárias para definir, alterar ou excluir políticas da organização, peça ao administrador para conceder a você o papel do IAM de Administrador de políticas da organização (roles/orgpolicy.policyAdmin) na organização. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.

Como definir a política da organização

A restrição "Restringir pacotes de criptografia TLS" é um tipo de restrição de lista. É possível adicionar e remover pacotes de criptografia das listas allowed_values ou denied_values de uma restrição "Restringir pacotes de criptografia TLS". Para evitar que as políticas da organização sejam muito restritivas e simplificar o gerenciamento delas, use grupos de valores. Os grupos de valores são conjuntos de algoritmos de criptografia TLS recomendados e selecionados pelo Google.

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 pacotes de criptografia TLS na lista da página Políticas da organização.

  5. Para atualizar a política da organização nesse recurso, clique em Gerenciar política.

  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, selecione Personalizado.

  10. Em Tipo de política, selecione Permitir para criar uma lista de conjuntos de cifras permitidos ou Negar para criar uma lista de conjuntos de cifras negados.

  11. Em Valores personalizados, insira o prefixo in: e uma string de grupo de valores e pressione Enter.

    • Por exemplo, in:NIST-800-52-recommended-ciphers É possível inserir várias strings de grupo de valores clicando em Adicionar valor.

    • Também é possível inserir strings de conjuntos de algoritmos de criptografia específicos usando o prefixo is:. Para uma lista de valores compatíveis, consulte pacotes de criptografia compatíveis.

  12. Para aplicar a política, clique em Definir política.

gcloud

Para criar uma política da organização que aplique a restrição "Restringir conjuntos de algoritmos de criptografia TLS", crie um arquivo YAML da política com referência à restrição:

constraint: constraints/gcp.restrictTLSCipherSuites
listPolicy:
  allowedValues:
  - in:CNSA-2.0-recommended-ciphers
  - is:TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA

Para aplicar a política da organização que contém a restrição, execute o seguinte comando:

gcloud resource-manager org-policies set-policy \
--RESOURCE_TYPE RESOURCE_ID \
POLICY_PATH

Substitua:

  • RESOURCE_TYPE por organization, folder ou project.

  • RESOURCE_ID com o ID da organização, da pasta, do ID do projeto ou o número do projeto.

  • POLICY_PATH com o caminho completo do arquivo YAML que contém a política da organização.

Uma resposta será retornada com os resultados da nova política da organização:

constraint: constraints/gcp.restrictTLSCipherSuites
etag: COS9qr0GELii6o0C
listPolicy:
  allowedValues:
  - in:CNSA-2.0-recommended-ciphers
  - is:TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
updateTime: '2025-02-11T00:50:44.565875Z'

Grupos de valores

Grupos de valores são coleções de pacotes de criptografia selecionados pelo Google para oferecer uma maneira mais simples de definir pacotes de criptografia TLS preferidos ou recomendados. Os grupos de valores incluem vários pacotes de criptografia e são expandidos ao longo do tempo pelo Google. Não é necessário mudar a política da organização para acomodar os novos conjuntos de algoritmos de criptografia.

Para usar grupos de valores na sua política da organização, insira a string in: no prefixo das entradas. Para mais informações sobre o uso de valores prefixo, consulte Usando restrições. Os nomes dos grupos de valores são validados na chamada para definir a política da organização. Usar um nome de grupo inválido vai fazer com que a definição da política falhe.

A tabela a seguir contém a lista atual de grupos disponíveis:

Grupo Detalhes Membros diretos
CNSA-2.0-recommended-ciphers Criptografias recomendadas pelo CNSA 2.0 compatíveis com o Google Cloud:
in:CNSA-2.0-recommended-ciphers
Valores:
  • TLS_AES_256_GCM_SHA384
  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
NIST-800-52-recommended-ciphers Criptografias recomendadas pela NIST SP 800-52 compatíveis com o Google Cloud:
in:NIST-800-52-recommended-ciphers
Valores:
  • TLS_AES_128_GCM_SHA256
  • TLS_AES_256_GCM_SHA384
  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

Pacotes de criptografia compatíveis

Esta é a lista de pacotes de criptografia compatíveis com Google Cloud.

TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_3DES_EDE_CBC_SHA

TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
TLS_RSA_WITH_AES_256_GCM_SHA384
TLS_RSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA

TLS_AES_128_GCM_SHA256
TLS_AES_256_GCM_SHA384
TLS_CHACHA20_POLY1305_SHA256

Mensagem de erro

Os serviços que oferecem suporte à restrição "Restringir pacotes de criptografia TLS" negam solicitações que violam a restrição.

Exemplo de mensagem de erro

A mensagem de erro tem um formato semelhante ao exemplo a seguir:

Request is disallowed by organization's constraints/gcp.restrictTLSCipherSuites
constraint for 'projects/PROJECT_NUMBER'.
Access to service
'SERVICE_NAME.googleapis.com' attempted with a disallowed TLS Cipher Suite: 'TLS_Cipher_Suite_X`
To access this resource, please use an allowed TLS Cipher Suite.

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 "Restringir pacotes de criptografia TLS".
  • TLS_Cipher_Suite_X: o pacote de criptografia TLS usado na solicitação.

Exemplo de registro de auditoria do Cloud

Uma entrada de registro de auditoria também é gerada para monitoramento, alerta ou depuração. A entrada de registro de auditoria é semelhante a este exemplo:

{
  logName: "projects/my-project-number/logs/cloudaudit.googleapis.com%2Fpolicy"
  protoPayload: {
    @type: "type.googleapis.com/google.cloud.audit.AuditLog"
    status: {
      code: 7
      message: "Request is disallowed by organization's TLS Cipher Suite Restriction Org Policy for 'projects/my-project-number'. Attempting to use service 'bigquery.googleapis.com' with a disallowed TLS Cipher Suite: 'TLS_Cipher_Suite_X`."
    }
    serviceName: "bigquery.googleapis.com"
    methodName: "google.cloud.bigquery.v2.TableDataService.InsertAll"
    resourceName: "projects/my-project-number"
    authenticationInfo: {
      principalEmail: "user_or_service_account@example.com"
    }
  }
  requestMetadata: {
    callerIp: "123.123.123.123"
  }
  policyViolationInfo: {
    orgPolicyViolationInfo: {
      violationInfo: [
        {
          constraint: "constraints/gcp.restrictTlsCipherSuites"
          errorMessage: "TLS Cipher Suite Restriction Org Policy is violated"
          policyType: "LIST_CONSTRAINT"
        }
      ]
    }
  }
  resource: {
    type: "audited_resource"
    labels: {
      project_id: "my-project-number"
      method: "google.cloud.bigquery.v2.TableDataService.InsertAll"
      service: "bigquery.googleapis.com"
    }
  }
  severity: "ERROR"
  timestamp: "2023-10-27T19:27:24.633477924Z"
  receiveTimestamp: "2023-10-27T19:27:25.071941737Z"
  insertId "42"
}

Testar a política

É possível testar a restrição da política de criptografia TLS para qualquer serviço no escopo. O exemplo de comando curl a seguir valida a restrição de pacotes de criptografia TLS para um keyring do Cloud Key Management Service.

curl --ciphers TLS_CIPHER_SUITE --tls_max 1.2 -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/global/keyRings" --verbose

Substitua as seguintes variáveis:

  • TLS_CIPHER_SUITE: o nome do pacote de criptografia TLS na convenção de nomenclatura do OpenSSL. Por exemplo, ECDHE-ECDSA-AES128-SHA, que é o nome do OpenSSL para TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA.

  • PROJECT_ID: nome do projeto que contém o keyring.

O exemplo de solicitação curl a seguir mostra PROJECT_ID definido como my-project-id e TLS_CIPHER_SUITE definido como ECDHE-ECDSA-AES128-SHA:

curl --ciphers ECDHE-ECDSA-AES128-SHA --tls-max 1.2 \
  GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://cloudkms.googleapis.com/v1/projects/my-project-id/locations/global/keyRings" --verbose

Se a política da organização para "my-project-id" estiver configurada para negar TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA , qualquer tentativa de acessar recursos com a criptografia no projeto restrito por política neste exemplo de comando vai falhar. Uma mensagem de erro semelhante ao exemplo a seguir é retornada, descrevendo o motivo dessa falha.

Request is disallowed by organization's constraints/gcp.restrictTLSCipherSuites
constraint for 'projects/my-project-id'.
Access to service cloudkms.googleapis.com attempted with a disallowed TLS Cipher
Suite: `TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA`.
To access this resource, please use an allowed TLS Cipher Suite.

Criar uma política da organização no modo de teste

Uma política da organização em modo de simulação é um tipo de política em que as violações são registradas em auditoria, mas as ações violadoras não são negadas. É possível criar uma política da organização no modo de simulação usando a restrição de pacote de criptografia TLS para monitorar como ela afetaria sua organização antes de aplicar a política ativa. Para mais informações, consulte Criar uma política da organização no modo de simulação.

Serviços compatíveis

Os seguintes serviços são compatíveis com a restrição de pacotes de criptografia TLS. A restrição se aplica a todas as variações do endpoint de API, incluindo endpoints globais, locais e regionais. Consulte a página Tipos de endpoints da API para mais informações.

Produto endpoint de API
API Gateway apigateway.googleapis.com
Chaves de API apikeys.googleapis.com
Access Context Manager accesscontextmanager.googleapis.com
Apigee apigee.googleapis.com
Hub de APIs da Apigee apihub.googleapis.com
API Apigee API Management apim.googleapis.com
API Apigee Connect apigeeconnect.googleapis.com
API do portal da Apigee apigeeportal.googleapis.com
API Apigee Registry apigeeregistry.googleapis.com
API App Config Manager appconfigmanager.googleapis.com
App Hub apphub.googleapis.com
App Design Center designcenter.googleapis.com
Application Integration integrations.googleapis.com
Artifact Analysis containeranalysis.googleapis.com
ondemandscanning.googleapis.com
Artifact Registry artifactregistry.googleapis.com
Software de código aberto Assured assuredoss.googleapis.com
Assured Workloads assuredworkloads.googleapis.com
Audit Manager auditmanager.googleapis.com
API Authorization Toolkit authztoolkit.googleapis.com
Lote batch.googleapis.com
Chrome Enterprise Premium beyondcorp.googleapis.com
BigLake biglake.googleapis.com
BigQuery bigquery.googleapis.com
BigQuery Connections bigqueryconnection.googleapis.com
Política de dados do BigQuery bigquerydatapolicy.googleapis.com
Transferência de dados do BigQuery bigquerydatatransfer.googleapis.com
Migração do BigQuery bigquerymigration.googleapis.com
Reserva do BigQuery bigqueryreservation.googleapis.com
API BigQuery Saved Query bigquery-sq.googleapis.com
BigQuery Storage bigquerystorage.googleapis.com
Bigtable bigtable.googleapis.com
bigtableadmin.googleapis.com
Autorização binária binaryauthorization.googleapis.com
Análise de blockchain blockchain.googleapis.com
Blockchain Node Engine blockchainnodeengine.googleapis.com
Gerenciador de validadores de blockchain blockchainvalidatormanager.googleapis.com
Planejador de capacidade capacityplanner.googleapis.com
Certificate Authority Service privateca.googleapis.com
Gerenciador de certificados certificatemanager.googleapis.com
Inventário de recursos do Cloud cloudasset.googleapis.com
Cloud Build cloudbuild.googleapis.com
Cloud CDN compute.googleapis.com
API Cloud Commerce Producer cloudcommerceproducer.googleapis.com
Cloud Composer composer.googleapis.com
API Cloud Controls Partner cloudcontrolspartner.googleapis.com
Cloud DNS dns.googleapis.com
Cloud Data Fusion datafusion.googleapis.com
Cloud Deployment Manager runtimeconfig.googleapis.com
deploymentmanager.googleapis.com
Cloud Domains domains.googleapis.com
API Cloud Healthcare healthcare.googleapis.com
Cloud Interconnect compute.googleapis.com
Sistema de detecção de intrusões do Cloud ids.googleapis.com
Cloud Key Management Service cloudkms.googleapis.com
Cloud Life Sciences lifesciences.googleapis.com
Cloud Load Balancing compute.googleapis.com
Cloud Logging logging.googleapis.com
Cloud Monitoring monitoring.googleapis.com
Cloud NAT compute.googleapis.com
API Cloud Natural Language language.googleapis.com
Firewall Essentials de última geração do Cloud compute.googleapis.com
networksecurity.googleapis.com
Padrão de firewall de última geração do Cloud compute.googleapis.com
networksecurity.googleapis.com
API Cloud OS Login oslogin.googleapis.com
Cloud Router compute.googleapis.com
Cloud Run run.googleapis.com
Cloud SQL sqladmin.googleapis.com
Cloud Service Mesh meshconfig.googleapis.com
networksecurity.googleapis.com
API Cloud Support cloudsupport.googleapis.com
Cloud Tool Results API toolresults.googleapis.com
Cloud VPN compute.googleapis.com
Cloud Workstations workstations.googleapis.com
API Commerce Agreement Publishing commerceagreementpublishing.googleapis.com
API Commerce Business Enablement commercebusinessenablement.googleapis.com
API Commerce Price Management commercepricemanagement.googleapis.com
Compute Engine compute.googleapis.com
Computação confidencial confidentialcomputing.googleapis.com
Conectar gkeconnect.googleapis.com
Conectar gateway connectgateway.googleapis.com
API Contact Center AI Platform contactcenteraiplatform.googleapis.com
Container Threat Detection containerthreatdetection.googleapis.com
API Content Warehouse contentwarehouse.googleapis.com
API Continuous Validation continuousvalidation.googleapis.com
API Data Labeling datalabeling.googleapis.com
API Data Security Posture Management dspm.googleapis.com
Database Migration Service datamigration.googleapis.com
Dataflow dataflow.googleapis.com
Dataplex Universal Catalog dataplex.googleapis.com
datalineage.googleapis.com
Dataproc no GDC dataprocgdc.googleapis.com
Google Distributed Cloud opsconfigmonitoring.googleapis.com
gdcvmmanager.googleapis.com
gdchardwaremanagement.googleapis.com
API Distributed Cloud Edge Container edgecontainer.googleapis.com
API Distributed Cloud Edge Network edgenetwork.googleapis.com
Enterprise Knowledge Graph enterpriseknowledgegraph.googleapis.com
Error Reporting clouderrorreporting.googleapis.com
Contatos essenciais essentialcontacts.googleapis.com
Eventarc eventarc.googleapis.com
Filestore file.googleapis.com
API Financial Services financialservices.googleapis.com
Firebase App Hosting firebaseapphosting.googleapis.com
Firebase Data Connect firebasedataconnect.googleapis.com
Regras de segurança do Firebase firebaserules.googleapis.com
GKE Dataplane Management gkedataplanemanagement.googleapis.com
API GKE Enterprise Edge anthosedge.googleapis.com
Hub (frota) gkehub.googleapis.com
GKE Multi-cloud gkemulticloud.googleapis.com
API GKE On-Prem gkeonprem.googleapis.com
API Gemini para Google Cloud cloudaicompanion.googleapis.com
API Google Cloud cloud.googleapis.com
Google Cloud Armor compute.googleapis.com
Centro de migração do Google Cloud migrationcenter.googleapis.com
Google Cloud Observability stackdriver.googleapis.com
Google Kubernetes Engine container.googleapis.com
configdelivery.googleapis.com
Google Security Operations SIEM chronicle.googleapis.com
chronicleservicemanager.googleapis.com
API Google Security Operations Partner chroniclepartner.googleapis.com
Complementos do Google Workspace gsuiteaddons.googleapis.com
Identity and Access Management iam.googleapis.com
Identity-Aware Proxy iap.googleapis.com
Immersive Stream stream.googleapis.com
Infrastructure Manager config.googleapis.com
Conectores de integração connectors.googleapis.com
KRM API Hosting krmapihosting.googleapis.com
API Live Stream livestream.googleapis.com
Looker Studio datastudio.googleapis.com
O BigQuery Engine para Apache Flink managedflink.googleapis.com
API Managed Kafka managedkafka.googleapis.com
Gerenciamento de serviços servicemanagement.googleapis.com
Media Asset Manager mediaasset.googleapis.com
Memorystore for Memcached memcache.googleapis.com
Memorystore for Redis redis.googleapis.com
API Message Streams messagestreams.googleapis.com
API Microservices microservices.googleapis.com
Model Armor modelarmor.googleapis.com
Network Connectivity Center networkconnectivity.googleapis.com
Network Intelligence Center networkmanagement.googleapis.com
Níveis de serviço de rede compute.googleapis.com
Persistent Disk compute.googleapis.com
Oracle Database@Google Cloud oracledatabase.googleapis.com
Parallelstore parallelstore.googleapis.com
Analisador de políticas policyanalyzer.googleapis.com
Solucionador de problemas de políticas policytroubleshooter.googleapis.com
Lançamento progressivo progressiverollout.googleapis.com
Pub/Sub pubsub.googleapis.com
Public Certificate Authority publicca.googleapis.com
Recomendador recommender.googleapis.com
Remote Build Execution remotebuildexecution.googleapis.com
API Retail retail.googleapis.com
Hub de seguro cibernético riskmanager.googleapis.com
API SaaS Service Management saasservicemgmt.googleapis.com
API SecLM seclm.googleapis.com
Secret Manager secretmanager.googleapis.com
Security Command Center securitycenter.googleapis.com
securitycentermanagement.googleapis.com
securityposture.googleapis.com
Cloud Data Loss Prevention dlp.googleapis.com
API Service Account Credentials iamcredentials.googleapis.com
Diretório de serviços servicedirectory.googleapis.com
Rede de serviços servicenetworking.googleapis.com
Spanner spanner.googleapis.com
Speaker ID speakerid.googleapis.com
Speech-to-Text speech.googleapis.com
Storage Insights storageinsights.googleapis.com
Serviço de transferência do Cloud Storage storagebatchoperations.googleapis.com
Text-to-Speech texttospeech.googleapis.com
API Timeseries Insights timeseriesinsights.googleapis.com
API Transcoder transcoder.googleapis.com
Transfer Appliance transferappliance.googleapis.com
VM Manager osconfig.googleapis.com
API Vertex AI aiplatform.googleapis.com
Vertex AI Workbench notebooks.googleapis.com
Vertex AI no Firebase firebasevertexai.googleapis.com
Nuvem privada virtual (VPC) compute.googleapis.com
API Video Search cloudvideosearch.googleapis.com
API Video Stitcher videostitcher.googleapis.com
Web Risk webrisk.googleapis.com
Web Security Scanner websecurityscanner.googleapis.com
Fluxos de trabalho workflows.googleapis.com
API Workload Certificate workloadcertificate.googleapis.com

Serviços sem suporte

A restrição da política da organização "Restringir pacotes de criptografia TLS" não se aplica 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 os pacotes de criptografia TLS desses serviços, use o Cloud Load Balancing com a política de segurança SSL.

Preferência deGoogle Cloud pacote de criptografia

Os endpoints para serviços compatíveis priorizam o AES-256 em vez do AES-128 e do ChaCha20. Os clientes que oferecem suporte ao AES-256 devem negociar com sucesso sem exigir mudanças na configuração.