Key Vault ve Azure CLI ile depolama hesabı anahtarlarını yönetme (eski)

Önemli

Key Vault Yönetilen Depolama Hesap Anahtarları (eski) artık planlı güncelleştirmeler yapılmadan olduğu gibi desteklenir. Yalnızca Hesap SAS'sı, 2018-03-28'den sonra sas tanımları imzalı depolama hizmeti sürümüyle desteklenir.

Önemli

Azure CLI'daki Yönetilen Depolama Hesap Anahtarları desteği sürüm 2.54'te kaldırıldı. Bu öğreticideki komutlar için Azure CLI sürüm 2.53.1 veya önceki sürümünü kullanmanız gerekir.

Önemli

Microsoft'un bulut tabanlı kimlik ve erişim yönetimi hizmeti olan Microsoft Entra ID ile Azure Depolama tümleştirmesini kullanmanızı öneririz. Microsoft Entra tümleştirmesi Azure blobları, kuyrukları ve tabloları için kullanılabilir ve Azure Depolama (Azure Key Vault gibi) için OAuth2 belirteç tabanlı erişim sağlar. Microsoft Entra Id, depolama hesabı kimlik bilgileri yerine bir uygulama veya kullanıcı kimliği kullanarak istemci uygulamanızın kimliğini doğrulamanıza olanak tanır. Azure'da çalıştırdığınızda Microsoft Entra yönetilen kimliğini kullanabilirsiniz. Yönetilen kimlikler, istemci kimlik doğrulaması ve kimlik bilgilerini uygulamanızda veya uygulamanızda depolama gereksinimini ortadan kaldırır. Aşağıdaki çözümü yalnızca Microsoft Entra kimlik doğrulaması mümkün olmadığında kullanın.

Azure depolama hesabı, hesap adı ve anahtardan oluşan kimlik bilgilerini kullanır. Anahtar otomatik olarak oluşturulur ve şifreleme anahtarı yerine parola görevi görür. Key Vault, depolama hesabı anahtarlarını düzenli aralıklarla depolama hesabında yeniden oluşturarak yönetir ve depolama hesabınızdaki kaynaklara temsilci erişimi için paylaşılan erişim imzası belirteçleri sağlar.

Anahtarları bir Azure depolama hesabıyla listelemek (eşitlemek) ve anahtarları düzenli aralıklarla yeniden oluşturmak (döndürmek) için Key Vault yönetilen depolama hesabı anahtarı özelliğini kullanabilirsiniz. Hem depolama hesapları hem de Klasik depolama hesapları için anahtarları yönetebilirsiniz.

Yönetilen depolama hesabı anahtarı özelliğini kullandığınızda aşağıdaki noktaları göz önünde bulundurun:

  • Anahtar değerleri bir arayana yanıt olarak hiçbir zaman döndürülemez.
  • Depolama hesabı anahtarlarınızı yalnızca Key Vault yönetmelidir. Anahtarları kendiniz yönetmeyin ve Key Vault işlemlerine müdahale etmekten kaçının.
  • Depolama hesabı anahtarlarını yalnızca tek bir Key Vault nesnesi yönetmelidir. Birden çok nesneden anahtar yönetimine izin verme.
  • Anahtarları yalnızca Key Vault kullanarak yeniden oluşturun. Depolama hesabı anahtarlarınızı el ile yeniden oluşturmayın.

Önemli

Anahtarı doğrudan depolama hesabında yeniden oluşturma, yönetilen depolama hesabı kurulumunu bozar ve kullanımdaki SAS belirteçlerini geçersiz kılabilir ve kesintiye neden olabilir.

Hizmet sorumlusu uygulama kimliği

Microsoft Entra kiracısı, kayıtlı her uygulamaya bir hizmet sorumlusu sağlar. Hizmet sorumlusu, Azure rol tabanlı erişim denetimi (Azure RBAC) aracılığıyla diğer Azure kaynaklarına erişim için yetkilendirme kurulumu sırasında kullanılan Uygulama Kimliği olarak görev yapar.

Key Vault, tüm Microsoft Entra kiracılarında önceden kaydedilmiş bir Microsoft uygulamasıdır. Key Vault, her Azure bulutunda aynı Uygulama Kimliği altında kaydedilir.

