sql >> Databáze >  >> RDS >> MariaDB

Bezpečnostní úvahy pro nasazení MariaDB v prostředí hybridního cloudu

Hybridní cloud může být skvělým způsobem, jak přidat flexibilitu do vašich stávajících on-prem nasazení. Jak jsme diskutovali v několika blozích, veřejný cloud může být skvělým doplňkem vašeho vlastního datového centra, který zajistí, že jej můžete snadno škálovat, abyste zvládli zátěž, snížili své kapitálové výdaje a mohli jej použít k implementaci postupů obnovy po havárii. Zabezpečení je dalším aspektem, na který musíte myslet, když plánujete výstavbu takových systémů. V tomto příspěvku na blogu budeme hovořit o některých bezpečnostních aspektech nasazení hybridního cloudu MariaDB.

Připojení

VPN

Hlavní součástí každé hybridní infrastruktury je síť. Koneckonců, mluvíme o dvou prostředích, lokálním, on-premises a veřejném cloudu, která musí být propojena a tvořit jeden celek. Spojení musí být šifrováno. Jak k tomu přistupovat, existuje mnoho způsobů, jak toho dosáhnout.

Jedním z nich by bylo použití řešení, které poskytuje poskytovatel cloudu – většina z nich má k dispozici nějakou možnost připojení. Pokud se náhodou integrujete s webovými službami Amazon, může to být AWS Direct Connect. Pokud plánujete používat Google Cloud, řešení jsou diskutována na následující webové stránce:https://cloud.google.com/hybrid-connectivity. Stručně řečeno, existuje značný počet různých možností, které se liší od hardwarové integrace VPN po nastavení partnerského vztahu BGP.

Na druhé straně spektra máme softwarová řešení VPN. OpenVPN nebo podobný druh softwaru lze použít k nastavení zabezpečeného, ​​šifrovaného síťového připojení mezi vaším vlastním datovým centrem a veřejným cloudem. V takovém případě byste vyžadovali samostatnou instanci spuštěnou ve veřejném cloudu, která bude použita pro server VPN. Využití softwarových sítí VPN vám umožní vybrat si řešení, které nejlépe vyhovuje vašim požadavkům a nejlépe vyhovuje vašemu prostředí.

Firewall

Databáze by nikdy neměly být přístupné z externích sítí. Je prvořadé vytvořit své prostředí tak, aby databázová vrstva byla dosažitelná pouze z omezené sady hostitelů. Co přesně je potřeba a jak to udělat, je na vás, abyste se rozhodli. Typické nastavení by sestávalo ze zabezpečené databázové vrstvy, ke které lze přistupovat pouze z proxy vrstvy, a v případě potřeby by měl být implementován nějaký druh skokového hostitele, pokud je vyžadován pro automatizační a administrativní úlohy.

Aplikační servery by neměly mít přímý přístup k databázi – nepotřebují. Vše, co by aplikace měla udělat, je připojit se k load balanceru. Nástroj pro vyrovnávání zátěže by měl být schopen se připojit k databázi. Nástroj pro vyrovnávání zatížení, jako je ProxySQL, je dokonale schopen provádět rozdělení čtení/zápisu a odesílání čtení a zápisů do správných databázových uzlů. Aplikace by se měla umět připojit k ProxySQL a o zbytek se bude starat proxy - autentizace databáze, tvarování provozu, distribuce provozu přes četné repliky, které můžete mít. Měl by být omezen veškerý nepotřebný přístup. Skupiny zabezpečení, firewally – to jsou nástroje, které chcete použít k zabezpečení svého prostředí.

Stručně řečeno, přístup k hostitelům databáze by měl být povolen pouze na požadovaných portech. Pro MariaDB to bude samozřejmě port používaný pro databázi, ale v případě potřeby i jiné porty - můžete mít nainstalované nějaké exportéry nebo agenty. Pro Galera byste museli otevřít porty pro komunikaci v rámci clusteru. Můžete také chtít mít otevřený port pro připojení SSH. V ideálním případě omezte přístup pro jednotlivé hostitele; k danému portu má přístup pouze omezená množina hostitelů. Databázový port může být například přístupný z jiných databázových uzlů, localhost a proxy vrstvy. Není potřeba ho nechávat otevřený pro další uzly. Vaše databázové uzly mohou být dokonce umístěny v samostatné podsíti, což zajišťuje, že zabezpečení je ještě přísnější.

Pokud jde o porty, osvědčeným postupem by bylo změnit je z výchozího nastavení na něco jiného. Ideálně něco náhodného. Změna portu SSH z 22 na 2222 nebo portu MariaDB z 3306 na 33306 může pomoci vyhnout se některým automatizovaným útokům, ale stále lze zjistit, zda se někdo aktivně snaží dostat do vaší sítě. Pokud chcete lepší zabezpečení, můžete pokračovat s některými náhodnými hodnotami. Nastavte SSH na 5762 a MariaDB na 24359. Je dost pravděpodobné, že to nikdo neuhodne. Nastavte si časové limity TCP tak, aby skenování portů bylo velmi zdlouhavé a drahé, a to jistě zvýší vaše šance.

