Bagikan melalui


Tutorial: Menggunakan identitas terkelola yang ditetapkan sistem komputer virtual Windows untuk mengakses Azure Storage

Identitas terkelola untuk sumber daya Azure adalah fitur ID Microsoft Entra. Setiap layanan Azure yang mendukung identitas terkelola untuk sumber daya Azure tunduk pada garis waktu mereka masing-masing. Pastikan Anda meninjau status ketersediaan identitas terkelola untuk sumber daya dan masalah yang diketahui sebelum Anda memulai.

Tutorial ini memperlihatkan cara menggunakan identitas terkelola yang ditetapkan sistem untuk komputer virtual (VM) Windows untuk mengakses Azure Storage. Anda akan mempelajari cara untuk:

  • Membuat kontainer blob di akun penyimpanan
  • Memberikan akses identitas terkelola yang ditetapkan sistem komputer virtual Windows ke akun penyimpanan
  • Mendapatkan akses dan menggunakannya untuk memanggil Azure Storage

Catatan

Autentikasi Microsoft Entra untuk Azure Storage berada dalam pratinjau publik.

Prasyarat

Aktifkan

Mengaktifkan identitas terkelola yang ditetapkan sistem adalah pengalaman sekali klik. Anda dapat mengaktifkannya selama pembuatan VM atau di properti VM yang sudah ada.

Cuplikan layar menunjukkan tab yang ditetapkan Sistem untuk komputer virtual tempat Anda dapat mengaktifkann status yang ditetapkan Sistem.

Untuk mengaktifkan identitas terkelola yang ditetapkan sistem pada VM baru:

  1. Masuk ke portal Microsoft Azure.

  2. Membuat mesin virtual dengan identitas yang ditetapkan sistem yang diaktifkan

Memberikan akses

Membuat akun penyimpanan

Di bagian ini, Anda membuat akun penyimpanan.

  1. Pilih tombol + Buat sumber daya yang ada di sudut kiri atas portal Microsoft Azure.

  2. Pilih Penyimpanan, lalu pilih Akun penyimpanan - blob, file, tabel, antrean.

  3. Di bawah Nama, masukkan nama untuk akun penyimpanan.

  4. Model penyebaran dan Jenis akun harus diatur ke Manajer sumber daya dan Penyimpanan (tujuan umum v1).

  5. Pastikan Langganan dan Grup Sumber Daya cocok dengan yang Anda tentukan saat Anda membuat komputer virtual di langkah sebelumnya.

  6. Pilih Buat.

    Cuplikan layar memperlihatkan cara membuat akun penyimpanan baru.

Membuat kontainer blob dan mengunggah file ke akun penyimpanan

File memerlukan penyimpanan blob sehingga Anda perlu membuat kontainer blob tempat untuk menyimpan file. Anda selanjutnya mengunggah file ke kontainer blob di akun penyimpanan baru.

  1. Arahkan kembali ke akun penyimpanan yang baru dibuat.

  2. Pada Layanan Blob, pilih Kontainer.

  3. Pilih + Kontainer di bagian atas halaman.

  4. Pada Kontainer baru, masukkan nama untuk kontainer dan pada Tingkat akses publik, pertahankan nilai default.

    Cuplikan layar memperlihatkan cara membuat kontainer penyimpanan.

  5. Menggunakan editor pilihan Anda, buat file berjudul hello world.txt di mesin lokal Anda. Buka file dan tambahkan teks (tanpa tanda kutip) "Halo dunia! :)", lalu simpan.

  6. Unggah file ke kontainer yang baru dibuat dengan mengeklik nama kontainer, lalu Unggah

  7. Di panel Unggah blob, di bawah File, pilih ikon folder dan telusuri ke file hello_world.txt pada mesin lokal Anda, pilih file, lalu pilih Unggah. Cuplikan layar memperlihatkan layar pengunggahan file teks.

Memberikan akses

Bagian ini memperlihatkan cara memberikan akses komputer virtual Anda ke kontainer Azure Storage. Anda dapat menggunakan identitas terkelola yang ditetapkan sistem komputer virtual untuk mengambil data dalam blob penyimpanan Azure.

  1. Arahkan kembali ke akun penyimpanan yang baru dibuat.

  2. Pilih Kontrol akses (IAM).

  3. Pilih Tambahkan>Tambahkan penetapan peran untuk membuka halaman Tambahkan penetapan peran.

  4. Tetapkan peran berikut. Untuk langkah-langkah mendetail, lihat Menetapkan peran Azure menggunakan portal Azure.

    Pengaturan Nilai
    Peran Pembaca Data Blob Penyimpanan
    Tetapkan akses ke Identitas terkelola
    Ditetapkan sistem Komputer Virtual
    Pilih <Komputer virtual Anda>

    Cuplikan layar yang memperlihatkan halaman untuk menambahkan penetapan peran.

Mengakses data

Azure Storage secara asli mendukung autentikasi Microsoft Entra, sehingga dapat langsung menerima token akses yang diperoleh menggunakan identitas terkelola. Pendekatan ini menggunakan integrasi Azure Storage dengan MICROSOFT Entra ID, dan berbeda dari menyediakan kredensial pada string koneksi.

Berikut adalah contoh kode .NET untuk membuka koneksi ke Azure Storage. Contoh ini menggunakan token akses, lalu membaca isi file yang Anda buat sebelumnya. Kode ini harus berjalan pada komputer virtual untuk dapat mengakses titik akhir identitas terkelola komputer virtual. .NET Framework 4.6 atau yang lebih tinggi diperlukan untuk menggunakan metode token akses. Ganti nilai <URI to blob file> yang sesuai. Anda bisa mendapatkan nilai ini dengan menavigasi ke file yang Anda buat dan unggah ke penyimpanan blob dan menyalin URL di bawah halaman PropertiGambaran Umum.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Net;
using System.Web.Script.Serialization;
using Microsoft.WindowsAzure.Storage.Auth;
using Microsoft.WindowsAzure.Storage.Blob;

namespace StorageOAuthToken
{
    class Program
    {
        static void Main(string[] args)
        {
            //get token
            string accessToken = GetMSIToken("https://storage.azure.com/");

            //create token credential
            TokenCredential tokenCredential = new TokenCredential(accessToken);

            //create storage credentials
            StorageCredentials storageCredentials = new StorageCredentials(tokenCredential);

            Uri blobAddress = new Uri("<URI to blob file>");

            //create block blob using storage credentials
            CloudBlockBlob blob = new CloudBlockBlob(blobAddress, storageCredentials);

            //retrieve blob contents
            Console.WriteLine(blob.DownloadText());
            Console.ReadLine();
        }

        static string GetMSIToken(string resourceID)
        {
            string accessToken = string.Empty;
            // Build request to acquire MSI token
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=" + resourceID);
            request.Headers["Metadata"] = "true";
            request.Method = "GET";

            try
            {
                // Call /token endpoint
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();

                // Pipe response Stream to a StreamReader, and extract access token
                StreamReader streamResponse = new StreamReader(response.GetResponseStream());
                string stringResponse = streamResponse.ReadToEnd();
                JavaScriptSerializer j = new JavaScriptSerializer();
                Dictionary<string, string> list = (Dictionary<string, string>)j.Deserialize(stringResponse, typeof(Dictionary<string, string>));
                accessToken = list["access_token"];
                return accessToken;
            }
            catch (Exception e)
            {
                string errorText = String.Format("{0} \n\n{1}", e.Message, e.InnerException != null ? e.InnerException.Message : "Acquire token failed");
                return accessToken;
            }
        }
    }
}

Respons berisi isi file:

Hello world! :)

Nonaktifkan

Untuk menonaktifkan identitas yang ditetapkan sistem pada komputer virtual Anda, tetapkan status identitas yang ditetapkan sistem ke Nonaktif.

Cuplikan layar menunjukkan tab yang ditetapkan Sistem untuk komputer virtual tempat Anda dapat menonaktifkan status yang ditetapkan Sistem.

Langkah berikutnya

Dalam tutorial ini, Anda mempelajari cara mengaktifkan identitas yang ditetapkan sistem komputer virtual Windows untuk mengakses Azure Storage. Untuk mempelajari lebih lanjut tentang Azure Storage, lihat: