Door de klant beheerde sleutels configureren voor een elastisch Azure SAN
Alle gegevens die naar een elastisch SAN-volume worden geschreven, worden automatisch versleuteld in rust met een DEK (Data Encryption Key). Azure gebruikt envelopversleuteling om de DEK te versleutelen met behulp van een KEK (Key Encryption Key). De KEK wordt standaard door het platform beheerd (beheerd door Microsoft), maar u kunt uw eigen maken en beheren.
In dit artikel wordt beschreven hoe u versleuteling van een elastische SAN-volumegroep configureert met door de klant beheerde sleutels die zijn opgeslagen in een Azure Key Vault.
Beperkingen
De volgende lijst bevat de regio's waarin Elastic SAN momenteel beschikbaar is en in welke regio's zowel zone-redundante opslag (ZRS) als lokaal redundante opslag (LRS) of alleen LRS ondersteunen:
- Australië - oost - LRS
- Brazilië - zuid - LRS
- Canada - centraal - LRS
- VS - centraal - LRS
- Azië - oost - LRS
- VS - oost - LRS
- VS - oost 2 - LRS
- Frankrijk - centraal - LRS & ZRS
- Duitsland - west-centraal - LRS
- India - centraal - LRS
- Japan - oost - LRS
- Korea - centraal - LRS
- Europa - noord - LRS & ZRS
- Noorwegen - oost - LRS
- Zuid-Afrika - Noord - LRS
- VS - zuid-centraal - LRS
- Azië - zuidoost - LRS
- Zweden - centraal - LRS
- Zwitserland - noord - LRS
- UAE - noord - LRS
- VK - zuid - LRS
- Europa - west - LRS & ZRS
- VS - west 2 - LRS & ZRS
- VS - west 3 - LRS
Elastisch SAN is ook beschikbaar in de volgende regio's, maar zonder ondersteuning voor beschikbaarheidszones:
- Canada - oost - LRS
- Japan West - LRS
- VS - noord-centraal - LRS
Als u deze regio's wilt inschakelen, voert u de volgende opdracht uit om de benodigde functievlag te registreren:
Register-AzProviderFeature -FeatureName "EnableElasticSANRegionalDeployment" -ProviderNamespace "Microsoft.ElasticSan"
Vereisten
Als u de bewerkingen wilt uitvoeren die in dit artikel worden beschreven, moet u uw Azure-account en de beheerhulpprogramma's voorbereiden die u wilt gebruiken. Voorbereiding omvat het installeren van de benodigde modules, het aanmelden bij uw account en het instellen van variabelen voor PowerShell en de Azure CLI. In dit artikel worden dezelfde set variabelen gebruikt, dus als u deze instelt, kunt u in alle voorbeelden dezelfde variabelen gebruiken.
Ga als volgt te werk om de bewerkingen uit te voeren die in dit artikel worden beschreven met behulp van PowerShell:
Installeer de meest recente versie van Azure PowerShell als u dat nog niet hebt gedaan.
Nadat Azure PowerShell is geïnstalleerd, installeert u versie 0.1.2 of hoger van de Elastic SAN-extensie met
Install-Module -Name Az.ElasticSan -Repository PSGallery
.Meld u aan bij Azure.
Connect-AzAccount
Variabelen maken die moeten worden gebruikt in de PowerShell-voorbeelden in dit artikel
Kopieer de voorbeeldcode en vervang alle tijdelijke tekst door uw eigen waarden. Gebruik dezelfde variabelen in alle voorbeelden in dit artikel:
# 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"
De sleutelkluis configureren
U kunt een nieuwe of bestaande sleutelkluis gebruiken om door de klant beheerde sleutels op te slaan. De versleutelde resource en de sleutelkluis kunnen zich in verschillende regio's of abonnementen in dezelfde Microsoft Entra ID-tenant bevinden. Zie Overzicht van Azure Key Vault en wat is Azure Key Vault? voor meer informatie over Azure Key Vault.
Voor het gebruik van door de klant beheerde sleutels met versleuteling is vereist dat zowel voorlopig verwijderen als opschonen zijn ingeschakeld voor de sleutelkluis. Voorlopig verwijderen is standaard ingeschakeld wanneer u een nieuwe sleutelkluis maakt en niet kan worden uitgeschakeld. U kunt beveiliging tegen opschonen inschakelen wanneer u de sleutelkluis maakt of nadat deze is gemaakt. Azure Elastic SAN-versleuteling ondersteunt RSA-sleutels van grootte 2048, 3072 en 4096.
Azure Key Vault ondersteunt autorisatie met Azure RBAC via een Azure RBAC-machtigingsmodel. Microsoft raadt aan het Azure RBAC-machtigingsmodel te gebruiken via toegangsbeleid voor key vault. Zie Machtigingen verlenen aan toepassingen voor toegang tot een Azure-sleutelkluis met behulp van Azure RBAC voor meer informatie.
Er zijn twee stappen betrokken bij het voorbereiden van een sleutelkluis als een archief voor uw volumegroep-KEK's:
- Maak een nieuwe sleutelkluis waarvoor voorlopig verwijderen en opschonen is ingeschakeld, of schakel beveiliging tegen opschonen in voor een bestaande sleutelkluis.
- Maak of wijs een Azure RBAC-rol toe waarvoor de back-up is gemaakt, de importbewerkingsmachtigingen voor het bijwerken van de lijst ophalen.
Het volgende voorbeeld:
- Hiermee maakt u een nieuwe sleutelkluis waarvoor voorlopig verwijderen en beveiliging tegen opschonen is ingeschakeld.
- Hiermee haalt u de UPN van uw gebruikersaccount op.
- Wijst de sleutelkluis crypto officer-rol voor de nieuwe sleutelkluis toe aan uw account.
Gebruik dezelfde variabelen die u eerder in dit artikel hebt gedefinieerd.
# 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
Zie het overzicht van herstel van Azure Key Vault voor meer informatie over het inschakelen van beveiliging tegen opschonen van een bestaande sleutelkluis met PowerShell.
Zie Azure-rollen toewijzen met behulp van Azure PowerShell voor meer informatie over het toewijzen van een RBAC-rol met PowerShell.
Een sleutel toevoegen
Voeg vervolgens een sleutel toe aan de sleutelkluis. Voordat u de sleutel toevoegt, moet u ervoor zorgen dat u de rol Key Vault Crypto Officer aan uzelf hebt toegewezen.
Azure Storage en Elastic SAN-versleuteling ondersteunen RSA-sleutels van grootte 2048, 3072 en 4096. Zie Over sleutels voor meer informatie over ondersteunde sleuteltypen.
Gebruik deze voorbeeldopdrachten om een sleutel toe te voegen aan de sleutelkluis met PowerShell. Gebruik dezelfde variabelen die u eerder in dit artikel hebt gedefinieerd.
# 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
Een strategie voor sleutelrotatie kiezen
Het volgen van cryptografische aanbevolen procedures betekent dat u de sleutel die uw elastische SAN-volumegroep beveiligt, regelmatig roteert, meestal ten minste om de twee jaar. Azure Elastic SAN wijzigt de sleutel nooit in de sleutelkluis, maar u kunt een sleutelrotatiebeleid configureren om de sleutel te roteren op basis van uw nalevingsvereisten. Zie Automatische rotatie van cryptografische sleutels configureren in Azure Key Vault voor meer informatie.
Nadat de sleutel in de sleutelkluis is geroteerd, moet de versleutelingsconfiguratie voor uw elastische SAN-volumegroep worden bijgewerkt om de nieuwe sleutelversie te kunnen gebruiken. Door de klant beheerde sleutels ondersteunen zowel het automatisch als handmatig bijwerken van de KEK-versie. Bepaal welke benadering u wilt gebruiken voordat u door de klant beheerde sleutels configureert voor een nieuwe of bestaande volumegroep.
Zie De sleutelversie bijwerken voor meer informatie over sleutelrotatie.
Belangrijk
Wanneer u de sleutel of de sleutelversie wijzigt, wordt de beveiliging van de versleutelingssleutel voor hoofdgegevens gewijzigd, maar blijven de gegevens in uw Elastische SAN-volumegroep van Azure altijd versleuteld. Er zijn geen aanvullende acties van uw kant vereist om ervoor te zorgen dat uw gegevens worden beschermd. Het roteren van de sleutelversie heeft geen invloed op de prestaties en er is geen downtime aan gekoppeld.
Automatische rotatie van sleutelversies
Azure Elastic SAN kan automatisch de door de klant beheerde sleutel bijwerken die wordt gebruikt voor versleuteling om de meest recente sleutelversie uit de sleutelkluis te gebruiken. Elastisch SAN controleert de sleutelkluis dagelijks op een nieuwe versie van de sleutel. Wanneer er een nieuwe versie beschikbaar komt, wordt automatisch de nieuwste versie van de sleutel voor versleuteling gebruikt. Wanneer u een sleutel draait, wacht u 24 uur voordat u de oudere versie uitschakelt.
Belangrijk
Als de elastische SAN-volumegroep is geconfigureerd voor het handmatig bijwerken van de sleutelversie en u deze wilt wijzigen om automatisch bij te werken, wijzigt u de sleutelversie in een lege tekenreeks. Zie De sleutelversie automatisch bijwerken voor meer informatie over het handmatig wijzigen van de sleutelversie.
Handmatige draaiing van sleutelversie
Als u de sleutelversie liever handmatig bijwerkt, geeft u de URI op voor een specifieke versie op het moment dat u versleuteling configureert met door de klant beheerde sleutels. Wanneer u de URI opgeeft, wordt de sleutelversie van uw elastische SAN niet automatisch bijgewerkt wanneer er een nieuwe versie wordt gemaakt in de sleutelkluis. Als u een nieuwe sleutelversie wilt gebruiken voor uw elastische SAN, moet u deze handmatig bijwerken.
De URI voor een specifieke versie van een sleutel zoeken in Azure Portal:
- Navigeer naar uw sleutelkluis.
- Onder Objecten selecteert u Sleutels.
- Selecteer de gewenste sleutel om de versies ervan weer te geven.
- Selecteer een sleutelversie om de instellingen voor die versie weer te geven.
- Kopieer de waarde van het veld Sleutel-id , die de URI levert.
- Sla de gekopieerde tekst op die u later wilt gebruiken bij het configureren van versleuteling voor uw volumegroep.
Een beheerde identiteit kiezen om toegang tot de sleutelkluis te autoriseren
Wanneer u door de klant beheerde versleutelingssleutels inschakelt voor een elastische SAN-volumegroep, moet u een beheerde identiteit opgeven die wordt gebruikt om toegang te verlenen tot de sleutelkluis die de sleutel bevat. De beheerde identiteit moet de volgende machtigingen hebben:
- Toevoegen
- wrapkey
- uitpakkensleutel
De beheerde identiteit die toegang heeft tot de sleutelkluis, kan een door de gebruiker toegewezen of door het systeem toegewezen beheerde identiteit zijn. Zie Beheerde identiteitstypen voor meer informatie over door het systeem toegewezen versus door de gebruiker toegewezen beheerde identiteiten.
Wanneer een volumegroep wordt gemaakt, wordt er automatisch een door het systeem toegewezen identiteit gemaakt. Als u een door de gebruiker toegewezen identiteit wilt gebruiken, maakt u deze voordat u door de klant beheerde versleutelingssleutels voor uw volumegroep configureert. Zie Door de gebruiker toegewezen beheerde identiteiten beheren voor meer informatie over het maken en beheren van een door de gebruiker toegewezen beheerde identiteiten.
Een door de gebruiker toegewezen beheerde identiteit gebruiken om toegang te autoriseren
Wanneer u door de klant beheerde sleutels inschakelt voor een nieuwe volumegroep, moet u een door de gebruiker toegewezen beheerde identiteit opgeven. Een bestaande volumegroep ondersteunt het gebruik van een door de gebruiker toegewezen beheerde identiteit of een door het systeem toegewezen beheerde identiteit om door de klant beheerde sleutels te configureren.
Wanneer u door de klant beheerde sleutels configureert met een door de gebruiker toegewezen beheerde identiteit, wordt de door de gebruiker toegewezen beheerde identiteit gebruikt om toegang te verlenen tot de sleutelkluis die de sleutel bevat. U moet de door de gebruiker toegewezen identiteit maken voordat u door de klant beheerde sleutels configureert.
Een door de gebruiker toegewezen beheerde identiteit is een zelfstandige Azure-resource. Zie Beheerde identiteitstypen voor meer informatie over door de gebruiker toegewezen beheerde identiteiten. Zie Door de gebruiker toegewezen beheerde identiteiten beheren voor meer informatie over het maken en beheren van een door de gebruiker toegewezen beheerde identiteiten.
De door de gebruiker toegewezen beheerde identiteit moet machtigingen hebben voor toegang tot de sleutel in de sleutelkluis. U kunt handmatig machtigingen verlenen aan de identiteit of een ingebouwde rol toewijzen met sleutelkluisbereik om deze machtigingen te verlenen.
In het volgende voorbeeld ziet u hoe u:
- Maak een nieuwe door de gebruiker toegewezen beheerde identiteit.
- Wacht totdat de door de gebruiker toegewezen identiteit is voltooid.
- Haal de
PrincipalId
nieuwe identiteit op. - Wijs een RBAC-rol toe aan de nieuwe identiteit, binnen het bereik van de sleutelkluis.
Gebruik dezelfde variabelen die u eerder in dit artikel hebt gedefinieerd.
# Create a new user-assigned managed identity.
$UserIdentity = New-AzUserAssignedIdentity -ResourceGroupName $RgName -Name $ManagedUserName -Location $Location
Tip
Wacht ongeveer 1 minuut totdat het maken van de door de gebruiker toegewezen identiteit is voltooid voordat u doorgaat.
# 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
Een door het systeem toegewezen beheerde identiteit gebruiken om toegang te autoriseren
Een door het systeem toegewezen beheerde identiteit is gekoppeld aan een exemplaar van een Azure-service, zoals een elastische SAN-volumegroep van Azure.
De door het systeem toegewezen beheerde identiteit moet machtigingen hebben voor toegang tot de sleutel in de sleutelkluis. In dit artikel wordt de gebruikersrol Crypto Vault Crypto Service Encryption gebruikt voor de door het systeem toegewezen beheerde identiteit met sleutelkluisbereik om deze machtigingen te verlenen.
Wanneer een volumegroep wordt gemaakt, wordt er automatisch een door het systeem toegewezen identiteit gemaakt als de -IdentityType "SystemAssigned"
parameter wordt opgegeven met de New-AzElasticSanVolumeGroup
opdracht. De door het systeem toegewezen identiteit is pas beschikbaar nadat de volumegroep is gemaakt. U moet ook een geschikte rol, zoals de sleutelkluis cryptoserviceversleutelingsgebruikersrol , toewijzen aan de identiteit voordat deze toegang heeft tot de versleutelingssleutel in de sleutelkluis. U kunt dus geen door de klant beheerde sleutels configureren voor het gebruik van een door het systeem toegewezen identiteit tijdens het maken van een volumegroep. Wanneer u een nieuwe volumegroep maakt met door de klant beheerde sleutels, moet u een door de gebruiker toegewezen identiteit gebruiken wanneer u de volumegroep maakt, kunt u een door het systeem toegewezen identiteit configureren nadat deze is gemaakt.
Gebruik deze voorbeeldcode om de vereiste RBAC-rol toe te wijzen aan de door het systeem toegewezen beheerde identiteit, binnen het bereik van de sleutelkluis. Gebruik dezelfde variabelen die u eerder in dit artikel hebt gedefinieerd.
# 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
Door de klant beheerde sleutels configureren voor een volumegroep
Selecteer de Azure PowerShell-module of het tabblad Azure CLI voor instructies over het configureren van door de klant beheerde versleutelingssleutels met behulp van het beheerhulpprogramma van uw voorkeur.
Nu u PowerShell hebt geselecteerd, selecteert u het tabblad dat overeenkomt met of u de instellingen wilt configureren tijdens het maken van een nieuwe volumegroep of de instellingen voor een bestaande volumegroep wilt bijwerken.
Gebruik dit voorbeeld om door de klant beheerde sleutels te configureren met automatisch bijwerken van de sleutelversie tijdens het maken van een nieuwe volumegroep met behulp van 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
Als u door de klant beheerde sleutels wilt configureren met handmatig bijwerken van de sleutelversie tijdens het maken van een nieuwe volumegroep met behulp van PowerShell, voegt u de KeyVersion
parameter toe, zoals wordt weergegeven in dit voorbeeld:
# 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