Veřejný přístup ve službě Azure Cosmos DB for PostgreSQL
PLATÍ PRO: Azure Cosmos DB for PostgreSQL (využívající rozšíření databáze Citus do PostgreSQL)
Azure Cosmos DB for PostgreSQL podporuje tři možnosti sítě:
- Žádný přístup
- Toto je výchozí nastavení pro nově vytvořený cluster, pokud není povolený veřejný nebo privátní přístup. K databázovým uzlům se nemůžou připojit žádné počítače, ať už uvnitř Nebo mimo Azure.
- Veřejný přístup
- K koordinačnímu uzlu se přiřadí veřejná IP adresa.
- Přístup k koordinačnímu uzlu je chráněný bránou firewall.
- Volitelně můžete povolit přístup ke všem pracovním uzlům. V tomto případě jsou veřejné IP adresy přiřazeny k pracovním uzlům a jsou zabezpečené stejnou bránou firewall.
- Privátní přístup
- Uzly clusteru se přiřazují jenom privátní IP adresy.
- Každý uzel vyžaduje privátní koncový bod, který umožňuje hostitelům ve vybrané virtuální síti přístup k uzlům.
- Funkce zabezpečení virtuálních sítí Azure, jako jsou skupiny zabezpečení sítě, se dají použít k řízení přístupu.
Při vytváření clusteru můžete povolit veřejný nebo privátní přístup nebo zvolit výchozí hodnotu bez přístupu. Po vytvoření clusteru můžete přepínat mezi veřejným nebo privátním přístupem nebo je aktivovat najednou.
Tato stránka popisuje možnost veřejného přístupu. Privátní přístup najdete v tématu Privátní přístup ve službě Azure Cosmos DB for PostgreSQL.
Přehled brány firewall
Brána firewall serveru Azure Cosmos DB for PostgreSQL brání veškerému přístupu k koordinačnímu uzlu, dokud nezadáte, které počítače mají oprávnění. Brána firewall uděluje přístup k serveru v závislosti na zdrojové IP adrese každého požadavku. Bránu firewall nakonfigurujete tak, že vytvoříte pravidla brány firewall určující rozsahy přípustných IP adres. Pravidla firewallu můžete vytvořit na úrovni serveru.
Pravidla brány firewall: Tato pravidla umožňují klientům přístup k koordinačnímu uzlu, tj. ke všem databázím na stejném logickém serveru. Pravidla brány firewall na úrovni serveru je možné nakonfigurovat pomocí webu Azure Portal. Pokud chcete vytvořit pravidla brány firewall na úrovni serveru, musíte být vlastníkem nebo přispěvatelem předplatného.
Brána firewall ve výchozím nastavení blokuje veškerý přístup k databázi k vašemu koordinačnímu uzlu. Pokud chcete začít používat server z jiného počítače, musíte zadat jedno nebo více pravidel brány firewall na úrovni serveru, která umožní přístup k vašemu serveru. Pomocí pravidel brány firewall určete rozsahy IP adres z internetu, které chcete povolit. Pravidla brány firewall nemají vliv na přístup k samotnému webu Azure Portal. Pokusy o připojení z internetu a Azure musí nejprve projít bránou firewall, než se dostanou k vaší databázi PostgreSQL, jak je znázorněno v následujícím diagramu:
Připojení z internetu a z Azure
Brána firewall clusteru určuje, kdo se může připojit k koordinačnímu uzlu skupiny. Brána firewall určuje přístup podle konfigurovatelného seznamu pravidel. Každé pravidlo je IP adresa nebo rozsah adres, které jsou povolené.
Když brána firewall blokuje připojení, může to způsobit chyby aplikace. Například při použití ovladače PostgreSQL JDBC dojde k této chybě:
java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: FATAL: no pg\_hba.conf entry for host "123.45.67.890", user "citus", database "citus", SSL
Informace o definování pravidel najdete v tématu Vytvoření a správa pravidel brány firewall.
Řešení potíží s bránou firewall databázového serveru
Pokud se přístup ke službě Microsoft Azure Cosmos DB for PostgreSQL nechová podle očekávání, zvažte tyto body:
Změny seznamu povolených změn se ještě neprojevily: Změny konfigurace brány firewall Azure Cosmos DB for PostgreSQL se můžou projevit až za pět minut.
Uživatel nemá oprávnění nebo se použilo nesprávné heslo: Pokud uživatel nemá oprávnění k serveru nebo je použité heslo nesprávné, připojení k serveru se odepře. Vytvoření nastavení brány firewall poskytuje klientům příležitost se pokusit se připojit k serveru. Každý klient musí stále poskytovat nezbytné přihlašovací údaje zabezpečení.
Například při použití klienta JDBC se může zobrazit následující chyba.
java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: FATAL: password authentication failed for user "yourusername"
Dynamická IP adresa: Pokud máte připojení k internetu s dynamickým přidělováním IP adres a máte potíže se dostat přes bránu firewall, můžete vyzkoušet jedno z následujících řešení:
Požádejte poskytovatele internetových služeb o rozsah IP adres přiřazený klientským počítačům, které přistupí k koordinačnímu uzlu, a pak přidejte rozsah IP adres jako pravidlo brány firewall.
Získejte místo toho statické IP adresy pro klientské počítače a pak přidejte statickou IP adresu jako pravidlo brány firewall.
Další kroky
Články o vytváření pravidel brány firewall na úrovni serveru a databáze najdete tady: