Validação de certificados de servidor TLS

Os pipelines de conectores de base de dados Lakeflow Connect encriptam todos os dados em trânsito usando TLS. Começando com pipelines recém-criados, o Lakeflow Connect também valida o certificado TLS do servidor de base de dados de origem. Esta validação de certificado verifica que o pipeline está ligado ao servidor pretendido — e não a um impostor — e previne ataques de pessoa no meio (PITM).

Esta página aplica-se aos conectores MySQL, PostgreSQL e SQL Server Lakeflow Connect.

Como funciona a validação de certificados

Quando um novo pipeline se liga a uma base de dados de origem, o Lakeflow Connect verifica o certificado TLS do servidor contra um certificado CA de confiança. O pipeline falha ao conectar-se caso o certificado não possa ser verificado.

As alterações de validação de certificados não afetam os pipelines existentes. Pipelines recém-criados têm a validação de certificados ativada por predefinição.

O comportamento padrão de validação difere consoante o conector:

Connector Comportamento padrão quando não é fornecido certificado da CA
MySQL O pipeline não consegue conectar. O MySQL requer um certificado CA explícito porque a utilidade de replicação binlog do MySQL não utiliza a JVM Truststore. Deve fornecer um certificado de CA na ligação ou optar por não receber validação.
PostgreSQL O pipeline liga-se através do trust store padrão da JVM, que inclui autoridades públicas de certificação bem conhecidas (por exemplo, DigiCert e Let's Encrypt). Se o seu servidor PostgreSQL usar um certificado de uma CA pública reconhecida, não é necessária qualquer ação. Se o seu servidor usar uma CA privada ou interna, deve fornecer um certificado de CA personalizado.
SQL Server O pipeline liga-se através do trust store padrão da JVM, que inclui as conhecidas autoridades públicas de certificação. Se o seu SQL Server usar um certificado de uma CA pública reconhecida, não é necessária qualquer ação. Se o seu servidor usar uma CA privada ou interna, deve fornecer um certificado de CA personalizado.

Fornecer um certificado CA

Se o seu servidor de base de dados usar um certificado de uma CA privada ou interna — ou se estiver a usar MySQL — adicione o seu certificado de CA à ligação Unity Catalog que o pipeline utiliza.

Criar ou atualizar uma ligação com um certificado da CA

Interface do usuário do Databricks

Para adicionar um certificado de CA ao criar uma nova ligação:

  1. No espaço de trabalho Azure Databricks, clique em Ícone de dados. Catálogo.
  2. Clique em Criar e selecione Criar ligação.
  3. Insira um nome de Ligação e selecione o tipo de Ligação para a sua base de dados.
  4. Clique em Next.
  5. Na página de Autenticação , introduza as credenciais host, port e login.
  6. No campo do certificado SSL , cole o conteúdo do seu ficheiro de certificado CA (formato PEM).
  7. Clique em Criar conexão.

Para atualizar uma ligação existente para adicionar um certificado CA:

  1. No espaço de trabalho Azure Databricks, clique em Ícone de dados. Catálogo.
  2. No Explorador de Catálogos, vá à conexão.
  3. Clique em Editar.
  4. No campo do certificado SSL , cole o conteúdo do seu ficheiro de certificado CA (formato PEM).
  5. Salve suas alterações.

CLI do Databricks

Inclua o certificado da CA no options objeto ao criar uma ligação. Os exemplos seguintes mostram a opção de certificado CA para cada conector.

MySQL:

databricks connections create --json '{
  "name": "my_mysql_connection",
  "connection_type": "MYSQL",
  "options": {
    "host": "<host>",
    "port": "3306",
    "user": "<username>",
    "password": "<password>",
    "ssl_ca": "<CA certificate content in PEM format>"
  }
}'

PostgreSQL:

databricks connections create --json '{
  "name": "my_postgresql_connection",
  "connection_type": "POSTGRESQL",
  "options": {
    "host": "<host>",
    "port": "5432",
    "database": "<database>",
    "user": "<username>",
    "password": "<password>",
    "ssl_ca": "<CA certificate content in PEM format>"
  }
}'

SQL Server:

databricks connections create --json '{
  "name": "my_sqlserver_connection",
  "connection_type": "SQLSERVER",
  "options": {
    "host": "<host>",
    "port": "1433",
    "user": "<username>",
    "password": "<password>",
    "ssl_ca": "<CA certificate content in PEM format>"
  }
}'

Optar por não participar na validação de certificados (não recomendado)

Warning

Desativar a validação de certificados expõe os seus pipelines a ataques de pessoa no meio (PITM) e não deve ser usado em ambientes de produção. A Databricks recomenda fornecer um certificado de CA em vez disso.

Se o seu ambiente não suportar validação de certificados, pode configurar a ligação para confiar no certificado do servidor sem o verificar com uma CA. Defina trustServerCertificate para true nas opções de ligação.

Interface do usuário do Databricks

Ao criar ou editar uma ligação no Explorador de Catálogos, selecione Certificado de servidor de confiança para saltar a validação do certificado.

CLI do Databricks

databricks connections create --json '{
  "name": "my_connection",
  "connection_type": "POSTGRESQL",
  "options": {
    "host": "<host>",
    "port": "5432",
    "database": "<database>",
    "user": "<username>",
    "password": "<password>",
    "trustServerCertificate": "true"
  }
}'

Espaços de trabalho HIPAA e FedRAMP

Em espaços de trabalho com configurações de conformidade com HIPAA ou FedRAMP, o Lakeflow Connect aplica a versão TLS 1.2 ou 1.3 para todas as ligações de conectores de base de dados. Este requisito não pode ser desligado.

Solucionar erros de certificado TLS

Se um pipeline falhar devido a um erro de certificado TLS, verifique o registo de eventos do pipeline associado ao gateway de ingestão. O registo de eventos regista erros de ligação, incluindo falhas de validação de certificados, com detalhes para o ajudar a diagnosticar o problema.

Causas e resoluções comuns:

Erro Causa provável Resolução
PKIX path building failed ou unable to find valid certification path O certificado de CA do servidor não está na loja de confiança da JVM e não foi fornecido nenhum certificado de CA personalizado. Forneça o certificado CA na ligação ao Catálogo Unity.
SSL connection has been closed unexpectedly O servidor não suporta TLS nem requer uma versão diferente do TLS. Verifica se o TLS está ativado no teu servidor de base de dados. Em espaços de trabalho HIPAA e FedRAMP, é necessário o TLS 1.2 ou 1.3.
Connection refused ou o pipeline falha imediatamente no MySQL Não foi fornecido qualquer certificado de CA e trustServerCertificate não está definido. Forneça o certificado da CA para o MySQL, ou opte por não validar se não conseguir fornecer um certificado.

Para mais resolução de problemas específica do conector, veja: