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 konfigurasi akun penyimpanan, serta data. 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 konfigurasi akun penyimpanan dan datanya. 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 langganan 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&amp;sr=b&amp;si=tutorial-policy-635959936145100803&amp;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&amp;sig=iCvQmdZngZNW%2F4vw43j6%2BVz6fndHF5LI639QJba4r8o%3D&amp;spr=https&amp;st=2016-04-12T03%3A24%3A31Z&amp;se=2016-04-13T03%3A29%3A31Z&amp;srt=s&amp;ss=bf&amp;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:

Langkah berikutnya