Delen via


Beveiliging configureren voor uw PostgreSQL-server met Azure Arc

In dit document worden verschillende aspecten beschreven met betrekking tot de beveiliging van uw servergroep:

  • Versleuteling 'at rest'
  • Postgres-rollen en gebruikersbeheer
    • Algemene perspectieven
    • Het wachtwoord van de postgres-gebruiker met beheerdersrechten wijzigen
  • Controleren

Notitie

Omdat het om een preview-functie gaat, is de technologie die in dit artikel wordt behandeld onderhevig aan de Aanvullende gebruiksvoorwaarden voor Microsoft Azure Previews.

De meest recente updates zijn beschikbaar in de releaseopmerkingen.

Versleuteling 'at rest'

U kunt versleuteling in rust implementeren door de schijven waarop u uw databases opslaat en/of door databasefuncties te gebruiken om de gegevens die u invoegt of bijwerkt, te versleutelen.

Hardware: Linux-hostvolumeversleuteling

Implementeer systeemgegevensversleuteling om gegevens te beveiligen die zich op de schijven bevinden die worden gebruikt door de installatie van Azure Arc-gegevensservices. Meer informatie over dit onderwerp vindt u:

Software: Gebruik de PostgreSQL-extensie pgcrypto in uw servergroep

Naast het versleutelen van de schijven die worden gebruikt voor het hosten van uw Azure Arc-installatie, kunt u uw PostgreSQL-server met Azure Arc configureren om mechanismen beschikbaar te stellen die uw toepassingen kunnen gebruiken om gegevens in uw database(s) te versleutelen. De pgcrypto extensie maakt deel uit van de contrib extensies van Postgres en is beschikbaar op uw PostgreSQL-server met Azure Arc. Hier vindt u meer informatie over de pgcrypto extensie. Kortom, met de volgende opdrachten schakelt u de extensie in, maakt u deze en gebruikt u deze:

pgcrypto De extensie maken

Verbinding maken naar uw servergroep met het clienthulpprogramma van uw keuze en voer de standaard PostgreSQL-query uit:

CREATE EXTENSION pgcrypto;

Hier vindt u meer informatie over hoe u verbinding maakt.

Controleer de lijst met extensies die klaar zijn voor gebruik in uw servergroep

U kunt controleren of de pgcrypto extensie gereed is voor gebruik door de extensies weer te geven die beschikbaar zijn in uw servergroep. Verbinding maken naar uw servergroep met het clienthulpprogramma van uw keuze en voer de standaard PostgreSQL-query uit:

select * from pg_extension;

U zou moeten zien pgcrypto of u deze hebt ingeschakeld en gemaakt met de opdrachten die hierboven zijn aangegeven.

pgcrypto De extensie gebruiken

U kunt nu de code van uw toepassingen aanpassen zodat ze gebruikmaken van een van de functies die worden aangeboden door pgcrypto:

  • Algemene hash-functies
  • Functies voor wachtwoord-hashing
  • PGP-versleutelingsfuncties
  • Onbewerkte versleutelingsfuncties
  • Functies voor willekeurige gegevens

Bijvoorbeeld om hashwaarden te genereren. Voer de opdracht uit:

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

Retourneert de volgende hash:

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

Of bijvoorbeeld:

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

Retourneert de volgende hash:

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

Of bijvoorbeeld om versleutelde gegevens op te slaan, zoals een wachtwoord:

  • In een toepassing worden geheimen opgeslagen in de volgende tabel:

    create table mysecrets(USERid int, USERname char(255), USERpassword char(512));
    
  • Hun wachtwoord versleutelen bij het maken van een gebruiker:

    insert into mysecrets values (1, 'Me', crypt('MySecretPasswrod', gen_salt('md5')));
    
  • U ziet dat het wachtwoord is versleuteld:

    select * from mysecrets;
    

Uitvoer:

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

Wanneer u verbinding maakt met de toepassing en een wachtwoord doorgeeft, wordt in de mysecrets tabel gezocht en wordt de naam van de gebruiker geretourneerd als er een overeenkomst is tussen het wachtwoord dat is opgegeven voor de toepassing en de wachtwoorden die in de tabel zijn opgeslagen. Bijvoorbeeld:

  • Geef het verkeerde wachtwoord door:

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

    Uitvoer

      USERname
    ---------
    (0 rows)
    
  • Geef het juiste wachtwoord door:

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

    Uitvoer:

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

In dit kleine voorbeeld ziet u dat u data-at-rest kunt versleutelen (versleutelde gegevens opslaan) op een PostgreSQL-server met Azure Arc met behulp van de Postgres-extensie pgcrypto en dat uw toepassingen functies kunnen gebruiken die worden aangeboden om pgcrypto deze versleutelde gegevens te manipuleren.

Postgres-rollen en gebruikersbeheer

Algemene perspectieven

Als u rollen en gebruikers in uw PostgreSQL-server met Azure Arc wilt configureren, gebruikt u de standaard Postgres-manier om rollen en gebruikers te beheren. Lees hier voor meer informatie.

Controleren

Voor controlescenario's configureert u uw servergroep voor het gebruik van de pgaudit extensies van Postgres. Zie Het GitHub-project voor meer informatie pgauditpgAudit. Als u de pgaudit extensie in uw servergroep wilt inschakelen, leest u PostgreSQL-extensies gebruiken.

SSL-verbinding gebruiken

SSL is vereist voor clientverbindingen. In verbindingsreeks mag de parameter SSL-modus niet worden uitgeschakeld. Formulier verbindingsreeks s.