Aracılığıyla paylaş


Azure Elastik SAN için müşteri tarafından yönetilen anahtarları yapılandırma

Elastik SAN birimine yazılan tüm veriler bir veri şifreleme anahtarı (DEK) ile otomatik olarak şifrelenir. Azure, ANAHTAR Şifreleme Anahtarı (KEK) kullanarak DEK'yi şifrelemek için zarf şifrelemesi kullanır. Varsayılan olarak KEK, platform tarafından yönetilir (Microsoft tarafından yönetilir), ancak kendiniz oluşturabilir ve yönetebilirsiniz.

Bu makalede, Bir Azure Key Vault'ta depolanan müşteri tarafından yönetilen anahtarlarla Elastik SAN birim grubunun şifrelenmesinin nasıl yapılandırlandığı gösterilmektedir.

Sınırlamalar

Aşağıdaki liste, Elastic SAN'ın şu anda içinde kullanılabildiği bölgeleri ve hangi bölgelerin hem alanlar arası yedekli depolamayı (ZRS) hem de yerel olarak yedekli depolamayı (LRS) veya yalnızca LRS'yi desteklediğini içerir:

  • Güney Afrika Kuzey - LRS
  • Doğu Asya - LRS
  • Güneydoğu Asya - LRS
  • Güney Brezilya - LRS
  • Orta Kanada - LRS
  • Orta Fransa - LRS & ZRS
  • Almanya Orta Batı - LRS
  • Doğu Avustralya - LRS
  • Kuzey Avrupa - LRS & ZRS
  • Batı Avrupa - LRS & ZRS
  • Güney Birleşik Krallık - LRS
  • Doğu Japonya - LRS
  • Kore Orta - LRS
  • Orta ABD - LRS
  • Doğu ABD - LRS
  • Orta Güney ABD - LRS
  • Doğu ABD 2 - LRS
  • Batı ABD 2 - LRS & ZRS
  • Batı ABD 3 - LRS
  • İsveç Orta - LRS
  • İsviçre Kuzey - LRS
  • Doğu Norveç - LRS
  • BAE Kuzey - LRS
  • Hindistan Orta - LRS

Önkoşullar

Bu makalede açıklanan işlemleri gerçekleştirmek için Azure hesabınızı ve kullanmayı planladığınız yönetim araçlarını hazırlamanız gerekir. Hazırlık, gerekli modülleri yüklemeyi, hesabınızda oturum açmayı ve PowerShell ile Azure CLI için değişkenleri ayarlamayı içerir. Bu makalenin tamamında aynı değişken kümesi kullanıldığından, bunları ayarlamak artık tüm örneklerde aynı değişkenleri kullanmanıza olanak tanır.

PowerShell kullanarak bu makalede açıklanan işlemleri gerçekleştirmek için:

  1. Henüz yüklemediyseniz Azure PowerShell'in en son sürümünü yükleyin.

  2. Azure PowerShell yüklendikten sonra, ile Install-Module -Name Az.ElasticSan -Repository PSGalleryElastik SAN uzantısının 0.1.2 veya sonraki bir sürümünü yükleyin.

  3. Azure'da oturum açın.

    Connect-AzAccount
    

Bu makaledeki PowerShell örneklerinde kullanılacak değişkenler oluşturma

Örnek kodu kopyalayın ve tüm yer tutucu metni kendi değerlerinizle değiştirin. Bu makaledeki tüm örneklerde aynı değişkenleri kullanın:

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

Anahtar kasasını yapılandırma

Müşteri tarafından yönetilen anahtarları depolamak için yeni veya mevcut bir anahtar kasası kullanabilirsiniz. Şifrelenmiş kaynak ve anahtar kasası aynı Microsoft Entra Id kiracısında farklı bölgelerde veya aboneliklerde olabilir. Azure Key Vault hakkında daha fazla bilgi edinmek için bkz . Azure Key Vault'a Genel Bakış ve Azure Key Vault nedir?.

Müşteri tarafından yönetilen anahtarların şifreleme ile kullanılması, anahtar kasası için hem geçici silme hem de temizleme korumasının etkinleştirilmesini gerektirir. Geçici silme, yeni bir anahtar kasası oluşturduğunuzda varsayılan olarak etkinleştirilir ve devre dışı bırakılamaz. Temizleme korumasını anahtar kasasını oluştururken veya oluşturulduktan sonra etkinleştirebilirsiniz. Azure Elastik SAN şifrelemesi 2048, 3072 ve 4096 boyutlarında RSA anahtarlarını destekler.

