Partilhar via


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

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

  • Encriptação inativa
  • Funções do Postgres e gerenciamento de usuários
    • Perspetivas gerais
    • Alterar a senha do usuário administrativo do postgres
  • Audit

Nota

Como funcionalidade de pré-visualização, a tecnologia apresentada neste artigo está sujeita aos Termos de Utilização Suplementares para Pré-visualizações do Microsoft Azure.

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

Encriptação inativa

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

Hardware: criptografia de volume do host Linux

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

Software: Use a extensão PostgreSQL pgcrypto em seu grupo de servidores

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

Criar a pgcrypto extensão

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

CREATE EXTENSION pgcrypto;

Encontre detalhes aqui sobre como se conectar.

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

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

select * from pg_extension;

Você deve ver pgcrypto se você ativou e criou com os comandos indicados acima.

Use a pgcrypto extensão

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

  • Funções de hashing gerais
  • Funções de hashing de palavras-passe
  • Funções de encriptação PGP
  • Funções de criptografia brutas
  • Funções de dados aleatórios

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

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

Devolve o seguinte hash:

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

Ou, por exemplo:

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

Devolve 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 sua 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 procura na mysecrets tabela e retorna o nome do usuário se houver uma correspondência entre a senha fornecida ao aplicativo e as senhas armazenadas na tabela. Por exemplo:

  • Passe a senha errada:

    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 em repouso (armazenar dados criptografados) no servidor PostgreSQL habilitado para Azure Arc usando a extensão Postgres pgcrypto e seus aplicativos podem usar funções oferecidas por pgcrypto para manipular esses dados criptografados.

Funções do Postgres e gerenciamento de usuários

Perspetivas gerais

Para configurar funções e usuários em seu servidor PostgreSQL habilitado para Azure Arc, use a maneira padrão do Postgres para gerenciar funções e usuários. Para mais detalhes, leia aqui.

Audit

Para cenários de auditoria, configure seu grupo de servidores para usar as pgaudit extensões do Postgres. Para obter mais detalhes sobre pgaudit o projeto pgAuditGitHub. Para habilitar a pgaudit extensão em seu grupo de servidores, leia Usar extensões PostgreSQL.

Usar conexão SSL

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