Konfigurace klíčů spravovaných zákazníkem pro Azure Elastic SAN

Všechna data zapsaná do svazku Elastic SAN se automaticky šifrují neaktivní uložená data pomocí šifrovacího klíče dat (DEK). Azure používá šifrování obálek k šifrování DEK pomocí šifrovacího klíče klíče (KEK). Ve výchozím nastavení je klíč KEK spravovaný platformou (spravovaný Microsoftem), ale můžete vytvořit a spravovat vlastní.

Tento článek ukazuje, jak nakonfigurovat šifrování skupiny svazků Elastic SAN s klíči spravovanými zákazníkem uloženými ve službě Azure Key Vault.

Omezení

Následující seznam obsahuje oblasti, ve kterých je v současné době k dispozici elastická síť SAN, a oblasti podporují zónově redundantní úložiště (ZRS) i místně redundantní úložiště (LRS) nebo pouze LRS:

  • Jižní Afrika – sever - LRS
  • Východní Asie – LRS
  • Jihovýchodní Asie – LRS
  • Brazílie – jih - LRS
  • Kanada – střed – LRS
  • Francie – střed - LRS a ZRS
  • Německo – středozápad - LRS
  • Austrálie – východ – LRS
  • Severní Evropa – LRS a ZRS
  • Západní Evropa – LRS a ZRS
  • Velká Británie – jih – LRS
  • Japonsko – východ – LRS
  • Korea – střed – LRS
  • USA – střed
  • USA – východ – LRS
  • USA – středojižní – LRS
  • USA – východ 2 – LRS
  • USA – západ 2 – LRS a ZRS
  • USA – západ 3 – LRS
  • Švédsko – střed – LRS
  • Švýcarsko – sever - LRS

Požadavky

Pokud chcete provádět operace popsané v tomto článku, musíte připravit účet Azure a nástroje pro správu, které plánujete použít. Příprava zahrnuje instalaci potřebných modulů, přihlášení k účtu a nastavení proměnných pro PowerShell a Azure CLI. Stejná sada proměnných se používá v tomto článku, takže jejich nastavení teď umožňuje používat stejné proměnné ve všech ukázkách.

Provedení operací popsaných v tomto článku pomocí PowerShellu:

  1. Pokud jste to ještě neudělali, nainstalujte si nejnovější verzi Azure PowerShellu .

  2. Po instalaci Azure PowerShellu nainstalujte pomocí rozšíření Install-Module -Name Az.ElasticSan -Repository PSGalleryElastic SAN verzi 0.1.2 nebo novější.

  3. Přihlaste se do Azure.

    Connect-AzAccount
    

Vytvoření proměnných, které se mají použít v ukázkách PowerShellu v tomto článku

Zkopírujte vzorový kód a nahraďte veškerý zástupný text vlastními hodnotami. Ve všech příkladech v tomto článku použijte stejné proměnné:

# 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"

Konfigurace trezoru klíčů

K ukládání klíčů spravovaných zákazníkem můžete použít nový nebo existující trezor klíčů. Šifrovaný prostředek a trezor klíčů můžou být v různých oblastech nebo předplatných ve stejném tenantovi Microsoft Entra ID. Další informace o službě Azure Key Vault najdete v tématu Přehled služby Azure Key Vault a co je Azure Key Vault?

Použití klíčů spravovaných zákazníkem s šifrováním vyžaduje povolení obnovitelného odstranění i ochrany před vymazáním trezoru klíčů. Obnovitelné odstranění je ve výchozím nastavení povolené při vytváření nového trezoru klíčů a nedá se zakázat. Ochranu před vymazáním můžete povolit buď při vytváření trezoru klíčů, nebo po jeho vytvoření. Azure Elastic SAN Encryption podporuje klíče RSA velikosti 2048, 3072 a 4096.

Azure Key Vault podporuje autorizaci s Azure RBAC prostřednictvím modelu oprávnění Azure RBAC. Microsoft doporučuje používat model oprávnění Azure RBAC přes zásady přístupu trezoru klíčů. Další informace najdete v tématu Udělení oprávnění aplikacím pro přístup k trezoru klíčů Azure pomocí Azure RBAC.

Při přípravě trezoru klíčů jako úložiště pro klíče ke skupinám svazků se používají dva kroky:

  • Vytvořte nový trezor klíčů s povoleným obnovitelným odstraněním a ochranou před vymazáním nebo u existujícího trezoru povolte ochranu před vymazáním.
  • Vytvořte nebo přiřaďte roli Azure RBAC, která má oprávnění k obnovení aktualizace seznamu pro odstranění zálohy a získat oprávnění k obnovení aktualizace seznamu.

Následující příklad:

  • Vytvoří nový trezor klíčů s povoleným obnovitelným odstraněním a ochranou před vymazáním.
  • Získá hlavní název uživatele (UPN) vašeho uživatelského účtu.
  • Přiřadí k vašemu účtu roli kryptografického důstojníka služby Key Vault pro nový trezor klíčů.

