Share via


Konfigurera kundhanterade nycklar för ett elastiskt San-nätverk i Azure

Alla data som skrivs till en elastisk SAN-volym krypteras automatiskt i vila med en datakrypteringsnyckel (DEK). Azure använder kuvertkryptering för att kryptera DEK med hjälp av en nyckelkrypteringsnyckel (KEK). Som standard är KEK plattformshanterad (hanteras av Microsoft), men du kan skapa och hantera din egen.

Den här artikeln visar hur du konfigurerar kryptering av en elastisk SAN-volymgrupp med kundhanterade nycklar som lagras i ett Azure Key Vault.

Begränsningar

Följande lista innehåller de regioner som Elastic SAN för närvarande är tillgängligt i, och vilka regioner som stöder både zonredundant lagring (ZRS) och lokalt redundant lagring (LRS) eller endast LRS:

  • Sydafrika, norra – LRS
  • Asien, östra – LRS
  • Sydostasien - LRS
  • Södra Brasilien - LRS
  • Kanada, centrala – LRS
  • Frankrike, centrala – LRS och ZRS
  • Tyskland, västra centrala – LRS
  • Australien, östra – LRS
  • Europa, norra – LRS och ZRS
  • Europa, västra - LRS och ZRS
  • Storbritannien, södra - LRS
  • Japan, östra – LRS
  • Korea Central – LRS
  • Centrala USA
  • USA, östra – LRS
  • USA, södra centrala – LRS
  • USA, östra 2 – LRS
  • USA, västra 2 – LRS och ZRS
  • USA, västra 3 – LRS
  • Sverige, centrala – LRS
  • Schweiz, norra – LRS

Förutsättningar

Om du vill utföra de åtgärder som beskrivs i den här artikeln måste du förbereda ditt Azure-konto och de hanteringsverktyg som du planerar att använda. Förberedelse omfattar installation av nödvändiga moduler, inloggning till ditt konto och inställningsvariabler för PowerShell och Azure CLI. Samma uppsättning variabler används i hela den här artikeln, så om du ställer in dem nu kan du använda samma i alla exempel.

Så här utför du de åtgärder som beskrivs i den här artikeln med hjälp av PowerShell:

  1. Installera den senaste versionen av Azure PowerShell om du inte redan har gjort det.

  2. När Azure PowerShell har installerats installerar du version 0.1.2 eller senare av elastic SAN-tillägget med Install-Module -Name Az.ElasticSan -Repository PSGallery.

  3. Logga in på Azure.

    Connect-AzAccount
    

Skapa variabler som ska användas i PowerShell-exemplen i den här artikeln

Kopiera exempelkoden och ersätt all platshållartext med dina egna värden. Använd samma variabler i alla exempel i den här artikeln:

# Define some variables
# The name of the resource group where the resources will be deployed.
$RgName          = "ResourceGroupName"

# The name of the Elastic SAN that contains the volume group to be configured.
$EsanName        = "ElasticSanName"

# The name of the Elastic SAN volume group to be configured.
$EsanVgName      = "ElasticSanVolumeGroupName"

# The region where the new resources will be created.
$Location        = "Location"

# The name of the Azure Key Vault that will contain the KEK.
$KvName          = "KeyVaultName"

# The name of the Azure Key Vault key that is the KEK.
$KeyName         = "KeyName"

# The name of the user-assigned managed identity, if applicable.
$ManagedUserName = "ManagedUserName"

Konfigurera nyckelvalvet

Du kan använda ett nytt eller befintligt nyckelvalv för att lagra kundhanterade nycklar. Den krypterade resursen och nyckelvalvet kan finnas i olika regioner eller prenumerationer i samma Microsoft Entra-ID-klientorganisation. Mer information om Azure Key Vault finns i Översikt över Azure Key Vault och Vad är Azure Key Vault?.

Att använda kundhanterade nycklar med kryptering kräver att både skydd mot mjuk borttagning och rensning är aktiverat för nyckelvalvet. Mjuk borttagning är aktiverat som standard när du skapar ett nytt nyckelvalv och inte kan inaktiveras. Du kan aktivera rensningsskydd antingen när du skapar nyckelvalvet eller när det har skapats. Azure Elastic SAN-kryptering stöder RSA-nycklar i storlekarna 2048, 3072 och 4096.

Azure Key Vault stöder auktorisering med Azure RBAC via en Azure RBAC-behörighetsmodell. Microsoft rekommenderar att du använder Azure RBAC-behörighetsmodellen för åtkomstprinciper för nyckelvalv. Mer information finns i Bevilja behörighet till program för åtkomst till ett Azure-nyckelvalv med Hjälp av Azure RBAC.

