Mengelola kunci akun penyimpanan dengan Azure Key Vault dan antarmuka tingkat panggilan Azure (legacy)

Penting

Kunci Akun Penyimpanan Terkelola Key Vault (lama) didukung apa adanya tanpa pembaruan lain yang direncanakan. Hanya SAS Akun yang didukung dengan definisi SAS yang ditandatangani versi layanan penyimpanan selambat-lambatnya 28-03-2018.

Penting

Dukungan untuk Kunci Akun Penyimpanan Terkelola di Azure CLI dihapus dalam versi 2.54, Anda harus menggunakan Azure CLI versi 2.53.1 atau sebelumnya untuk perintah dalam tutorial ini.

Penting

Sebaiknya gunakan integrasi Azure Storage dengan ID Microsoft Entra, layanan manajemen identitas dan akses berbasis cloud Microsoft. Integrasi Microsoft Entra tersedia untuk blob, antrean, dan tabel Azure, dan menyediakan akses berbasis token OAuth2 ke Azure Storage (sama seperti Azure Key Vault). MICROSOFT Entra ID memungkinkan Anda mengautentikasi aplikasi klien dengan menggunakan aplikasi atau identitas pengguna, alih-alih kredensial akun penyimpanan. Anda dapat menggunakan identitas terkelola Microsoft Entra saat menjalankan di Azure. Identitas terkelola menghapus kebutuhan akan autentikasi klien dan menyimpan kredensial di dalam atau dengan aplikasi Anda. Gunakan solusi di bawah ini hanya ketika autentikasi Microsoft Entra tidak dimungkinkan.

Akun penyimpanan Azure menggunakan kredensial yang terdiri atas nama akun dan kunci. Kuncinya dibuat secara otomatis dan berfungsi sebagai kata sandi, bukan sebagai kunci kriptografi. Key Vault mengelola kunci akun penyimpanan dengan meregenerasinya secara berkala di akun penyimpanan dan menyediakan token tanda tangan akses bersama untuk akses yang didelegasikan ke sumber daya di akun penyimpanan Anda.

Anda dapat menggunakan fitur kunci akun penyimpanan terkelola Key Vault untuk mencantumkan (menyinkronkan) kunci dengan akun penyimpanan Azure, dan meregenerasi (memutar) kunci secara berkala. Anda dapat mengelola kunci untuk akun penyimpanan dan akun penyimpanan Klasik.

Saat Anda menggunakan fitur kunci akun penyimpanan terkelola, pertimbangkan poin berikut:

  • Nilai kunci tidak pernah dikembalikan dalam menanggapi penelepon.
  • Hanya Key Vault yang harus mengelola kunci akun penyimpanan Anda. Jangan mengelola sendiri kunci dan hindari mengganggu proses Key Vault.
  • Hanya satu objek Key Vault yang harus mengelola kunci akun penyimpanan. Jangan mengizinkan pengelolaan kunci dari beberapa objek.
  • Regenerasi kunci dengan hanya menggunakan Key Vault. Jangan meregenerasi kunci akun penyimpanan Anda secara manual.

Penting

Regenerasi kunci langsung di akun penyimpanan merusak pengaturan akun penyimpanan terkelola dan dapat membatalkan token SAS yang digunakan serta menyebabkan pemadaman.

ID aplikasi perwakilan layanan

Penyewa Microsoft Entra menyediakan setiap aplikasi terdaftar dengan perwakilan layanan. Perwakilan layanan berfungsi sebagai ID Aplikasi, yang digunakan selama pengaturan otorisasi untuk akses ke sumber daya Azure lainnya melalui kontrol akses berbasis peran Azure (Azure RBAC).

Key Vault adalah aplikasi Microsoft yang telah terdaftar sebelumnya di semua penyewa Microsoft Entra. Key Vault terdaftar di bawah ID Aplikasi yang sama di setiap cloud Azure.

Penyewa Cloud ID aplikasi
Microsoft Entra ID Azure Government 7e7c393b-45d0-48b1-a35e-2905ddf8183c
Microsoft Entra ID Azure publik cfa8b339-82a2-471a-a3c9-0fc0be7a4093
Lainnya Mana pun cfa8b339-82a2-471a-a3c9-0fc0be7a4093

Prasyarat

Untuk menyelesaikan panduan ini, Anda harus terlebih dahulu melakukan langkah-langkah berikut:

Mengelola kunci akun penyimpanan.

Menyambungkan ke akun Azure Anda

Autentikasi sesi antarmuka tingkat panggilan Azure Anda menggunakan perintah masuk az.

az login

Memberikan akses Key Vault ke akun penyimpanan Anda