Azure Key Vault, Azure RBAC izin modeli aracılığıyla Azure RBAC ile yetkilendirmeyi destekler. Microsoft, anahtar kasası erişim ilkeleri üzerinde Azure RBAC izin modelinin kullanılmasını önerir. Daha fazla bilgi için bkz . Uygulamalara Azure RBAC kullanarak Azure anahtar kasasına erişim izni verme.

Birim grubu KEK'leriniz için bir anahtar kasasını depo olarak hazırlamanın iki adımı vardır:

  • Geçici silme ve temizleme koruması etkinleştirilmiş yeni bir anahtar kasası oluşturun veya mevcut bir kasa için temizleme korumasını etkinleştirin.
  • Yedekleme oluşturma silme alma listesi güncelleştirme geri yükleme izinlerine sahip bir Azure RBAC rolü oluşturun veya atayın.

Aşağıdaki örnek:

  • Geçici silme ve temizleme koruması etkinleştirilmiş yeni bir anahtar kasası oluşturur.
  • Kullanıcı hesabınızın UPN'sini alır.
  • Hesabınıza yeni anahtar kasası için Key Vault Şifreleme Yetkilisi rolünü atar.

Bu makalede daha önce tanımladığınız değişkenleri kullanın.

# 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

PowerShell ile mevcut bir anahtar kasasında temizleme korumasını etkinleştirmeyi öğrenmek için bkz . Azure Key Vault kurtarmaya genel bakış.

PowerShell ile RBAC rolü atama hakkında daha fazla bilgi için bkz . Azure PowerShell kullanarak Azure rolleri atama.

Anahtar ekleme

Ardından, anahtar kasasına bir anahtar ekleyin. Anahtarı eklemeden önce kendinize Key Vault Şifreleme Yetkilisi rolünü atadığınızdan emin olun.

Azure Depolama ve Elastik SAN şifrelemesi 2048, 3072 ve 4096 boyutlarında RSA anahtarlarını destekler. Desteklenen anahtar türleri hakkında daha fazla bilgi için bkz . Anahtarlar hakkında.

PowerShell ile anahtar kasasına anahtar eklemek için bu örnek komutları kullanın. Bu makalede daha önce tanımladığınız değişkenleri kullanın.

# 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

Anahtar döndürme stratejisi seçme

Şifreleme en iyi yöntemlerinin takiplenmesi, Elastik SAN birim grubunuzu koruyan anahtarı normal bir zamanlamaya göre (genellikle en az iki yılda bir) döndürmek anlamına gelir. Azure Elastic SAN, anahtar kasasındaki anahtarı hiçbir zaman değiştirmez, ancak anahtarı uyumluluk gereksinimlerinize göre döndürmek için bir anahtar döndürme ilkesi yapılandırabilirsiniz. Daha fazla bilgi için bkz . Azure Key Vault'ta şifreleme anahtarı otomatik döndürmeyi yapılandırma.

Anahtar kasada döndürüldükten sonra, Elastik SAN birim grubunuzun şifreleme yapılandırması yeni anahtar sürümünü kullanacak şekilde güncelleştirilmelidir. Müşteri tarafından yönetilen anahtarlar KEK sürümünün hem otomatik hem de el ile güncelleştirilmesini destekler. Yeni veya mevcut bir birim grubu için müşteri tarafından yönetilen anahtarları yapılandırmadan önce hangi yaklaşımı kullanmak istediğinize karar verin.

Anahtar döndürme hakkında daha fazla bilgi için bkz . Anahtar sürümünü güncelleştirme.

Önemli

Anahtarı veya anahtar sürümünü değiştirdiğinizde kök veri şifreleme anahtarının koruması değişir, ancak Azure Elastik SAN birim grubunuzdaki veriler her zaman şifrelenmiş olarak kalır. Verilerinizin korunmasını sağlamak için sizin tarafınızdan ek işlem gerekmez. Anahtar sürümünü döndürmek performansı etkilemez ve bu sürümle ilişkili kapalı kalma süresi yoktur.

Otomatik anahtar sürümü döndürme