Kiracılar Bulut Uygulama Kimliği
Microsoft Entra Kimlik Azure Kamu 7e7c393b-45d0-48b1-a35e-2905ddf8183c
Microsoft Entra Kimlik Azure genel cfa8b339-82a2-471a-a3c9-0fc0be7a4093
Diğer Tümü cfa8b339-82a2-471a-a3c9-0fc0be7a4093

Önkoşullar

Bu kılavuzu tamamlamak için önce aşağıdaki adımları gerçekleştirmeniz gerekir:

Depolama hesabı anahtarlarını yönetme

Azure hesabınıza bağlanma

az login komutlarını kullanarak Azure CLI oturumunuzun kimliğini doğrulama.

az login

Key Vault'a depolama hesabınıza erişim verme

Key Vault'un depolama hesabınıza erişmesini sağlamak için Azure CLI az role assignment create komutunu kullanın. Komutuna aşağıdaki parametre değerlerini sağlayın:

  • --role: "Depolama Hesap Anahtarı Operatör Hizmeti Rolü" Azure rolünü geçirin. Bu rol, erişim kapsamını depolama hesabınızla sınırlar. Klasik depolama hesabı için bunun yerine "Klasik Depolama Hesap Anahtarı İşleci Hizmet Rolü" geçirin.
  • --assignee: Azure genel bulutunda Key Vault'un URL'si olan "https://vault.azure.net"" değerini geçirin. (Azure Kamu bulut için bunun yerine '--assignee-object-id' kullanın. Bkz. Hizmet sorumlusu uygulama kimliği.)
  • --scope: biçimindeki /subscriptions/<subscriptionID>/resourceGroups/<StorageAccountResourceGroupName>/providers/Microsoft.Storage/storageAccounts/<YourStorageAccountName>depolama hesabı kaynak kimliğinizi geçirin. Azure CLI az account list komutunu kullanarak abonelik kimliğinizi bulun. Azure CLI az storage account list komutunu kullanarak depolama hesabı adınızı ve depolama hesabı kaynak grubunuzu bulun.
az role assignment create --role "Storage Account Key Operator Service Role" --assignee "https://vault.azure.net" --scope "/subscriptions/<subscriptionID>/resourceGroups/<StorageAccountResourceGroupName>/providers/Microsoft.Storage/storageAccounts/<YourStorageAccountName>"

Kullanıcı hesabınıza yönetilen depolama hesapları için izin verme

Key Vault erişim ilkesini güncelleştirmek ve kullanıcı hesabınıza depolama hesabı izinleri vermek için Azure CLI az keyvault-set-policy cmdlet'ini kullanın.

# Give your user principal access to all storage account permissions, on your Key Vault instance

az keyvault set-policy --name <YourKeyVaultName> --upn user@domain.com --storage-permissions get list delete set update regeneratekey getsas listsas deletesas setsas recover backup restore purge

Depolama hesaplarına yönelik izinler, Azure portalındaki depolama hesabı "Erişim ilkeleri" sayfasında kullanılamaz.

Key Vault Yönetilen depolama hesabı oluşturma

Azure CLI az keyvault storage komutunu kullanarak Bir Key Vault yönetilen depolama hesabı oluşturun. 30 günlük bir yeniden oluşturma süresi ayarlayın. Döndürme zamanı geldiğinde KeyVault etkin olmayan anahtarı yeniden oluşturur ve yeni oluşturulan anahtarı etkin olarak ayarlar. Tek seferde SAS belirteçleri vermek için anahtarlardan yalnızca biri kullanılır; bu etkin anahtardır. Komutuna aşağıdaki parametre değerlerini sağlayın:

  • --vault-name: Anahtar kasanızın adını geçirin. Anahtar kasanızın adını bulmak için Azure CLI az keyvault list komutunu kullanın.
  • -n: Depolama hesabınızın adını geçirin. Depolama hesabınızın adını bulmak için Azure CLI az storage account list komutunu kullanın.
  • --resource-id: biçimindeki /subscriptions/<subscriptionID>/resourceGroups/<StorageAccountResourceGroupName>/providers/Microsoft.Storage/storageAccounts/<YourStorageAccountName>depolama hesabı kaynak kimliğinizi geçirin. Azure CLI az account list komutunu kullanarak abonelik kimliğinizi bulun. Azure CLI az storage account list komutunu kullanarak depolama hesabı adınızı ve depolama hesabı kaynak grubunuzu bulun.
