Share via


Azure KeyVault Felügyeleti ügyfélkódtár a .NET-hez – 4.3.0-s verzió

Az Azure Key Vault managed HSM egy teljes körűen felügyelt, magas rendelkezésre állású, egybérlős, szabványoknak megfelelő felhőszolgáltatás, amely lehetővé teszi a titkosítási kulcsok védelmét a felhőalkalmazások számára a FIPS 140-2 3. szintű ellenőrzött HSM-ekkel.

Az Azure Key Vault felügyeleti tár ügyfelei támogatják az olyan felügyeleti feladatokat, mint a teljes biztonsági mentés/ visszaállítás és a kulcsszintű szerepköralapú hozzáférés-vezérlés (RBAC).

Forráskód | Csomag (NuGet) | Termékdokumentáció | Minták

Első lépések

A csomag telepítése

Telepítse az Azure Key Vault felügyeleti ügyfélkódtárat a .NET-hez a NuGet használatával:

dotnet add package Azure.Security.KeyVault.Administration

Előfeltételek

Felügyelt HSM-erőforrás létrehozásához futtassa a következő parancssori felületi parancsot:

az keyvault create --hsm-name <your-key-vault-name> --resource-group <your-resource-group-name> --administrators <your-user-object-id> --location <your-azure-location>

A lekéréshez <your-user-object-id> futtassa a következő parancssori felületi parancsot:

az ad user show --id <your-user-principal> --query id

Az ügyfél hitelesítése

Az Azure Key Vault szolgáltatás használatához létre kell hoznia az alábbi ügyfélosztályok egy példányát. Szüksége van egy tároló URL-címére, amelyet "DNS-név" néven láthat a portálon, valamint hitelesítő adatokra egy ügyfélobjektum példányosításához.

Az alábbi példákban egy DefaultAzureCredential, a legtöbb forgatókönyvnek megfelelő , beleértve a helyi fejlesztési és éles környezeteket is. Emellett azt is javasoljuk, hogy felügyelt identitást használjon a hitelesítéshez éles környezetben. A hitelesítés különböző módjairól és a hozzájuk tartozó hitelesítő adatok típusairól az Azure Identity dokumentációjában talál további információt.

Az alább látható szolgáltató vagy az DefaultAzureCredential Azure SDK-hoz biztosított egyéb hitelesítőadat-szolgáltatók használatához először telepítenie kell az Azure.Identity csomagot:

dotnet add package Azure.Identity

A felügyelt HSM aktiválása

A HSM aktiválásáig minden adatsík-parancs le van tiltva. Nem fog tudni kulcsokat létrehozni vagy szerepköröket hozzárendelni. Csak a létrehozási parancs során hozzárendelt kijelölt rendszergazdák aktiválhatják a HSM-et. A HSM aktiválásához le kell töltenie a biztonsági tartományt.

A HSM aktiválásához a következőkre van szüksége:

  • Legalább 3 RSA kulcspár (legfeljebb 10)
  • Adja meg a biztonsági tartomány (kvórum) visszafejtéséhez szükséges kulcsok minimális számát

A HSM aktiválásához legalább 3 (legfeljebb 10) RSA nyilvános kulcsot kell küldenie a HSM-nek. A HSM ezekkel a kulcsokkal titkosítja a biztonsági tartományt, és visszaküldi. A biztonsági tartomány sikeres letöltése után a HSM készen áll a használatra. Meg kell adnia a kvórumot is, amely a biztonsági tartomány visszafejtéséhez szükséges titkos kulcsok minimális száma.

Az alábbi példa bemutatja, hogyan hozhat létre 3 önaláírt tanúsítványt az openssl használatával.

openssl req -newkey rsa:2048 -nodes -keyout cert_0.key -x509 -days 365 -out cert_0.cer
openssl req -newkey rsa:2048 -nodes -keyout cert_1.key -x509 -days 365 -out cert_1.cer
openssl req -newkey rsa:2048 -nodes -keyout cert_2.key -x509 -days 365 -out cert_2.cer

