Konfigurasikan string koneksi Azure Storage
String koneksi menyertakan informasi otorisasi yang diperlukan aplikasi Anda untuk mengakses data di akun Azure Storage pada runtime menggunakan otorisasi Kunci Bersama. Anda dapat mengonfigurasi string koneksi untuk:
- Menyambungkan ke emulator penyimpanan Azurite.
- Mengakses akun penyimpanan di Azure.
- Mengakses sumber daya tertentu di Azure melalui tanda tangan akses bersama (SAS).
Untuk mempelajari cara melihat kunci akses akun Anda dan menyalin string koneksi, lihat Mengelola kunci akses akun penyimpanan.
Penting
Untuk keamanan yang optimal, Microsoft merekomendasikan penggunaan ID Microsoft Entra dengan identitas terkelola untuk mengotorisasi permintaan terhadap data blob, antrean, dan tabel, jika memungkinkan. Otorisasi dengan ID Microsoft Entra dan identitas terkelola memberikan keamanan yang unggul dan kemudahan penggunaan melalui otorisasi Kunci Bersama. Untuk mempelajari selengkapnya tentang identitas terkelola, lihat Apa itu identitas terkelola untuk sumber daya Azure. Untuk contoh cara mengaktifkan dan menggunakan identitas terkelola untuk aplikasi .NET, lihat Mengautentikasi aplikasi yang dihosting Azure ke sumber daya Azure dengan .NET.
Untuk sumber daya yang dihosting di luar Azure, seperti aplikasi lokal, Anda dapat menggunakan identitas terkelola melalui Azure Arc. Misalnya, aplikasi yang berjalan di server dengan dukungan Azure Arc dapat menggunakan identitas terkelola untuk menyambungkan ke layanan Azure. Untuk mempelajari selengkapnya, lihat Mengautentikasi terhadap sumber daya Azure dengan server dengan dukungan Azure Arc.
Untuk skenario di mana tanda tangan akses bersama (SAS) digunakan, Microsoft merekomendasikan penggunaan SAS delegasi pengguna. SAS delegasi pengguna diamankan dengan kredensial Microsoft Entra alih-alih kunci akun. Untuk mempelajari tentang tanda tangan akses bersama, lihat Memberikan akses terbatas ke data dengan tanda tangan akses bersama. Untuk contoh cara membuat dan menggunakan SAS delegasi pengguna dengan .NET, lihat Membuat SAS delegasi pengguna untuk blob dengan .NET.
Melindungi kunci akses Anda
Kunci akses akun penyimpanan menyediakan akses penuh ke data akun penyimpanan dan kemampuan untuk menghasilkan token SAS. Selalu berhati-hatilah untuk melindungi kunci akses Anda. Gunakan Azure Key Vault untuk mengelola dan memutar kunci Anda dengan aman. Akses ke kunci bersama memberi pengguna akses penuh ke data akun penyimpanan. Akses ke kunci bersama harus dibatasi dan dipantau dengan hati-hati. Gunakan token SAS delegasi pengguna dengan cakupan akses terbatas dalam skenario di mana otorisasi berbasis ID Microsoft Entra tidak dapat digunakan. Hindari kunci akses hard-coding atau simpan di mana saja dalam teks biasa yang dapat diakses oleh orang lain. Putar kunci Anda jika Anda yakin kunci tersebut mungkin telah disusupi.
Penting
Untuk mencegah pengguna mengakses data di akun penyimpanan Anda dengan Kunci Bersama, Anda dapat melarang otorisasi Kunci Bersama untuk akun penyimpanan. Akses terperinci ke data dengan hak istimewa paling sedikit diperlukan disarankan sebagai praktik terbaik keamanan. Otorisasi berbasis ID Microsoft Entra menggunakan identitas terkelola harus digunakan untuk skenario yang mendukung OAuth. Kerberos atau SMTP harus digunakan untuk Azure Files melalui SMB. Untuk Azure Files melalui REST, token SAS dapat digunakan. Akses kunci bersama harus dinonaktifkan jika tidak diperlukan untuk mencegah penggunaannya yang tidak disengaja. Untuk informasi selengkapnya, lihat Mencegah otorisasi Kunci Bersama untuk akun Azure Storage.
Untuk melindungi akun Azure Storage dengan kebijakan Akses Bersyarat Microsoft Entra, Anda harus melarang otorisasi Kunci Bersama untuk akun penyimpanan.
Jika Anda telah menonaktifkan akses kunci bersama dan Anda melihat otorisasi Kunci Bersama yang dilaporkan dalam log diagnostik, ini menunjukkan bahwa akses tepercaya sedang digunakan untuk mengakses penyimpanan. Untuk detail selengkapnya, lihat Akses tepercaya untuk sumber daya yang terdaftar di penyewa Microsoft Entra Anda.
Menyimpan string koneksi
Aplikasi Anda perlu mengakses string koneksi pada runtime untuk mengotorisasi permintaan yang dibuat ke Azure Storage. Anda memiliki beberapa opsi untuk menyimpan kunci akses akun atau string koneksi:
- Anda dapat menyimpan kunci akun dengan aman di Azure Key Vault. Untuk informasi selengkapnya, lihat Tentang kunci akun penyimpanan terkelola Azure Key Vault.
- Anda dapat menyimpan string koneksi Anda dalam variabel lingkungan.
- Aplikasi dapat menyimpan string koneksi dalam file app.config atau web.config. Tambahkan string koneksi ke bagian AppSettings di file-file ini.
Peringatan
Menyimpan kunci akses akun Anda atau string koneksi dalam teks yang jelas memberikan risiko keamanan dan tidak disarankan. Simpan kunci akun Anda dalam format terenkripsi, atau migrasikan aplikasi Anda untuk menggunakan otorisasi Microsoft Entra untuk akses ke akun penyimpanan Anda.
Konfigurasikan string koneksi untuk Azurite
Emulator mendukung satu akun tetap dan kunci autentikasi terkenal untuk autentikasi Shared Key. Akun dan kunci ini adalah satu-satunya informasi masuk Shared Key yang diizinkan untuk digunakan dengan emulator. Yaitu:
Account name: devstoreaccount1
Account key: Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==
Catatan
Kunci autentikasi yang didukung oleh emulator hanya ditujukan untuk menguji fungsionalitas kode autentikasi klien Anda. Ini tidak melayani tujuan keamanan apapun. Anda tidak dapat menggunakan akun penyimpanan produksi dan kunci dengan emulator. Anda tidak boleh menggunakan akun pengembangan dengan data produksi.
Emulator hanya mendukung koneksi melalui HTTP. Namun, HTTPS adalah protokol yang direkomendasikan untuk mengakses sumber daya dalam akun penyimpanan Azure produksi.
Hubungkan ke akun emulator menggunakan pintasan
Cara termudah terhubung ke emulator dari aplikasi Anda adalah dengan mengonfigurasikan string koneksi di file konfigurasi aplikasi Anda yang mereferensikan pintasan UseDevelopmentStorage=true
. Pintasan ini setara dengan string koneksi penuh untuk emulator, yang menentukan nama akun, kunci akun, dan endpoint emulator untuk setiap layanan Penyimpanan Azure:
DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;
AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;
BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;
QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;
TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;
Cuplikan kode .NET berikut menunjukkan bagaimana Anda dapat menggunakan pintasan dari metode yang mengambil string koneksi. Misalnya, konstruktor BlobContainerClient(String, String) mengambil string koneksi.
BlobContainerClient blobContainerClient = new BlobContainerClient("UseDevelopmentStorage=true", "sample-container");
blobContainerClient.CreateIfNotExists();
Pastikan emulator berjalan sebelum memanggil kode di cuplikan.
Untuk informasi selengkapnya, lihat Gunakan emulator Azurite untuk pengembangan Azure Storage lokal.
Konfigurasikan string koneksi untuk akun penyimpanan Azure
Demi membuat string koneksi untuk akun penyimpanan Azure Anda, gunakan format berikut. Tunjukkan apakah Anda ingin terhubung ke akun penyimpanan melalui HTTPS (disarankan) atau HTTP, ganti myAccountName
dengan nama akun penyimpanan Anda, dan ganti myAccountKey
dengan kunci akses akun Anda:
DefaultEndpointsProtocol=[http|https];AccountName=myAccountName;AccountKey=myAccountKey
Misalnya, string koneksi Anda mungkin terlihat mirip dengan:
DefaultEndpointsProtocol=https;AccountName=storagesample;AccountKey=<account-key>
Meski Azure Storage mendukung HTTP dan HTTPS dalam string koneksi, HTTPS sangat disarankan.
Tip
Anda dapat menemukan string koneksi akun penyimpanan Anda di portal Azure. Buka Kunci Akses Keamanan + jaringan>di pengaturan akun penyimpanan Anda untuk melihat string koneksi untuk kunci akses primer dan sekunder.
Buat string koneksi dengan tanda tangan akses bersama
Jika Anda memiliki URL tanda tangan akses bersama (SAS) yang memberi Anda akses ke sumber daya di akun penyimpanan, Anda dapat menggunakan SAS dalam string koneksi. Karena SAS berisi informasi yang diperlukan untuk mengautentikasi permintaan, string koneksi dengan SAS menyediakan protokol, titik akhir layanan, dan info masuk yang diperlukan untuk mengakses sumber daya.
Untuk membuat string koneksi yang menyertakan tanda tangan akses bersama, tentukan string dalam format berikut:
BlobEndpoint=myBlobEndpoint;
QueueEndpoint=myQueueEndpoint;
TableEndpoint=myTableEndpoint;
FileEndpoint=myFileEndpoint;
SharedAccessSignature=sasToken
Setiap titik akhir layanan bersifat opsional, meskipun string koneksi harus berisi setidaknya satu titik akhir.
Catatan
Menggunakan HTTPS dengan SAS direkomendasikan sebagai praktik terbaik.
Jika Anda menentukan SAS dalam string koneksi pada file konfigurasi, Anda mungkin perlu mengodekan karakter khusus di URL.
Contoh SAS layanan
Berikut adalah contoh string koneksi yang menyertakan SAS layanan untuk penyimpanan Blob:
BlobEndpoint=https://storagesample.blob.core.windows.net;
SharedAccessSignature=sv=2015-04-05&sr=b&si=tutorial-policy-635959936145100803&sig=9aCzs76n0E7y5BpEi2GvsSv433BZa22leDOZXX%2BXXIU%3D
Dan berikut adalah contoh string koneksi yang sama dengan pengodean URL:
BlobEndpoint=https://storagesample.blob.core.windows.net;
SharedAccessSignature=sv=2015-04-05&sr=b&si=tutorial-policy-635959936145100803&sig=9aCzs76n0E7y5BpEi2GvsSv433BZa22leDOZXX%2BXXIU%3D
Contoh SAS akun
Berikut adalah contoh string koneksi yang menyertakan SAS akun untuk penyimpanan Blob dan File. Perhatikan bahwa titik akhir untuk kedua layanan ditentukan:
BlobEndpoint=https://storagesample.blob.core.windows.net;
FileEndpoint=https://storagesample.file.core.windows.net;
SharedAccessSignature=sv=2015-07-08&sig=iCvQmdZngZNW%2F4vw43j6%2BVz6fndHF5LI639QJba4r8o%3D&spr=https&st=2016-04-12T03%3A24%3A31Z&se=2016-04-13T03%3A29%3A31Z&srt=s&ss=bf&sp=rwl
Dan berikut adalah contoh string koneksi yang sama dengan pengodean URL:
BlobEndpoint=https://storagesample.blob.core.windows.net;
FileEndpoint=https://storagesample.file.core.windows.net;
SharedAccessSignature=sv=2015-07-08&sig=iCvQmdZngZNW%2F4vw43j6%2BVz6fndHF5LI639QJba4r8o%3D&spr=https&st=2016-04-12T03%3A24%3A31Z&se=2016-04-13T03%3A29%3A31Z&srt=s&ss=bf&sp=rwl
Buat string koneksi untuk titik akhir penyimpanan eksplisit
Anda dapat menentukan titik akhir layanan eksplisit dalam string koneksi Anda alih-alih menggunakan titik akhir default. Untuk membuat string koneksi yang menentukan titik akhir eksplisit, tentukan titik akhir layanan lengkap untuk setiap layanan, termasuk spesifikasi protokol (HTTPS (disarankan) atau HTTP), dalam format berikut:
DefaultEndpointsProtocol=[http|https];
BlobEndpoint=myBlobEndpoint;
FileEndpoint=myFileEndpoint;
QueueEndpoint=myQueueEndpoint;
TableEndpoint=myTableEndpoint;
AccountName=myAccountName;
AccountKey=myAccountKey
Salah satu skenario ketika Anda mungkin ingin menentukan titik akhir eksplisit adalah saat Anda telah memetakan titik akhir penyimpanan Blob Anda ke domain kustom. Dalam hal ini, Anda dapat menentukan titik akhir kustom untuk penyimpanan Blob dalam string koneksi Anda. Anda dapat secara opsional menentukan titik akhir default untuk layanan lain jika aplikasi Anda menggunakannya.
Berikut adalah contoh string koneksi yang menentukan titik akhir eksplisit untuk layanan Blob:
# Blob endpoint only
DefaultEndpointsProtocol=https;
BlobEndpoint=http://www.mydomain.com;
AccountName=storagesample;
AccountKey=<account-key>
Contoh ini menentukan titik akhir eksplisit untuk semua layanan, termasuk domain kustom untuk layanan Blob:
# All service endpoints
DefaultEndpointsProtocol=https;
BlobEndpoint=http://www.mydomain.com;
FileEndpoint=https://myaccount.file.core.windows.net;
QueueEndpoint=https://myaccount.queue.core.windows.net;
TableEndpoint=https://myaccount.table.core.windows.net;
AccountName=storagesample;
AccountKey=<account-key>
Nilai titik akhir dalam string koneksi digunakan untuk membuat URI permintaan ke layanan penyimpanan, dan menentukan bentuk URI apa pun yang dikembalikan ke kode Anda.
Jika Anda telah memetakan titik akhir penyimpanan ke domain kustom dan menghilangkan titik akhir itu dari string koneksi, maka Anda tidak akan dapat menggunakan string koneksi tersebut untuk mengakses data dalam layanan tersebut dari kode Anda.
Untuk informasi selengkapnya tentang mengonfigurasi domain kustom untuk Azure Storage, lihat Memetakan domain kustom ke titik akhir Azure Blob Storage.
Penting
Nilai titik akhir layanan dalam string koneksi Anda haruslah URI yang terbentuk dengan baik, termasuk https://
(disarankan) atau http://
.
Buat string koneksi dengan akhiran titik akhir
Untuk membuat string koneksi untuk layanan penyimpanan di wilayah atau instans dengan akhiran titik akhir yang berbeda, seperti untuk Microsoft Azure yang dioperasikan oleh 21Vianet atau Azure Government, gunakan format string koneksi berikut. Tunjukkan apakah Anda ingin terhubung ke akun penyimpanan melalui HTTPS (disarankan) atau HTTP, ganti myAccountName
dengan nama akun penyimpanan Anda, ganti myAccountKey
dengan kunci akses akun Anda, dan ganti mySuffix
dengan akhiran URI:
DefaultEndpointsProtocol=[http|https];
AccountName=myAccountName;
AccountKey=myAccountKey;
EndpointSuffix=mySuffix;
Berikut adalah contoh string koneksi untuk layanan penyimpanan di Azure yang dioperasikan oleh 21Vianet:
DefaultEndpointsProtocol=https;
AccountName=storagesample;
AccountKey=<account-key>;
EndpointSuffix=core.chinacloudapi.cn;
Mengotorisasi akses dengan Kunci Bersama
Untuk mempelajari cara mengotorisasi akses ke Azure Storage dengan kunci akun atau dengan string koneksi, lihat salah satu artikel berikut ini:
- Otorisasi akses dan sambungkan ke Blob Storage dengan .NET
- Mengotorisasi akses dan menyambungkan ke Blob Storage dengan Java
- Mengotorisasi akses dan menyambungkan ke Blob Storage dengan JavaScript
- Mengotorisasi akses dan menyambungkan ke Blob Storage dengan Python