Konfigurowanie kluczy zarządzanych przez klienta dla elastycznej sieci SAN platformy Azure
Wszystkie dane zapisywane w woluminie Elastic SAN są automatycznie szyfrowane w spoczynku przy użyciu klucza szyfrowania danych (DEK). Platforma Azure używa szyfrowania kopert do szyfrowania klucza szyfrowania przy użyciu klucza szyfrowania kluczy (KEK). Domyślnie klucz KEK jest zarządzany przez platformę (zarządzany przez firmę Microsoft), ale możesz tworzyć własne elementy i zarządzać nimi.
W tym artykule pokazano, jak skonfigurować szyfrowanie elastycznej grupy woluminów SIECI SAN przy użyciu kluczy zarządzanych przez klienta przechowywanych w usłudze Azure Key Vault.
Ograniczenia
Poniższa lista zawiera regiony, w których jest obecnie dostępna elastyczna sieć SAN i które regiony obsługują magazyn strefowo nadmiarowy (ZRS) i magazyn lokalnie nadmiarowy (LRS) lub tylko magazyn LRS:
- Australia Wschodnia — LRS
- Brazylia Południowa — LRS
- Kanada Środkowa — LRS
- Środkowe stany USA — LRS
- Azja Wschodnia — LRS
- Wschodnie stany USA — LRS
- Wschodnie stany USA 2 — LRS
- Francja Środkowa — LRS i ZRS
- Niemcy Zachodnio-środkowe — LRS
- Indie Środkowe — LRS
- Japonia Wschodnia — LRS
- Korea Środkowa — LRS
- Europa Północna — LRS i ZRS
- Norwegia Wschodnia — LRS
- Republika Południowej Afryki Północnej — LRS
- Południowo-środkowe stany USA — LRS
- Azja Południowo-Wschodnia — LRS
- Szwecja Środkowa — LRS
- Szwajcaria Północna — LRS
- Północ ze Zjednoczonych Emiratów Zjednoczonych — LRS
- Południowe Zjednoczone Królestwo — LRS
- Europa Zachodnia — LRS i ZRS
- Zachodnie stany USA 2 — LRS i ZRS
- Zachodnie stany USA 3 — LRS
Elastyczna sieć SAN jest również dostępna w następujących regionach, ale bez obsługi strefy dostępności:
- Kanada Wschodnia — LRS
- Japonia Zachodnia — LRS
- Północno-środkowe stany USA — LRS
Aby włączyć te regiony, uruchom następujące polecenie, aby zarejestrować wymaganą flagę funkcji:
Register-AzProviderFeature -FeatureName "EnableElasticSANRegionalDeployment" -ProviderNamespace "Microsoft.ElasticSan"
Wymagania wstępne
Aby wykonać operacje opisane w tym artykule, musisz przygotować konto platformy Azure i narzędzia do zarządzania, których planujesz użyć. Przygotowanie obejmuje instalowanie niezbędnych modułów, logowanie się do konta oraz ustawianie zmiennych dla programu PowerShell i interfejsu wiersza polecenia platformy Azure. Ten sam zestaw zmiennych jest używany w tym artykule, więc ustawienie ich teraz umożliwia używanie tych samych we wszystkich przykładach.
Aby wykonać operacje opisane w tym artykule przy użyciu programu PowerShell:
Zainstaluj najnowszą wersję programu Azure PowerShell , jeśli jeszcze tego nie zrobiono.
Po zainstalowaniu programu Azure PowerShell zainstaluj wersję 0.1.2 lub nowszą z rozszerzeniem Elastic SAN za pomocą
Install-Module -Name Az.ElasticSan -Repository PSGallery
polecenia .Zaloguj się do Azure.
Connect-AzAccount
Tworzenie zmiennych do użycia w przykładach programu PowerShell w tym artykule
Skopiuj przykładowy kod i zastąp cały tekst zastępczy własnymi wartościami. Użyj tych samych zmiennych we wszystkich przykładach w tym artykule:
# 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"
Konfigurowanie magazynu kluczy
Do przechowywania kluczy zarządzanych przez klienta można użyć nowego lub istniejącego magazynu kluczy. Zaszyfrowany zasób i magazyn kluczy mogą znajdować się w różnych regionach lub subskrypcjach w tej samej dzierżawie identyfikatora Entra firmy Microsoft. Aby dowiedzieć się więcej o usłudze Azure Key Vault, zobacz Omówienie usługi Azure Key Vault i Co to jest usługa Azure Key Vault?.
Korzystanie z kluczy zarządzanych przez klienta z szyfrowaniem wymaga włączenia ochrony przed usuwaniem nietrwałym i przeczyszczaniem dla magazynu kluczy. Usuwanie nietrwałe jest domyślnie włączone podczas tworzenia nowego magazynu kluczy i nie można go wyłączyć. Ochronę przeczyszczania można włączyć podczas tworzenia magazynu kluczy lub po jego utworzeniu. Usługa Azure Elastic SAN Encryption obsługuje klucze RSA o rozmiarach 2048, 3072 i 4096.
Usługa Azure Key Vault obsługuje autoryzację za pomocą kontroli dostępu opartej na rolach platformy Azure za pośrednictwem modelu uprawnień RBAC platformy Azure. Firma Microsoft zaleca korzystanie z modelu uprawnień RBAC platformy Azure za pośrednictwem zasad dostępu do magazynu kluczy. Aby uzyskać więcej informacji, zobacz Udzielanie aplikacji uprawnień dostępu do magazynu kluczy platformy Azure przy użyciu kontroli dostępu opartej na rolach platformy Azure.
Istnieją dwa kroki związane z przygotowaniem magazynu kluczy jako magazynu dla zestawów KEKs grupy woluminów:
- Utwórz nowy magazyn kluczy z włączoną ochroną usuwania nietrwałego i przeczyszczania lub włącz ochronę przed przeczyszczeniem istniejącego magazynu.
- Utwórz lub przypisz rolę RBAC platformy Azure z tworzeniem kopii zapasowej, aby pobrać uprawnienia do przywracania aktualizacji listy.
Poniższy przykład:
- Tworzy nowy magazyn kluczy z włączoną ochroną usuwania nietrwałego i przeczyszczania.
- Pobiera nazwę UPN konta użytkownika.
- Przypisuje rolę administratora kryptograficznego usługi Key Vault dla nowego magazynu kluczy do twojego konta.
Użyj tych samych zmiennych zdefiniowanych wcześniej w tym artykule.
# 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
Aby dowiedzieć się, jak włączyć ochronę przed przeczyszczeniem w istniejącym magazynie kluczy przy użyciu programu PowerShell, zobacz Omówienie odzyskiwania usługi Azure Key Vault.
Aby uzyskać więcej informacji na temat przypisywania roli RBAC za pomocą programu PowerShell, zobacz Przypisywanie ról platformy Azure przy użyciu programu Azure PowerShell.
Dodawanie klucza
Następnie dodaj klucz do magazynu kluczy. Przed dodaniem klucza upewnij się, że przypisano ci rolę administratora kryptograficznego usługi Key Vault.
Usługa Azure Storage i elastyczne szyfrowanie SAN obsługują klucze RSA o rozmiarach 2048, 3072 i 4096. Aby uzyskać więcej informacji na temat obsługiwanych typów kluczy, zobacz About keys (Informacje o kluczach).
Użyj tych przykładowych poleceń, aby dodać klucz do magazynu kluczy za pomocą programu PowerShell. Użyj tych samych zmiennych zdefiniowanych wcześniej w tym artykule.
# 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
Wybieranie strategii rotacji kluczy
Poniższe najlepsze rozwiązania kryptograficzne oznaczają rotację klucza, który chroni grupę woluminów Elastic SAN zgodnie z regularnym harmonogramem, zwykle co najmniej co dwa lata. Usługa Azure Elastic SAN nigdy nie modyfikuje klucza w magazynie kluczy, ale można skonfigurować zasady rotacji kluczy w celu rotacji klucza zgodnie z wymaganiami dotyczącymi zgodności. Aby uzyskać więcej informacji, zobacz Konfigurowanie automatycznego obracania kluczy kryptograficznych w usłudze Azure Key Vault.
Po rotacji klucza w magazynie kluczy należy zaktualizować konfigurację szyfrowania dla elastycznej grupy woluminów SIECI SAN w celu użycia nowej wersji klucza. Klucze zarządzane przez klienta obsługują zarówno automatyczne, jak i ręczne aktualizowanie wersji klucza szyfrowania kluczy. Zdecyduj, którego podejścia chcesz użyć przed skonfigurowaniem kluczy zarządzanych przez klienta dla nowej lub istniejącej grupy woluminów.
Aby uzyskać więcej informacji na temat rotacji kluczy, zobacz Aktualizowanie wersji klucza.
Ważne
Podczas modyfikowania klucza lub wersji klucza ochrona głównego klucza szyfrowania danych zmienia się, ale dane w grupie woluminów Elastic SAN platformy Azure pozostają szyfrowane przez cały czas. Użytkownik nie musi podejmować żadnych dodatkowych działań, aby zapewnić ochronę swoich danych. Rotacja wersji klucza nie ma wpływu na wydajność i nie wiąże się z nim żadnych przestojów.
Automatyczna rotacja wersji klucza
Usługa Azure Elastic SAN może automatycznie aktualizować klucz zarządzany przez klienta, który jest używany do szyfrowania w celu używania najnowszej wersji klucza z magazynu kluczy. Elastyczna sieć SAN sprawdza magazyn kluczy codziennie pod kątem nowej wersji klucza. Gdy zostanie udostępniona nowa wersja, automatycznie zacznie używać najnowszej wersji klucza do szyfrowania. Podczas obracania klucza pamiętaj, aby poczekać 24 godziny przed wyłączeniem starszej wersji.
Ważne
Jeśli grupa woluminów Elastic SAN została skonfigurowana do ręcznego aktualizowania wersji klucza i chcesz zmienić ją na automatyczną aktualizację, zmień wersję klucza na pusty ciąg. Aby uzyskać więcej informacji na temat ręcznej zmiany wersji klucza, zobacz Automatyczne aktualizowanie wersji klucza.
Ręczne obracanie wersji klucza
Jeśli wolisz ręcznie zaktualizować wersję klucza, określ identyfikator URI dla określonej wersji w czasie konfigurowania szyfrowania przy użyciu kluczy zarządzanych przez klienta. Po określeniu identyfikatora URI elastyczna sieć SAN nie będzie automatycznie aktualizować wersji klucza po utworzeniu nowej wersji w magazynie kluczy. Aby elastyczna sieć SAN korzystała z nowej wersji klucza, należy ją zaktualizować ręcznie.
Aby zlokalizować identyfikator URI dla określonej wersji klucza w witrynie Azure Portal:
- Przejdź do magazynu kluczy.
- W obszarze Obiekty wybierz pozycję Klucze.
- Wybierz żądany klucz, aby wyświetlić jego wersje.
- Wybierz wersję klucza, aby wyświetlić ustawienia dla tej wersji.
- Skopiuj wartość pola Identyfikator klucza , który udostępnia identyfikator URI.
- Zapisz skopiowany tekst do użycia później podczas konfigurowania szyfrowania dla grupy woluminów.
Wybierz tożsamość zarządzaną, aby autoryzować dostęp do magazynu kluczy
Po włączeniu kluczy szyfrowania zarządzanych przez klienta dla elastycznej grupy woluminów SIECI SAN należy określić tożsamość zarządzaną używaną do autoryzowania dostępu do magazynu kluczy zawierającego klucz. Tożsamość zarządzana musi mieć następujące uprawnienia:
- get
- zawijanie klucza
- unwrapkey
Tożsamość zarządzana, która ma autoryzowany dostęp do magazynu kluczy, może być tożsamością zarządzaną przypisaną przez użytkownika lub przypisaną przez system. Aby dowiedzieć się więcej o tożsamościach zarządzanych przypisanych przez system i przypisanych przez użytkownika, zobacz Typy tożsamości zarządzanych.
Po utworzeniu grupy woluminów zostanie automatycznie utworzona tożsamość przypisana przez system. Jeśli chcesz użyć tożsamości przypisanej przez użytkownika, utwórz ją przed skonfigurowaniem kluczy szyfrowania zarządzanych przez klienta dla grupy woluminów. Aby dowiedzieć się, jak utworzyć tożsamość zarządzaną przypisaną przez użytkownika i zarządzać nią, zobacz Zarządzanie tożsamościami zarządzanymi przypisanymi przez użytkownika.
Używanie tożsamości zarządzanej przypisanej przez użytkownika do autoryzowania dostępu
Po włączeniu kluczy zarządzanych przez klienta dla nowej grupy woluminów należy określić tożsamość zarządzaną przypisaną przez użytkownika. Istniejąca grupa woluminów obsługuje używanie tożsamości zarządzanej przypisanej przez użytkownika lub tożsamości zarządzanej przypisanej przez system do konfigurowania kluczy zarządzanych przez klienta.
Podczas konfigurowania kluczy zarządzanych przez klienta przy użyciu tożsamości zarządzanej przypisanej przez użytkownika tożsamość zarządzana przypisana przez użytkownika jest używana do autoryzowania dostępu do magazynu kluczy zawierającego klucz. Przed skonfigurowaniem kluczy zarządzanych przez klienta należy utworzyć tożsamość przypisaną przez użytkownika.
Tożsamość zarządzana przypisana przez użytkownika jest autonomicznym zasobem platformy Azure. Aby dowiedzieć się więcej o tożsamościach zarządzanych przypisanych przez użytkownika, zobacz Typy tożsamości zarządzanych. Aby dowiedzieć się, jak utworzyć tożsamość zarządzaną przypisaną przez użytkownika i zarządzać nią, zobacz Zarządzanie tożsamościami zarządzanymi przypisanymi przez użytkownika.
Tożsamość zarządzana przypisana przez użytkownika musi mieć uprawnienia dostępu do klucza w magazynie kluczy. Możesz ręcznie udzielić uprawnień tożsamości lub przypisać wbudowaną rolę z zakresem magazynu kluczy w celu udzielenia tych uprawnień.
W poniższym przykładzie pokazano, jak:
- Utwórz nową tożsamość zarządzaną przypisaną przez użytkownika.
- Poczekaj na ukończenie tworzenia tożsamości przypisanej przez użytkownika.
- Pobierz element
PrincipalId
z nowej tożsamości. - Przypisz rolę RBAC do nowej tożsamości w zakresie do magazynu kluczy.
Użyj tych samych zmiennych zdefiniowanych wcześniej w tym artykule.
# Create a new user-assigned managed identity.
$UserIdentity = New-AzUserAssignedIdentity -ResourceGroupName $RgName -Name $ManagedUserName -Location $Location
Napiwek
Przed kontynuowaniem poczekaj około 1 minuty na zakończenie tworzenia tożsamości przypisanej przez użytkownika.
# 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
Używanie przypisanej przez system tożsamości zarządzanej do autoryzowania dostępu
Tożsamość zarządzana przypisana przez system jest skojarzona z wystąpieniem usługi platformy Azure, takim jak grupa woluminów Elastic SAN platformy Azure.
Tożsamość zarządzana przypisana przez system musi mieć uprawnienia dostępu do klucza w magazynie kluczy. W tym artykule użyto roli użytkownika szyfrowania usługi Kryptograficznej usługi Key Vault do przypisanej przez system tożsamości zarządzanej z zakresem magazynu kluczy w celu udzielenia tych uprawnień.
Po utworzeniu grupy woluminów tożsamość przypisana przez system jest automatycznie tworzona, jeśli -IdentityType "SystemAssigned"
parametr jest określony za New-AzElasticSanVolumeGroup
pomocą polecenia . Tożsamość przypisana przez system nie jest dostępna dopiero po utworzeniu grupy woluminów. Musisz również przypisać odpowiednią rolę, taką jak rola użytkownika szyfrowania usługi kryptograficznej usługi Key Vault do tożsamości, zanim będzie mogła uzyskać dostęp do klucza szyfrowania w magazynie kluczy. Nie można więc skonfigurować kluczy zarządzanych przez klienta do używania tożsamości przypisanej przez system podczas tworzenia grupy woluminów. Podczas tworzenia nowej grupy woluminów przy użyciu kluczy zarządzanych przez klienta należy użyć tożsamości przypisanej przez użytkownika podczas tworzenia grupy woluminów, można skonfigurować tożsamość przypisaną przez system po jej utworzeniu.
Użyj tego przykładowego kodu, aby przypisać wymaganą rolę RBAC do przypisanej przez system tożsamości zarządzanej w zakresie do magazynu kluczy. Użyj tych samych zmiennych zdefiniowanych wcześniej w tym artykule.
# 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
Konfigurowanie kluczy zarządzanych przez klienta dla grupy woluminów
Wybierz moduł Azure PowerShell lub kartę interfejsu wiersza polecenia platformy Azure, aby uzyskać instrukcje dotyczące konfigurowania kluczy szyfrowania zarządzanych przez klienta przy użyciu preferowanego narzędzia do zarządzania.
Po wybraniu programu PowerShell wybierz kartę odpowiadającą tym, czy chcesz skonfigurować ustawienia podczas tworzenia nowej grupy woluminów, czy zaktualizować ustawienia dla istniejącej grupy.
Użyj tego przykładu, aby skonfigurować klucze zarządzane przez klienta z automatycznym aktualizowaniem wersji klucza podczas tworzenia nowej grupy woluminów przy użyciu programu 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
Aby skonfigurować klucze zarządzane przez klienta przy użyciu ręcznego aktualizowania wersji klucza podczas tworzenia nowej grupy woluminów przy użyciu programu PowerShell, dodaj KeyVersion
parametr, jak pokazano w tym przykładzie:
# 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