Použijte stejné proměnné, které jste definovali dříve v tomto článku.

# 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

Informace o povolení ochrany před vymazáním v existujícím trezoru klíčů pomocí PowerShellu najdete v přehledu obnovení služby Azure Key Vault.

Další informace o přiřazování role RBAC pomocí PowerShellu najdete v tématu Přiřazení rolí Azure pomocí Azure PowerShellu.

Přidání klíče

Dále přidejte klíč do trezoru klíčů. Než klíč přidáte, ujistěte se, že jste si přiřadili roli kryptografického důstojníka služby Key Vault.

Azure Storage a elastické šifrování SAN podporují klíče RSA velikosti 2048, 3072 a 4096. Další informace o podporovaných typech klíčů najdete v tématu O klíčích.

Pomocí těchto ukázkových příkazů přidejte klíč do trezoru klíčů pomocí PowerShellu. Použijte stejné proměnné, které jste definovali dříve v tomto článku.

# 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

Volba strategie obměně klíčů

Následující kryptografické osvědčené postupy znamenají obměně klíče, který chrání vaši skupinu svazků Elastic SAN v pravidelných intervalech, obvykle nejméně každé dva roky. Azure Elastic SAN nikdy neupravuje klíč v trezoru klíčů, ale můžete nakonfigurovat zásadu obměny klíčů tak, aby klíč otáčel podle vašich požadavků na dodržování předpisů. Další informace najdete v tématu Konfigurace automatické obměny kryptografického klíče ve službě Azure Key Vault.

Po obměně klíče v trezoru klíčů se musí aktualizovat konfigurace šifrování pro vaši skupinu svazků Elastic SAN, aby používala novou verzi klíče. Klíče spravované zákazníkem podporují automatickou i ruční aktualizaci verze KEK. Před konfigurací klíčů spravovaných zákazníkem pro novou nebo existující skupinu svazků rozhodněte, který přístup chcete použít.

Další informace o obměně klíčů najdete v tématu Aktualizace verze klíče.

Důležité

Při úpravě klíče nebo verze klíče se ochrana kořenového šifrovacího klíče dat změní, ale data ve skupině svazků Azure Elastic SAN zůstanou zašifrovaná vždy. Z vaší strany nejsou vyžadovány žádné další kroky k zajištění ochrany vašich dat. Obměná verze klíče nemá vliv na výkon a k ní nejsou přidružené žádné výpadky.

Automatická obměně verzí klíče

Azure Elastic SAN může automaticky aktualizovat klíč spravovaný zákazníkem, který se používá k šifrování, aby používal nejnovější verzi klíče z trezoru klíčů. Elastická síť SAN denně kontroluje trezor klíčů pro novou verzi klíče. Jakmile bude k dispozici nová verze, začne automaticky používat nejnovější verzi klíče pro šifrování. Při obměně klíče nezapomeňte před zakázáním starší verze počkat 24 hodin.

Důležité

Pokud byla skupina svazků Elastic SAN nakonfigurovaná pro ruční aktualizaci verze klíče a chcete ji změnit tak, aby se aktualizovala automaticky, změňte verzi klíče na prázdný řetězec. Další informace o ruční změně verze klíče najdete v tématu Automatická aktualizace verze klíče.

Obměně ruční verze klíče

Pokud chcete verzi klíče aktualizovat ručně, zadejte identifikátor URI pro konkrétní verzi v době, kdy nakonfigurujete šifrování pomocí klíčů spravovaných zákazníkem. Když zadáte identifikátor URI, elastická síť SAN automaticky neaktualizuje verzi klíče při vytvoření nové verze v trezoru klíčů. Aby vaše elastická síť SAN používala novou verzi klíče, musíte ji aktualizovat ručně.

Vyhledání identifikátoru URI pro konkrétní verzi klíče na webu Azure Portal:

  1. Přejděte do trezoru klíčů.
  2. V části Objekty vyberte Klíče.
  3. Výběrem požadovaného klíče zobrazte jeho verze.
  4. Výběrem verze klíče zobrazíte nastavení pro danou verzi.
  5. Zkopírujte hodnotu pole Identifikátor klíče, které poskytuje identifikátor URI.
  6. Uložte zkopírovaný text pro pozdější použití při konfiguraci šifrování pro vaši skupinu svazků.

Screenshot showing key vault key URI in Azure portal.

Volba spravované identity pro autorizaci přístupu k trezoru klíčů

Když povolíte šifrovací klíče spravované zákazníkem pro skupinu svazků elastické sítě SAN, musíte zadat spravovanou identitu, která se používá k autorizaci přístupu k trezoru klíčů, který tento klíč obsahuje. Spravovaná identita musí mít následující oprávnění:

  • get
  • wrapkey
  • unwrapkey

Spravovaná identita, která má autorizovaný přístup k trezoru klíčů, může být spravovaná identita přiřazená uživatelem nebo spravovaná identita přiřazená systémem. Další informace o systémově přiřazených a uživatelem přiřazených spravovaných identitách najdete v tématu Typy spravovaných identit.