az keyvault storage add --vault-name <YourKeyVaultName> -n <YourStorageAccountName> --active-key-name key1 --auto-regenerate-key --regeneration-period P30D --resource-id "/subscriptions/<subscriptionID>/resourceGroups/<StorageAccountResourceGroupName>/providers/Microsoft.Storage/storageAccounts/<YourStorageAccountName>"

Paylaşılan erişim imzası belirteçleri

Key Vault'un paylaşılan erişim imzası belirteçleri oluşturmasını da isteyebilirsiniz. Paylaşılan erişim imzası, depolama hesabınızdaki kaynaklara temsilci erişimi sağlar. İstemcilere, hesap anahtarlarınızı paylaşmadan depolama hesabınızdaki kaynaklara erişim vekleyebilirsiniz. Paylaşılan erişim imzası, hesap anahtarlarınızdan ödün vermeden depolama kaynaklarınızı paylaşmanın güvenli bir yolunu sağlar.

Bu bölümdeki komutlar aşağıdaki eylemleri tamamlar:

  • Hesap paylaşılan erişim imzası tanımı <YourSASDefinitionName>ayarlayın. Tanım, anahtar kasanızdaki <YourKeyVaultName>Bir Key Vault yönetilen depolama hesabında <YourStorageAccountName> ayarlanır.
  • Kasada Key Vault yönetilen depolama paylaşılan erişim imzası tanımı ayarlayın. Tanım, oluşturulan paylaşılan erişim imzası belirtecinin şablon URI'sine sahiptir. Tanım paylaşılan erişim imzası türüne account sahiptir ve N gün boyunca geçerlidir.
  • Paylaşılan erişim imzasının anahtar kasanıza gizli dizi olarak kaydedildiğini doğrulayın.

Paylaşılan erişim imzası tanım şablonu tanımlama

Key Vault, istemci uygulamaları için belirteçler oluşturmak için SAS tanım şablonunu kullanır.

SAS tanım şablonu örneği:

"sv=2018-03-28&ss=bfqt&srt=sco&sp=rw&spr=https"

SAS tanım şablonu, sonraki adımda parametresine --template-uri geçirilir.

Key Vault için SAS tanım şablonunda gereken hesap SAS parametreleri

SAS Sorgu Parametresi Açıklama
SignedVersion (sv) Gerekli. Bu hesap SAS'si ile yapılan istekleri yetkilendirmek için kullanılacak imzalı depolama hizmeti sürümünü belirtir. Sürüm 2015-04-05 veya üzeri olarak ayarlanmalıdır. Key Vault en geç 2018-03-28 sürümlerini destekler
SignedServices (ss) Gerekli. Hesap SAS'siyle erişilebilen imzalı hizmetleri belirtir. Olası değerler arasında şunlar bulunur:

- Blob (b)
- Kuyruk (q)
- Tablo (t)
- Dosya (f)

Birden fazla hizmete erişim sağlamak için değerleri birleştirebilirsiniz. Örneğin, ss=bf Blob ve Dosya uç noktalarına erişimi belirtir.
SignedResourceTypes (srt) Gerekli. Hesap SAS'siyle erişilebilen imzalı kaynak türlerini belirtir.

- Hizmet (s): Hizmet düzeyi API'lere erişim (örneğin, Hizmet Özelliklerini Al/Ayarla, Hizmet İstatistiklerini Al, Kapsayıcıları/Kuyrukları/Tabloları/Paylaşımları Listele)
- Kapsayıcı (c): Kapsayıcı düzeyinde API'lere erişim (örneğin, Kapsayıcı Oluştur/Sil, Kuyruk Oluştur/Sil, Tablo Oluştur/Sil, Paylaşım Oluştur/Sil, Blobları/Dosyaları Ve Dizinleri Listele)
- Nesne (o): Bloblar, kuyruk iletileri, tablo varlıkları ve dosyalar için nesne düzeyinde API'lere erişim (örneğin, Blob Koy, Sorgu Varlığı, İleti Al, Dosya Oluştur vb.)

Birden fazla kaynak türüne erişim sağlamak için değerleri birleştirebilirsiniz. Örneğin, srt=sc hizmet ve kapsayıcı kaynaklarına erişimi belirtir.
SignedPermission (sp) Gerekli. Hesap SAS'sinin imzalı izinlerini belirtir. İzinler yalnızca belirtilen imzalı kaynak türüyle eşleşiyorsa geçerlidir; aksi takdirde yoksayılırlar.

