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 kontextu online koncového bodu je proces načítání tajných kódů (například klíčů rozhraní API) z úložišť tajných kódů a jejich vložení do kontejneru uživatele, který běží v online nasazení. Tajné kódy jsou nakonec přístupné bezpečně prostřednictvím proměnných prostředí, které používá server odvozování, který spouští váš bodovací skript, nebo zásobníkem odvozování, který přinášíte s přístupem nasazení BYOC (přineste si vlastní kontejner).

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, Azure AI Services a Azure AI Content Safety.

Abyste mohli tajné kódy používat, musíte najít způsob, jak je bezpečně předat kontejneru uživatelů, který běží uvnitř nasazení. Nedoporučujeme, abyste do definice nasazení zahrnuli tajné kódy, protože tento postup by zpřístupnil 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číst tajné kódy z úložišť tajných kódů. Použití tohoto přístupu vyžaduje, abyste udělali 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). Můžete se rozhodnout, 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

Jakmile se tajné kódy (například klíče rozhraní API) načtou z úložišť tajných kódů, existují dva způsoby, jak je vložit do kontejneru uživatele, který běží uvnitř online nasazení:

  • Vkládejte tajné kódy sami pomocí spravovaných identit.
  • Injektujte tajné kódy pomocí funkce injektáže tajných kódů.

Oba tyto přístupy zahrnují dva kroky:

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

Injektáž tajných kódů prostřednictvím použití spravovaných identit

V definici nasazení je potřeba použít 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. Pokud chcete implementovat injektáž tajných kódů pomocí spravovaných identit, podívejte se na příklad 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 injektáže tajných kódů, namapujte v definici nasazení tajné kódy (které chcete odkazovat) z připojení pracovního prostoru nebo služby Key Vault do proměnných prostředí. 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 byl během vytváření koncového bodu definovaný online koncový bod pro vynucení přístupu k výchozím úložištům tajných kódů (připojení pracovních prostorů v aktuálním pracovním prostoru), identita uživatele, která vytváří nasazení v rámci koncového bodu, by měla mít oprávnění ke čtení tajných kódů z připojení pracovního prostoru.
  • Identita koncového bodu, kterou nasazení používá, by měla mít oprávnění ke čtení tajných kódů z připojení pracovního prostoru nebo služby Key Vault, jak je uvedeno v definici nasazení.

Poznámka:

  • Pokud byl koncový bod úspěšně vytvořen pomocí sai a příznak nastavený tak, aby vynucoval přístup k výchozím úložištům tajných kódů, měl by koncový bod automaticky oprávnění pro připojení pracovního prostoru.
  • V případě, že koncový bod použil UAI nebo příznak k vynucení přístupu k výchozím úložištím tajných kódů nebyl nastavený, nemusí mít identita koncového bodu oprávnění pro připojení pracovního prostoru. V takové situaci musíte roli pro připojení pracovního prostoru k identitě koncového bodu přiřadit ručně.
  • Identita koncového bodu nebude automaticky přijímat 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ů, budete muset 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).