PowerShell kullanarak Azure Stack Hub'da Key Vault yönetme

Bu makalede, PowerShell kullanarak Azure Stack Hub'da anahtar kasası oluşturma ve yönetme işlemleri açıklanmaktadır. Key Vault PowerShell cmdlet'lerini kullanarak şunları yapmayı öğreneceksiniz:

  • Anahtar kasası oluşturma.
  • Şifreleme anahtarlarını ve gizli dizileri depolayın ve yönetin.
  • Kasadaki işlemleri çağırmak için kullanıcıları veya uygulamaları yetkileyin.

Not

Bu makalede açıklanan Key Vault PowerShell cmdlet'leri Azure PowerShell SDK'da sağlanır.

Önkoşullar

kiracı aboneliğinizi Key Vault işlemleri için etkinleştirme

Anahtar kasası üzerinde herhangi bir işlem düzenleyebilmeniz için önce kiracı aboneliğinizin kasa işlemleri için etkinleştirildiğinden emin olmanız gerekir. Anahtar kasası işlemlerinin etkinleştirildiğini doğrulamak için aşağıdaki komutu çalıştırın:

Get-AzResourceProvider -ProviderNamespace Microsoft.KeyVault | ft -Autosize

Aboneliğiniz kasa işlemleri için etkinleştirildiyse çıkışta, bir anahtar kasasının tüm kaynak türleri için RegistrationState'in Kayıtlı olduğu gösterilir.

PowerShell'de anahtar kasası kayıt durumu

Kasa işlemleri etkinleştirilmediyse, Key Vault hizmetini aboneliğinize kaydetmek için aşağıdaki komutu çalıştırın:

Register-AzResourceProvider -ProviderNamespace Microsoft.KeyVault

Kayıt başarılı olursa aşağıdaki çıkış döndürülür:

PowerShell'de anahtar kasası kaydı başarılı

Anahtar kasası komutlarını çağırdığınızda, "Abonelik 'Microsoft.KeyVault' ad alanını kullanacak şekilde kaydedilmedi" gibi bir hata alabilirsiniz. Hata alırsanız, önceki yönergeleri izleyerek Key Vault kaynak sağlayıcısını etkinleştirdiğinizden emin olun.

Anahtar kasası oluşturma

Anahtar kasası oluşturmadan önce, anahtar kasasıyla ilgili tüm kaynakların bir kaynak grubunda bulunması için bir kaynak grubu oluşturun. Yeni bir kaynak grubu oluşturmak için aşağıdaki komutu kullanın:

New-AzResourceGroup -Name "VaultRG" -Location local -verbose -Force

PowerShell'de oluşturulan yeni kaynak grubu

Şimdi, daha önce oluşturduğunuz kaynak grubunda bir anahtar kasası oluşturmak için aşağıdaki cmdlet'i kullanın. Bu komut üç zorunlu parametreyi okur: kaynak grubu adı, anahtar kasası adı ve coğrafi konum.

Anahtar kasası oluşturmak için aşağıdaki komutu çalıştırın:

New-AzKeyVault -VaultName "Vault01" -ResourceGroupName "VaultRG" -Location local -verbose

PowerShell'de oluşturulan yeni anahtar kasası

Bu komutun çıktısı, oluşturduğunuz anahtar kasasının özelliklerini gösterir. Bir uygulama bu kasaya eriştiğinde, bu örnekteki https://vault01.vault.local.azurestack.externalKasa URI özelliğini kullanmalıdır.

Active Directory Federasyon Hizmetleri (AD FS) (AD FS) dağıtımı

AD FS dağıtımında şu uyarıyı alabilirsiniz: "Erişim ilkesi ayarlanmadı. Hiçbir kullanıcı veya uygulamanın bu kasayı kullanma izni yok." Bu sorunu çözmek için Set-AzKeyVaultAccessPolicy komutunu kullanarak kasa için bir erişim ilkesi ayarlayın:

# Obtain the security identifier(SID) of the active directory user
$adUser = Get-ADUser -Filter "Name -eq '{Active directory user name}'"
$objectSID = $adUser.SID.Value

# Set the key vault access policy
Set-AzKeyVaultAccessPolicy -VaultName "{key vault name}" -ResourceGroupName "{resource group name}" -ObjectId "{object SID}" -PermissionsToKeys {permissionsToKeys} -PermissionsToSecrets {permissionsToSecrets} -BypassObjectIdValidation

