Certificados SSL do Snowflake Postgres¶
O Snowflake Postgres é executado com conexões SSL seguras aos clusters. Ao conectar clientes e aplicativos a um cluster, inclua SSLMODE=require em suas configurações ou a configuração equivalente para drivers não baseados em libpq. Para obter mais detalhes e dicas de solução de problemas de conexão, consulte Conectando ao Snowflake Postgres.
Para ter uma camada adicional de segurança, administradores e proprietários de instâncias podem recuperar a parte do certificado público do par de chaves privadas e certificados públicos da autoridade de certificação (certificate authority, CA) raiz utilizado para assinar o certificado de cada servidor Snowflake Postgres. Esses certificados CA raiz (e as chaves privadas não compartilhadas) são exclusivos para cada conta Snowflake. Uma vez obtido, o certificado CA raiz pode ser utilizado para verificação adicional dos certificados do servidor apresentados no momento da conexão para proteção contra ataques man-in-the-middle (MITM).
Recuperando o certificado raiz público SSL¶
No menu de navegação, selecione Postgres.
No menu More Options [⋮] no canto superior direito, selecione Download Certificate.
Selecione Download na caixa de diálogo de confirmação.
Você pode recuperar o certificado CA raiz do campo certificate retornado pelo comando DESCRIBE POSTGRES INSTANCE. Esse certificado é o mesmo para todas as instâncias em uma determinada conta.
DESCRIBE POSTGRES INSTANCE my_postgres
->> SELECT "property", "value"
FROM $1
WHERE "property" = 'certificate';
Configurando clientes Postgres para verificação de certificados SSL¶
Coloque o texto do certificado CA raiz, incluindo as linhas «—–BEGIN CERTIFICATE—–» e «—–END CERTIFICATE—–», em um arquivo em um local seguro no host do seu cliente. Se você já tiver um arquivo de armazenamento CA raiz com conteúdo que deseja reutilizar, poderá adicionar o texto do seu certificado CA raiz do Snowflake Postgres a ele.
Na configuração da sua conexão:
Especifique o local do certificado público CA raiz com o parâmetro
sslrootcert=/path/to/root/certfilenos parâmetros de conexão.Especifique
sslmode=verify-caousslmode=verify-full(em vez desslmode=require) nos parâmetros de conexão.
Nota
sslrootcert tem o valor padrão de $HOME/.postgresql/root.crt para o usuário do sistema cliente que está fazendo a conexão. Se você colocar seu certificado CA raiz nesse local, não precisará especificar o parâmetro sslrootcert para sua conexão.
Veja como esses dois valores sslmode funcionam:
verify-ca: verifica se o servidor é confiável, conferindo se ele foi assinado pelo par de certificados CA raiz usando o certificado público CA raiz atual.
verify-full: executa a verificação
verify-cae, além disso, verifica se o nome do host do servidor corresponde a um nome armazenado no certificado do servidor. O Snowflake garante que isso funcionará para todos os certificados de servidor assinados com a CA raiz da sua conta.
A conexão SSL falhará se não for possível verificar o certificado do servidor de acordo com o parâmetro sslmode especificado. O Snowflake recomenda o uso de verify-full na maioria dos ambientes com alta exigência de segurança.
Aviso
Se houver um certificado CA raiz presente, sslmode=require realizará a mesma verificação que sslmode=verify-ca. A presença de um certificado CA raiz em $HOME/.postgresql/root.crt para um servidor com um certificado assinado por uma CA diferente é uma fonte comum de erros de conexão SSL. Se isso acontecer, simplesmente adicione o texto do seu certificado CA raiz do Snowflake a esse arquivo ou coloque-o em outro local especificado pelo parâmetro sslrootcert da conexão.
Nota
Para obter uma explicação completa de como esses diferentes níveis de configuração sslmode impedem ataques MITM, consulte o capítulo do PostgreSQL sobre Proteção fornecida em diferentes configurações de sslmode.