Zabezpečené vydání klíče s důvěrnými kontejnery ve službě Azure Container Instance (ACI)
Tok SKR (Secure Key Release) se službou Azure Key Vault (AKV) s důvěrnými nabídkami kontejnerů může implementovat několika způsoby. Důvěrné kontejnery spouští hosta s podporou exposting AMD SEV-SNP zařízení prostřednictvím jádra Linuxu, které používá v hostovaném firmwaru potřebné opravy související s Technologií Hyper-V, které označujeme jako DLB (Direct Linux Boot). Tato platforma nepoužívá virtuální počítače vTPM a HCL založené na důvěrných virtuálních počítačích s podporou AMD SEV-SNP. V tomto dokumentu konceptu se předpokládá, že plánujete spouštět kontejnery v podpoře kontejnerů Azure při výběru skladové položky důvěrného výpočetního prostředí.
- Kontejner pomocných rutin pro boční auto poskytovaný Azure
- Vlastní implementace s využitím kontejnerové aplikace
Kontejner pomocných rutin pro boční auto poskytovaný Azure
Opensourcový projekt GitHubu podrobně popisuje, jak sestavit tento kontejner a jaké parametry a proměnné prostředí jsou potřeba k přípravě a spuštění tohoto kontejneru side-car. Implementace aktuálního bočního vozu poskytuje různá rozhraní HTTP REST API, která primární kontejner aplikace může použít k načtení klíče z AKV. Integrace prostřednictvím ověřování Microsoft Azure (MAA) je už integrovaná. Kroky přípravy ke spuštění kontejneru SKR bočního vozu najdete v podrobnostech zde.
Hlavní aplikace kontejneru aplikací může volat koncové body webového rozhraní WEB API bočního vozu, jak je definováno v následujícím příkladu. Boční auta běží ve stejné skupině kontejnerů a je místním koncovým bodem kontejneru vaší aplikace. Úplné podrobnosti o rozhraní API najdete tady.
Metoda key/release
POST očekává JSON z následujícího formátu:
{
"maa_endpoint": "<maa endpoint>", //https://learn.microsoft.com/en-us/azure/attestation/quickstart-portal#attestation-provider
"akv_endpoint": "<akv endpoint>", //AKV URI
"kid": "<key identifier>" //key name,
"access_token": "optional aad token if the command will run in a resource without proper managed identity assigned"
}
Po úspěchu key/release
má odpověď metody POST hlavičku StatusOK
a datovou část následujícího formátu:
{
"key": "<key in JSON Web Key format>"
}
Při chybě key/release
má odpověď metody POST hlavičku StatusForbidden
a datovou část následujícího formátu:
{
"error": "<error message>"
}
Vlastní implementace s využitím kontejnerové aplikace
Pokud chcete provést vlastní aplikaci kontejneru, která rozšiřuje možnosti služby Azure Key Vault (AKV) – Secure Key Release a Microsoft Azure Attestation (MAA), použijte následující postup jako základní referenční tok. Snadným přístupem je zkontrolovat aktuální kód implementace bočního vozu v tomto projektu GitHubu.
- Krok 1: Nastavte AKV s exportovatelným klíčem a připojte zásady vydané verze. Další informace najdete tady.
- Krok 2: Nastavte spravovanou identitu s ID Microsoft Entra a připojte ji k AKV. Další informace najdete tady.
- Krok 3: Nasazení aplikace kontejneru s požadovanými parametry v ACI nastavením zásad vynucení důvěrných výpočetních prostředků Další informace najdete tady.
- Krok 4: V tomto kroku vaše aplikace načte sestavu hardwaru RAW AMD SEV-SNP provedením volání soketu IOCTL Linux. K provedení této akce nepotřebujete žádnou knihovnu ověření identity hosta. Další informace o stávající implementaci bočního vozu
- Krok 5: Načtení řetězce certifikátů AMD SEV-SNP pro skupinu kontejnerů Tyto certifikáty se doručují z koncového bodu IMDS hostitele Azure. Další informace najdete tady.
- Krok 6: Odeslání sestavy hardwaru SNP RAW a podrobností o certifikátu do MAA za účelem ověření a vrácení deklarací identity Další informace najdete tady.
- Krok 7: Odeslání tokenu MAA a tokenu spravované identity vygenerovaného službou ACI do AKV pro vydání klíče Další informace najdete tady.
Při úspěšném načtení klíče z AKV můžete klíč využít k dešifrování datových sad nebo šifrování dat, která procházejí z důvěrného prostředí kontejneru.
Reference
ACI s důvěrnými nasazeními kontejnerů
Implementace side-Car s šifrovaným objektem blob načítá a dešifruje pomocí klíče AKV SKR
AKV SKR s důvěrnými virtuálními počítači AMD SEV-SNP