Když se vytvoří skupina svazků, automaticky se pro ni vytvoří identita přiřazená systémem. Pokud chcete použít identitu přiřazenou uživatelem, vytvořte ji před konfigurací šifrovacích klíčů spravovaných zákazníkem pro vaši skupinu svazků. Informace o vytváření a správě spravované identity přiřazené uživatelem najdete v tématu Správa spravovaných identit přiřazených uživatelem.

Použití spravované identity přiřazené uživatelem k autorizaci přístupu

Když povolíte klíče spravované zákazníkem pro novou skupinu svazků, musíte zadat spravovanou identitu přiřazenou uživatelem. Existující skupina svazků podporuje použití spravované identity přiřazené uživatelem nebo spravované identity přiřazené systémem ke konfiguraci klíčů spravovaných zákazníkem.

Když nakonfigurujete klíče spravované zákazníkem pomocí spravované identity přiřazené uživatelem, použije se spravovaná identita přiřazená uživatelem k autorizaci přístupu k trezoru klíčů, který tento klíč obsahuje. Před konfigurací klíčů spravovaných zákazníkem musíte vytvořit identitu přiřazenou uživatelem.

Spravovaná identita přiřazená uživatelem je samostatný prostředek Azure. Další informace o spravovaných identitách přiřazených uživatelem najdete v tématu Typy spravovaných identit. Informace o vytváření a správě spravované identity přiřazené uživatelem najdete v tématu Správa spravovaných identit přiřazených uživatelem.

Spravovaná identita přiřazená uživatelem musí mít oprávnění pro přístup k klíči v trezoru klíčů. K udělení těchto oprávnění můžete buď ručně udělit oprávnění, nebo přiřadit předdefinované role s oborem trezoru klíčů.

Následující příklad ukazuje, jak:

  • Vytvořte novou spravovanou identitu přiřazenou uživatelem.
  • Počkejte na dokončení vytvoření identity přiřazené uživatelem.
  • PrincipalId Získejte z nové identity.
  • Přiřaďte k nové identitě roli RBAC s vymezeným oborem trezoru klíčů.

Použijte stejné proměnné, které jste definovali dříve v tomto článku.

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

Tip

Než budete pokračovat, počkejte přibližně 1 minutu, než se dokončí vytvoření identity přiřazené uživatelem.

# 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

Použití spravované identity přiřazené systémem k autorizaci přístupu

Spravovaná identita přiřazená systémem je přidružená k instanci služby Azure, jako je skupina svazků Azure Elastic SAN.

Spravovaná identita přiřazená systémem musí mít oprávnění pro přístup k klíči v trezoru klíčů. Tento článek používá roli uživatele šifrování šifrovací služby Key Vault k spravované identitě přiřazené systémem s oborem trezoru klíčů k udělení těchto oprávnění.

Při vytvoření skupiny svazků se pro ni automaticky vytvoří identita přiřazená systémem, pokud -IdentityType "SystemAssigned" je parametr zadán pomocí New-AzElasticSanVolumeGroup příkazu. Identita přiřazená systémem není k dispozici, dokud se skupina svazků nevytvořila. Před přístupem k šifrovacímu klíči v trezoru klíčů musíte také přiřadit odpovídající roli uživatele šifrování služby Key Vault. Proto nemůžete nakonfigurovat klíče spravované zákazníkem tak, aby při vytváření skupiny svazků používaly identitu přiřazenou systémem. Když vytvoříte novou skupinu svazků s klíči spravovanými zákazníkem, musíte při vytváření skupiny svazků použít identitu přiřazenou uživatelem, můžete po vytvoření nakonfigurovat identitu přiřazenou systémem.

Pomocí tohoto ukázkového kódu přiřaďte požadovanou roli RBAC spravované identitě přiřazené systémem s vymezeným oborem trezoru klíčů. Použijte stejné proměnné, které jste definovali dříve v tomto článku.

# 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

Konfigurace klíčů spravovaných zákazníkem pro skupinu svazků

Výběrem modulu Azure PowerShellu nebo karty Azure CLI zobrazíte pokyny ke konfiguraci šifrovacích klíčů spravovaných zákazníkem pomocí preferovaného nástroje pro správu.

Teď, když jste vybrali PowerShell, vyberte kartu, která odpovídá tomu, jestli chcete konfigurovat nastavení při vytváření nové skupiny svazků, nebo aktualizujte nastavení pro existující.

Pomocí této ukázky můžete nakonfigurovat klíče spravované zákazníkem s automatickou aktualizací verze klíče během vytváření nové skupiny svazků pomocí PowerShellu:

# 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

Pokud chcete nakonfigurovat klíče spravované zákazníkem s ruční aktualizací verze klíče při vytváření nové skupiny svazků pomocí PowerShellu, přidejte KeyVersion parametr, jak je znázorněno v této ukázce:

# 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

Další kroky