Anahtarları ve gizli dizileri yönetme

Kasa oluşturduktan sonra, kasada anahtarlar ve gizli diziler oluşturmak ve yönetmek için bu adımları kullanın.

Bir anahtar oluşturma

Add-AzureKeyVaultKey cmdlet'ini kullanarak bir anahtar kasasında yazılım korumalı anahtar oluşturun veya içeri aktarın:

Add-AzureKeyVaultKey -VaultName "Vault01" -Name "Key01" -verbose -Destination Software

-Destination parametresi, anahtarın yazılım korumalı olduğunu belirtmek için kullanılır. Anahtar başarıyla oluşturulduğunda, komut oluşturulan anahtarın ayrıntılarını verir.

PowerShell'de oluşturulan yeni anahtar kasası anahtarı

Artık URI'sini kullanarak oluşturulan anahtara başvurabilirsiniz. Mevcut anahtarla aynı ada sahip bir anahtar oluşturur veya içeri aktarırsanız, özgün anahtar yeni anahtarda belirtilen değerlerle güncelleştirilir. Anahtarın sürüme özgü URI'sini kullanarak önceki sürüme erişebilirsiniz. Örnek:

  • Her zaman geçerli sürümü almak için kullanın https://vault10.vault.local.azurestack.external:443/keys/key01 .
  • Bu belirli sürümü almak için kullanın https://vault010.vault.local.azurestack.external:443/keys/key01/d0b36ee2e3d14e9f967b8b6b1d38938a .

Anahtar alma

Bir anahtarı ve ayrıntılarını okumak için Get-AzureKeyVaultKey cmdlet'ini kullanın:

Get-AzureKeyVaultKey -VaultName "Vault01" -Name "Key01"

Gizli anahtar oluşturma

Kasada gizli dizi oluşturmak veya güncelleştirmek için Set-AzureKeyVaultSecret cmdlet'ini kullanın. Henüz yoksa bir gizli dizi oluşturulur. Gizli dizi zaten varsa yeni bir sürümü oluşturulur:

$secretvalue = ConvertTo-SecureString "User@123" -AsPlainText -Force
Set-AzureKeyVaultSecret -VaultName "Vault01" -Name "Secret01" -SecretValue $secretvalue

PowerShell'de gizli dizi oluşturma

Gizli dizi alma

Anahtar kasasında gizli dizi okumak için Get-AzureKeyVaultSecret cmdlet'ini kullanın. Bu komut bir gizli dizinin tüm veya belirli sürümlerini döndürebilir:

Get-AzureKeyVaultSecret -VaultName "Vault01" -Name "Secret01"

Anahtarları ve gizli dizileri oluşturduktan sonra, bunları kullanmak için dış uygulamaları yetkileyebilirsiniz.

Bir uygulamayı anahtar veya gizli dizi kullanacak şekilde yetkilendirme

Bir uygulamayı anahtar kasasındaki bir anahtara veya gizli diziye erişme yetkisi vermek için aşağıdaki cmdlet'i kullanın.

Aşağıdaki örnekte kasa adı ContosoKeyVault'tur ve yetkilendirmek istediğiniz uygulamanın istemci kimliği 8f8c4bbd-485b-45fd-98f7-ec6300b7b4ed şeklindedir. Uygulamayı yetkilendirmek için aşağıdaki komutu çalıştırın. Kullanıcı, uygulama veya güvenlik grubu izinlerini ayarlamak için PermissionsToKeys parametresini de belirtebilirsiniz.

AD FS tarafından yapılandırılmış bir Azure Stack Hub ortamında cmdlet kullanılırken BypassObjectIdValidation parametresi sağlanmalıdır

Set-AzKeyVaultAccessPolicy -VaultName 'ContosoKeyVault' -ServicePrincipalName 8f8c4bbd-485b-45fd-98f7-ec6300b7b4ed -PermissionsToKeys decrypt,sign -BypassObjectIdValidation

Aynı uygulamayı kasanızdaki gizli dizileri okuma yetkisi vermek istiyorsanız aşağıdaki cmdlet'i çalıştırın:

Set-AzKeyVaultAccessPolicy -VaultName 'ContosoKeyVault' -ServicePrincipalName 8f8c4bbd-485b-45fd-98f7-ec6300 -PermissionsToKeys Get -BypassObjectIdValidation

Sonraki adımlar