Veřejný přístup ke službě Azure Cosmos DB for PostgreSQL

PLATÍ PRO: Azure Cosmos DB for PostgreSQL (využívá rozšíření databáze Citus pro PostgreSQL)

Azure Cosmos DB for PostgreSQL podporuje tři možnosti sítě:

  • Bez přístupu
    • Toto je výchozí nastavení pro nově vytvořený cluster, pokud není povolený veřejný nebo privátní přístup. Žádné počítače, ať už uvnitř Azure nebo mimo azure, se nemohou připojit k uzlům databáze.
  • Veřejný přístup
    • Koordinačnímu uzlu je přiřazena veřejná IP adresa.
    • Přístup k koordinačnímu uzlu je chráněný bránou firewall.
    • Volitelně je možné povolit přístup ke všem pracovním uzlům. V tomto případě jsou veřejné IP adresy přiřazené pracovním uzlům a jsou zabezpečené stejnou bránou firewall.
  • Privátní přístup
    • Uzlům clusteru se přiřazují jenom privátní IP adresy.
    • Každý uzel vyžaduje privátní koncový bod, který hostitelům ve vybrané virtuální síti umožňuje přístup k uzlům.
    • K řízení přístupu je možné použít funkce zabezpečení virtuálních sítí Azure, jako jsou skupiny zabezpečení sítě.

Při vytváření clusteru můžete povolit veřejný nebo privátní přístup nebo zvolit výchozí možnost Žádný přístup. Po vytvoření clusteru můžete přepínat mezi veřejným nebo privátním přístupem nebo aktivovat oba najednou.

Tato stránka popisuje možnost veřejného přístupu. Informace o privátním přístupu 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 ke 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 ke koordinačnímu uzlu, tedy ke všem databázím na stejném logickém serveru. Pravidla brány firewall na úrovni serveru je možné nakonfigurovat pomocí 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 uzlu koordinátoru. 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á povolí přístup k vašemu serveru. Pomocí pravidel brány firewall určete, které rozsahy IP adres z internetu se mají povolit. Pravidla brány firewall nemají vliv na samotný přístup k Azure Portal webu. Pokusy o připojení z internetu a Azure musí nejprve projít bránou firewall, aby se mohly dostat k databázi PostgreSQL, jak je znázorněno na následujícím diagramu:

Diagram znázorňující pravidla brány firewall na úrovni serveru mezi vzdálenými a místními systémy a neúspěšná připojení

Připojení z internetu a z Azure

Brána firewall clusteru řídí, kdo se může připojit ke koordinačnímu uzlu skupiny. Brána firewall určuje přístup na základě konfigurovatelného seznamu pravidel. Každé pravidlo je IP adresa nebo rozsah adres, které jsou povoleny.

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 Vytvář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 se zatím neprojevily: Může trvat až pět minut, než se změny konfigurace brány firewall služby Azure Cosmos DB for PostgreSQL projeví.

  • Uživatel nemá autorizaci 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 pouze klientům příležitost pokusit se připojit k serveru. Každý klient musí přesto zadat 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 internetové připojení s dynamickým přidělováním IP adres a máte potíže dostat se přes bránu firewall, můžete vyzkoušet jedno z následujících řešení:

    • Požádejte poskytovatele internetových služeb (ISP) o rozsah IP adres přiřazený klientským počítačům, které mají přístup k koordinačnímu uzlu, a pak přidejte rozsah IP adres jako pravidlo brány firewall.

    • Místo toho získejte 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: