Konfigurera attestering för Always Encrypted med azure-attestering
Gäller för:Azure SQL Database
Microsoft Azure Attestation är en lösning för attestera betrodda körningsmiljöer (TEE), inklusive Intel Software Guard-tillägg (Intel SGX) enklaver.
Om du vill använda Azure Attestation för attestera Intel SGX-enklaver som används för Always Encrypted med säkra enklaver i Azure SQL Database måste du:
Skapa en attesteringsprovider och konfigurera den med den rekommenderade attesteringsprincipen.
Fastställa attesterings-URL:en och dela den med programadministratörer.
Viktigt!
Med Intel SGX-enklaver i Azure SQL Database är attestering obligatoriskt och kräver Microsoft Azure Attestation. VBS-enklaver i Azure SQL Database stöder inte attestering. Den här artikeln gäller endast Intel SGX-enklaver.
Kommentar
Att konfigurera attestering är attesteringsadministratörens ansvar. Se Roller och ansvarsområden när du konfigurerar Intel SGX-enklaver och attestering.
Skapa och konfigurera en attesteringsprovider
En attesteringsprovider är en resurs i Azure Attestation som utvärderar attesteringsbegäranden mot attesteringsprinciper och utfärdar attesteringstoken.
Attesteringsprinciper anges med hjälp av grammatiken för anspråksregeln.
Viktigt!
En attesteringsprovider skapas med standardprincipen för Intel SGX-enklaver, som inte verifierar koden som körs i enklaven. Microsoft rekommenderar starkt att du anger den rekommenderade principen som används i följande utdata och inte använder standardprincipen för Always Encrypted med säkra enklaver.
Microsoft rekommenderar följande princip för attestera Intel SGX-enklaver som används för Always Encrypted i Azure SQL Database:
version= 1.0;
authorizationrules
{
[ type=="x-ms-sgx-is-debuggable", value==false ]
&& [ type=="x-ms-sgx-product-id", value==4639 ]
&& [ type=="x-ms-sgx-svn", value>= 2 ]
&& [ type=="x-ms-sgx-mrsigner", value=="e31c9e505f37a58de09335075fc8591254313eb20bb1a27e5443cc450b6e33e5"]
=> permit();
};
Principen verifierar:
Enklaven i Azure SQL Database stöder inte felsökning.
Enklaver kan läsas in med felsökning inaktiverad eller aktiverad. Felsökningsstöd är utformat för att göra det möjligt för utvecklare att felsöka koden som körs i en enklav. I ett produktionssystem kan felsökning göra det möjligt för en administratör att undersöka innehållet i enklaven, vilket skulle minska den skyddsnivå som enklaven tillhandahåller. Den rekommenderade principen inaktiverar felsökning för att säkerställa att om en skadlig administratör försöker aktivera felsökningsstöd genom att ta över enklaverdatorn misslyckas attesteringen.
Produkt-ID:t för enklaven matchar produkt-ID:t som tilldelats Always Encrypted med säkra enklaver.
Varje enklaver har ett unikt produkt-ID som skiljer enklaven från andra enklaver. Produkt-ID:t som tilldelats always encrypted-enklaven är 4639.
Bibliotekets säkerhetsversionsnummer (SVN) är större än eller lika med 2.
Med SVN kan Microsoft svara på potentiella säkerhetsbuggar som identifieras i enklavens kod. Om ett säkerhetsproblem upptäcks och åtgärdas distribuerar Microsoft en ny version av enklaven med ett nytt (inkrementerat) SVN. Den rekommenderade principen uppdateras för att återspegla det nya SVN:t. Genom att uppdatera din princip så att den matchar den rekommenderade principen kan du se till att om en obehörig administratör försöker läsa in en äldre och osäker enklav misslyckas attesteringen.
Biblioteket i enklaven har signerats med hjälp av Microsoft-signeringsnyckeln (värdet för anspråket x-ms-sgx-mrsigner är hashen för signeringsnyckeln).
Ett av huvudmålen med attestering är att övertyga klienter om att binärfilen som körs i enklaven är binärfilen som ska köras. Attesteringsprinciper tillhandahåller två mekanismer för detta ändamål. Den ena är mrenclave-anspråket , som är hashen för binärfilen som ska köras i en enklav. Problemet med mrenclave är att binär hash ändras även med triviala ändringar i koden, vilket gör det svårt att återkalla koden som körs i enklaven. Därför rekommenderar vi användning av mrsigner, som är en hash av en nyckel som används för att signera enklaven binär. När Microsoft återkallar enklaven förblir mrsigner densamma så länge signeringsnyckeln inte ändras. På så sätt blir det möjligt att distribuera uppdaterade binärfiler utan att bryta kundernas program.
Viktigt!
Microsoft kan behöva rotera nyckeln som används för att signera always encrypted-enklavens binärfil, vilket förväntas vara en sällsynt händelse. Innan en ny version av enklaverbinärfilen, signerad med en ny nyckel, distribueras till Azure SQL Database uppdateras den här artikeln för att tillhandahålla en ny rekommenderad attesteringsprincip och instruktioner om hur du ska uppdatera principen i dina attesteringsprovidrar för att säkerställa att dina program fortsätter att fungera oavbrutet.
Anvisningar för hur du skapar en attesteringsprovider och konfigurerar med en attesteringsprincip med hjälp av:
- Snabbstart: Konfigurera Azure Attestation med Azure-portalen
Viktigt!
När du konfigurerar din attesteringsprincip med Azure-portalen anger du Attesteringstyp till
SGX-IntelSDK
. - Snabbstart: Konfigurera Azure Attestation med Azure PowerShell
Viktigt!
När du konfigurerar din attesteringsprincip med Azure PowerShell anger du parametern
Tee
tillSgxEnclave
. - Snabbstart: Konfigurera Azure Attestation med Azure CLI
Viktigt!
När du konfigurerar din attesteringsprincip med Azure CLI anger du parametern
attestation-type
tillSGX-IntelSDK
.
Fastställa attesterings-URL:en för din attesteringsprincip
När du har konfigurerat en attesteringsprincip måste du dela attesterings-URL:en med administratörer av program som använder Always Encrypted med säkra enklaver i Azure SQL Database. Attesterings-URL:en är för Attest URI
attesteringsprovidern som innehåller attesteringsprincipen, som ser ut så här: https://MyAttestationProvider.wus.attest.azure.net
.
Använda Azure-portalen för att fastställa attesterings-URL:en
I fönstret Översikt för attesteringsprovidern kopierar du värdet för Attest URI
egenskapen till Urklipp.
Använda PowerShell för att fastställa attesterings-URL:en
Använd cmdleten Get-AzAttestation
för att hämta egenskaperna för attesteringsprovidern, inklusive AttestURI.
Get-AzAttestation -Name $attestationProviderName -ResourceGroupName $attestationResourceGroupName
Mer information finns i Skapa och hantera en attesteringsprovider.