Sdílet prostřednictvím


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.

Obrázek výše uvedených operací, které byste měli provádět.

  1. Krok 1: Nastavte AKV s exportovatelným klíčem a připojte zásady vydané verze. Další informace najdete tady.
  2. Krok 2: Nastavte spravovanou identitu s ID Microsoft Entra a připojte ji k AKV. Další informace najdete tady.
  3. 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.
  4. 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
  5. 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.
  6. 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.
  7. 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

Ověření identity Microsoft Azure (MAA)

Příklady zásad SKR