Det finns två steg som ingår i att förbereda ett nyckelvalv som ett arkiv för dina volymgrupp-KEK:er:

  • Skapa ett nytt nyckelvalv med mjukt borttagnings- och rensningsskydd aktiverat, eller aktivera rensningsskydd för ett befintligt.
  • Skapa eller tilldela en Azure RBAC-roll som har borttagningen av säkerhetskopieringen , hämta behörigheter för att hämta återställningsbehörigheter för importuppdatering .

Följande exempel:

  • Skapar ett nytt nyckelvalv med mjukt borttagnings- och rensningsskydd aktiverat.
  • Hämtar UPN för ditt användarkonto.
  • Tilldelar Key Vault Crypto Officer-rollen för det nya nyckelvalvet till ditt konto.

Använd samma variabler som du definierade tidigare i den här artikeln.

# Setup the parameters to create the key vault.
$NewKvArguments = @{
    Name                    = $KvName
    ResourceGroupName       = $RgName
    Location                = $Location
    EnablePurgeProtection   = $true
    EnableRbacAuthorization = $true
}

# Create the key vault.
$KeyVault = New-AzKeyVault @NewKvArguments

# Get the UPN of the currently loggged in user.
$MyAccountUpn = (Get-AzADUser -SignedIn).UserPrincipalName

# Setup the parameters to create the role assignment.
$CrptoOfficerRoleArguments = @{
    SignInName         = $MyAccountUpn
    RoleDefinitionName = "Key Vault Crypto Officer"
    Scope              = $KeyVault.ResourceId
}

# Assign the Cypto Officer role to your account for the key vault.
New-AzRoleAssignment @CrptoOfficerRoleArguments

Information om hur du aktiverar rensningsskydd i ett befintligt nyckelvalv med PowerShell finns i Översikt över Azure Key Vault-återställning.

Mer information om hur du tilldelar en RBAC-roll med PowerShell finns i Tilldela Azure-roller med Azure PowerShell.

Lägga till en nyckel

Lägg sedan till en nyckel i nyckelvalvet. Innan du lägger till nyckeln kontrollerar du att du har tilldelat dig rollen Key Vault Crypto Officer .

Azure Storage- och Elastic SAN-kryptering stöder RSA-nycklar i storlekarna 2048, 3072 och 4096. Mer information om nyckeltyper som stöds finns i Om nycklar.

Använd dessa exempelkommandon för att lägga till en nyckel i nyckelvalvet med PowerShell. Använd samma variabler som du definierade tidigare i den här artikeln.

# Get the key vault where the key is to be added.
$KeyVault = Get-AzKeyVault -ResourceGroupName $RgName -VaultName $KvName

# Setup the parameters to add the key to the vault.
$NewKeyArguments = @{
    Name        = $KeyName
    VaultName   = $KeyVault.VaultName
    Destination = "Software"
}

# Add the key to the vault.
$Key = Add-AzKeyVaultKey @NewKeyArguments

Välj en nyckelroteringsstrategi

Följande metodtips för kryptografi innebär att rotera nyckeln som skyddar din elastiska SAN-volymgrupp enligt ett regelbundet schema, vanligtvis minst vartannat år. Azure Elastic SAN ändrar aldrig nyckeln i nyckelvalvet, men du kan konfigurera en princip för nyckelrotation för att rotera nyckeln enligt dina efterlevnadskrav. Mer information finns i Konfigurera automatisk rotation av kryptografiska nycklar i Azure Key Vault.

När nyckeln har roterats i nyckelvalvet måste krypteringskonfigurationen för din elastiska SAN-volymgrupp uppdateras för att använda den nya nyckelversionen. Kundhanterade nycklar stöder både automatisk och manuell uppdatering av KEK-versionen. Bestäm vilken metod du vill använda innan du konfigurerar kundhanterade nycklar för en ny eller befintlig volymgrupp.

Mer information om nyckelrotation finns i Uppdatera nyckelversionen.

Viktigt!

När du ändrar nyckeln eller nyckelversionen ändras skyddet av rotdatakrypteringsnyckeln, men data i azure elastic SAN-volymgruppen förblir krypterade hela tiden. För din del krävs ingen ytterligare åtgärd för att säkerställa att dina data är skyddade. Att rotera nyckelversionen påverkar inte prestanda och det finns ingen avbrottstid associerad med den.

Automatisk rotation av nyckelversion

Azure Elastic SAN kan automatiskt uppdatera den kundhanterade nyckel som används för kryptering för att använda den senaste nyckelversionen från nyckelvalvet. Elastic SAN kontrollerar nyckelvalvet dagligen efter en ny version av nyckeln. När en ny version blir tillgänglig börjar den automatiskt använda den senaste versionen av nyckeln för kryptering. När du roterar en nyckel måste du vänta 24 timmar innan du inaktiverar den äldre versionen.

Viktigt!

