Azure Container Apps umožňuje vaší aplikaci zabezpečeně ukládat citlivé hodnoty konfigurace. Jakmile jsou tajné kódy definované na úrovni aplikace, jsou zabezpečené hodnoty k dispozici pro revize v aplikacích kontejnerů. Kromě toho můžete odkazovat na zabezpečené hodnoty uvnitř pravidel škálování. Informace o používání tajných kódů s Dapr najdete v integraci Dapr.
Tajné klíče jsou omezené na aplikaci mimo konkrétní revizi aplikace.
Přidání, odebrání nebo změna tajných kódů negeneruje nové revize.
Každá revize aplikace může odkazovat na jeden nebo více tajných klíčů.
Na stejné tajné klíče může odkazovat více revizí.
Aktualizovaný nebo odstraněný tajný klíč nemá automaticky vliv na existující revize ve vaší aplikaci. Při aktualizaci nebo odstranění tajného klíče můžete na změny reagovat dvěma způsoby:
Nasazení nové revize
Restartování stávající revize
Před odstraněním tajného klíče nasaďte novou revizi, která již na starý tajný klíč neodkazuje. Pak deaktivujte všechny revize, které odkazují na tajný klíč.
Definování tajných kódů
Tajné kódy jsou definovány jako sada párů název/hodnota. Hodnota každého tajného kódu se zadává přímo nebo jako odkaz na tajný klíč uložený ve službě Azure Key Vault.
Uložení hodnoty tajného kódu v Container Apps
Když definujete tajné kódy prostřednictvím portálu nebo prostřednictvím různých možností příkazového řádku.
V této části se v secrets poli deklaruje připojovací řetězec k účtu úložiště fronty. V tomto příkladu byste nahradili <MY-CONNECTION-STRING-VALUE> hodnotou připojovací řetězec.
Při vytváření aplikace kontejneru se tajné kódy definují pomocí parametru --secrets .
Parametr přijímá sadu párů name/value oddělených mezerami.
V této části se v parametru --secrets deklaruje připojovací řetězec k účtu úložiště fronty. Nahraďte <CONNECTION_STRING> hodnotou připojovací řetězec.
Při vytváření aplikace kontejneru se tajné kódy definují jako jeden nebo více tajných objektů, které se předávají prostřednictvím parametru ConfigurationSecrets .
Tady se deklaruje připojovací řetězec k účtu úložiště fronty. Hodnota pro queue-connection-string pochází z proměnné prostředí s názvem $QueueConnectionString.
Referenční tajný klíč ze služby Key Vault
Když definujete tajný klíč, vytvoříte odkaz na tajný klíč uložený ve službě Azure Key Vault. Container Apps automaticky načte hodnotu tajného kódu ze služby Key Vault a zpřístupní ji jako tajný klíč v aplikaci kontejneru.
Pokud chcete odkazovat na tajný klíč ze služby Key Vault, musíte nejprve ve své aplikaci kontejneru povolit spravovanou identitu a udělit jí přístup k tajným klíčům služby Key Vault.
Pokud chcete ve své aplikaci kontejneru povolit spravovanou identitu, přečtěte si téma Spravované identity.
Pokud chcete udělit přístup k tajným kódům služby Key Vault, vytvořte ve službě Key Vault zásadu přístupu pro spravovanou identitu, kterou jste vytvořili. U této zásady povolte oprávnění k získání tajného kódu.
V této části se v secrets poli deklaruje připojovací řetězec k účtu úložiště fronty. Jeho hodnota se automaticky načte ze služby Key Vault pomocí zadané identity. Pokud chcete použít identitu spravovanou uživatelem, nahraďte system ID prostředku identity.
Nahraďte <KEY-VAULT-SECRET-URI> identifikátorem URI vašeho tajného klíče ve službě Key Vault.
Při vytváření aplikace kontejneru se tajné kódy definují pomocí parametru --secrets .
Parametr přijímá sadu párů name/value oddělených mezerami.
Každý pár je oddělený symbolem rovná se (=).
Pokud chcete zadat odkaz služby Key Vault, použijte formát <SECRET_NAME>=keyvaultref:<KEY_VAULT_SECRET_URI>,identityref:<MANAGED_IDENTITY_ID>. Například queue-connection-string=keyvaultref:https://mykeyvault.vault.azure.net/secrets/queuereader,identityref:/subscriptions/ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0/resourcegroups/my-resource-group/providers/Microsoft.ManagedIdentity/userAssignedIdentities/my-identity.
V této části se v parametru --secrets deklaruje připojovací řetězec k účtu úložiště fronty. Nahraďte <KEY_VAULT_SECRET_URI> identifikátorem URI vašeho tajného klíče ve službě Key Vault. Nahraďte <USER_ASSIGNED_IDENTITY_ID> ID prostředku identity přiřazené uživatelem. Pro identitu přiřazenou systémem použijte system místo ID prostředku.
Poznámka:
Identita přiřazená uživatelem musí mít přístup ke čtení tajného kódu ve službě Key Vault. Identitu přiřazenou systémem nejde použít s příkazem create, protože není k dispozici, dokud se aplikace kontejneru nevytvoří.
Odkazy služby Key Vault na tajné kódy nejsou v PowerShellu podporované.
Identifikátor URI a obměně tajných kódů služby Key Vault
Tajný identifikátor URI služby Key Vault musí být v jednom z následujících formátů:
https://myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931: Odkazování na konkrétní verzi tajného kódu.
https://myvault.vault.azure.net/secrets/mysecret: Odkaz na nejnovější verzi tajného kódu.
Pokud v identifikátoru URI není zadaná verze, aplikace použije nejnovější verzi, která existuje v trezoru klíčů. Jakmile budou k dispozici novější verze, aplikace automaticky načte nejnovější verzi do 30 minut. Všechny aktivní revize, které odkazují na tajný klíč v proměnné prostředí, se automaticky restartují, aby se vybrala nová hodnota.
Pro úplnou kontrolu nad verzí tajného kódu zadejte verzi v identifikátoru URI.
Odkazování na tajné kódy v proměnných prostředí
Po deklarování tajných kódů na úrovni aplikace, jak je popsáno v části definování tajných kódů , můžete je při vytváření nové revize v aplikaci kontejneru odkazovat v proměnných prostředí. Když proměnná prostředí odkazuje na tajný klíč, jeho hodnota se naplní hodnotou definovanou v tajném kódu.
Příklad
Následující příklad ukazuje aplikaci, která deklaruje připojovací řetězec na úrovni aplikace. Toto připojení se odkazuje v proměnné prostředí kontejneru a v pravidle škálování.
V této části získá proměnná prostředí pojmenovanou connection-string hodnotu z tajného kódu na úrovni queue-connection-string aplikace. Konfigurace ověřování ve službě Azure Queue Storage používá queue-connection-string také tajný klíč k definování připojení.
Abyste se vyhnuli potvrzení tajných hodnot do správy zdrojového kódu pomocí šablony ARM, předejte tajné hodnoty jako parametry šablony ARM.
V tomto příkladu vytvoříte aplikaci kontejneru pomocí Azure CLI s tajným kódem, na který odkazuje proměnná prostředí. Pokud chcete odkazovat na tajný klíč v proměnné prostředí v Azure CLI, nastavte jeho hodnotu na secretref:, následovanou názvem tajného kódu.
V této části získá proměnná prostředí pojmenovanou connection-string hodnotu z tajného kódu na úrovni queue-connection-string aplikace.
V tomto příkladu vytvoříte kontejner pomocí Azure PowerShellu s tajným kódem, na který odkazuje proměnná prostředí. Pokud chcete odkazovat na tajný klíč v proměnné prostředí v PowerShellu, nastavte jeho hodnotu na secretref:, následovanou názvem tajného kódu.
V této části získá proměnná prostředí pojmenovanou ConnectionString hodnotu z tajného kódu na úrovni $QueueConnectionString aplikace.
Připojení tajných kódů ve svazku
Po deklarování tajných kódů na úrovni aplikace, jak je popsáno v části definování tajných kódů , můžete na ně odkazovat při vytváření nové revize v aplikaci kontejneru. Při připojování tajných kódů ke svazku se každý tajný klíč připojí jako soubor ve svazku. Název souboru je název tajného kódu a obsah souboru je hodnota tajného kódu. Všechny tajné kódy můžete načíst do připojení svazku nebo můžete načíst konkrétní tajné kódy.
Přejděte do aplikace kontejneru na webu Azure Portal.
Otevřete stránku Správy revizí.
Vyberte Vytvořit novou revizi.
Na stránce Vytvořit a nasadit novou revizi
Vyberte kontejner a vyberte Upravit.
V části Připojení svazku rozbalte oddíl Tajné kódy.
Vyberte Vytvořit nový svazek.
Zadejte následující údaje:
Název: mysecrets
Připojení všech tajných kódů: povoleno
Poznámka:
Pokud chcete načíst konkrétní tajné kódy, zakažte připojení všech tajných kódů a vyberte tajné kódy, které chcete načíst.
Vyberte Přidat.
V části Název svazku vyberte mojesecrety.
V části Cesta k připojení zadejte /mnt/secrets.
Zvolte Uložit.
Výběrem možnosti Vytvořit vytvořte novou revizi s připojením svazku.
V tomto příkladu jsou dva tajné kódy deklarovány na úrovni aplikace. Tyto tajné kódy jsou připojeny ke svazku s názvem mysecrets typu Secret. Svazek je připojen k cestě /mnt/secrets. Aplikace pak může odkazovat na tajné kódy v připojení svazku.
Pokud chcete načíst konkrétní tajné kódy a určit jejich cesty v rámci připojeného svazku, definujete tajné kódy v secrets poli objektu svazku. Následující příklad ukazuje, jak načíst pouze queue-connection-string tajný kód v připojení svazku mysecrets s názvem connection-string.txtsouboru .
V aplikaci můžete číst tajný kód ze souboru umístěného na /mnt/secrets/connection-string.txtadrese .
V tomto příkladu jsou dva tajné kódy deklarovány na úrovni aplikace. Tyto tajné kódy jsou připojeny ke svazku s názvem mysecrets typu Secret. Svazek je připojen k cestě /mnt/secrets. Aplikace pak může tajné kódy číst jako soubory v připojení svazku.