Share via


Sleutelrelease beveiligen met vertrouwelijke containers in Azure Container Instance (ACI)

Secure Key Release-stroom (SKR) met Azure Key Vault (AKV) met vertrouwelijke containeraanbiedingen kan op verschillende manieren worden geïmplementeerd. Vertrouwelijke containers voeren een door gasten verlicht AMD SEV-SNP-apparaat uit via een Linux-kernel die gebruikmaakt van een in gastfirmware met de benodigde Hyper-V-gerelateerde patches die we verwijzen naar Direct Linux Boot (DLB). Dit platform maakt geen gebruik van vTPM en HCL op basis van vertrouwelijke VM's met AMD SEV-SNP-ondersteuning. In dit conceptdocument wordt ervan uitgegaan dat u van plan bent om de containers uit te voeren in Azure Container Support voor het kiezen van een vertrouwelijke computing-SKU

  • Side-Car Helper-container geleverd door Azure
  • Aangepaste implementatie met uw containertoepassing

Side-Car Helper-container geleverd door Azure

Een opensource-GitHub-project 'vertrouwelijke side-cars' bevat informatie over het bouwen van deze container en welke parameters/omgevingsvariabelen nodig zijn om deze side-car-container voor te bereiden en uit te voeren. De huidige implementatie van auto's aan de zijkant biedt verschillende HTTP REST API's die uw primaire toepassingscontainer kan gebruiken om de sleutel op te halen uit AKV. De integratie via Microsoft Azure Attestation (MAA) is al ingebouwd. De voorbereidingsstappen voor het uitvoeren van de SKR-container met side-car vindt u hier in meer informatie.

De hoofdtoepassing van de toepassingscontainer kan de web-API-eindpunten voor side-car aanroepen, zoals gedefinieerd in het onderstaande voorbeeld. Side-cars wordt uitgevoerd binnen dezelfde containergroep en is een lokaal eindpunt voor uw toepassingscontainer. Hier vindt u de volledige details van de API

De key/release POST-methode verwacht een JSON met de volgende indeling:

{	
    "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"
}

Bij succes heeft het key/release POST-methodeantwoord een StatusOK header en een nettolading van de volgende indeling:

{
    "key": "<key in JSON Web Key format>"
}

Bij een fout heeft het key/release POST-methodeantwoord een StatusForbidden header en een nettolading van de volgende indeling:

{
    "error": "<error message>"
}

Aangepaste implementatie met uw containertoepassing

Als u een aangepaste containertoepassing wilt uitvoeren die de mogelijkheid van Azure Key Vault (AKV) - Secure Key Release en Microsoft Azure Attestation (MAA) uitbreidt, gebruikt u de onderstaande als referentiestroom op hoog niveau. Een eenvoudige aanpak is het controleren van de huidige implementatiecode voor side-car in dit GitHub-project met side-car.

Image of the aforementioned operations, which you should be performing.

  1. Stap 1: AKV instellen met exportbare sleutel en het releasebeleid koppelen. Meer hier
  2. Stap 2: Een beheerde identiteit instellen met Microsoft Entra-id en deze koppelen aan AKV. Meer hier
  3. Stap 3: Implementeer uw containertoepassing met vereiste parameters in ACI door een beleid voor afdwinging van vertrouwelijke computing in te stellen. Meer hier
  4. Stap 4: In deze stap haalt uw toepassing een RAW AMD SEV-SNP-hardwarerapport op door een IOCTL Linux Socket-aanroep uit te voeren. U hebt geen attestation-bibliotheek met gasten nodig om deze actie uit te voeren. Meer informatie over bestaande side-car-implementatie
  5. Stap 5: Haal de AMD SEV-SNP-certificaatketen op voor de containergroep. Deze certificaten worden geleverd vanuit het Azure-host-IMDS-eindpunt. Meer hier
  6. Stap 6: Verzend het SNP RAW-hardwarerapport en certificaatgegevens naar MAA voor verificatie en retourclaims. Meer hier
  7. Stap 7: Verzend het MAA-token en het beheerde identiteitstoken dat door ACI is gegenereerd naar AKV voor sleutelrelease. Meer hier

Wanneer de sleutel is opgehaald uit AKV, kunt u de sleutel gebruiken voor het ontsleutelen van de gegevenssets of het versleutelen van de gegevens die uit de vertrouwelijke containeromgeving gaan.

Verwijzingen

ACI met vertrouwelijke containerimplementaties

Side-Car-implementatie met versleutelde blob ophalen en ontsleutelen met SKR AKV-sleutel

AKV SKR met confidential VM's AMD SEV-SNP

Microsoft Azure Attestation (MAA)

Voorbeelden van SKR-beleid