Om den elastiska SAN-volymgruppen har konfigurerats för manuell uppdatering av nyckelversionen och du vill ändra den så att den uppdateras automatiskt ändrar du nyckelversionen till en tom sträng. Mer information om hur du ändrar nyckelversionen manuellt finns i Uppdatera nyckelversionen automatiskt.

Manuell nyckelversionsrotation

Om du föredrar att uppdatera nyckelversionen manuellt anger du URI:n för en viss version vid den tidpunkt då du konfigurerar kryptering med kundhanterade nycklar. När du anger URI:n uppdaterar ditt elastiska SAN inte nyckelversionen automatiskt när en ny version skapas i nyckelvalvet. För att ditt elastiska SAN ska kunna använda en ny nyckelversion måste du uppdatera den manuellt.

Så här hittar du URI:n för en specifik version av en nyckel i Azure-portalen:

  1. Gå till ditt nyckelvalv.
  2. Under Objekt väljer du Nycklar.
  3. Välj önskad nyckel för att visa dess versioner.
  4. Välj en nyckelversion för att visa inställningarna för den versionen.
  5. Kopiera värdet för fältet Nyckelidentifierare , som tillhandahåller URI:n.
  6. Spara den kopierade texten som ska användas senare när du konfigurerar kryptering för volymgruppen.

Screenshot showing key vault key URI in Azure portal.

Välj en hanterad identitet för att auktorisera åtkomst till nyckelvalvet

När du aktiverar kundhanterade krypteringsnycklar för en elastisk SAN-volymgrupp måste du ange en hanterad identitet som används för att auktorisera åtkomst till nyckelvalvet som innehåller nyckeln. Den hanterade identiteten måste ha följande behörigheter:

  • wrapkey
  • unwrapkey

Den hanterade identitet som har behörighet till nyckelvalvet kan vara antingen en användartilldelad eller systemtilldelad hanterad identitet. Mer information om systemtilldelade och användartilldelade hanterade identiteter finns i Hanterade identitetstyper.

När en volymgrupp skapas skapas en systemtilldelad identitet automatiskt för den. Om du vill använda en användartilldelad identitet skapar du den innan du konfigurerar kundhanterade krypteringsnycklar för volymgruppen. Information om hur du skapar och hanterar en användartilldelad hanterad identitet finns i Hantera användartilldelade hanterade identiteter.

Använda en användartilldelad hanterad identitet för att auktorisera åtkomst

När du aktiverar kundhanterade nycklar för en ny volymgrupp måste du ange en användartilldelad hanterad identitet. En befintlig volymgrupp stöder användning av antingen en användartilldelad hanterad identitet eller en systemtilldelad hanterad identitet för att konfigurera kundhanterade nycklar.

När du konfigurerar kundhanterade nycklar med en användartilldelad hanterad identitet används den användartilldelade hanterade identiteten för att auktorisera åtkomst till nyckelvalvet som innehåller nyckeln. Du måste skapa den användartilldelade identiteten innan du konfigurerar kundhanterade nycklar.

En användartilldelad hanterad identitet är en fristående Azure-resurs. Mer information om användartilldelade hanterade identiteter finns i Hanterade identitetstyper. Information om hur du skapar och hanterar en användartilldelad hanterad identitet finns i Hantera användartilldelade hanterade identiteter.

Den användartilldelade hanterade identiteten måste ha behörighet att komma åt nyckeln i nyckelvalvet. Du kan antingen bevilja behörigheter till identiteten manuellt eller tilldela en inbyggd roll med key vault-omfång för att bevilja dessa behörigheter.

I följande exempel visas hur du:

  • Skapa en ny användartilldelad hanterad identitet.
  • Vänta tills den användartilldelade identiteten har skapats.
  • PrincipalId Hämta från den nya identiteten.
  • Tilldela en RBAC-roll till den nya identiteten, som är begränsad till nyckelvalvet.

Använd samma variabler som du definierade tidigare i den här artikeln.

# Create a new user-assigned managed identity.
$UserIdentity = New-AzUserAssignedIdentity -ResourceGroupName $RgName -Name $ManagedUserName -Location $Location

Dricks

Vänta ungefär 1 minut tills den användartilldelade identiteten har skapats innan du fortsätter.

# Get the `PrincipalId` for the new identity.
$PrincipalId = $UserIdentity.PrincipalId

# Setup the parameters to assign the Crypto Service Encryption User role.
$CryptoUserRoleArguments = @{
    ObjectId           = $PrincipalId
    RoleDefinitionName = "Key Vault Crypto Service Encryption User"
    Scope              = $KeyVault.ResourceId
}

# Assign the Crypto Service Encryption User role to the managed identity so it can access the key in the vault.
New-AzRoleAssignment @CryptoUserRoleArguments

Använda en systemtilldelad hanterad identitet för att auktorisera åtkomst

En systemtilldelad hanterad identitet är associerad med en instans av en Azure-tjänst, till exempel en Azure Elastic SAN-volymgrupp.