- Okuma (r): Tüm imzalı kaynak türleri (Hizmet, Kapsayıcı ve Nesne) için geçerlidir. Belirtilen kaynak türü için okuma izinlerine izin verir.
- Yazma (w): Tüm imzalı kaynak türleri (Hizmet, Kapsayıcı ve Nesne) için geçerlidir. Belirtilen kaynak türü için yazma izinlerine izin verir.
- Sil (d): Kuyruk iletileri dışında Kapsayıcı ve Nesne kaynak türleri için geçerlidir.
- Kalıcı Silme (y): Yalnızca Blob'un Nesne kaynak türü için geçerlidir.
- Liste (l): Yalnızca Hizmet ve Kapsayıcı kaynak türleri için geçerlidir.
- Ekle (a): Yalnızca şu Nesne kaynak türleri için geçerlidir: kuyruk iletileri, tablo varlıkları ve ekleme blobları.
- Oluştur (c): Yalnızca aşağıdaki Nesne kaynak türleri için geçerlidir: bloblar ve dosyalar. Kullanıcılar yeni bloblar veya dosyalar oluşturabilir, ancak mevcut blobların veya dosyaların üzerine yazamayabilir.
- Güncelleştirme (u): Yalnızca aşağıdaki Nesne kaynak türleri için geçerlidir: kuyruk iletileri ve tablo varlıkları.
- İşlem (p): Yalnızca aşağıdaki Nesne kaynak türü için geçerlidir: kuyruk iletileri.
- Etiket (t): Yalnızca aşağıdaki Nesne kaynak türü için geçerlidir: bloblar. Blob etiketi işlemlerine izin verir.
- Filtre (f): Yalnızca aşağıdaki Nesne kaynak türü için geçerlidir: blob. Blob etiketine göre filtrelemeye izin verir.
- Değişmezlik İlkesini Ayarla (i): Yalnızca aşağıdaki Nesne kaynak türü için geçerlidir: blob. Blob üzerinde değişmezlik ilkesinin ayarlanmasına/silinmesine ve yasal saklamaya izin verir.
SignedProtocol (spr) isteğe bağlı. Hesap SAS'siyle yapılan istek için izin verilen protokolü belirtir. Olası değerler hem HTTPS hem de HTTP (https,http) veya yalnızca HTTPS (https) değerleridir. Varsayılan değer şudur: https,http.

Yalnızca HTTP izin verilen bir değer değildir.

Hesap SAS'i hakkında daha fazla bilgi için bkz. Hesap SAS'i oluşturma

Not

Key Vault, 'İmzalı Süre Sonu', 'İmzalı Başlangıç' gibi yaşam süresi parametrelerini ve 2018-03-28 sürümünden sonra kullanıma sunulan parametreleri yoksayar

Key Vault'ta paylaşılan erişim imzası tanımını ayarlama

Paylaşılan erişim imzası tanımı oluşturmak için önceki adımdaki SAS tanımı şablonunu parametresine --template-uri geçirerek Azure CLI az keyvault storage sas-definition create komutunu kullanın. Parametreye tercih -n ettiğiniz adı sağlayabilirsiniz.

az keyvault storage sas-definition create --vault-name <YourKeyVaultName> --account-name <YourStorageAccountName> -n <YourSASDefinitionName> --validity-period P2D --sas-type account --template-uri <sasDefinitionTemplate>

Paylaşılan erişim imzası tanımını doğrulama

Azure CLI az keyvault storage sas-definition show komutunu kullanarak paylaşılan erişim imzası tanımının anahtar kasanızda depolandığını doğrulayabilirsiniz.

Artık az keyvault storage sas-definition show komutunu ve id özelliğini kullanarak bu gizli dizinin içeriğini görüntüleyebilirsiniz.

az keyvault storage sas-definition show --id https://<YourKeyVaultName>.vault.azure.net/storage/<YourStorageAccountName>/sas/<YourSASDefinitionName>

Sonraki adımlar

  • Anahtarlar, gizli diziler ve sertifikalar hakkında daha fazla bilgi edinin.
  • Azure Key Vault ekip blogundaki makaleleri gözden geçirin.
  • az keyvault storage reference belgelerine bakın.