Gunakan perintah pembuatan tugas peran az antarmuka tingkat panggilan Azure untuk memberi Key Vault akses akun penyimpanan Anda. Berikan perintah nilai parameter berikut:

  • --role: Berikan peran Azure "Peran Layanan Operator Kunci Akun Penyimpanan". Peran ini membatasi cakupan akses ke akun penyimpanan Anda. Untuk akun penyimpanan klasik, berikan "Peran Layanan Operator Kunci Akun Penyimpanan Klasik" sebagai gantinya.
  • --assignee: Berikan nilai "https://vault.azure.net", yang merupakan url untuk Key Vault di cloud publik Azure. (Untuk penggunaan cloud Microsoft Azure Goverment '--asignee-object-id' sebagai gantinya, lihat ID aplikasi perwakilan layanan.)
  • --scope: Berikan ID sumber daya akun penyimpanan Anda, yang ada dalam formulir /subscriptions/<subscriptionID>/resourceGroups/<StorageAccountResourceGroupName>/providers/Microsoft.Storage/storageAccounts/<YourStorageAccountName> . Temukan ID langganan Anda, dengan menggunakan perintah daftar akun az Azure CLI. Temukan nama akun penyimpanan dan grup sumber daya akun penyimpanan Anda, dengan menggunakan perintah daftar akun penyimpanan az Azure CLI.
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>"

Menberikan izin akun pengguna Anda ke akun penyimpanan terkelola

Gunakan cmdlet kebijakan-set-keyvault az antarmuka tingkat panggilan Azure untuk memperbarui kebijakan akses Key Vault dan memberikan izin akun penyimpanan ke akun pengguna Anda.

# 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

Izin untuk akun penyimpanan tidak tersedia di halaman "Kebijakan akses" akun penyimpanan di portal Azure.

Membuat akun penyimpanan Terkelola Key Vault

Buat akun penyimpanan terkelola Key Vault menggunakan perintah penyimpanan keyvault az antarmuka tingkat panggilan Azure. Atur periode regenerasi 30 hari. Saat waktunya untuk memutar, KeyVault meregenerasi kunci yang tidak aktif, lalu mengatur kunci yang baru dibuat sebagai aktif. Hanya salah satu kunci yang digunakan untuk mengeluarkan token SAS kapan saja, ini adalah kunci aktif. Berikan perintah nilai parameter berikut:

  • --vault-name: Berikan nama brankas kunci Anda. Untuk menemukan nama brankas kunci Anda, gunakan perintah daftar keyvault az antarmuka tingkat panggilan Azure.
  • -n: Berikan nama akun penyimpanan Anda. Untuk menemukan nama akun penyimpanan Anda, gunakan perintah daftar akun penyimpanan az antarmuka tingkat panggilan Azure.
  • --resource-id: Berikan ID sumber daya akun penyimpanan Anda, yang ada dalam formulir /subscriptions/<subscriptionID>/resourceGroups/<StorageAccountResourceGroupName>/providers/Microsoft.Storage/storageAccounts/<YourStorageAccountName> . Temukan ID langganan Anda, dengan menggunakan perintah daftar akun az Azure CLI. Temukan nama akun penyimpanan dan grup sumber daya akun penyimpanan Anda, dengan menggunakan perintah daftar akun penyimpanan az Azure CLI.
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>"

Token tanda tangan akses bersama

Anda juga dapat meminta Key Vault untuk menghasilkan token tanda tangan akses bersama. Tanda tangan akses bersama menyediakan akses yang didelegasikan ke sumber daya di akun penyimpanan Anda. Anda dapat memberi klien akses ke sumber daya di akun penyimpanan Anda tanpa membagikan kunci akun Anda. Tanda tangan akses bersama memberi Anda cara yang aman untuk berbagi sumber daya penyimpanan tanpa mengorbankan kunci akun Anda.

Perintah di bagian ini menyelesaikan tindakan berikut:

  • Mengatur definisi tanda tangan akses bersama akun <YourSASDefinitionName>. Definisi diatur pada akun penyimpanan terkelola Key Vault <YourStorageAccountName> di brankas kunci Anda <YourKeyVaultName>.
  • Atur definisi tanda tangan akses bersama penyimpanan terkelola Key Vault di brankas. Definisi memiliki URI templat token tanda tangan akses bersama yang dibuat. Definisi memiliki jenis tanda tangan akses bersama account dan berlaku selama N hari.
  • Verifikasi bahwa tanda tangan akses bersama disimpan di brankas kunci Anda sebagai rahasia.

Tetapkan templat definisi tanda tangan akses bersama

Key Vault menggunakan templat definisi SAS untuk menghasilkan token bagi aplikasi klien.

Contoh templat definisi SAS:

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

Templat definisi SAS akan diteruskan ke parameter --template-uri pada langkah berikutnya.

Parameter SAS akun yang diperlukan dalam templat definisi SAS untuk Key Vault

Parameter Kueri SAS Deskripsi
SignedVersion (sv) Harus diisi. Menentukan versi layanan penyimpanan yang ditandatangani untuk digunakan untuk mengotorisasi permintaan yang dibuat dengan SAS akun ini. Harus diatur ke versi 05-04-2015 atau yang lebih baru. Key Vault mendukung versi yang tidak lebih baru dari 28-03-2018
SignedServices (ss) Harus diisi. Menentukan layanan yang ditandatangani dapat diakses dengan SAS akun. Nilai yang mungkin termasuk:

- Blob (b)
- Antrean (q)
- Tabel (t)
- File (f)

Anda dapat menggabungkan nilai untuk menyediakan akses ke lebih dari satu layanan. Misalnya, ss=bf menentukan akses ke titik akhir Blob dan File.
SignedResourceTypes (srt) Harus diisi. Menentukan jenis sumber daya ditandatangani yang dapat diakses dengan SAS akun.

- Layanan (s): Akses ke API tingkat layanan (misalnya, Dapatkan/Atur Properti Layanan, Dapatkan Statistik Layanan, Buat Daftar Kontainer/Antrean/Tabel/Berbagi)
- Kontainer (c): Akses ke API tingkat kontainer (misalnya, Buat/Hapus Kontainer, Buat/Hapus Antrean, Buat/Hapus Tabel, Buat/Hapus Berbagi, Buat Daftar Blob/File dan Direktori)
- Objek (o): Akses ke API tingkat objek untuk blob, pesan antrean, entitas tabel, dan file (misalnya, Letakkan Blob, Entitas Kueri, Dapatkan Pesan, Buat File, dll.)

Anda dapat menggabungkan nilai untuk menyediakan akses ke lebih dari satu jenis sumber daya. Misalnya, srt=sc menentukan akses ke sumber daya layanan dan kontainer.
SignedPermission (sp) Harus diisi. Menentukan izin yang ditandatangani untuk SAS akun. Izin hanya valid jika cocok dengan jenis sumber daya ditandatangani yang ditentukan; jika tidak, izin diabaikan.

- Baca (r): Berlaku untuk semua jenis sumber daya yang ditandatangani (Layanan, Kontainer, dan Objek). Mengizinkan izin baca ke jenis sumber daya yang ditentukan.
- Tulis (w): Berlaku untuk semua jenis sumber daya yang ditandatangani (Layanan, Kontainer, dan Objek). Mengizinkan izin tulis ke jenis sumber daya yang ditentukan.
- Hapus (d): Berlaku untuk jenis sumber daya Kontainer dan Objek, kecuali untuk pesan antrean.
- Hapus Permanen (y): Berlaku untuk jenis sumber daya Objek blob saja.
- Daftar (l): Berlaku untuk jenis sumber daya Layanan dan Kontainer saja.
- Tambah (a): Berlaku untuk jenis sumber daya Objek berikut saja: pesan antrean, entitas tabel, dan blob penambahan.
- Buat (c): Berlaku untuk jenis sumber daya Objek berikut saja: blob dan file. Pengguna dapat membuat blob atau file baru, tetapi mungkin tidak menimpa blob atau file yang ada.
- Perbarui (u): Berlaku untuk jenis sumber daya Objek berikut saja: pesan antrean dan entitas tabel.
- Proses (p): Berlaku untuk jenis sumber daya Objek berikut saja: pesan antrean.
- Tag (t): Berlaku untuk jenis sumber daya Objek berikut saja: blob. Mengizinkan operasi tag blob.
- Filter (f): Berlaku untuk jenis sumber daya Objek berikut saja: blob. Mengizinkan pemfilteran menurut tag blob.
- Atur Azure Policy Imutabilitas (i): Berlaku untuk jenis sumber daya Objek berikut saja: blob. Mengizinkan kebijakan imutabilitas set/hapus dan penahanan legal pada blob.
SignedProtocol (spr) Opsional. Menetapkan protokol yang diizinkan untuk permintaan yang dibuat dengan SAS akun. Nilai yang mungkin adalah HTTPS dan HTTP (https,http) atau HTTPS saja (https). Nilai defaultnya adalah https,http.

HTTP saja bukan nilai yang diizinkan.

Untuk mengetahui informasi lebih lanjut tentang SAS akun, lihat Membuat SAS akun.

Catatan

Key Vault mengabaikan parameter seumur hidup seperti 'Signed Expiry', 'Signed Start' dan parameter yang diperkenalkan setelah versi 28-03-2018

Mengatur definisi tanda tangan akses bersama dalam Key Vault

Gunakan perintah pembuatan definisi-sas penyimpanan keyvault az antarmuka tingkat panggilan Azure, berikan templat definisi SAS dari langkah sebelumnya ke parameter --template-uri, untuk membuat definisi tanda tangan akses bersama. Anda dapat memberikan nama pilihan Anda ke parameter -n.

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

Memverifikasi definisi tanda tangan akses bersama

Anda dapat memverifikasi bahwa definisi tanda tangan akses bersama telah disimpan di brankas kunci Anda menggunakan perintah tampilkan definisi-sas penyimpanan keyvault az antarmuka tingkat panggilan Azure.

Anda sekarang dapat menggunakan perintah tampilkan definisi-sas penyimpanan keyvault az dan id properti untuk melihat konten rahasia itu.

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

Langkah berikutnya