Compartilhar via


Configurar a segurança do seu servidor PostgreSQL habilitado para Azure Arc

Este documento descreve vários aspectos relacionados à segurança do seu grupo de servidores:

  • Criptografia em repouso
  • Gerenciamento de funções e usuários do Postgres
    • Perspectivas gerais
    • Alterar a senha do usuário administrativo postgres
  • Audit

Observação

Como uma versão prévia do recurso, a tecnologia apresentada neste artigo está sujeita aos Termos de uso complementares para versões prévias do Microsoft Azure.

As atualizações mais recentes estão disponíveis nas notas sobre a versão.

Criptografia em repouso

Você pode implementar a criptografia em repouso criptografando os discos nos quais armazena os bancos de dados e/ou usando as funções de banco de dado para criptografar os dados inseridos ou atualizados.

Hardware: criptografia de volume do host do Linux

Implemente a criptografia de dados do sistema para proteger os dados que residem nos discos usados pela configuração dos Serviços de Dados habilitados para Azure Arc. Leia mais sobre este tópico:

Software: use a extensão PostgreSQL pgcrypto no seu grupo de servidores

Além de criptografar os discos usados para hospedar a sua configuração do Azure Arc, você pode configurar o seu servidor PostgreSQL habilitado para Azure Arc a fim de expor mecanismos que os seus aplicativos podem usar para criptografar dados nos bancos de dados. A extensão pgcrypto faz parte das extensões contrib de Postgres e está disponível no seu servidor PostgreSQL habilitado para Azure Arc. Você encontra detalhes sobre a extensão pgcrypto aqui. Em resumo, com os seguintes comandos, você habilita, cria e usa a extensão:

Criar a extensão pgcrypto

Conecte-se ao grupo de servidores com a ferramenta de cliente de sua escolha e execute a consulta PostgreSQL padrão:

CREATE EXTENSION pgcrypto;

Você encontra detalhes aqui sobre como se conectar.

Verifique a lista de extensões prontas para uso em seu grupo de servidores

Você pode verificar se a extensão pgcrypto está pronta para uso listando as extensões disponíveis em seu grupo de servidores. Conecte-se ao grupo de servidores com a ferramenta de cliente de sua escolha e execute a consulta PostgreSQL padrão:

select * from pg_extension;

Você deverá ver pgcrypto se a tiver habilitado e criado com os comandos indicados acima.

Usar a extensão pgcrypto

Agora você pode ajustar o código dos seus aplicativos para que eles usem qualquer uma das funções oferecidas por pgcrypto:

  • Funções gerais de hash
  • Funções de hash de senha
  • Funções de criptografia PGP
  • Funções de criptografia bruta
  • Funções de dados aleatórios

Por exemplo, para gerar valores de hash. Execute o comando:

select crypt('Les sanglots longs des violons de l_automne', gen_salt('md5'));

Retorna o seguinte hash:

              crypt
------------------------------------
 $1$/9ACBYOV$z52PAGjQ5WTU9xvEECBNv/   

Ou, por exemplo:

select hmac('Les sanglots longs des violons de l_automne', 'md5', 'sha256');

Retorna o seguinte hash:

                                hmac
--------------------------------------------------------------------
 \xd4e4790b69d2cc8dbce3385ee63272bc7760f1603640bb211a7b864e695570c5

Ou, por exemplo, para armazenar dados criptografados, como uma senha:

  • Um aplicativo armazena segredos na tabela a seguir:

    create table mysecrets(USERid int, USERname char(255), USERpassword char(512));
    
  • Criptografe a senha ao criar um usuário:

    insert into mysecrets values (1, 'Me', crypt('MySecretPasswrod', gen_salt('md5')));
    
  • Observe que a senha está criptografada:

    select * from mysecrets;
    

Saída:

- USERid: 1
- USERname: Me
- USERpassword: $1$Uc7jzZOp$NTfcGo7F10zGOkXOwjHy31

Quando você se conecta ao aplicativo e passa uma senha, ele faz uma pesquisa na tabela mysecrets e retorna o nome do usuário se houver uma correspondência entre a senha fornecida para o aplicativo e as senhas armazenadas na tabela. Por exemplo:

  • Passe a senha incorreta:

    select USERname from mysecrets where (USERpassword = crypt('WrongPassword', USERpassword));
    

    Saída

      USERname
    ---------
    (0 rows)
    
  • Passe a senha correta:

    select USERname from mysecrets where (USERpassword = crypt('MySecretPasswrod', USERpassword));
    

    Saída:

      USERname
    ---------
    Me
    (1 row)
    

Este pequeno exemplo demonstra que você pode criptografar dados inativos (armazenar dados criptografados) no servidor PostgreSQL habilitado para Azure Arc usando a extensão pgcrypto Postgres, e os seus aplicativos podem usar funções oferecidas por pgcrypto para manipular esses dados criptografados.

Gerenciamento de funções e usuários do Postgres

Perspectivas gerais

Para configurar funções e usuários no seu servidor PostgreSQL habilitado para Azure Arc, use o modo Postgres padrão para gerenciar funções e usuários. Clique aqui para ler mais detalhes.

Audit

Para cenários de auditoria, configure seu grupo de servidores para usar as extensões pgaudit do Postgres. Para saber mais sobre pgaudit, confira o projeto do GitHubpgAudit. Para habilitar a extensão pgaudit no grupo de servidores, leia Usar extensões PostgreSQL.

Usar conexão SSL

O SSL é necessário para conexões de cliente. Na cadeia de conexão, o parâmetro do modo SSL não deve ser desabilitado. Formatar cadeias de conexão.