Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tato stránka vysvětluje, jak nakonfigurovat a spravovat zásady sítě pro řízení odchozích síťových připojení z bezserverových úloh v Azure Databricks.
Ovládací prvek příchozího přenosu dat najdete v tématu Řízení příchozího přenosu dat na základě kontextu.
Požadavky
- Váš pracovní prostor Azure Databricks musí být na úrovni Premium.
- Oprávnění ke správě zásad sítě jsou omezena na správce účtů.
Přístup k zásadám sítě
Vytvoření, zobrazení a aktualizace zásad sítě ve vašem účtu:
- V konzole účtu klikněte na Zabezpečení.
- Klikněte na kartu Sítě .
- V části Zásady klikněte na Řízení kontextového vstupu a výstupu.
Vytvoření zásad sítě
Klikněte na Vytvořit novou síťovou politiku.
Zadejte název zásady.
Klikněte na kartu Výstup.
Pokud chcete nastavit pravidla příchozího přenosu dat, přečtěte si téma Nastavení pravidel příchozího přenosu dat.
Zvolte režim síťového přístupu:
- Povolit přístup ke všem cílům: Neomezený vnější přístup k internetu. Pokud zvolíte Úplný přístup, odchozí internetový přístup zůstane neomezený.
- Omezený přístup ke konkrétním cílům: Odchozí přístup je omezený na zadané cíle.
Konfigurace zásad sítě
Následující kroky popisují volitelná nastavení režimu omezeného přístupu.
Nastavení pravidel výchozího přenosu dat
Před nastavením pravidel výchozího přenosu dat si všimněte:
- Při použití kontejneru S3 v metastoru musíte pomocí rozhraní REST API explicitně přidat kontejner do seznamu povolených výchozích přenosů, aby byl přístup úspěšný.
- Maximální počet podporovaných cílů je 2500.
- Počet plně kvalifikovaných názvů domén, které je možné přidat jako povolené domény, je omezený na 100 na zásadu.
- Domény přidané jako položky služby Private Link pro nástroj pro vyrovnávání zatížení jsou implicitně povolené v zásadách sítě. Když dojde k odebrání domény nebo odstranění privátního koncového bodu, může trvat až 24 hodin, než řízení zásad sítě tuto změnu plně vynutí. Viz Konfigurace privátního připojení k prostředkům ve vaší virtuální síti.
- Kontejnery Delta Sharing jsou implicitně povolené v zásadách sítě.
Poznámka:
Implicitní seznam povolení pro připojení Unity Catalog je již nepodporovaný. U účtů obsahujících pracovní prostory, které používaly implicitní seznam povolených před vyřazením, toto chování zůstane v platnosti po omezenou přechodovou dobu.
Pokud chcete udělit bezserverový výpočetní přístup k dalším doménám, klikněte na Přidat cíl nad seznam povolených domén .
Filtr FQDN umožňuje přístup ke všem doménám, které mají stejnou IP adresu. Model obsluhy zřízený na koncových bodech brání přístupu k internetu, pokud je přístup k síti nastaven na omezen. Detailní kontrola s filtrováním na základě FQDN není ale podporována.
Pokud chcete pracovnímu prostoru povolit přístup k dalším účtům úložiště Azure, klikněte na tlačítko Přidat cíl nad seznamem Povolené cíle úložiště .
Poznámka:
Přímý přístup ke službám cloudového úložiště z kontejnerů uživatelského kódu, jako jsou repls nebo UDF, není ve výchozím nastavení povolený. Pokud chcete tento přístup povolit, přidejte do zásad FQDN prostředku úložiště pod Povolené domény. Přidání pouze základní domény prostředku úložiště by mohlo neúmyslně udělit přístup ke všem prostředkům úložiště v dané oblasti.
Vynucení zásad
Režim suchého spuštění umožňuje otestovat konfiguraci zásad a monitorovat odchozí připojení bez narušení přístupu k prostředkům. Pokud je povolený režim suchého spuštění, požadavky, které porušují zásady, se protokolují, ale nejsou zablokované. Vyberte některou z následujících možností:
Databricks SQL: Databricks SQL Warehouse fungují v režimu suchého spuštění.
Obsluha modelu AI: Koncové body modelu fungují v testovacím režimu.
Všechny produkty: Všechny služby Azure Databricks fungují v testovacím režimu a přepisují veškeré ostatní volby.
Aktualizace výchozích zásad
Každý účet Azure Databricks obsahuje výchozí zásady. Výchozí zásada je přidružená ke všem pracovním prostorům bez explicitního přiřazení zásad sítě, včetně nově vytvořených pracovních prostorů. Tuto zásadu můžete upravit, ale nelze ji odstranit.
Výchozí zásady se použijí jenom u pracovních prostorů s alespoň úrovní Premium.
Přiřadit zásadu sítě k pracovním prostorům
Pokud jste aktualizovali výchozí zásady o další konfigurace, použijí se automaticky u pracovních prostorů, které nemají existující zásady sítě.
Váš pracovní prostor musí být na úrovni Premium.
Pokud chcete pracovní prostor přidružit k jiné zásadě, postupujte takto:
- Výběr pracovního prostoru.
- V nástroji Zásady sítě klepněte na tlačítko Aktualizovat zásady sítě.
- Ze seznamu vyberte požadovanou zásadu sítě.
- Klikněte na Použít politiku.
Použití změn zásad sítě
Většina aktualizací konfigurace sítě se automaticky rozšíří do bezserverového výpočetního prostředí za deset minut. Sem patří:
- Přidání nového externího umístění nebo připojení v katalogu Unity.
- Připojení vašeho pracovního prostoru k jinému metastoru
- Změna povoleného úložiště nebo cílů internetu
Poznámka:
Pokud upravíte nastavení režimu internetového přístupu nebo režimu suchého spuštění, je nutné restartovat výpočetní prostředky.
Restartování nebo opětovné nasazení bezserverových úloh
Je potřeba aktualizovat pouze při přepínání režimu přístupu k internetu nebo při aktualizaci režimu suchého spuštění.
Pokud chcete určit odpovídající postup restartování, projděte si následující seznam podle produktu:
- Databricks ML Serving: Znovu nasadit váš endpoint pro ML Serving. Podívejte se na Vytvoření vlastních obslužných koncových bodů modelu
- Pipelines: Zastavte a restartujte své aktuálně spuštěné deklarativní pipeline systému Lakeflow Spark. Viz Spuštění aktualizace pipeline.
- Bezserverový SQL Warehouse: Zastavte a restartujte SQL Warehouse. Viz Správa SQL úložiště.
- Úlohy Lakeflow: Změny zásad sítě se automaticky použijí při aktivaci nového spuštění úlohy nebo restartování existující úlohy.
-
Poznámkové bloky:
- Pokud váš poznámkový blok nekomunikuje se Sparkem, můžete ukončit a následně znovu připojit bezserverové výpočetní prostředky a obnovit zásady sítě.
- Pokud váš notebook komunikuje se Sparkem, váš serverless prostředek se aktualizuje a automaticky detekuje změnu. Většina změn se aktualizuje za deset minut, ale přepnutí režimů přístupu k internetu, aktualizace režimu suchého spuštění nebo změna mezi připojenými zásadami, které mají různé typy vynucení, může trvat až 24 hodin. Pokud chcete urychlit aktualizaci těchto konkrétních typů změn, vypněte všechny přidružené poznámkové bloky a úlohy.
Závislosti uživatelského rozhraní sady prostředků Databricks
Pokud používáte režim omezeného přístupu s řízením výchozího přenosu dat bez serveru, funkce uživatelského rozhraní sady prostředků Databricks vyžadují přístup ke konkrétním externím doménám. Pokud je odchozí přístup zcela omezený, můžou se uživatelům při práci se sadami prostředků Databricks zobrazit chyby v rozhraní pracovního prostoru.
Aby funkce uživatelského rozhraní balíků prostředků Databricks pracovaly při omezených zásadách sítě, přidejte do svých zásad tyto povolené domény :
- github.com
- objects.githubusercontent.com
- release-assets.githubusercontent.com
- checkpoint-api.hashicorp.com
- releases.hashicorp.com
- registry.terraform.io
Ověření uplatňování zásad sítě
Platnost zásad vaší sítě můžete ověřit tím, že se pokusíte získat přístup k omezeným prostředkům z různých serverless procesů. Proces ověřování se liší v závislosti na bezserverovém produktu.
Ověření pomocí deklarativních kanálů Sparku pro Lakeflow
- Vytvořte poznámkový blok Pythonu. Můžete použít ukázkový poznámkový blok uvedený v kurzu Pythonu deklarativních kanálů Sparku Lakeflow.
- Vytvoření kanálu:
- V pracovním prostoru klikněte na
Úlohy a kanály na bočním panelu
- Klikněte na Vytvořit a potom na Kanál ETL.
- Nakonfigurujte rozvrh s následujícími nastaveními:
- Režim kanálu: Bezserverová
- Zdrojový kód: Vyberte poznámkový blok, který jste vytvořili.
- Možnosti úložiště: Katalog Unity. Vyberte požadovaný katalog a schéma.
- Klikněte na Vytvořit.
- V pracovním prostoru klikněte na
- Spusťte potrubí.
- Na stránce potrubí klikněte na Start.
- Počkejte na dokončení kanálu.
- Ověření výsledků
- Důvěryhodný cíl: Datový kanál se úspěšně spustí a zapíše data do cíle.
- Nedůvěryhodný cíl: Kanál selže s chybami, což značí, že je zablokovaný přístup k síti.
Ověření pomocí Databricks SQL
Vytvořte SQL Warehouse.
V editoru SQL spusťte testovací dotaz, který se pokusí o přístup k prostředku řízenému zásadami sítě.
Ověřte výsledky:
- Důvěryhodný cíl: Dotaz bude úspěšný.
- Nedůvěryhodný cíl: Dotaz selže s chybou síťového přístupu.
Pokud se chcete připojit k síti pomocí uživatelsky definované funkce (UDF) pomocí standardní knihovny Pythonu, spusťte následující definici UDF:
CREATE OR REPLACE TEMPORARY FUNCTION ping_google(value DOUBLE) RETURNS STRING LANGUAGE python AS $$ import requests url = "https://www.google.com" response = requests.get(url, timeout=5) if response.status_code == 200: return "UDF has network!" else: return "UDF has no network!" $$;
Ověření pomocí obsluhy modelu
Než začnete
Při vytvoření koncového bodu obsluhy modelu se vytvoří obraz kontejneru pro obsluhu vašeho modelu. Během této fáze sestavení se vynucují zásady sítě. Při používání modelu obsluhujícího se zásadami sítě zvažte následující:
Přístup k závislostem: Všechny externí závislosti sestavení, jako jsou balíčky Pythonu z PyPI a conda-forge, základní image kontejneru nebo soubory z externích adres URL zadaných v prostředí vašeho modelu nebo kontextu Dockeru vyžadovaného prostředím vašeho modelu, musí být povoleny zásadami sítě.
- Pokud například váš model vyžaduje konkrétní verzi scikit-learn, kterou je potřeba stáhnout během sestavování, musí zásady sítě povolit přístup k úložišti, které balíček hostuje.
Selhání sestavení: Pokud vaše zásady sítě zablokují přístup k nezbytným závislostem, model obsluhující sestavení kontejneru selže. Tím zabráníte úspěšnému nasazení koncového bodu obsluhy a může způsobit selhání při správném ukládání nebo správném fungování.
Řešení problémů s odepřením přístupu: Během fáze sestavení se protokolují odepření přístupu k síti. Tyto protokoly obsahují
network_source_typepole s hodnotouML Build. Tyto informace jsou zásadní pro identifikaci konkrétních blokovaných prostředků, které je potřeba přidat do zásad sítě, aby se sestavení úspěšně dokončilo.
Ověření přístupu k síti za běhu
Následující kroky ukazují, jak ověřit zásady sítě pro nasazený model za běhu, konkrétně pro pokusy o přístup k externím prostředkům během odvozování. Předpokládá se, že kontejner obsluhující model byl úspěšně sestaven, což znamená, že v zásadách sítě byly povoleny všechny závislosti v době sestavení.
Vytvoření testovacího modelu
V poznámkovém bloku Pythonu vytvořte model, který se pokusí získat přístup k veřejnému internetovému prostředku v době odvozování, například stažení souboru nebo vytvoření požadavku rozhraní API.
Spuštěním tohoto poznámkového bloku vygenerujte model v testovacím pracovním prostoru. Příklad:
import mlflow import mlflow.pyfunc import mlflow.sklearn import requests class DummyModel(mlflow.pyfunc.PythonModel): def load_context(self, context): # This method is called when the model is loaded by the serving environment. # No network access here in this example, but could be a place for it. pass def predict(self, _, model_input): # This method is called at inference time. first_row = model_input.iloc[0] try: # Attempting network access during prediction response = requests.get(first_row['host']) except requests.exceptions.RequestException as e: # Return the error details as text return f"Error: An error occurred - {e}" return [response.status_code] with mlflow.start_run(run_name='internet-access-model'): wrappedModel = DummyModel() # When this model is deployed to a serving endpoint, # the environment will be built. If this environment # itself (e.g., specified conda_env or python_env) # requires packages from the internet, the build-time SEG policy applies. mlflow.pyfunc.log_model( artifact_path="internet_access_ml_model", python_model=wrappedModel, registered_model_name="internet-http-access" )
Vytvořte koncový bod obsluhy
V navigaci pracovního prostoru vyberte AI/ML.
Klikněte na kartu Obsluha .
Klikněte na Vytvořit koncový bod obsluhy.
Nakonfigurujte koncový bod s následujícím nastavením:
- Název obslužného koncového bodu: Zadejte popisný název.
- Podrobnosti o entitě: Vyberte model registru modelu.
-
Model: Zvolte model, který jste vytvořili v předchozím kroku (
internet-http-access).
Klikněte na Potvrdit. V této fázi začíná proces sestavení kontejneru pro nasazení modelu. Zásady sítě pro
ML Buildbudou vynuceny. Pokud se sestavení nezdaří kvůli blokovanému přístupu k síti pro závislosti, koncový bod nebude připraven.Počkejte, až služební koncový bod dosáhne stavu Připraveno. Pokud se nepřipravil, zkontrolujte protokoly o zamítnutí s položkami
network_source_type: ML Build.
Zadejte dotaz na koncový bod.
Pomocí možnosti Koncový bod dotazu na stránce obsluhující koncový bod odešlete testovací požadavek.
{ "dataframe_records": [{ "host": "[https://www.google.com](https://www.google.com)" }] }
Ověřte výsledek pro přístup za běhu:
-
Přístup k internetu povolený za běhu: Dotaz je úspěšný a vrátí stavový kód, jako je
200. -
Přístup k internetu je omezený za běhu: Dotaz selže s chybou síťového přístupu, například chybovou
try-exceptzprávu z bloku v kódu modelu, což značí vypršení časového limitu připojení nebo selhání řešení hostitele.
-
Přístup k internetu povolený za běhu: Dotaz je úspěšný a vrátí stavový kód, jako je
Aktualizace zásad sítě
Zásady sítě můžete kdykoli po vytvoření aktualizovat. Aktualizace zásad sítě:
- Na stránce podrobností zásad sítě v konzole účtů upravte zásadu:
- Změňte režim síťového přístupu.
- Povolte nebo zakažte režim suchého spuštění pro konkrétní služby.
- Přidejte nebo odeberte FQDN nebo úložná místa.
- Klikněte na Aktualizovat.
- Odkazujte na použití změn zásad sítě a ověřte, že se aktualizace aplikují na stávající úlohy.
Kontrola protokolů odepření
Protokoly odepření se ukládají v system.access.outbound_network tabulce v katalogu Unity. Tyto protokoly sledují, kdy jsou odchozí síťové požadavky odepřeny. Pokud chcete získat přístup k protokolům odepření, ověřte, že je na metastoru katalogu Unity povolené schéma přístupu. Viz Povolení systémových tabulek.
K zobrazení událostí odepření použijte dotaz SQL podobný následujícímu dotazu. Pokud jsou aktivovány protokoly testovacího běhu, dotaz vrátí jak protokoly odepření, tak i protokoly testovacího běhu, které můžete rozlišit pomocí sloupce access_type. Protokoly odepření mají hodnotu DROP , zatímco protokoly dry-run zobrazují DRY_RUN_DENIAL.
Následující příklad načte protokoly z posledních 2 hodin:
SELECT *
FROM system.access.outbound_network
WHERE event_time >= CURRENT_TIMESTAMP() - INTERVAL 2 HOUR
ORDER BY event_time DESC;
V případě suchého režimu a externích modelů AI platí následující:
- Pokud vaše zásady sítě zablokovaly přístup k nezbytným závislostem, nejprve zkontrolujte protokoly odepření v
system.access.outbound_networksouboru . Protokoly sestavení pro kontejner obsluhující model navíc můžou poskytovat užitečné informace o tom, které domény byly blokované. - Pokud model obsluhující sestavení kontejneru selže, zkontrolujte protokoly
system.access.outbound_networkodepření a zjistěte, které domény byly blokované. - Vynucení přístupu k externímu modelu prostřednictvím služby Mosaic AI pokračuje i v simulačním režimu.
Poznámka:
Mezi dobou přístupu a zobrazením protokolů odepření může být možná latence.
Omezení
-
Velikost nahrávání artefaktů: Při použití interního systému souborů Databricks MLflow s
dbfs:/databricks/mlflow-tracking/<experiment_id>/<run_id>/artifacts/<artifactPath>formátem jsou nahrávání artefaktů omezené na 5 GB prolog_artifactalog_artifactslog_modelrozhraní API. - Nasazení modelu: Kontrola odchozího přenosu dat se nevztahuje při vytváření obrazů pro nasazení modelu.
- Doručování protokolů odepření pro krátkodobé úlohy uvolňování paměti (GC): Protokoly odepření z krátkodobých úloh uvolňování paměti, které trvají méně než 120 sekund, nemusí být doručeny před ukončením uzlu kvůli zpoždění protokolování. I když se přístup stále vynucuje, může chybět odpovídající položka protokolu.
- Síťové připojení pro uživatelem definované funkce SQL Databricks: Pokud chcete povolit přístup k síti v Databricks SQL, obraťte se na tým účtů Databricks.
- Protokolování eventhooku datového kanálu: Eventhooky deklarativních pipeline Spark Lakeflow, které směřují na jiný pracovní prostor, nejsou zaznamenány. To platí pro eventhooky nakonfigurované pro pracovní prostory napříč oblastmi i pracovní prostory ve stejné oblasti.
- Změny vazby pracovního prostoru Katalogu Unity: Změny vazeb pracovního prostoru katalogu Unity můžou trvat až 24 hodin, než budou efektivní. Pokud chcete tento proces urychlit, přidejte do zásad sítě kontejner úložiště. Viz Omezení přístupu katalogu ke konkrétním pracovním prostorům.
- Přístup k síti napříč cloudy: Pracovní prostory Azure využívající kontejnery S3 používané pro externí umístění katalogu Unity nejsou v současné době povoleny zásadami bezserverové sítě.
Další kroky
- Konfigurace řízení příchozího přenosu dat na základě kontextu: Definujte zásady příchozího přístupu na základě identity, typu požadavku a zdroje sítě pro zabezpečení přístupu k pracovnímu prostoru. Viz Řízení příchozího přenosu dat na základě kontextu.
- Správa pravidel privátních koncových bodů: Řízení síťového provozu do a z privátních koncových bodů definováním konkrétních pravidel, která povolují nebo zakazují připojení pro lepší zabezpečení. Viz Správa pravidel privátních koncových bodů.
- Nakonfigurujte bránu firewall pro bezserverový výpočetní přístup: Implementujte bránu firewall pro omezení a zabezpečení příchozích a odchozích síťových připojení pro výpočetní prostředí bez serveru. Viz Konfigurace brány firewall pro bezserverový výpočetní přístup.
- Vysvětlení nákladů na přenos dat a připojení: Přečtěte si o nákladech na implementaci ovládacích prvků zabezpečení sítě a privátního připojení pro bezserverové úlohy. Informace o nákladech na síť bez serveru Databricks najdete v tématu Vysvětlení nákladů na síť bez serveru Databricks.