Den systemtilldelade hanterade identiteten måste ha behörighet att komma åt nyckeln i nyckelvalvet. Den här artikeln använder rollen Key Vault Crypto Service Encryption User till den systemtilldelade hanterade identiteten med key vault-omfånget för att bevilja dessa behörigheter.

När en volymgrupp skapas skapas automatiskt en systemtilldelad identitet för den om parametern -IdentityType "SystemAssigned" anges med New-AzElasticSanVolumeGroup kommandot . Den systemtilldelade identiteten är inte tillgänglig förrän volymgruppen har skapats. Du måste också tilldela en lämplig roll, till exempel key vault-krypteringstjänstens krypteringsanvändarroll till identiteten innan den kan komma åt krypteringsnyckeln i nyckelvalvet. Därför kan du inte konfigurera kundhanterade nycklar för att använda en systemtilldelad identitet när du skapar en volymgrupp. När du skapar en ny volymgrupp med kundhanterade nycklar måste du använda en användartilldelad identitet när du skapar volymgruppen. Du kan konfigurera en systemtilldelad identitet när den har skapats.

Använd den här exempelkoden för att tilldela den nödvändiga RBAC-rollen till den systemtilldelade hanterade identiteten, som är begränsad till nyckelvalvet. Använd samma variabler som du definierade tidigare i den här artikeln.

# Get the Elastic SAN volume group.
$ElasticSanVolumeGroup = Get-AzElasticSanVolumeGroup -Name $EsanVgName -ElasticSanName $EsanName -ResourceGroupName $RgName

# Generate a system-assigned identity if one does not already exist.
If ($ElasticSanVolumeGroup.IdentityPrincipalId -eq $null) {
Update-AzElasticSanVolumeGroup -ResourceGroupName $RgName -ElasticSanName $EsanName -Name $EsanVgName -IdentityType "SystemAssigned"}

# Get the `PrincipalId` (system-assigned identity) of the volume group.
$PrincipalId = $ElasticSanVolumeGroup.IdentityPrincipalId

# Setup the parameters to assign the Crypto Service Encryption User role.
$CryptoUserRoleArguments = @{
    ObjectId           = $PrincipalId
    RoleDefinitionName = "Key Vault Crypto Service Encryption User"
    Scope              = $KeyVault.ResourceId
}

# Assign the Crypto Service Encryption User role.
New-AzRoleAssignment @CryptoUserRoleArguments

Konfigurera kundhanterade nycklar för en volymgrupp

Välj Azure PowerShell-modulen eller fliken Azure CLI för instruktioner om hur du konfigurerar kundhanterade krypteringsnycklar med hjälp av önskat hanteringsverktyg.

Nu när du har valt PowerShell väljer du fliken som motsvarar om du vill konfigurera inställningarna när du skapar en ny volymgrupp eller uppdaterar inställningarna för en befintlig.

Använd det här exemplet för att konfigurera kundhanterade nycklar med automatisk uppdatering av nyckelversionen när du skapar en ny volymgrupp med Hjälp av PowerShell:

# Setup the parameters to create the volume group.
$NewVgArguments        = @{
    Name                         = $EsanVgName
    ElasticSanName               = $EsanName
    ResourceGroupName            = $RgName
    ProtocolType                 = "Iscsi"
    Encryption                   = "EncryptionAtRestWithCustomerManagedKey"
    KeyName                      = $KeyName
    KeyVaultUri                  = $KeyVault.VaultUri
    IdentityType                 = "UserAssigned"
    IdentityUserAssignedIdentity = @{$UserIdentity.Id=$UserIdentity}
    EncryptionIdentityEncryptionUserAssignedIdentity = $UserIdentity.Id
}

# Create the volume group.
New-AzElasticSanVolumeGroup @NewVgArguments

Om du vill konfigurera kundhanterade nycklar med manuell uppdatering av nyckelversionen när du skapar en ny volymgrupp med hjälp av PowerShell lägger du till parametern KeyVersion enligt det här exemplet:

# Setup the parameters to create the volume group.
$NewVgArguments        = @{
    Name                         = $EsanVgName
    ElasticSanName               = $EsanName
    ResourceGroupName            = $RgName
    ProtocolType                 = "Iscsi"
    Encryption                   = "EncryptionAtRestWithCustomerManagedKey"
    KeyName                      = $KeyName
    KeyVaultUri                  = $KeyVault.VaultUri
    KeyVersion                   = $Key.Version
    IdentityType                 = "UserAssigned"
    IdentityUserAssignedIdentity = @{$UserIdentity.Id=$UserIdentity}
    EncryptionIdentityEncryptionUserAssignedIdentity = $UserIdentity.Id
}

# Create the volume group.
New-AzElasticSanVolumeGroup @NewVgArguments

Nästa steg