Sdílet prostřednictvím


Injektáž tajných kódů v online koncových bodech (Preview)

PLATÍ PRO:Rozšíření Azure CLI ml v2 (aktuální)Python SDK azure-ai-ml v2 (aktuální)

Injektáž tajných kódů v online koncových bodech vám pomůže bezpečně používat klíče rozhraní API a další tajné kódy ve vašich nasazeních, aniž byste je v kódu vystavovali. Tento článek vysvětluje:

  • Proč pro zabezpečená nasazení záleží na injektáži tajných kódů
  • Jak používat spravované identity k načtení tajných kódů
  • Jak funkce injektáže tajných kódů zjednodušuje proces

Nakonec pochopíte, který přístup je pro váš scénář nejvhodnější.

Injekce tajných údajů v kontextu koncového bodu online služby je proces načítání tajných údajů, jako jsou klíče rozhraní API, z úložišť tajných údajů a jejich vkládání do uživatelského kontejneru běžícího uvnitř online nasazení. Server pro inferenci, na kterém běží váš bodovací skript, nebo inferenční stack, který jste přinesli s nasazením BYOC (přineste si vlastní kontejner), bezpečně přistupuje k tajným údajům prostřednictvím proměnných prostředí.

Důležité

Tato funkce je v současné době ve verzi Public Preview. Tato verze Preview je poskytována bez smlouvy o úrovni služeb a nedoporučujeme ji pro produkční úlohy. Některé funkce se nemusí podporovat nebo mohou mít omezené možnosti.

Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.

Popis problému

Při vytváření online nasazení můžete chtít použít tajné kódy z nasazení pro přístup k externím službám. Mezi tyto externí služby patří služba Microsoft Azure OpenAI, Foundry Tools a Azure AI Content Safety.

Pokud chcete tajné kódy používat, potřebujete způsob, jak je bezpečně předat kontejneru uživatelů, který běží uvnitř nasazení. Nezahrnujte tajné kódy jako součást definice nasazení, protože tento postup zveřejňuje tajné kódy v definici nasazení.

Lepším přístupem je uložit tajné kódy v úložištích tajných kódů a pak je bezpečně načíst z nasazení. Tento přístup ale představuje vlastní výzvu: jak se má nasazení ověřit v úložištích tajných kódů, aby bylo možné načíst tajné kódy. Vzhledem k tomu, že online nasazení spouští kontejner uživatele pomocí identity koncového bodu, což je spravovaná identita, můžete pomocí Azure RBAC řídit oprávnění identity koncového bodu a umožnit koncovému bodu načítat tajné kódy z úložišť tajných kódů. Tento přístup vyžaduje, abyste dokončili následující úlohy:

  • Přiřaďte správné role identitě koncového bodu, aby mohl číst tajné kódy z úložišť tajných kódů.
  • Implementujte logiku bodování pro nasazení, aby používala spravovanou identitu koncového bodu k načtení tajných kódů z úložišť tajných kódů.

I když je tento přístup použití spravované identity bezpečným způsobem načítání a vkládání tajných kódů, injektáž tajných kódů prostřednictvím funkce injektáže tajných kódů dále zjednodušuje proces načítání tajných kódů pro připojení pracovních prostorů a trezory klíčů.

Spravovaná identita přidružená ke koncovému bodu

Online nasazení spustí kontejner uživatele se spravovanou identitou přidruženou ke koncovému bodu. Tato spravovaná identita, označovaná jako identita koncového bodu, je ID Microsoft Entra, které podporuje Azure RBAC. Proto můžete k identitě přiřadit role Azure, abyste mohli řídit oprávnění potřebná k provádění operací. Identita koncového bodu může být identita přiřazená systémem (SAI) nebo identita přiřazená uživatelem (UAI). Rozhodnete se, které z těchto typů identit se mají použít při vytváření koncového bodu.

  • Pro identitu přiřazenou systémem se identita vytvoří automaticky při vytváření koncového bodu a role se základními oprávněními (například oprávněním ke stažení služby Azure Container Registry a čtenářem dat objektů blob úložiště).
  • Pro identitu přiřazenou uživatelem musíte nejprve vytvořit identitu a přidružit ji ke koncovému bodu při vytváření koncového bodu. Zodpovídáte také za přiřazování správných rolí uživatelskému rozhraní podle potřeby.

