Sdílet prostřednictvím


Konfigurace zabezpečení pro server PostgreSQL s podporou Služby Azure Arc

Tento dokument popisuje různé aspekty související se zabezpečením skupiny serverů:

  • Šifrování neaktivních uložených dat
  • Správa rolí Postgres a uživatelů
    • Obecné perspektivy
    • Změna hesla správce postgres
  • Audit

Poznámka:

Jako funkce ve verzi Preview platí, že technologie uvedená v tomto článku podléhá dodatečným podmínkám použití pro verze Microsoft Azure Preview.

Nejnovější aktualizace jsou k dispozici v poznámkách k verzi.

Šifrování neaktivních uložených dat

Šifrování neaktivních uložených uložených dat můžete implementovat buď šifrováním disků, na kterých ukládáte databáze, nebo pomocí databázových funkcí k šifrování dat, která vkládáte nebo aktualizujete.

Hardware: Šifrování hostitelského svazku s Linuxem

Implementujte šifrování systémových dat pro zabezpečení všech dat, která se nacházejí na discích používaných nastavením datových služeb s podporou Služby Azure Arc. Další informace o tomto tématu najdete tady:

Software: Použití rozšíření PostgreSQL pgcrypto ve skupině serverů

Kromě šifrování disků používaných k hostování instalace Azure Arc můžete nakonfigurovat server PostgreSQL s podporou Azure Arc tak, aby zpřístupnil mechanismy, které vaše aplikace můžou použít k šifrování dat v databázích. Toto pgcrypto rozšíření je součástí contrib rozšíření Postgres a je k dispozici na vašem serveru PostgreSQL s podporou Služby Arc. Podrobnosti o pgcrypto rozšíření najdete tady. Stručně řečeno, pomocí následujících příkazů povolíte rozšíření, vytvoříte ho a použijete ho:

pgcrypto Vytvoření rozšíření

Připojte se ke skupině serverů pomocí klientského nástroje podle vašeho výběru a spusťte standardní dotaz PostgreSQL:

CREATE EXTENSION pgcrypto;

Podrobnosti o tom, jak se připojit, najdete tady .

Ověřte seznam rozšíření připravených k použití ve skupině serverů.

Přidáním rozšíření dostupných ve skupině serverů můžete ověřit, že pgcrypto je rozšíření připravené k použití. Připojte se ke skupině serverů pomocí klientského nástroje podle vašeho výběru a spusťte standardní dotaz PostgreSQL:

select * from pg_extension;

Měli byste vidět pgcrypto , jestli jste ho povolili a vytvořili pomocí výše uvedených příkazů.

pgcrypto Použití rozšíření

Teď můžete kód upravit tak, aby používaly některou z funkcí, které pgcryptonabízí:

  • Obecné funkce hash
  • Funkce hashování hesel
  • Funkce šifrování PGP
  • Nezpracované funkce šifrování
  • Funkce náhodných dat

Například k vygenerování hodnot hash. Spusťte příkaz:

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

Vrátí následující hodnotu hash:

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

Nebo například:

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

Vrátí následující hodnotu hash:

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

Nebo například k ukládání šifrovaných dat, jako je heslo:

  • Aplikace ukládá tajné kódy v následující tabulce:

    create table mysecrets(USERid int, USERname char(255), USERpassword char(512));
    
  • Šifrování hesla při vytváření uživatele:

    insert into mysecrets values (1, 'Me', crypt('MySecretPasswrod', gen_salt('md5')));
    
  • Všimněte si, že heslo je šifrované:

    select * from mysecrets;
    

Výstup:

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

Když se připojíte k aplikaci a předáte mu heslo, vyhledá se v mysecrets tabulce a vrátí jméno uživatele, pokud existuje shoda mezi heslem, které je zadané aplikaci, a hesly uloženými v tabulce. Příklad:

  • Předání nesprávného hesla:

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

    Výstup

      USERname
    ---------
    (0 rows)
    
  • Předejte správné heslo:

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

    Výstup:

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

Tento malý příklad ukazuje, že můžete šifrovat neaktivní uložená data (ukládat šifrovaná data) na serveru PostgreSQL s podporou služby Azure Arc pomocí rozšíření Postgres pgcrypto a aplikace můžou používat funkce nabízené pgcrypto k manipulaci s tímto šifrovaným datem.

Správa rolí Postgres a uživatelů

Obecné perspektivy

Ke konfiguraci rolí a uživatelů na serveru PostgreSQL s podporou Služby Azure Arc použijte standardní způsob správy rolí a uživatelů Postgres. Další podrobnosti najdete tady.

Audit

V případě scénářů auditu nakonfigurujte skupinu serverů tak, aby používala pgaudit rozšíření Postgres. Další podrobnosti o pgaudit pgAudit projektu GitHub. Pokud chcete rozšíření povolit pgaudit ve skupině serverů, přečtěte si o použití rozšíření PostgreSQL.

Použití připojení SSL

Pro připojení klientů se vyžaduje protokol SSL. V připojovací řetězec by neměl být parametr režimu SSL zakázán. Formuláře připojovací řetězec.