az keyvault security-domain download A paranccsal töltse le a biztonsági tartományt, és aktiválja a felügyelt HSM-et. Az alábbi példa 3 RSA-kulcspárt használ (ehhez a parancshoz csak nyilvános kulcsokra van szükség), és a kvórum értékét 2-re állítja.

az keyvault security-domain download --hsm-name <your-managed-hsm-name> --sd-wrapping-keys ./certs/cert_0.cer ./certs/cert_1.cer ./certs/cert_2.cer --sd-quorum 2 --security-domain-file ContosoMHSM-SD.json

A felügyelt HSM-hez való hozzáférés szabályozása

A létrehozás során hozzárendelt kijelölt rendszergazdák automatikusan bekerülnek a beépített "Felügyelt HSM-rendszergazdák" szerepkörbe, akik többek között letölthetnek egy biztonsági tartományt, és kezelhetik az adatsík-hozzáférés szerepköreit.

Ha más műveleteket szeretne végrehajtani a kulcsokon, más szerepkörökhöz, például a "Felügyelt HSM crypto-felhasználóhoz" kell hozzárendelnie a tagokat, amelyek nem romboló kulcsműveleteket hajthatnak végre:

az keyvault role assignment create --hsm-name <your-managed-hsm-name> --role "Managed HSM Crypto User" --scope / --assignee-object-id <principal-or-user-object-ID> --assignee-principal-type <principal-type>

Olvassa el a felügyelt HSM megfelelő védelmének ajánlott eljárásait .

KeyVaultAccessControlClient létrehozása

A példányosítása DefaultAzureCredential a következőnek való átadáshoz KeyVaultAccessControlClient: . A jogkivonat hitelesítő adatainak ugyanazon példánya több ügyféllel is használható, ha ugyanazzal az identitással hitelesíti őket.

KeyVaultAccessControlClient client = new KeyVaultAccessControlClient(new Uri(managedHsmUrl), new DefaultAzureCredential());

KeyVaultBackupClient létrehozása

A példányosítása DefaultAzureCredential a következőnek való átadáshoz KeyVaultBackupClient: . A jogkivonat hitelesítő adatainak ugyanazon példánya több ügyféllel is használható, ha ugyanazzal az identitással hitelesíti őket.

KeyVaultBackupClient client = new KeyVaultBackupClient(new Uri(managedHsmUrl), new DefaultAzureCredential());

KeyVaultSettingClient létrehozása

A példányosítása DefaultAzureCredential a következőnek való átadáshoz KeyVaultSettingsClient: . A jogkivonat hitelesítő adatainak ugyanazon példánya több ügyféllel is használható, ha ugyanazzal az identitással hitelesíti őket.

KeyVaultSettingsClient client = new KeyVaultSettingsClient(new Uri(managedHsmUrl), new DefaultAzureCredential());

Fő fogalmak

KeyVaultRoleDefinition

Az A KeyVaultRoleDefinition engedélyek gyűjteménye. A szerepkördefiníció határozza meg a végrehajtható műveleteket, például az olvasást, az írást és a törlést. Megadhatja az engedélyezett műveletekből kizárt műveleteket is.

A KeyVaultRoleDefinitions a részeként listázható és megadható KeyVaultRoleAssignment.

KeyVaultRoleAssignment

Az A KeyVaultRoleAssignment a KeyVaultRoleDefinition társítása egy szolgáltatásnévhez. Ezek létrehozhatók, listázhatók, egyenként lekérhetők és törölhetők.

KeyVaultAccessControlClient

Az A KeyVaultAccessControlClient szinkron és aszinkron műveleteket is biztosít, amelyek lehetővé teszik az és KeyVaultRoleAssignment objektumok KeyVaultRoleDefinition kezelését.

KeyVaultBackupClient

Az A KeyVaultBackupClient szinkron és aszinkron műveleteket is biztosít a teljes kulcsok biztonsági mentéséhez, a teljes kulcsok visszaállításához és a szelektív kulcsok visszaállításához.

