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
- Azure Key Vault hizmetini içeren bir teklife abone olmanız gerekir.
- Azure Stack Hub için PowerShell'i yükleyin.
- Azure Stack Hub PowerShell ortamını yapılandırın.
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.
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:
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
Ş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
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.
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
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