Další informace o používání spravovaných identit koncového bodu najdete v tématu Jak získat přístup k prostředkům z koncových bodů se spravovanými identitami a příklad použití spravovaných identit pro interakci s externími službami.

Přiřazení role k identitě koncového bodu

Úložiště tajných kódů vyžadují následující role:

  • Tajné kódy uložené v připojeních pracovního prostoru v rámci vašeho pracovního prostoru: Workspace Connections poskytuje rozhraní API pro výpis tajných kódů (Preview), které vyžaduje identitu, která volá rozhraní API, aby Azure Machine Learning Workspace Connection Secrets Reader měla přiřazenou identitu (nebo ekvivalentní).
  • Tajné kódy uložené v externí službě Microsoft Azure Key Vault: Key Vault poskytuje rozhraní API pro získání tajných kódů, které vyžaduje, aby identita, která volá rozhraní API, měla Key Vault Secrets User přiřazenou roli (nebo ekvivalent).

Implementace tajné injektáže

Po načtení tajemství, jako jsou klíče rozhraní API, z úložišť tajemství je můžete vložit do uživatelského kontejneru, který běží v rámci online nasazení dvěma způsoby:

Zvolte přístup, který nejlépe vyhovuje vašim požadavkům na zabezpečení a pracovnímu postupu vývoje.

Oba přístupy zahrnují dva kroky:

  1. Načtěte tajné kódy z úložišť tajných kódů pomocí identity koncového bodu.
  2. Vložte tajné kódy do kontejneru uživatele.

Injektáž tajných kódů pomocí spravovaných identit

V definici nasazení použijte identitu koncového bodu k volání rozhraní API z úložišť tajných kódů. Tuto logiku můžete implementovat buď ve skriptu bodování, nebo ve skriptech prostředí, které spouštíte v kontejneru BYOC. Další informace o implementaci injektáže tajných kódů pomocí spravovaných identit najdete v příkladu použití spravovaných identit pro interakci s externími službami.

Injektáž tajných kódů prostřednictvím funkce injektáže tajného kódu

Pokud chcete použít funkci vkládání tajemství, namapujte tajemství, na která chcete odkazovat, z připojení pracovního prostoru nebo z Key Vault na proměnné prostředí ve vaší definici nasazení. Tento přístup nevyžaduje, abyste v bodovacím skriptu nebo ve skriptech prostředí, které spouštíte v kontejneru BYOC, psát žádný kód. Pokud chcete mapovat tajné kódy z připojení pracovního prostoru nebo key Vaultu k proměnným prostředí, musí být splněny následující podmínky:

  • Pokud při vytváření koncového bodu definujete online koncový bod pro vynucení přístupu ke standardním úložištím tajných klíčů (připojení pracovního prostoru v aktuálním pracovním prostoru), musí mít identita uživatele, která vytváří nasazení v rámci koncového bodu, oprávnění ke čtení tajných klíčů z připojení pracovního prostoru.
  • Identita koncového bodu, kterou nasazení používá, musí mít oprávnění ke čtení tajných kódů z připojení pracovního prostoru nebo ze služby Key Vault, jak je uvedeno v definici nasazení.

Poznámka:

  • Pokud úspěšně vytvoříte koncový bod pomocí SAI a nastavíte příznak pro vynucení přístupu k výchozím úložištím tajemství, koncový bod automaticky získává oprávnění pro připojení pracovního prostoru.
  • Pokud koncový bod používá UAI nebo nenastavíte příznak k vynucení přístupu k výchozím úložištím tajných kódů, nemusí identita koncového bodu mít oprávnění pro připojení pracovního prostoru. V takovém případě musíte roli pro připojení pracovního prostoru k identitě koncového bodu přiřadit ručně.
  • Identita koncového bodu automaticky neobdrží oprávnění pro externí službu Key Vault. Pokud službu Key Vault používáte jako úložiště tajných kódů, musíte roli služby Key Vault přiřadit identitě koncového bodu ručně.

Další informace o použití injektáže tajných kódů najdete v tématu Nasazení modelů strojového učení do online koncových bodů pomocí injektáže tajných kódů (Preview).

Další kroky

Teď, když rozumíte konceptům injektáže tajných kódů, se naučíte, jak ho implementovat:

Jste připravení začít? Postupujte podle průvodce nasazením.