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
- Jika Anda tidak terbiasa dengan fitur identitas terkelola untuk sumber daya Azure, lihat gambaran umum ini.
- Jika Anda belum memiliki akun Azure, daftar untuk mendapatkan akun gratis sebelum melanjutkan.
- Untuk melakukan langkah-langkah pembuatan sumber daya dan pengelolaan peran yang diperlukan, akun Anda memerlukan izin "Pemilik" pada cakupan yang sesuai (langganan atau grup sumber daya Anda). Jika Anda memerlukan bantuan terkait penetapan peran, lihat Menetapkan peran Azure untuk mengelola akses ke sumber daya langganan Azure Anda.
Aktifkan
Mengaktifkan identitas terkelola yang ditetapkan sistem adalah pengalaman sekali klik. Anda dapat mengaktifkannya selama pembuatan VM atau di properti VM yang sudah ada.
Untuk mengaktifkan identitas terkelola yang ditetapkan sistem pada VM baru:
Masuk ke portal Microsoft Azure.
Membuat mesin virtual dengan identitas yang ditetapkan sistem yang diaktifkan
Memberikan akses
Membuat akun penyimpanan
Di bagian ini, Anda membuat akun penyimpanan.
Pilih tombol + Buat sumber daya yang ada di sudut kiri atas portal Microsoft Azure.
Pilih Penyimpanan, lalu pilih Akun penyimpanan - blob, file, tabel, antrean.
Di bawah Nama, masukkan nama untuk akun penyimpanan.
Model penyebaran dan Jenis akun harus diatur ke Manajer sumber daya dan Penyimpanan (tujuan umum v1).
Pastikan Langganan dan Grup Sumber Daya cocok dengan yang Anda tentukan saat Anda membuat komputer virtual di langkah sebelumnya.
Pilih Buat.
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.
Arahkan kembali ke akun penyimpanan yang baru dibuat.
Pada Layanan Blob, pilih Kontainer.
Pilih + Kontainer di bagian atas halaman.
Pada Kontainer baru, masukkan nama untuk kontainer dan pada Tingkat akses publik, pertahankan nilai default.
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.
Unggah file ke kontainer yang baru dibuat dengan mengeklik nama kontainer, lalu Unggah
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.
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.
Arahkan kembali ke akun penyimpanan yang baru dibuat.
Pilih Kontrol akses (IAM).
Pilih Tambahkan>Tambahkan penetapan peran untuk membuka halaman Tambahkan penetapan peran.
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>
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.
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:
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk