Aracılığıyla paylaş


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 depolama ve yönetme.
  • Kasadaki işlemleri çağırmak için kullanıcılara veya uygulamalara yetki verin.

Not

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

Önkoşullar

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

Bir anahtar kasasında 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 RegistrationState değerinin bir anahtar kasasının tüm kaynak türleri iç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 verin:

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 parametre 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 Vault URI özelliğini https://vault01.vault.local.azurestack.external kullanmalıdır.

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

BIR 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.

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. Örneğin:

  • Geçerli sürümü her zaman 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

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ında 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 uygulama 00001111-aaaa-2222-bbbb-3333cccc4444 istemci kimliğine sahiptir. Uygulamayı yetkilendirmek için aşağıdaki komutu çalıştırın. Kullanıcı, uygulama veya güvenlik grubu için izinleri ayarlamak için PermissionsToKeys parametresini de belirtebilirsiniz.

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

Set-AzKeyVaultAccessPolicy -VaultName 'ContosoKeyVault' -ServicePrincipalName 00001111-aaaa-2222-bbbb-3333cccc4444 -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