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.
Melindungi kunci akses Anda
Kunci akses akun penyimpanan Anda mirip dengan kata sandi root untuk akun penyimpanan Anda. Selalu berhati-hatilah untuk melindungi kunci akses Anda. Gunakan Azure Key Vault untuk mengelola dan memutar kunci Anda dengan aman. Hindari mendistribusikan kunci akses ke pengguna lain, melakukan hard-coding, atau menyimpannya di mana saja dalam teks biasa yang dapat diakses orang lain. Putar kunci jika Anda yakin mereka mungkin telah disusupi.
Catatan
Microsoft merekomendasikan penggunaan Azure Active Directory (Azure AD) untuk mengotorisasi permintaan terhadap data blob dan antrian jika memungkinkan, daripada menggunakan kunci akun (otorisasi Kunci Bersama). Otorisasi menggunakan Azure AD menyediakan keamanan unggul dan kemudahan penggunaan melalui otorisasi Kunci Bersama.
Untuk melindungi akun Azure Storage dengan kebijakan Akses Bersyarat Azure AD, Anda harus melarang otorisasi Kunci Bersama untuk akun penyimpanan. Untuk informasi selengkapnya tentang cara melarang akses Kunci Bersama, lihat Mencegah otorisasi Kunci Bersama untuk akun Azure Storage.
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 string koneksi Anda:
- Anda dapat menyimpan string koneksi Anda dalam variabel lingkungan.
- Aplikasi yang berjalan di desktop atau di perangkat dapat menyimpan string koneksi di file app.config atau web.config. Tambahkan string koneksi ke bagian AppSettings di file-file ini.
- Aplikasi yang berjalan di layanan awan Azure dapat menyimpan string koneksi dalam file skema konfigurasi layanan Azure (.cscfg). Tambahkan string koneksi ke bagian ConfigurationSettings dari file konfigurasi layanan.
Menyimpan string koneksi Anda dalam file konfigurasi memudahkan pembaruan string koneksi untuk beralih antara emulator penyimpanan Azurite dan akun penyimpanan Azure di awan. Anda hanya perlu mengedit string koneksi agar menunjuk ke lingkungan target Anda.
Anda dapat menggunakan Microsoft Azure Configuration Manager untuk mengakses string koneksi saat runtime terlepas dari di mana aplikasi Anda berjalan.
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 PENGATURAN>Kunci akses di bilah menu akun penyimpanan Anda untuk melihat string koneksi kunci akses utama 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 inilah contoh string koneksi yang sama dengan pengodean karakter khusus:
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 berbeda, seperti Azure China 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 ini contoh string koneksi untuk layanan penyimpanan di Azure China 21Vianet:
DefaultEndpointsProtocol=https;
AccountName=storagesample;
AccountKey=<account-key>;
EndpointSuffix=core.chinacloudapi.cn;
Menguraikan string koneksi
Pustaka Manajer Konfigurasi Microsoft Azure untuk .NET menyediakan kelas untuk mengurai string koneksi dari file konfigurasi. Kelas CloudConfigurationManager mengurai pengaturan konfigurasi. Kelas tersebut mengurai pengaturan untuk aplikasi klien yang berjalan di desktop, di perangkat seluler, di komputer virtual Azure, atau di layanan cloud Azure.
Untuk mereferensikan paket CloudConfigurationManager, tambahkan arahan using berikut:
using Microsoft.Azure; //Namespace for CloudConfigurationManager
using Microsoft.Azure.Storage;
Berikut adalah contoh yang menunjukkan cara mengambil string koneksi dari file konfigurasi:
// Parse the connection string and return a reference to the storage account.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
CloudConfigurationManager.GetSetting("StorageConnectionString"));
Penggunaan Azure Configuration Manager bersifat opsional. Anda juga dapat menggunakan API seperti Kelas ConfigurationManager.NET Framework.