BackupOperation

Az A BackupOperation egy hosszú ideig futó műveletet jelent a teljes kulcsos biztonsági mentéshez.

RestoreOperation

Az A RestoreOperation egy hosszú ideig futó műveletet jelent a teljes kulcs és a szelektív kulcsok visszaállításához.

Menetbiztonság

Garantáljuk, hogy minden ügyfélpéldány-metódus szálbiztos és független egymástól (iránymutatás). Ez biztosítja, hogy az ügyfélpéldányok újrafelhasználására vonatkozó javaslat mindig biztonságos legyen, még a szálak között is.

További fogalmak

Ügyfélbeállítások | A válasz | elérése Hosszú ideig futó műveletek | Hibák | kezelése Diagnosztika | Gúnyos | Ügyfélélettartam

Példák

Az Azure.Security.KeyVault.Administration csomag támogatja a szinkron és aszinkron API-kat.

A következő szakasz számos kódrészletet tartalmaz a client fent létrehozott hozzáférés-vezérlési vagy biztonsági mentési ügyfelekhez, amelyek a leggyakoribb Azure Key Vault hozzáférés-vezérléssel kapcsolatos feladatokat fedik le:

Példák szinkronizálása

Példák aszinkronizálásra

Hibaelhárítás

A különböző hibaforgatókönyvek diagnosztizálásával kapcsolatos részletekért tekintse meg a hibaelhárítási útmutatónkat .

Általános kérdések

Amikor az Azure Key Vault Felügyeleti kódtárat a .NET SDK használatával használja, a szolgáltatás által visszaadott hibák megegyeznek a REST API-kérésekhez visszaadott HTTP-állapotkódokkal.

Ha például olyan szerepkör-hozzárendelést próbál lekérni, amely nem létezik az Azure-Key Vault, a rendszer hibát 404 ad vissza, amely a "Nem található" értéket jelzi.

try
{
    KeyVaultRoleAssignment roleAssignment = client.GetRoleAssignment(KeyVaultRoleScope.Global, "example-name");
}
catch (RequestFailedException ex)
{
    Console.WriteLine(ex.ToString());
}
Azure.RequestFailedException: Service request failed.
Status: 404 (Not Found)

Content:
{"error":{"code":"RoleAssignmentNotFound","message":"Requested role assignment not found (Activity ID: a67f09f4-b68e-11ea-bd6d-0242ac120006)"}}

Headers:
X-Content-Type-Options: REDACTED
x-ms-request-id: a67f09f4-b68e-11ea-bd6d-0242ac120006
Content-Length: 143
Content-Type: application/json

Konzolnaplózás beállítása

A naplók megtekintésének legegyszerűbb módja a konzolnaplózás engedélyezése. Ha olyan Azure SDK-naplófigyelőt szeretne létrehozni, amely üzeneteket küld a konzolra, használja a metódust AzureEventSourceListener.CreateConsoleLogger .

// Setup a listener to monitor logged events.
using AzureEventSourceListener listener = AzureEventSourceListener.CreateConsoleLogger();

A többi naplózási mechanizmusról itt talál további információt.

Következő lépések

Ismerkedjen meg a mintákkal.

Közreműködés

A projektben szívesen fogadjuk a hozzájárulásokat és a javaslatokat. A legtöbb hozzájáruláshoz el kell fogadnia egy Közreműködői licencszerződést (CLA-t), amelyben kijelenti, hogy jogosult arra, hogy ránk ruházza hozzájárulása felhasználási jogát, és ezt ténylegesen meg is teszi. További részletekért lásd: https://cla.microsoft.com.

A projekt a Microsoft nyílt forráskódú projekteket szabályozó etikai kódexe, a Microsoft Open Source Code of Conduct hatálya alá esik. További információkért lásd a viselkedési szabályzattal kapcsolatos gyakori kérdéseket , vagy vegye fel a kapcsolatot opencode@microsoft.com az esetleges további kérdésekkel vagy megjegyzésekkel.

Megjelenések