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
- Egy Azure-előfizetés.
- Egy meglévő Azure-Key Vault. Ha létre kell hoznia egy Azure-Key Vault, használhatja az Azure CLI-t.
- Engedélyezés meglévő Azure-Key Vault RBAC használatával (ajánlott) vagy hozzáférés-vezérléssel.
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
- Hozzáférés-vezérlés
- Biztonsági mentés és visszaállítás
Példák aszinkronizálásra
- Hozzáférés-vezérlés
- Biztonsági mentés és visszaállítás
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.
Azure SDK for .NET
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: