Memilih cara mengotorisasi akses ke data blob dengan Azure CLI

Azure Storage memberikan ekstensi untuk Azure CLI yang memungkinkan Anda menentukan bagaimana Anda ingin mengotorisasi operasi pada data blob. Anda dapat mengotorisasi operasi data dengan cara berikut:

  • Dengan perwakilan keamanan Microsoft Entra. Microsoft merekomendasikan penggunaan kredensial Microsoft Entra untuk keamanan yang unggul dan kemudahan penggunaan.
  • Dengan kunci akses akun atau token tanda tangan akses bersama (SAS).

Menentukan bagaimana operasi data diotorisasi

Perintah CLI Azure untuk membaca dan menulis data blob menyertakan parameter --auth-mode opsional. Tentukan parameter ini untuk menunjukkan bagaimana operasi data akan diotorisasi:

  • Atur --auth-mode parameter ke login untuk masuk menggunakan perwakilan keamanan Microsoft Entra (disarankan).
  • Atur parameter --auth-mode ke nilai key warisan untuk mencoba mengambil kunci akses akun yang akan digunakan untuk otorisasi. Jika Anda menghilangkan parameter --auth-mode, maka Azure CLI juga mencoba untuk mengambil kunci akses.

Untuk menggunakan parameter --auth-mode, pastikan Anda telah menginstal Azure CLI versi 2.0.46 atau yang lebih baru. Jalankan az --version untuk memeriksa versi yang terinstal.

Catatan

Saat akun penyimpanan dikunci dengan kunci Baca Saja Azure Resource Manager, operasi Daftar Kunci tidak diizinkan untuk akun penyimpanan tersebut. Daftar Kunci adalah operasi POST, dan semua operasi POST dicegah ketika kunci Baca Saja dikonfigurasi untuk akun tersebut. Untuk alasan ini, ketika akun dikunci dengan kunci ReadOnly , pengguna yang belum memiliki kunci akun harus menggunakan kredensial Microsoft Entra untuk mengakses data blob.

Penting

Jika Anda menghilangkan parameter --auth-mode atau mengaturnya ke key, maka Azure CLI mencoba menggunakan kunci akses akun untuk otorisasi. Dalam hal ini, Microsoft merekomendasikan agar Anda memberikan kunci akses baik pada perintah atau dalam variabel lingkungan AZURE_STORAGE_KEY. Untuk informasi selengkapnya tentang variabel lingkungan, lihat bagian berjudul Tetapkan variabel lingkungan untuk parameter otorisasi.

Jika Anda tidak memberikan kunci akses, maka Azure CLI mencoba memanggil penyedia sumber daya Azure Storage untuk mengambilnya untuk setiap operasi. Melakukan banyak operasi data yang memerlukan panggilan ke penyedia sumber daya dapat mengakibatkan pembatasan. Untuk informasi selengkapnya tentang batas penyedia sumber daya, lihat Skalabilitas dan target performa untuk penyedia sumber daya Azure Storage.

Otorisasi dengan kredensial Microsoft Entra

Saat Anda masuk ke Azure CLI dengan kredensial Microsoft Entra, token akses OAuth 2.0 dikembalikan. Token tersebut secara otomatis digunakan oleh Azure CLI untuk mengotorisasi operasi data berikutnya terhadap penyimpanan Blob atau Antrean. Untuk operasi yang didukung, Anda tidak perlu lagi memberikan kunci akun atau token SAS dengan perintah.

Anda dapat menetapkan izin ke data blob ke prinsip keamanan Microsoft Entra melalui kontrol akses berbasis peran Azure (Azure RBAC). Untuk informasi selengkapnya tentang peran Azure di Azure Storage, lihat Menetapkan peran Azure untuk akses ke data blob.

Izin untuk memanggil operasi data

Ekstensi Azure Storage didukung untuk operasi pada data blob. Operasi mana yang mungkin Anda panggil tergantung pada izin yang diberikan kepada perwakilan keamanan Microsoft Entra tempat Anda masuk ke Azure CLI. Izin ke kontainer Azure Storage ditetapkan melalui Azure RBAC. Misalnya, jika Anda diberi peran Pembaca Penyimpanan Data Blob, maka Anda dapat menjalankan perintah skrip yang dapat membaca data dari kontainer. Jika Anda diberi peran Kontributor Penyimpanan Data Blob, maka Anda dapat menjalankan perintah skrip yang dapat membaca, menulis, atau menghapus kontainer atau data yang dimuatnya.

Untuk detail tentang izin yang diperlukan untuk setiap operasi Azure Storage pada kontainer, lihat Memanggil operasi penyimpanan dengan token OAuth.

Contoh: Mengotorisasi operasi untuk membuat kontainer dengan kredensial Microsoft Entra

Contoh berikut menunjukkan cara membuat kontainer dari Azure CLI menggunakan kredensial Microsoft Entra Anda. Untuk membuat kontainer, Anda harus masuk ke Azure CLI dan Anda memerlukan grup sumber daya serta akun penyimpanan. Untuk mempelajari cara membuat sumber daya ini, lihat Mulai cepat: Membuat, mengunduh, dan mencantumkan blob dengan Azure CLI.

  1. Sebelum Anda membuat kontainer, tetapkan peran Kontributor Penyimpanan Data Blob untuk Anda sendiri. Meskipun Anda adalah pemilik akun, Anda memerlukan izin eksplisit untuk melakukan operasi data terhadap akun penyimpanan. Untuk informasi selengkapnya tentang penetapan peran Azure, lihat Menetapkan peran Azure untuk akses ke data blob.

    Penting

    Penetapan peran Azure mungkin memerlukan waktu hingga lima menit untuk disebarluaskan.

  2. Panggil perintah az storage container create dengan parameter yang --auth-mode diatur ke login untuk membuat kontainer menggunakan kredensial Microsoft Entra Anda. Ingatlah untuk mengganti nilai tempat penampung dalam tanda kurung sudut dengan nilai Anda sendiri:

    az storage container create \
        --account-name <storage-account> \
        --name sample-container \
        --auth-mode login
    

Mengotorisasi dengan kunci akses akun

Jika Anda memiliki kunci akun, Anda dapat memanggil operasi data Azure Storage apa pun. Secara umum, menggunakan kunci akun kurang aman. Jika kunci akun disusupi, semua data di akun Anda dapat disusupi.

Contoh berikut menunjukkan cara membuat kontainer menggunakan kunci akses akun. Tentukan kunci akun, dan masukkan parameter --auth-mode dengan nilai key:

az storage container create \
    --account-name <storage-account> \
    --name sample-container \
    --account-key <key>
    --auth-mode key

Penting

Saat akun penyimpanan dikunci dengan kunci Baca Saja Azure Resource Manager, operasi Daftar Kunci tidak diizinkan untuk akun penyimpanan tersebut. Daftar Kunci adalah operasi POST, dan semua operasi POST dicegah ketika kunci Baca Saja dikonfigurasi untuk akun tersebut. Untuk alasan ini, ketika akun dikunci dengan kunci ReadOnly , pengguna harus mengakses data dengan kredensial Microsoft Entra.

Otorisasi dengan token SAS

Jika Anda memiliki token SAS, Anda dapat memanggil operasi data yang diizinkan oleh SAS. Contoh berikut menunjukkan cara membuat kontainer menggunakan token SAS:

az storage container create \
    --account-name <storage-account> \
    --name sample-container \
    --sas-token <token>

Mengatur variabel lingkungan untuk parameter otorisasi

Anda dapat menentukan parameter otorisasi dalam variabel lingkungan untuk menghindari menyertakannya pada setiap panggilan ke operasi data Azure Storage. Tabel berikut menjelaskan variabel lingkungan yang tersedia.

Variabel lingkungan Deskripsi
AZURE_STORAGE_ACCOUNT Nama akun penyimpanan. Variabel ini harus digunakan bersama dengan kunci akun penyimpanan atau token SAS. Jika tidak ada, Azure CLI mencoba mengambil kunci akses akun penyimpanan dengan menggunakan akun Microsoft Entra yang diautentikasi. Jika sejumlah besar perintah dijalankan pada satu waktu, ambang pembatasan penyedia sumber daya Azure Storage dapat tercapai. Untuk informasi selengkapnya tentang batas penyedia sumber daya, lihat Skalabilitas dan target performa untuk penyedia sumber daya Azure Storage.
AZURE_STORAGE_KEY Kunci akun penyimpanan. Variabel ini harus digunakan bersama dengan nama akun penyimpanan.
AZURE_STORAGE_CONNECTION_STRING String sambungan yang menyertakan kunci akun penyimpanan atau token SAS. Variabel ini harus digunakan bersama dengan nama akun penyimpanan.
AZURE_STORAGE_SAS_TOKEN Token tanda tangan akses bersama (SAS). Variabel ini harus digunakan bersama dengan nama akun penyimpanan.
AZURE_STORAGE_AUTH_MODE Mode otorisasi di mana perintah akan dijalankan. Nilai yang diizinkan adalah login (disarankan) atau key. Jika Anda menentukan login, Azure CLI menggunakan kredensial Microsoft Entra Anda untuk mengotorisasi operasi data. Jika Anda menentukan mode key warisan, Azure CLI mencoba untuk meminta kunci akses akun dan untuk mengotorisasi perintah dengan kunci tersebut.

Langkah berikutnya