Key Vault ve Azure CLı ile depolama hesabı anahtarlarını yönetme
Önemli
azure Depolama tümleştirmesini, Microsoft 'un bulut tabanlı kimlik ve erişim yönetimi hizmeti Azure Active Directory (azure AD) ile kullanmanızı öneririz. azure AD tümleştirmesi, azure blob 'ları ve kuyruklarıiçin kullanılabilir ve azure Depolama OAuth2 belirteç tabanlı erişim sağlar (tıpkı Azure Key Vault gibi). Azure AD, depolama hesabı kimlik bilgileri yerine bir uygulama veya Kullanıcı kimliği kullanarak istemci uygulamanızın kimliğini doğrulayabilmeniz için izin verir. Azure 'da çalıştırdığınızda Azure ad yönetilen kimliğini kullanabilirsiniz. Yönetilen kimlikler, istemci kimlik doğrulaması gereksinimini ortadan kaldırır ve uygulamanızda veya uygulamanızdaki kimlik bilgilerini depolar. Yalnızca Azure AD kimlik doğrulaması mümkün olmadığında aşağıdaki çözümü kullanın.
Bir Azure depolama hesabı, hesap adı ve anahtarı kapsayan kimlik bilgilerini kullanır. Anahtar otomatik olarak oluşturulur ve şifreleme anahtarı olarak değil, bir parola görevi görür. Key Vault depolama hesabı anahtarlarını, düzenli aralıklarla depolama hesabında yeniden oluşturup yönetir ve Depolama hesabınızdaki kaynaklara temsilci erişimi için paylaşılan erişim imza belirteçleri sağlar.
Anahtarları bir Azure depolama hesabıyla listelemek (eşitlemek) ve anahtarları düzenli olarak 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 çağırana yanıt olarak hiçbir şekilde döndürülmez.
- Depolama hesabı anahtarlarınızı yalnızca Key Vault yönetmelidir. Anahtarları kendiniz yönetmeyin ve Key Vault süreçleriyle kesintiye uğramayı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 üretme.
Önemli
Doğrudan depolama hesabı 'nda anahtar yeniden oluşturulması, yönetilen depolama hesabı kurulumunu keser ve kullanımda olan SAS belirteçlerini geçersiz kılabilir ve bir kesinti oluşmasına neden olabilir.
Hizmet sorumlusu uygulama kimliği
Bir Azure AD kiracısı, kayıtlı her uygulamayı bir hizmet sorumlusuile sağlar. Hizmet sorumlusu, 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 Azure AD kiracılarında önceden kaydedilmiş bir Microsoft uygulamasıdır. Key Vault, her bir Azure bulutu 'nda aynı uygulama KIMLIĞI altına kaydedilir.
| Kiracılar | Bulut | Uygulama Kimliği |
|---|---|---|
| Azure AD | Azure Kamu | 7e7c393b-45d0-48b1-a35e-2905ddf8183c |
| Azure AD | Azure genel | cfa8b339-82a2-471a-a3c9-0fc0be7a4093 |
| Diğer | Herhangi biri | cfa8b339-82a2-471a-a3c9-0fc0be7a4093 |
Önkoşullar
Bu kılavuzu gerçekleştirmek için, önce aşağıdakileri yapmanız gerekir:
- Azure CLI 'Yı yükler.
- Anahtar kasası oluşturma
- Bir Azure depolama hesabı oluşturun. Depolama hesabı adı yalnızca küçük harfler ve rakamlar kullanmalıdır. Adın uzunluğu 3 ile 24 karakter arasında olmalıdır.
Depolama hesabı anahtarlarını yönetme
Azure hesabınıza bağlanma
Az Login komutunu kullanarak Azure CLI oturumunuzun kimliğini doğrulayın.
az login
Depolama hesabınıza Key Vault erişim izni verin
Depolama hesabınıza erişmek Key Vault erişim sağlamak için Azure CLı az role atama oluştur komutunu kullanın. Komutu aşağıdaki parametre değerlerini belirtin:
--role: "Depolama hesap anahtarı işletmen hizmeti rolü" Azure rolünü geçirin. Bu rol, erişim kapsamını depolama hesabınızla sınırlandırır. klasik bir depolama hesabı için bunun yerine "klasik Depolama hesabı anahtar işletmeni hizmeti rolü" geçirin.--assignee: https://vault.azure.net Azure genel bulutundaki Key Vault URL 'si olan "" değerini geçirin. (Azure hükümeti bulutu için '--atane-nesne-kimliği ' kullanımı yerine bkz. hizmet sorumlusu uygulama kimliği.)--scope: Depolama hesabı kaynak KIMLIĞINIZI (biçiminde) geçirin/subscriptions/<subscriptionID>/resourceGroups/<StorageAccountResourceGroupName>/providers/Microsoft.Storage/storageAccounts/<YourStorageAccountName>. Abonelik KIMLIĞINIZI bulmak için Azure CLı az Account List komutunu kullanın; depolama hesabı adınızı ve depolama hesabı kaynak grubunuzu bulmak için Azure CLı az Storage Account List komutunu kullanın.
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>"
Yönetilen depolama hesaplarına kullanıcı hesabınıza izin verin
Key Vault erişim ilkesini güncelleştirmek ve Kullanıcı hesabınıza depolama hesabı izinleri vermek için Azure CLı az keykasası-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ı için izinler, Azure portal depolama hesabı "erişim ilkeleri" sayfasında kullanılamaz.
Key Vault yönetilen bir depolama hesabı oluşturma
Azure CLı az keykasa Storage komutunu kullanarak Key Vault yönetilen bir depolama hesabı oluşturun. Yeniden oluşturma dönemini 90 gün olarak ayarlayın. Döndürme zamanı olduğunda, Anahtar Kasası etkin olmayan anahtarı yeniden oluşturur ve ardından yeni oluşturulan anahtarı etkin olarak ayarlar. Her bir anda SAS belirteçleri vermek için anahtarlardan yalnızca biri kullanılır, bu etkin anahtardır. Komutu aşağıdaki parametre değerlerini belirtin:
--vault-name: Anahtar kasanızın adını geçirin. Anahtar kasanızın adını bulmak için Azure CLı az keykasası 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 CLı az Storage Account List komutunu kullanın.--resource-id: Depolama hesabı kaynak KIMLIĞINIZI (biçiminde) geçirin/subscriptions/<subscriptionID>/resourceGroups/<StorageAccountResourceGroupName>/providers/Microsoft.Storage/storageAccounts/<YourStorageAccountName>. Abonelik KIMLIĞINIZI bulmak için Azure CLı az Account List komutunu kullanın; depolama hesabı adınızı ve depolama hesabı kaynak grubunuzu bulmak için Azure CLı az Storage Account List komutunu kullanın.
az keyvault storage add --vault-name <YourKeyVaultName> -n <YourStorageAccountName> --active-key-name key1 --auto-regenerate-key --regeneration-period P90D --resource-id "/subscriptions/<subscriptionID>/resourceGroups/<StorageAccountResourceGroupName>/providers/Microsoft.Storage/storageAccounts/<YourStorageAccountName>"
Paylaşılan erişim imza belirteçleri
Ayrıca, Key Vault paylaşılan erişim imzası belirteçleri oluşturmasını isteyebilirsiniz. Paylaşılan erişim imzası, Depolama hesabınızdaki kaynaklara temsilci erişimi sağlar. İstemci, hesap anahtarlarınızı paylaşmadan Depolama hesabınızdaki kaynaklara erişim izni verebilirsiniz. Paylaşılan erişim imzası, hesap anahtarlarınızla ödün vermeden depolama kaynaklarınızı paylaşmak için güvenli bir yol sağlar.
Bu bölümdeki komutlar aşağıdaki eylemleri tamamlar:
- Hesap paylaşılan erişim imzası tanımı ayarlayın
<YourSASDefinitionName>. Tanım, anahtar kasaınızdaki Key Vault yönetilen bir depolama hesabında ayarlanır<YourStorageAccountName><YourKeyVaultName>. - Blob, dosya, tablo ve kuyruk Hizmetleri için bir hesap paylaşılan erişim imza belirteci oluşturun. Belirteç, kaynak türleri hizmeti, kapsayıcısı ve nesnesi için oluşturulur. Belirteç, https üzerinden ve belirtilen başlangıç ve bitiş tarihleriyle birlikte tüm izinlerle oluşturulur.
- Kasada Key Vault yönetilen bir 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 sahiptir
accountve N gün için geçerlidir. - Paylaşılan erişim imzasının anahtar kasanıza gizli dizi olarak kaydedildiğini doğrulayın.
Paylaşılan erişim imza belirteci oluşturma
Azure CLı az Storage Account Generate-SAS komutunu kullanarak bir paylaşılan erişim imzası tanımı oluşturun. Bu işlem storage ve izinlerini gerektirir setsas .
az storage account generate-sas --expiry 2020-01-01 --permissions rw --resource-types sco --services bfqt --https-only --account-name <YourStorageAccountName> --account-key 00000000
İşlem başarıyla çalıştıktan sonra çıktıyı kopyalayın.
"se=2020-01-01&sp=***"
Bu çıktı, --template-uri sonraki adımda parametreye geçirilecek olacaktır.
Paylaşılan erişim imzası tanımı oluştur
Paylaşılan erişim imza tanımı oluşturmak için Azure CLı az keykasa Storage SAS-Definition Create komutunu kullanın ve önceki adımdan gelen çıktıyı --template-uri parametreye geçirerek parametresi. Parametresi için tercih ettiğiniz adı sağlayabilirsiniz -n .
az keyvault storage sas-definition create --vault-name <YourKeyVaultName> --account-name <YourStorageAccountName> -n <YourSASDefinitionName> --validity-period P2D --sas-type account --template-uri <OutputOfSasTokenCreationStep>
Paylaşılan erişim imzası tanımını doğrulama
Paylaşılan erişim imzası tanımının Azure CLı az keykasası Storage SAS-Definition Show komutunu kullanarak anahtar kasasında depolandığını doğrulayabilirsiniz.
Artık bu gizli dizi içeriğini görüntülemek için az keykasası Storage SAS-Definition Show komutunu ve id özelliğini kullanabilirsiniz.
az keyvault storage sas-definition show --id https://<YourKeyVaultName>.vault.azure.net/storage/<YourStorageAccountName>/sas/<YourSASDefinitionName>
Sonraki adımlar
- Anahtarlar, gizli diziler ve sertifikalarhakkında daha fazla bilgi edinin.
- Azure Key Vault ekip bloguna bakın.
- az keyvault storage reference belgelerine bakın.