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:
- Šifrování neaktivních uložených dat v Linuxu obecně
- Šifrování disků pomocí příkazu LUKS
cryptsetup
(Linux)(https://www.cyberciti.biz/security/howto-linux-hard-disk-encryption-with-luks-cryptsetup-command/) konkrétně Vzhledem k tomu, že datové služby s podporou Služby Azure Arc běží na fyzické infrastruktuře, kterou poskytujete, máte na starosti zabezpečení infrastruktury.
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é pgcrypto
nabí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.
Související obsah
- Zobrazit
pgcrypto
rozšíření - Viz Použití rozšíření PostgreSQL