Azure Elastik SAN, anahtar kasasından en son anahtar sürümünü kullanmak üzere şifreleme için kullanılan müşteri tarafından yönetilen anahtarı otomatik olarak güncelleştirebilir. Elastik SAN, anahtarın yeni bir sürümü için anahtar kasasını günlük olarak denetler. Yeni bir sürüm kullanıma sunulduğunda otomatik olarak şifreleme için anahtarın en son sürümünü kullanmaya başlar. Bir anahtarı döndürdüğünüzde, eski sürümü devre dışı bırakmadan önce 24 saat beklemeyi unutmayın.

Önemli

Elastik SAN birim grubu, anahtar sürümünün el ile güncelleştirilmesi için yapılandırılmışsa ve bunu otomatik olarak güncelleştirilecek şekilde değiştirmek istiyorsanız, anahtar sürümünü boş bir dize olarak değiştirin. Anahtar sürümünü el ile değiştirme hakkında daha fazla bilgi için bkz . Anahtar sürümünü otomatik olarak güncelleştirme.

El ile anahtar sürümü döndürme

Anahtar sürümünü el ile güncelleştirmeyi tercih ediyorsanız, müşteri tarafından yönetilen anahtarlarla şifrelemeyi yapılandırdığınız sırada belirli bir sürüm için URI'yi belirtin. URI'yi belirttiğinizde, anahtar kasasında yeni bir sürüm oluşturulduğunda elastik SAN'nız anahtar sürümünü otomatik olarak güncelleştirmez. Elastik SAN'nızın yeni bir anahtar sürümü kullanması için el ile güncelleştirmeniz gerekir.

Azure portalında anahtarın belirli bir sürümünün URI'sini bulmak için:

  1. Anahtar kasanıza gidin.
  2. Nesneler'in altında Anahtarlar'ı seçin.
  3. Sürümlerini görüntülemek için istediğiniz anahtarı seçin.
  4. Bu sürümün ayarlarını görüntülemek için bir anahtar sürümü seçin.
  5. URI'yi sağlayan Anahtar Tanımlayıcısı alanının değerini kopyalayın.
  6. Kopyalanan metni daha sonra birim grubunuz için şifrelemeyi yapılandırırken kullanmak üzere kaydedin.

Azure portalında anahtar kasası anahtarı URI'lerini gösteren ekran görüntüsü.

Anahtar kasasına erişimi yetkilendirmek için yönetilen kimlik seçme

Elastik SAN birim grubu için müşteri tarafından yönetilen şifreleme anahtarlarını etkinleştirdiğinizde, anahtarı içeren anahtar kasasına erişimi yetkilendirmek için kullanılan bir yönetilen kimlik belirtmeniz gerekir. Yönetilen kimlik aşağıdaki izinlere sahip olmalıdır:

  • get
  • kaydırma tuşu
  • unwrapkey

Anahtar kasasına yetkili erişim olan yönetilen kimlik, kullanıcı tarafından atanan veya sistem tarafından atanan yönetilen kimlik olabilir. Sistem tarafından atanan ve kullanıcı tarafından atanan yönetilen kimlikler hakkında daha fazla bilgi edinmek için bkz . Yönetilen kimlik türleri.

Birim grubu oluşturulduğunda, sistem tarafından atanan bir kimlik otomatik olarak oluşturulur. Kullanıcı tarafından atanan bir kimlik kullanmak istiyorsanız, birim grubunuz için müşteri tarafından yönetilen şifreleme anahtarlarını yapılandırmadan önce oluşturun. Kullanıcı tarafından atanan yönetilen kimlik oluşturmayı ve yönetmeyi öğrenmek için bkz . Kullanıcı tarafından atanan yönetilen kimlikleri yönetme.

Erişimi yetkilendirmek için kullanıcı tarafından atanan yönetilen kimlik kullanma

Yeni bir birim grubu için müşteri tarafından yönetilen anahtarları etkinleştirdiğinizde, kullanıcı tarafından atanan bir yönetilen kimlik belirtmeniz gerekir. Mevcut birim grubu, müşteri tarafından yönetilen anahtarları yapılandırmak için kullanıcı tarafından atanan yönetilen kimliği veya sistem tarafından atanan yönetilen kimliği kullanmayı destekler.

Müşteri tarafından yönetilen anahtarları kullanıcı tarafından atanan yönetilen kimlikle yapılandırdığınızda, anahtarı içeren anahtar kasasına erişim yetkisi vermek için kullanıcı tarafından atanan yönetilen kimlik kullanılır. Müşteri tarafından yönetilen anahtarları yapılandırmadan önce kullanıcı tarafından atanan kimliği oluşturmanız gerekir.

