Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Den här handledningen innehåller ett praktiskt implementeringsexempel på åtkomstkontroll för Azure Key Vault Managed HSM. Du får lära dig hur du implementerar uppdelning av uppgifter med hjälp av Azure RBAC och managed HSM local RBAC via ett realistiskt scenario.
Viktigt!
Innan du fortsätter med den här självstudien ska du se till att du förstår modellen för hanterad HSM-åtkomstkontroll, inklusive skillnaderna mellan åtkomst till kontrollplan och dataplan. Den här konceptuella grunden finns i Hanterad HSM-åtkomstkontroll.
Förutsättningar
- En prenumeration till Microsoft Azure. Om du inte har ett konto kan du registrera dig för en kostnadsfri utvärderingsversion.
- Azure CLI version 2.25.0 eller senare. Kör
az --versionför att hitta versionen. Om du behöver installera eller uppgradera kan du läsa informationen i Installera Azure CLI. - En hanterad HSM i ditt abonnemang. Se Snabbstart: Etablera och aktivera en hanterad HSM med Azure CLI för att etablera och aktivera en hanterad HSM.
Azure Cloud Shell
Azure är värd för Azure Cloud Shell, en interaktiv gränssnittsmiljö som du kan använda via webbläsaren. Du kan använda antingen Bash eller PowerShell med Cloud Shell för att arbeta med Azure-tjänster. Du kan använda förinstallerade Cloud Shell-kommandon för att köra koden i den här artikeln, utan att behöva installera något i din lokala miljö.
Så här startar du Azure Cloud Shell:
| Alternativ | Exempel/länk |
|---|---|
| Välj Försök i det övre högra hörnet av kod- eller kommandoblocket. Om du väljer Prova kopieras inte koden eller kommandot automatiskt till Cloud Shell. |
|
| Gå till https://shell.azure.com eller Välj knappen Starta Cloud Shell för att öppna Cloud Shell i webbläsaren. |
|
| Välj knappen Cloud Shell på menyn längst upp till höger i Azure-portalen. |
|
Så här använder du Azure Cloud Shell:
Starta den Cloud Shell.
Välj knappen Kopiera i ett kodblock (eller kommandoblock) för att kopiera koden eller kommandot.
Klistra in koden eller kommandot i Cloud Shell-sessionen genom att välja Ctrl+Skift+V i Windows och Linux, eller genom att välja Cmd+Skift+V på macOS.
Välj Ange för att köra koden eller kommandot.
Logga in på Azure
Du kan logga in i Azure via CLI genom att skriva:
az login
Mer information om inloggningsalternativ via CLI finns i logga in med Azure CLI
Förstå exempelscenariot
I det här exemplet utvecklar vi ett program som använder en RSA 2 048-bitarsnyckel för teckenåtgärder. Vårt program körs på en virtuell Azure-dator (VM) med en hanterad identitet. RSA-nyckeln som används för signering lagras i vår hanterade HSM.
Definiera roller och ansvarsområden
Vi har identifierat följande roller som hanterar, distribuerar och granskar vårt program:
- Säkerhetsteam: IT-personal från kontoret för CSO (Chief Security Officer) eller liknande deltagare. Säkerhetsteamet ansvarar för korrekt förvaring av nycklar. Nycklarna innehåller RSA- eller EC-nycklar för signering och RSA- eller AES-nycklar för datakryptering.
- Utvecklare och operatörer: Personalen som utvecklar programmet och distribuerar det i Azure. Medlemmarna i det här teamet ingår inte i säkerhetspersonalen. De ska inte ha åtkomst till känsliga data som RSA-nycklar. Endast det program som de distribuerar ska ha åtkomst till dessa känsliga data.
- Granskare: Den här rollen är till för deltagare som inte är medlemmar i utvecklings- eller allmän IT-personal. De granskar användningen och underhållet av certifikat, nycklar och hemligheter för att säkerställa efterlevnad av säkerhetsstandarder.
Det finns en annan roll som är utanför programmets omfång: prenumerationsadministratören (eller resursgruppen). Prenumerationsadministratören konfigurerar inledande åtkomstbehörigheter för säkerhetsteamet. De ger åtkomst till säkerhetsteamet med hjälp av en resursgrupp som har de resurser som krävs av programmet.
Definiera nödvändiga åtgärder per roll
Vi måste auktorisera följande åtgärder för våra roller:
Säkerhetsteamet
- Skapa den hanterade HSM:en
- Ladda ned den hanterade HSM-säkerhetsdomänen (för katastrofåterställning)
- Aktivera loggning
- Generera eller importera nycklar
- Skapa hanterade HSM-säkerhetskopior för haveriberedskap
- Ange lokal RBAC för Hanterad HSM för att bevilja behörigheter till användare och program för specifika åtgärder
- Rulla nycklarna med jämna mellanrum
Utvecklare och operatörer
- Hämta referens (nyckel-URI) från säkerhetsteamet för den RSA-nyckel som används för signering
- Utveckla och distribuera programmet som kommer åt nyckeln programmatiskt
Revisorer
- Granska utgångsdatum för nycklar för att säkerställa att nycklarna är uppdaterade
- Övervaka rolltilldelningar för att säkerställa att nycklar endast kan nås av behöriga användare/program
- Granska de hanterade HSM-loggarna för att bekräfta korrekt användning av nycklar i enlighet med datasäkerhetsstandarder
Tilldela lämpliga roller
I följande tabell sammanfattas rolltilldelningarna till team och resurser för att få åtkomst till den hanterade HSM:en.
| Roll | Kontrollplansroll | Dataplansroll |
|---|---|---|
| Säkerhetsteamet | Hanterad HSM-medverkande | Managed HSM-administratör |
| Utvecklare och operatörer | Ingen | Ingen |
| Granskare | Ingen | Hanterad HSM-kryptorevisor |
| Hanterad identitet för den virtuella dator som används av programmet | Ingen | Hanterad HSM-kryptoanvändare |
| Hanterad identitet för lagringskontot som används av programmet | Ingen | Kryptering för hanterad HSM-kryptotjänst |
De tre teamrollerna behöver åtkomst till andra resurser tillsammans med hanterade HSM-behörigheter. För att distribuera virtuella datorer (eller funktionen Web Apps i Azure App Service) behöver Contributor utvecklare och operatörer åtkomst till dessa resurstyper. Granskare behöver läsbehörighet till lagringskontot där de hanterade HSM-loggarna lagras.
Implementera med Azure CLI
Om du vill tilldela kontrollplansroller (Azure RBAC) kan du använda Azure-portalen eller något av de andra hanteringsgränssnitten, till exempel Azure CLI eller Azure PowerShell. Om du vill tilldela hanterade HSM-dataplansroller måste du använda Azure CLI eller Azure REST API.
Mer information om kontrollplansroller finns i Inbyggda Azure-roller. Mer information om hanterade HSM-dataplansroller finns i Managed HSM local RBAC built-in roles for Managed HSM (Hanterade HSM-inbyggda roller för Managed HSM).
Azure CLI-kodfragmenten nedan visar hur du implementerar rolltilldelningarna som beskrivs ovan:
Antaganden
- Microsoft Entra-administratören har skapat säkerhetsgrupper som representerar de tre rollerna: Contoso Security Team, Contoso App DevOps och Contoso App Auditors. Administratören har lagt till användare i sina respektive grupper.
- Alla resurser finns i resursgruppen ContosoAppRG .
- De hanterade HSM-loggarna lagras i lagringskontot contosologstorage .
- ContosoMHSM-hanterade HSM och lagringskontot contosologstorage finns på samma Azure-plats.
Tilldela kontrollplansroller
Prenumerationsadministratören Managed HSM Contributor tilldelar rollen till säkerhetsteamet. Med den här rollen kan säkerhetsteamet hantera befintliga hanterade HSM:er och skapa nya.
# This role assignment allows Contoso Security Team to create new Managed HSMs
az role assignment create --assignee-object-id $(az ad group show -g 'Contoso Security Team' --query 'id' -o tsv) --assignee-principal-type Group --role "Managed HSM Contributor"
Tilldela dataplansroller
För befintliga hanterade HSM:er måste säkerhetsteamet tilldelas rollen "Hanterad HSM-administratör" för att hantera dem:
# This role assignment allows Contoso Security Team to become administrator of existing managed HSM
az keyvault role assignment create --hsm-name ContosoMHSM --assignee $(az ad group show -g 'Contoso Security Team' --query 'id' -o tsv) --scope / --role "Managed HSM Administrator"
Konfigurera loggning och tilldela ytterligare roller
Säkerhetsteamet konfigurerar loggning och tilldelar roller till granskare och VM-programmet:
# Enable logging
hsmresource=$(az keyvault show --hsm-name ContosoMHSM --query id -o tsv)
storageresource=$(az storage account show --name contosologstorage --query id -o tsv)
az monitor diagnostic-settings create --name MHSM-Diagnostics --resource $hsmresource --logs '[{"category": "AuditEvent","enabled": true}]' --storage-account $storageresource
# Assign the "Crypto Auditor" role to Contoso App Auditors group. It only allows them to read.
az keyvault role assignment create --hsm-name ContosoMHSM --assignee $(az ad group show -g 'Contoso App Auditors' --query 'id' -o tsv) --scope / --role "Managed HSM Crypto Auditor"
# Grant the "Crypto User" role to the VM's managed identity. It allows to use keys.
az keyvault role assignment create --hsm-name ContosoMHSM --assignee $(az vm identity show --name "vmname" --resource-group "ContosoAppRG" --query principalId -o tsv) --scope / --role "Managed HSM Crypto User"
# Assign "Managed HSM Crypto Service Encryption User" role to the Storage account identity
storage_account_principal=$(az storage account show --id $storageresource --query identity.principalId -o tsv)
# (if no identity exists), then assign a new one
[ "$storage_account_principal" ] || storage_account_principal=$(az storage account update --assign-identity --id $storageresource --query identity.principalId -o tsv)
az keyvault role assignment create --hsm-name ContosoMHSM --role "Managed HSM Crypto Service Encryption User" --assignee $storage_account_principal
Överväganden för produktionsmiljöer
Den här handledningen visar ett förenklat scenario för att illustrera implementeringen av åtkomstkontroll.
Justera behörigheter till din hanterade HSM baserat på dina specifika krav. I det här exemplet antog vi att säkerhetsteamet tillhandahåller nyckel- och hemliga referenser (URI:er och tumavtryck) till DevOps-personalen för användning i sina program. Utvecklare och operatörer kräver inte direkt åtkomst till dataplanet. Den här självstudien fokuserar på att skydda din hanterade HSM, men tillämpa liknande säkerhetsåtgärder på andra Azure-resurser, till exempel virtuella datorer, lagringskonton och andra.
Nästa steg
- En konceptuell förståelse av den hanterade HSM-åtkomstkontrollmodellen finns i Hanterad HSM-åtkomstkontroll
- En självstudiekurs för att komma igång för en administratör finns i Vad är Hanterad HSM?
- Mer information om användningsloggning för hanterad HSM-loggning finns i Hanterad HSM-loggning
- Mer information om hur du hanterar roller i Managed HSM finns i Hanterad HSM lokal RBAC
- Dokumentation om Azure RBAC
- Azure RBAC: Inbyggda roller
- Hantera Azure RBAC med Azure CLI