SSL

Kromě VPN a firewallu byste měli zajistit, že databázový provoz je šifrován pomocí SSL.

V ideálním případě ochráníte jak frontendová připojení (před load balancery), tak komunikaci mezi uzly vaší databáze (ať už jde o replikaci nebo přenos v rámci clusteru v clusterech Galera). ClusterControl vám může pomoci aktivovat tyto možnosti pouhými několika kliknutími.

Vše, co musíte udělat, je nechat ClusterControl vytvořit nové certifikáty nebo použít některý ze stávajících – pokud chcete, můžete importovat svůj vlastní certifikát. Povolení SSL zajišťuje, že databázový provoz nebude čitelný ani pro někoho, kdo získal přístup do vaší sítě.

Zabezpečení databáze

Síť samozřejmě není jediným důležitým aspektem zabezpečení. Ano, je to kritické, zejména v prostředí hybridního cloudu, ale jsou zde i další velmi důležité aspekty. Jedním z nich je řízení přístupu zabudované do MariaDB.

Řízení přístupu na základě rolí pro MariaDB

MariaDB přichází se sadou nástrojů, které zajistí, že přístup k databázi bude správně spravován a omezen všude tam, kde je to potřeba. První řádek ověřování jsou uživatelé. Každý a vše, co má povolený přístup k MariaDB, by mělo pro připojení k databázi používat přiděleného uživatele. Takoví uživatelé budou mít správné heslo – v MariaDB můžete povolit ověření hesla, abyste zajistili, že hesla jsou dostatečně silná. V ideálním případě byste omezili hostitele s přístupem uživatele pouze na názvy hostitelů nebo IP adresy vyrovnávacích zátěží – vždy by to měl být způsob, jakým se uživatelé připojují k databázi. Některým administrativním uživatelům možná budete chtít ponechat přístup localhost, pokud je to nutné. Kromě vynucení správné síly hesla můžete nakonfigurovat, aby platnost hesla vypršela během určitého časového období, nebo vynutit střídání hesel u uživatelů. Jak si dokážete představit, správná politika střídání hesel je něco, co budete chtít implementovat.

Každý uživatel v MariaDB může mít přiřazeno více oprávnění. Oprávnění lze přidělovat na několika úrovních – globální úrovni, úrovni databáze, úrovni tabulky nebo dokonce úrovně sloupce. Nejlepším postupem je udělit uživatelům co možná omezenou sadu oprávnění. Pokud uživatel vyžaduje pouze přístup k určité tabulce, udělte mu to. Není potřeba, aby tento uživatel přistupoval k jiným tabulkám, nemluvě o dalších schématech. Můžete definovat poměrně podrobná přístupová práva pomocí velké sady oprávnění, která můžete udělit uživatelům. Sahá od práv ke čtení, aktualizaci nebo mazání dat přes oprávnění pro správu databáze až po „super“ privilegium, které uživateli umožňuje provádět akce, jako je správa replikačních vláken a obcházení nastavení pouze pro čtení.

Kromě toho přichází MariaDB s rolemi – pro snazší správu uživatelů je možné definovat role s danou sadou udělených oprávnění a poté tyto role přiřadit uživatelům. Takoví uživatelé zdědí granty související s rolí, která jim byla přidělena, což usnadňuje správu grantů ve velkém měřítku:namísto změny grantů pro více uživatelů je můžete přiřadit k jedné konkrétní roli a poté spravovat všechna jejich oprávnění pomocí změnou oprávnění udělených roli, které byly přiděleny.

Měli byste se také ujistit, že nemáte žádné již existující uživatele bez přiděleného hesla nebo s příliš velkou sadou oprávnění. Takový bezpečnostní audit by měl být čas od času proveden, aby bylo zajištěno, že si uvědomujete potenciální bezpečnostní rizika a můžete na ně naplánovat opatření.

Protokol auditu

Pokud vaše databáze obsahuje protokol auditu, stejně jako MariaDB, měli byste zvážit jeho použití ke sledování akcí, které se v databázi dějí. K tomu vám pomůže protokol auditu. S jeho aktivací budete moci sledovat i podrobnosti, jako je, který uživatel provedl jaký dotaz. Pokud náhodou používáte ClusterControl, můžete povolit protokol auditu několika kliknutími:

Abych shrnul tento blog, existuje několik věcí, které byste měli zvážit při navrhování nasazení MariaDB v prostředí hybridního cloudu. Některé z nich úzce souvisejí se způsobem, jakým je prostředí navrženo, některé do značné míry souvisí s typem databáze, kterou používáte, a skutečnost, že používáte hybridní cloud, se ve skutečnosti příliš nemění. Opravdu důležité je zajistit, aby byla vaše databáze řádně chráněna – to je konečný cíl, bez ohledu na to, jaké je prostředí.


  1. Jak vyplnit chybějící data v MySQL?

  2. Mysql:Objednat podle like?

  3. Jak klonovat uživatele v Oracle

  4. Jak převést výsledek dotazu SQL na datovou strukturu PANDAS?