Kullanıcı tarafından atanan yönetilen kimlik tek başına bir Azure kaynağıdır. Kullanıcı tarafından atanan yönetilen kimlikler hakkında daha fazla bilgi edinmek için bkz . Yönetilen kimlik türleri. Kullanıcı tarafından atanan yönetilen kimlik oluşturmayı ve yönetmeyi öğrenmek için bkz . Kullanıcı tarafından atanan yönetilen kimlikleri yönetme.

Kullanıcı tarafından atanan yönetilen kimliğin anahtar kasasında anahtara erişme izinleri olmalıdır. Bu izinleri vermek için kimliğe el ile izin verebilir veya anahtar kasası kapsamına sahip yerleşik bir rol atayabilirsiniz.

Aşağıdaki örnekte şunların nasıl yapılacağını gösterilmektedir:

  • Kullanıcı tarafından atanan yeni bir yönetilen kimlik oluşturun.
  • Kullanıcı tarafından atanan kimliğin oluşturulmasının tamamlanmasını bekleyin.
  • PrincipalId Yeni kimlikten alın.
  • Anahtar kasası kapsamındaki yeni kimliğe bir RBAC rolü atayın.

Bu makalede daha önce tanımladığınız değişkenleri kullanın.

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

İpucu

Devam etmeden önce kullanıcı tarafından atanan kimliğin oluşturulmasının tamamlanmasını yaklaşık 1 dakika bekleyin.

# 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

Erişimi yetkilendirmek için sistem tarafından atanan yönetilen kimlik kullanma

Sistem tarafından atanan yönetilen kimlik, Azure Elastik SAN birim grubu gibi bir Azure hizmetinin örneğiyle ilişkilendirilir.

Sistem tarafından atanan yönetilen kimliğin anahtar kasasında anahtara erişme izinleri olmalıdır. Bu makalede, bu izinleri vermek için anahtar kasası kapsamına sahip sistem tarafından atanan yönetilen kimlik için Key Vault Şifreleme Hizmeti Şifreleme Kullanıcı rolü kullanılmaktadır.

Birim grubu oluşturulduğunda, parametre komutuyla New-AzElasticSanVolumeGroup belirtilirse -IdentityType "SystemAssigned" sistem tarafından atanan bir kimlik otomatik olarak oluşturulur. Sistem tarafından atanan kimlik, birim grubu oluşturulana kadar kullanılamaz. Anahtar kasasındaki şifreleme anahtarına erişebilmesi için önce kimliğe Key Vault Şifreleme Hizmeti Şifreleme Kullanıcı rolü gibi uygun bir rol de atamanız gerekir. Bu nedenle, birim grubu oluşturulurken sistem tarafından atanan kimliği kullanmak için müşteri tarafından yönetilen anahtarları yapılandıramazsınız. Müşteri tarafından yönetilen anahtarlarla yeni bir birim grubu oluşturduğunuzda, birim grubunu oluştururken kullanıcı tarafından atanan bir kimlik kullanmanız gerekir; oluşturulduktan sonra sistem tarafından atanan bir kimlik yapılandırabilirsiniz.

Gerekli RBAC rolünü anahtar kasası kapsamında sistem tarafından atanan yönetilen kimliğe atamak için bu örnek kodu kullanın. Bu makalede daha önce tanımladığınız değişkenleri kullanın.

# 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

Birim grubu için müşteri tarafından yönetilen anahtarları yapılandırma

Tercih ettiğiniz yönetim aracını kullanarak müşteri tarafından yönetilen şifreleme anahtarlarını yapılandırma yönergeleri için Azure PowerShell modülünü veya Azure CLI sekmesini seçin.

PowerShell'i seçtiğinize göre, yeni bir birim grubu oluşturulurken ayarları yapılandırmak isteyip istemediğinize veya mevcut bir birim grubunun ayarlarını güncelleştirmek istediğinize karşılık gelen sekmeyi seçin.

PowerShell kullanarak yeni bir birim grubu oluşturulurken anahtar sürümünün otomatik olarak güncelleştirilmesiyle müşteri tarafından yönetilen anahtarları yapılandırmak için bu örneği kullanın:

# 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

PowerShell kullanarak yeni bir birim grubu oluşturulurken anahtar sürümünün el ile güncelleştirilmesiyle müşteri tarafından yönetilen anahtarları yapılandırmak için, bu örnekte gösterildiği gibi parametresini ekleyinKeyVersion:

# 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

Sonraki adımlar