Tutorial: Menggunakan VM/VMSS Linux untuk mengakses sumber daya Azure
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.
Prasyarat
- Pemahaman tentang identitas terkelola. Jika Anda tidak terbiasa dengan fitur identitas terkelola untuk sumber daya Azure, lihat gambaran umum ini.
- Akun Azure, daftar untuk mendapatkan akun gratis.
- Izin pemilik pada cakupan yang sesuai (langganan atau grup sumber daya Anda) untuk melakukan langkah-langkah pembuatan sumber daya dan manajemen peran yang diperlukan. Jika Anda memerlukan bantuan terkait penetapan peran, lihat Menetapkan peran Azure untuk mengelola akses ke sumber daya langganan Azure Anda.
- Komputer virtual Linux (VM) yang mengaktifkan identitas terkelola yang ditetapkan sistem.
- Jika Anda perlu membuat VM untuk tutorial ini, lihat Membuat komputer virtual dengan identitas yang ditetapkan sistem diaktifkan.
Menggunakan identitas terkelola yang ditetapkan sistem VM Linux untuk mengakses Azure Data Lake Store
Tutorial ini menunjukkan kepada Anda cara menggunakan identitas terkelola yang ditetapkan sistem untuk komputer virtual Linux (VM) untuk mengakses Microsoft Azure Data Lake Store.
Anda akan mempelajari cara:
- Memberikan akses komputer virtual Anda ke Microsoft Azure Data Lake Store.
- Dapatkan token akses dengan menggunakan identitas terkelola yang ditetapkan sistem komputer virtual untuk mengakses Microsoft Azure Data Lake Store.
Memberikan akses
Bagian ini memperlihatkan cara memberikan akses komputer virtual Anda ke file dan folder di Microsoft Azure Data Lake Store. Untuk langkah ini, Anda dapat menggunakan instans Data Lake Store yang sudah ada atau membuat yang baru. Untuk membuat instans Data Lake Store baru menggunakan portal Microsoft Azure, ikuti mulai cepat Data Lake Store. Ada juga mulai cepat yang menggunakan Microsoft Azure CLI dan Microsoft Azure PowerShell di dokumentasi Microsoft Azure Data Lake Store.
Di Data Lake Store, buat folder baru dan berikan izin identitas terkelola yang ditetapkan sistem komputer virtual Linux untuk membaca, menulis, dan menjalankan file di folder tersebut:
- Di portal Microsoft Azure, pilih Data Lake Store di panel kiri.
- Pilih instans Data Lake Store yang ingin Anda gunakan.
- Pilih Data Explorer pada bilah perintah.
- Folder akar instans Data Lake Store telah dipilih. Pilih Akses pada bilah perintah.
- Pilih Tambahkan. Dalam kotak Pilih , masukkan nama VM Anda; misalnya, DevTestVM. Pilih VM Anda dari hasil pencarian, lalu pilih Pilih.
- Pilih Pilih Izin. Pilih Baca dan Jalankan, tambahkan ke Folder ini, tambahkan sebagai Izin akses saja, lalu pilih Ok. Izin seharusnya berhasil ditambah.
- Tutup panel Akses.
- Buat folder baru, lalu pilih Folder Baru pada bilah perintah dan beri nama folder baru; misalnya, TestFolder, lalu pilih Ok.
- Pilih folder yang Anda buat, lalu pilih Akses pada bilah perintah.
- Pilih Tambahkan, lalu di kotak Pilih , masukkan nama VM Anda.
- Pilih VM Anda dari hasil pencarian, lalu pilih Pilih.
- Pilih Pilih Izin, lalu pilih Baca, lalu Tulis dan Jalankan.
- Pilih untuk menambahkan ke folder Ini, lalu tambahkan sebagai Entri izin akses dan entri izin default, lalu pilih Ok. Izin seharusnya berhasil ditambah.
Identitas terkelola untuk sumber daya Microsoft Azure sekarang dapat melakukan semua operasi pada file di folder yang Anda buat. Untuk informasi selengkapnya tentang mengelola akses ke Data Lake Store, baca Kontrol Akses di Data Lake Store.
Mendapatkan token akses
Bagian ini menunjukkan cara mendapatkan token akses dan memanggil sistem file Data Lake Store. Azure Data Lake Store secara asli mendukung autentikasi Microsoft Entra, sehingga dapat langsung menerima token akses yang diperoleh melalui menggunakan identitas terkelola untuk sumber daya Azure.
Untuk mengautentikasi ke sistem file Data Lake Store, Anda mengirim token akses yang dikeluarkan oleh ID Microsoft Entra ke titik akhir sistem file Data Lake Store Anda. Token akses berada di header otorisasi dalam format Bearer \<ACCESS_TOKEN_VALUE\>
. Untuk mempelajari selengkapnya tentang dukungan Data Lake Store untuk autentikasi Microsoft Entra, lihat Autentikasi dengan Data Lake Store menggunakan ID Microsoft Entra.
Selanjutnya, Anda mengautentikasi ke REST API untuk sistem file Data Lake Store dengan menggunakan cURL untuk membuat permintaan REST.
Catatan
SDK klien untuk sistem file Data Lake Store belum mendukung identitas terkelola untuk sumber daya Microsoft Azure.
Untuk menyelesaikan langkah-langkah ini, Anda memerlukan klien SSH. Jika menggunakan Windows, Anda dapat menggunakan klien SSH di Subsistem Windows untuk Linux. Jika Anda memerlukan bantuan untuk mengonfigurasi kunci klien SSH Anda, lihat Cara Menggunakan kunci SSH dengan Windows di Microsoft Azure, atau Cara membuat dan menggunakan pasangan kunci publik dan privat SSH untuk komputer virtual Linux di Microsoft Azure.
Di portal, telusuri ke VM Linux Anda, lalu di bagian Gambaran Umum , pilih Sambungkan.
Sambungkan ke komputer virtual dengan menggunakan klien SSH pilihan Anda.
Di jendela terminal, menggunakan cURL membuat permintaan ke identitas terkelola lokal Azure untuk titik akhir sumber daya Azure untuk mendapatkan token akses untuk sistem file Data Lake Store. Pengidentifikasi sumber daya untuk Data Lake Store adalah
https://datalake.azure.net/
. Penting untuk memasukkan garis miring berikutnya dalam pengidentifikasi sumber daya.curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fdatalake.azure.net%2F' -H Metadata:true
Respons yang berhasil mengembalikan token akses yang Anda gunakan untuk mengautentikasi ke Data Lake Store:
{"access_token":"eyJ0eXAiOiJ...", "refresh_token":"", "expires_in":"3599", "expires_on":"1508119757", "not_before":"1508115857", "resource":"https://datalake.azure.net/", "token_type":"Bearer"}
Dengan menggunakan cURL, buat permintaan ke titik akhir REST sistem file Data Lake Store Anda untuk mencantumkan folder di folder akar. Ini adalah cara terbaik untuk memeriksa bahwa semuanya dikonfigurasi dengan benar. Salin nilai token akses dari langkah sebelumnya. Penting bahwa string
Bearer
di header Otorisasi memiliki modal "B." Anda dapat menemukan nama instans Data Lake Store Anda di bagian Gambaran Umum panel Data Lake Store di portal Azure.curl https://<YOUR_ADLS_NAME>.azuredatalakestore.net/webhdfs/v1/?op=LISTSTATUS -H "Authorization: Bearer <ACCESS_TOKEN>"
Respons yang berhasil akan terlihat seperti:
{"FileStatuses":{"FileStatus":[{"length":0,"pathSuffix":"TestFolder","type":"DIRECTORY","blockSize":0,"accessTime":1507934941392,"modificationTime":1508105430590,"replication":0,"permission":"770","owner":"bd0e76d8-ad45-4fe1-8941-04a7bf27f071","group":"bd0e76d8-ad45-4fe1-8941-04a7bf27f071"}]}}
Sekarang unggah file ke instans Data Lake Store Anda. Pertama, buat file yang akan diunggah.
echo "Test file." > Test1.txt
Dengan menggunakan cURL, buat permintaan ke titik akhir REST sistem file Data Lake Store Anda untuk mengunggah file ke folder yang Anda buat sebelumnya. Unggahan ini melibatkan pengalihan, dan cURL mengikuti pengalihan secara otomatis.
curl -i -X PUT -L -T Test1.txt -H "Authorization: Bearer <ACCESS_TOKEN>" 'https://<YOUR_ADLS_NAME>.azuredatalakestore.net/webhdfs/v1/<FOLDER_NAME>/Test1.txt?op=CREATE'
Respons yang berhasil akan terlihat seperti:
HTTP/1.1 100 Continue HTTP/1.1 307 Temporary Redirect Cache-Control: no-cache, no-cache, no-store, max-age=0 Pragma: no-cache Expires: -1 Location: https://mytestadls.azuredatalakestore.net/webhdfs/v1/TestFolder/Test1.txt?op=CREATE&write=true x-ms-request-id: 756f6b24-0cca-47ef-aa12-52c3b45b954c ContentLength: 0 x-ms-webhdfs-version: 17.04.22.00 Status: 0x0 X-Content-Type-Options: nosniff Strict-Transport-Security: max-age=15724800; includeSubDomains Date: Sun, 15 Oct 2017 22:10:30 GMT Content-Length: 0 HTTP/1.1 100 Continue HTTP/1.1 201 Created Cache-Control: no-cache, no-cache, no-store, max-age=0 Pragma: no-cache Expires: -1 Location: https://mytestadls.azuredatalakestore.net/webhdfs/v1/TestFolder/Test1.txt?op=CREATE&write=true x-ms-request-id: af5baa07-3c79-43af-a01a-71d63d53e6c4 ContentLength: 0 x-ms-webhdfs-version: 17.04.22.00 Status: 0x0 X-Content-Type-Options: nosniff Strict-Transport-Security: max-age=15724800; includeSubDomains Date: Sun, 15 Oct 2017 22:10:30 GMT Content-Length: 0
Terakhir, Anda sekarang dapat menggunakan API lain untuk sistem file Data Lake Store untuk menambahkan ke file, mengunduh file, dan banyak lagi.
Menggunakan identitas terkelola yang ditetapkan sistem VM Linux untuk mengakses Azure Storage
Tutorial ini menunjukkan kepada Anda cara menggunakan identitas terkelola yang ditetapkan sistem untuk komputer virtual Linux (VM) untuk mengakses Azure Storage.
Anda akan mempelajari cara:
- Buat akun penyimpanan
- Membuat kontainer blob di akun penyimpanan
- Memberikan akses Identitas Terkelola Linux VM ke kontainer Azure Storage
- Mendapatkan akses dan menggunakannya untuk memanggil Azure Storage
Buat akun penyimpanan
Untuk menjalankan skrip CLI dalam contoh ini, Anda memiliki dua opsi:
- Gunakan Azure Cloud Shell baik dari portal Azure, atau melalui tombol Coba, yang terletak di sudut kanan atas setiap blok kode.
- Pasang versi terbaru CLI 2.0 (2.0.23 atau yang lebih baru) jika Anda lebih suka menggunakan konsol CLI lokal.
Pertama, buat 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.
Navigasikan ke akun penyimpanan yang baru dibuat.
Pilih Blob Service, lalu Kontainer.
Pilih + Kontainer di bagian atas halaman.
Pilih Kontainer baru, lalu masukkan nama untuk kontainer.
Pastikan bahwa Tingkat akses publik adalah nilai default.
Menggunakan editor pilihan Anda, buat file berjudul hello world.txt di mesin lokal Anda. Buka file dan tambahkan teks Halo dunia!, lalu simpan.
Pilih nama kontainer, lalu Unggah. Ini mengunggah file ke kontainer yang baru dibuat.
Di panel Unggah blob, di bagian File, pilih ikon folder dan telusuri file hello_world.txt di komputer lokal Anda.
Pilih file, lalu pilih Unggah.
Memberikan akses VM Anda ke kontainer Azure Storage
Anda dapat menggunakan identitas terkelola yang ditetapkan sistem komputer virtual untuk mengambil data dalam blob Azure Storage. Identitas terkelola untuk sumber daya Azure, dapat digunakan untuk mengautentikasi ke sumber daya yang mendukung autentikasi Microsoft Entra. Berikan akses dengan menetapkan peran storage-blob-data-reader ke identitas terkelola di lingkup grup sumber daya yang berisi akun penyimpanan Anda.
Untuk langkah-langkah mendetail, lihat Menetapkan peran Azure menggunakan portal Azure.
Catatan
Untuk informasi selengkapnya tentang berbagai peran yang dapat Anda gunakan untuk memberikan izin ke tinjauan penyimpanan Otorisasi akses ke blob dan antrean menggunakan ID Microsoft Entra
Mendapatkan akses dan menggunakannya untuk memanggil Azure Storage
Azure Storage secara asli mendukung autentikasi Microsoft Entra, sehingga dapat langsung menerima token akses yang diperoleh menggunakan Identitas Terkelola. Ini adalah bagian dari integrasi Azure Storage dengan MICROSOFT Entra ID, dan berbeda dari menyediakan kredensial pada string koneksi.
Untuk menyelesaikan langkah-langkah berikut, Anda perlu bekerja dari VM yang dibuat sebelumnya dan Anda memerlukan klien SSH untuk menyambungkannya.
Jika menggunakan Windows, Anda dapat menggunakan klien SSH di Subsistem Windows untuk Linux. Jika Anda memerlukan bantuan untuk mengonfigurasi kunci klien SSH Anda, lihat Cara Menggunakan kunci SSH dengan Windows di Microsoft Azure, atau Cara membuat dan menggunakan pasangan kunci publik dan privat SSH untuk komputer virtual Linux di Microsoft Azure.
Di portal Azure, navigasikan ke Komputer Virtual, buka komputer virtual Linux Anda, lalu dari halaman Gambaran Umum pilih Sambungkan. Salin string untuk menyambungkan ke komputer virtual Anda.
Sambungkan ke komputer virtual dengan klien SSH pilihan Anda.
Di jendela terminal, gunakan CURL untuk membuat permintaan ke titik akhir Identitas Terkelola lokal untuk mendapatkan token akses untuk Azure Storage.
curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fstorage.azure.com%2F' -H Metadata:true
Gunakan token akses untuk mengakses Azure Storage. Misalnya, untuk membaca konten file sampel yang sebelumnya Anda unggah ke kontainer, ganti nilai
<STORAGE ACCOUNT>
, , dan<FILE NAME>
dengan nilai yang Anda tentukan sebelumnya, dan<ACCESS TOKEN>
dengan token yang dikembalikan<CONTAINER NAME>
di langkah sebelumnya.curl https://<STORAGE ACCOUNT>.blob.core.windows.net/<CONTAINER NAME>/<FILE NAME> -H "x-ms-version: 2017-11-09" -H "Authorization: Bearer <ACCESS TOKEN>"
Respons berisi isi file:
Hello world! :)
Terakhir, Anda juga dapat menyimpan token dalam variabel dan meneruskannya ke perintah kedua seperti yang ditunjukkan:
# Run the first curl command and capture its output in a variable
access_token=$(curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fstorage.azure.com%2F' -H Metadata:true | jq -r '.access_token')
# Run the second curl command with the access token
curl "https://<STORAGE ACCOUNT>.blob.core.windows.net/<CONTAINER NAME>/<FILE NAME>" \
-H "x-ms-version: 2017-11-09" \
-H "Authorization: Bearer $access_token"
Menggunakan identitas terkelola yang ditetapkan sistem VM Linux untuk mengakses Azure Storage melalui kredensial SAS
Tutorial ini menunjukkan kepada Anda cara menggunakan identitas terkelola yang ditetapkan sistem untuk komputer virtual (VM) Linux untuk mendapatkan kredensial Tanda Tangan Akses Bersama (SAS) penyimpanan; khususnya, kredensial Sas Layanan.
Catatan
Kunci SAS yang dibuat dalam tutorial ini tidak akan dibatasi/terikat dengan komputer virtual.
SAS Layanan memberikan akses terbatas ke objek di akun penyimpanan tanpa mengekspos kunci akses akun. Akses dapat diberikan untuk waktu yang terbatas dan layanan tertentu. Anda dapat menggunakan kredensial SAS seperti biasa saat melakukan operasi penyimpanan; misalnya, saat menggunakan Storage SDK. Dalam tutorial ini, Anda akan mengunggah dan mengunduh blob menggunakan Azure Storage CLI.
Anda akan mempelajari cara:
- Buat akun penyimpanan
- Membuat kontainer blob di akun penyimpanan
- Berikan akses komputer virtual Anda ke akun penyimpanan SAS di Resource Manager
- Dapatkan token akses menggunakan identitas komputer virtual Anda, dan gunakan untuk mengambil SAS dari Resource Manager
Buat akun penyimpanan
Jika Anda belum memilikinya, Anda harus membuat akun penyimpanan. Anda dapat memilih untuk melewati langkah ini dan memberikan akses identitas terkelola yang ditetapkan sistem komputer virtual Anda ke kunci akun penyimpanan yang ada.
Pilih tombol +/Buat layanan baru, yang terletak di sudut kiri atas portal Azure.
Pilih Penyimpanan, lalu Akun Penyimpanan, lalu panel Buat akun penyimpanan muncul.
Masukkan Nama untuk akun penyimpanan. Ingat nama ini, karena Anda akan membutuhkannya nanti.
Pastikan bahwa Model penyebaran diatur ke Resource Manager, dan Jenis akun diatur ke Tujuan umum.
Pastikan Langganan dan Grup Sumber Daya cocok dengan yang Anda tentukan saat membuat VM.
Pilih Buat untuk menyelesaikan pembuatan akun penyimpanan.
Membuat kontainer blob di akun penyimpanan
Kemudian dalam tutorial, Anda akan mengunggah dan mengunduh file ke akun penyimpanan baru. Karena file memerlukan penyimpanan blob, Anda perlu membuat kontainer blob untuk menyimpan file.
Navigasikan ke akun penyimpanan yang baru dibuat.
Pilih tautan Kontainer di panel kiri, di bawah Blob service.
Pilih + Kontainer di bagian atas halaman, lalu panel Kontainer baru muncul.
Beri nama kontainer, pilih tingkat akses, lalu pilih OK. Anda akan memerlukan nama yang Anda tentukan nanti dalam tutorial.
Memberikan akses identitas terkelola yang ditetapkan sistem komputer virtual Anda untuk menggunakan SAS penyimpanan
Azure Storage secara asli mendukung autentikasi Microsoft Entra, sehingga Anda dapat menggunakan identitas terkelola yang ditetapkan sistem VM untuk mengambil SAS penyimpanan dari Resource Manager. Kemudian Anda dapat menggunakan SAS untuk mengakses penyimpanan.
Di bagian ini, Anda memberikan akses identitas terkelola yang ditetapkan sistem VM ke SAS akun penyimpanan Anda. Tetapkan peran Kontributor Akun Penyimpanan ke identitas terkelola pada cakupan grup sumber daya yang berisi akun penyimpanan Anda.
Untuk langkah-langkah mendetail, lihat Menetapkan peran Azure menggunakan portal Azure.
Catatan
Untuk informasi selengkapnya tentang berbagai peran yang dapat Anda gunakan untuk memberikan izin ke tinjauan penyimpanan Otorisasi akses ke blob dan antrean menggunakan ID Microsoft Entra.
Mendapatkan token akses menggunakan identitas komputer virtual dan menggunakannya untuk memanggil Azure Resource Manager
Untuk sisa tutorial ini, Anda bekerja dari VM yang Anda buat sebelumnya.
Anda memerlukan klien SSH untuk menyelesaikan langkah-langkah ini. Jika menggunakan Windows, Anda dapat menggunakan klien SSH di Subsistem Windows untuk Linux. Jika Anda memerlukan bantuan untuk mengonfigurasi kunci klien SSH, lihat:
- Cara menggunakan kunci SSH dengan Windows di Azure
- Cara membuat dan menggunakan pasangan kunci publik dan privat SSH untuk mesin virtual Linux di Azure.
Setelah Anda memiliki klien SSH Anda, ikuti langkah-langkah berikut:
- Di portal Azure, navigasikan ke Virtual Machines, lalu buka komputer virtual Linux Anda.
- Dari halaman Gambaran Umum , pilih Sambungkan di bagian atas layar.
- Salin string untuk menyambungkan ke komputer virtual Anda.
- Sambungkan ke komputer virtual Anda menggunakan klien SSH.
- Masukkan Kata Sandi yang Anda tambahkan saat membuat VM Linux. Anda seharusnya berhasil masuk.
- Gunakan CURL untuk mendapatkan token akses untuk Microsoft Azure Resource Manager.
Permintaan dan respons CURL untuk token akses di bawah:
curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fmanagement.azure.com%2F' -H Metadata:true
Catatan
Dalam permintaan sebelumnya, nilai resource
parameter harus sama persis dengan apa yang diharapkan oleh ID Microsoft Entra. Saat menggunakan ID sumber daya Azure Resource Manager, Anda harus menyertakan garis miring pada URI.
Dalam respons berikut, elemen access_token dipendekkan untuk tujuan keringkasan.
{
"access_token":"eyJ0eXAiOiJ...",
"refresh_token":"",
"expires_in":"3599",
"expires_on":"1504130527",
"not_before":"1504126627",
"resource":"https://management.azure.com",
"token_type":"Bearer"
}
Dapatkan kredensial SAS dari Azure Resource Manager untuk memanggil penyimpanan
Selanjutnya, gunakan CURL untuk memanggil Resource Manager menggunakan token akses yang kami ambil di bagian sebelumnya. Gunakan ini untuk membuat kredensial SAS penyimpanan. Setelah Anda memiliki kredensial SAS, Anda dapat memanggil operasi unggah/unduh penyimpanan.
Untuk permintaan ini, gunakan parameter permintaan HTTP berikut untuk membuat kredensial SAS:
{
"canonicalizedResource":"/blob/<STORAGE ACCOUNT NAME>/<CONTAINER NAME>",
"signedResource":"c", // The kind of resource accessible with the SAS, in this case a container (c).
"signedPermission":"rcw", // Permissions for this SAS, in this case (r)ead, (c)reate, and (w)rite. Order is important.
"signedProtocol":"https", // Require the SAS be used on https protocol.
"signedExpiry":"<EXPIRATION TIME>" // UTC expiration time for SAS in ISO 8601 format, for example 2017-09-22T00:06:00Z.
}
Sertakan parameter ini dalam isi permintaan POST untuk kredensial SAS. Untuk informasi selengkapnya tentang parameter untuk membuat kredensial SAS, lihat referensi Mencantumkan SAS REST Layanan.
Gunakan permintaan CURL berikut untuk mendapatkan kredensial SAS. Pastikan untuk mengganti nilai parameter <SUBSCRIPTION ID>
, <RESOURCE GROUP>
, <STORAGE ACCOUNT NAME>
, <CONTAINER NAME>
, dan <EXPIRATION TIME>
dengan nilai Anda sendiri. Ganti nilai <ACCESS TOKEN>
dengan token akses yang Anda ambil sebelumnya:
curl https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE ACCOUNT NAME>/listServiceSas/?api-version=2017-06-01 -X POST -d "{\"canonicalizedResource\":\"/blob/<STORAGE ACCOUNT NAME>/<CONTAINER NAME>\",\"signedResource\":\"c\",\"signedPermission\":\"rcw\",\"signedProtocol\":\"https\",\"signedExpiry\":\"<EXPIRATION TIME>\"}" -H "Authorization: Bearer <ACCESS TOKEN>"
Catatan
Teks di URL sebelumnya peka huruf besar/kecil, jadi pastikan jika Anda menggunakan huruf kecil atas untuk grup sumber daya Anda untuk mencerminkannya. Selain itu, penting untuk mengetahui ini adalah permintaan POST, bukan permintaan GET.
Respons CURL mengembalikan kredensial SAS:
{"serviceSasToken":"sv=2015-04-05&sr=c&spr=https&st=2017-09-22T00%3A10%3A00Z&se=2017-09-22T02%3A00%3A00Z&sp=rcw&sig=QcVwljccgWcNMbe9roAJbD8J5oEkYoq%2F0cUPlgriBn0%3D"}
Pada mesin virtual Linux, buat contoh file blob untuk diunggah ke kontainer penyimpanan blob Anda menggunakan perintah berikut:
echo "This is a test file." > test.txt
Selanjutnya, autentikasi dengan perintah CLI az storage
menggunakan kredensial SAS, lalu unggah file ke kontainer blob. Untuk langkah ini, Anda harus memasang Azure CLI terbaru di mesin virtual Anda, jika belum melakukannya.
az storage blob upload --container-name
--file
--name
--account-name
--sas-token
Respons:
Finished[#############################################################] 100.0000%
{
"etag": "\"0x8D4F9929765C139\"",
"lastModified": "2017-09-21T03:58:56+00:00"
}
Anda juga dapat mengunduh file menggunakan Azure CLI dan mengautentikasi dengan kredensial SAS.
Permintaan:
az storage blob download --container-name
--file
--name
--account-name
--sas-token
Respons:
{
"content": null,
"metadata": {},
"name": "testblob",
"properties": {
"appendBlobCommittedBlockCount": null,
"blobType": "BlockBlob",
"contentLength": 16,
"contentRange": "bytes 0-15/16",
"contentSettings": {
"cacheControl": null,
"contentDisposition": null,
"contentEncoding": null,
"contentLanguage": null,
"contentMd5": "Aryr///Rb+D8JQ8IytleDA==",
"contentType": "text/plain"
},
"copy": {
"completionTime": null,
"id": null,
"progress": null,
"source": null,
"status": null,
"statusDescription": null
},
"etag": "\"0x8D4F9929765C139\"",
"lastModified": "2017-09-21T03:58:56+00:00",
"lease": {
"duration": null,
"state": "available",
"status": "unlocked"
},
"pageBlobSequenceNumber": null,
"serverEncrypted": false
},
"snapshot": null
}
Menggunakan identitas terkelola yang ditetapkan sistem VM Linux untuk mengakses Azure Storage melalui kunci akses
Tutorial ini menunjukkan kepada Anda cara menggunakan identitas terkelola yang ditetapkan sistem untuk komputer virtual (VM) Linux untuk mengambil kunci akses akun penyimpanan. Anda dapat menggunakan kunci akses penyimpanan seperti biasa saat melakukan operasi penyimpanan; misalnya, saat menggunakan Storage SDK. Untuk tutorial ini, Anda mengunggah dan mengunduh blob menggunakan Azure CLI.
Anda akan mempelajari cara:
- Memberikan akses komputer virtual Anda ke kunci akses akun penyimpanan di Resource Manager
- Mendapatkan token akses menggunakan identitas komputer virtual Anda, dan menggunakan untuk mengambil kunci akses penyimpanan dari Resource Manager
Buat akun penyimpanan
Jika Anda tidak memiliki akun penyimpanan yang sudah ada sebelum memulai tutorial ini, Anda perlu membuatnya. Jika Anda memiliki akun penyimpanan yang sudah ada, ikuti langkah-langkah ini untuk memberikan akses identitas terkelola yang ditetapkan sistem komputer virtual Anda ke kunci untuk akun penyimpanan yang ada.
Pilih tombol +/Buat layanan baru, yang terletak di sudut kiri atas portal Azure.
Pilih Penyimpanan, lalu Akun Penyimpanan, lalu panel Buat akun penyimpanan muncul.
Masukkan Nama untuk akun penyimpanan. Ingat nama ini, karena Anda akan membutuhkannya nanti.
Pastikan bahwa Model penyebaran diatur ke Resource Manager, dan Jenis akun diatur ke Tujuan umum.
Pastikan Langganan dan Grup Sumber Daya cocok dengan yang Anda tentukan saat membuat VM.
Pilih Buat untuk menyelesaikan pembuatan akun penyimpanan.
Membuat kontainer blob di akun penyimpanan
Kemudian dalam tutorial, Anda akan mengunggah dan mengunduh file ke akun penyimpanan baru. Karena file memerlukan penyimpanan blob, Anda perlu membuat kontainer blob untuk menyimpan file.
Navigasikan ke akun penyimpanan yang baru dibuat.
Pilih tautan Kontainer di panel kiri, di bawah Blob service.
Pilih + Kontainer di bagian atas halaman, lalu panel Kontainer baru muncul.
Beri nama kontainer, pilih tingkat akses, lalu pilih OK. Anda akan memerlukan nama yang Anda tentukan nanti dalam tutorial.
Memberikan akses identitas terkelola yang ditetapkan sistem komputer virtual Anda untuk menggunakan kunci akses akun penyimpanan
Azure Storage tidak secara asli mendukung autentikasi Microsoft Entra. Namun, Anda dapat menggunakan identitas terkelola yang ditetapkan sistem komputer virtual Anda untuk mengambil SAS penyimpanan dari Resource Manager, lalu menggunakan SAS untuk mengakses penyimpanan. Dalam langkah ini, Anda memberikan akses identitas terkelola yang ditetapkan sistem komputer virtual ke akun penyimpanan Anda SAS. Berikan akses dengan menetapkan peran storage-blob-data-reader ke identitas terkelola di lingkup grup sumber daya yang berisi akun penyimpanan Anda.
Untuk langkah-langkah mendetail, lihat Menetapkan peran Azure menggunakan portal Azure.
Catatan
Untuk informasi selengkapnya tentang berbagai peran yang dapat Anda gunakan untuk memberikan izin ke tinjauan penyimpanan Otorisasi akses ke blob dan antrean menggunakan ID Microsoft Entra.
Mendapatkan token akses menggunakan identitas komputer virtual dan menggunakannya untuk memanggil Azure Resource Manager
Untuk sisa tutorial, kami bekerja dari VM yang kami buat sebelumnya.
Untuk menyelesaikan langkah-langkah ini, Anda memerlukan klien SSH. Jika menggunakan Windows, Anda dapat menggunakan klien SSH di Subsistem Windows untuk Linux. Jika Anda memerlukan bantuan untuk mengonfigurasi kunci klien SSH Anda, lihat Cara Menggunakan kunci SSH dengan Windows di Microsoft Azure, atau Cara membuat dan menggunakan pasangan kunci publik dan privat SSH untuk komputer virtual Linux di Microsoft Azure.
Di portal Azure, navigasikan ke Komputer Virtual, pilih komputer virtual Linux Anda, lalu dari halaman Gambaran Umum pilih Sambungkan di bagian atas. Salin string untuk menyambungkan ke komputer virtual Anda.
Sambungkan ke komputer virtual Anda menggunakan klien SSH.
Selanjutnya, Anda perlu memasukkan Kata Sandi yang Anda tambahkan saat membuat VM Linux.
Gunakan CURL untuk mendapatkan token akses untuk Microsoft Azure Resource Manager.
Permintaan dan respons CURL untuk token akses di bawah:
curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fmanagement.azure.com%2F' -H Metadata:true
Catatan
Dalam permintaan sebelumnya, nilai parameter "sumber daya" harus sama persis dengan apa yang diharapkan oleh ID Microsoft Entra. Saat menggunakan ID sumber daya Azure Resource Manager, Anda harus menyertakan garis miring pada URI. Dalam respons berikut, elemen access_token dipendekkan untuk keringkasan.
{ "access_token": "eyJ0eXAiOiJ...", "refresh_token": "", "expires_in": "3599", "expires_on": "1504130527", "not_before": "1504126627", "resource": "https://management.azure.com", "token_type": "Bearer" }
Dapatkan kunci akses akun penyimpanan dari Microsoft Azure Resource Manager untuk melakukan panggilan penyimpanan
Sekarang, gunakan CURL untuk memanggil Resource Manager menggunakan token akses yang diambil di bagian sebelumnya untuk mengambil kunci akses penyimpanan. Setelah memiliki kunci akses penyimpanan, kita dapat memanggil operasi unggah/unduh penyimpanan. Pastikan untuk mengganti nilai parameter <SUBSCRIPTION ID>
,<RESOURCE GROUP>
, dan <STORAGE ACCOUNT NAME>
dengan nilai Anda sendiri. Ganti nilai <ACCESS TOKEN>
dengan token akses yang Anda ambil sebelumnya:
curl https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE ACCOUNT NAME>/listKeys?api-version=2016-12-01 --request POST -d "" -H "Authorization: Bearer <ACCESS TOKEN>"
Catatan
Teks dalam URL sebelumnya peka huruf besar/kecil, sehingga, pastikan jika Anda menggunakan huruf kecil/besar agar Grup Sumber Daya Anda mencerminkannya dengan benar. Selain itu, penting untuk mengetahui bahwa ini adalah permintaan POST, bukan permintaan GET dan pastikan Anda meneruskan nilai untuk menangkap batas panjang dengan -d yang dapat NULL.
Respons CURL akan memberi Anda daftar Kunci:
{"keys":[{"keyName":"key1","permissions":"Full","value":"iqDPNt..."},{"keyName":"key2","permissions":"Full","value":"U+uI0B..."}]}
Buat sampel file blob untuk diunggah ke kontainer penyimpanan blob Anda. Di mesin virtual Linux, Anda bisa melakukannya dengan perintah berikut.
echo "This is a test file." > test.txt
Selanjutnya, autentikasi dengan perintah az storage
CLI menggunakan kunci akses penyimpanan, dan unggah file ke kontainer objek besar biner. Untuk langkah ini, Anda perlu menginstal Azure CLI terbaru di VM Anda, jika Anda belum melakukannya.
az storage blob upload -c <CONTAINER NAME> -n test.txt -f test.txt --account-name <STORAGE ACCOUNT NAME> --account-key <STORAGE ACCOUNT KEY>
Respons:
Finished[#############################################################] 100.0000%
{
"etag": "\"0x8D4F9929765C139\"",
"lastModified": "2017-09-12T03:58:56+00:00"
}
Selain itu, Anda dapat mengunduh file menggunakan Microsoft Azure CLI dan mengautentikasi dengan kunci akses penyimpanan.
Permintaan:
az storage blob download -c <CONTAINER NAME> -n test.txt -f test-download.txt --account-name <STORAGE ACCOUNT NAME> --account-key <STORAGE ACCOUNT KEY>
Respons:
{
"content": null,
"metadata": {},
"name": "test.txt",
"properties": {
"appendBlobCommittedBlockCount": null,
"blobType": "BlockBlob",
"contentLength": 21,
"contentRange": "bytes 0-20/21",
"contentSettings": {
"cacheControl": null,
"contentDisposition": null,
"contentEncoding": null,
"contentLanguage": null,
"contentMd5": "LSghAvpnElYyfUdn7CO8aw==",
"contentType": "text/plain"
},
"copy": {
"completionTime": null,
"id": null,
"progress": null,
"source": null,
"status": null,
"statusDescription": null
},
"etag": "\"0x8D5067F30D0C283\"",
"lastModified": "2017-09-28T14:42:49+00:00",
"lease": {
"duration": null,
"state": "available",
"status": "unlocked"
},
"pageBlobSequenceNumber": null,
"serverEncrypted": false
},
"snapshot": null
}
Menggunakan identitas terkelola yang ditetapkan sistem VM Linux untuk mengakses Azure Key Vault
Tutorial ini menunjukkan kepada Anda bagaimana komputer virtual Linux (VM) dapat menggunakan identitas terkelola yang ditetapkan sistem untuk mengakses Azure Key Vault. Key Vault memungkinkan aplikasi klien Anda untuk kemudian menggunakan rahasia untuk mengakses sumber daya yang tidak diamankan oleh ID Microsoft Entra. Identitas Layanan Terkelola dikelola secara otomatis oleh Azure dan memungkinkan Anda mengautentikasi ke layanan yang mendukung autentikasi Microsoft Entra, tanpa menyertakan informasi autentikasi dalam kode Anda.
Anda akan mempelajari cara:
- Memberikan akses komputer virtual Anda ke rahasia yang disimpan di Key Vault
- Dapatkan token akses menggunakan identitas VM dan gunakan untuk mengambil rahasia dari Key Vault
Membuat Key Vault
Anda juga memerlukan komputer Virtual Linux yang mengaktifkan identitas terkelola yang ditetapkan sistem.
- Jika perlu membuat mesin virtual untuk tutorial ini, Anda dapat mengikuti artikel berjudul Membuat mesin virtual Linux dengan portal Microsoft Azure
Tip
Langkah-langkah dalam artikel ini mungkin sedikit berbeda berdasarkan portal tempat Anda memulai.
Bagian ini menunjukkan cara memberi komputer virtual Anda akses ke rahasia yang disimpan di Key Vault. Menggunakan identitas terkelola untuk sumber daya Azure, kode Anda bisa mendapatkan token akses untuk mengautentikasi ke sumber daya yang mendukung autentikasi Microsoft Entra.
Namun, tidak semua layanan Azure mendukung autentikasi Microsoft Entra. Untuk menggunakan identitas terkelola pada sumber daya Azure dengan layanan tersebut, simpan kredensial layanan di Azure Key Vault, dan gunakan identitas terkelola komputer virtual untuk mengakses Key Vault guna mengambil kredensial.
Pertama, Anda perlu membuat Key Vault dan memberikan akses identitas terkelola yang ditetapkan sistem komputer virtual Anda ke Key Vault.
Masuk ke portal Azure.
Di bagian atas bilah navigasi kiri, pilih Buat sumber daya.
Di kotak Telusuri Marketplace ketikkan Key Vault dan tekan Enter.
Pilih Key Vault dari hasil.
Pilih Buat.
Berikan Nama untuk brankas kunci baru.
Isi semua informasi yang diperlukan, pastikan Anda memilih grup langganan dan sumber daya tempat Anda membuat komputer virtual yang Anda gunakan untuk tutorial ini.
Pilih Tinjau+ buat, lalu pilih Buat.
Buat rahasia
Selanjutnya, Anda perlu menambahkan rahasia ke Key Vault, sehingga Anda dapat mengambilnya nanti menggunakan kode yang berjalan di VM Anda. Di bagian ini, Anda akan menggunakan PowerShell. Tetapi konsep yang sama berlaku untuk kode apa pun yang dijalankan di komputer virtual ini.
Arahkan ke Key Vault yang baru Anda buat.
Pilih Rahasia, lalu pilih Tambahkan.
Pilih Buat/impor.
Di bagian Buat rahasia, buka Opsi unggah dan pastikan Manual dipilih.
Masukkan nama dan nilai untuk rahasia tersebut. Nilainya bisa dalam bentuk apa pun yang Anda inginkan.
Biarkan tanggal aktivasi dan tanggal kedaluwarsa jelas, dan pastikan Bahwa Diaktifkan diatur ke Ya.
Pilih Buat untuk membuat rahasia.
Memberikan akses
Identitas terkelola yang digunakan oleh komputer virtual memerlukan akses untuk membaca rahasia yang disimpan di Key Vault.
Arahkan ke Key Vault yang baru Anda buat.
Pilih Kebijakan Akses dari navigasi kiri.
Pilih Tambahkan Kebijakan Akses.
Di bagian Tambahkan kebijakan akses di bawah Konfigurasikan dari templat (opsional), pilih Manajemen Rahasia dari menu drop-down.
Pilih Pilih Utama, lalu di bidang pencarian masukkan nama VM yang Anda buat sebelumnya. Pilih VM di daftar hasil, lalu Pilih.
Pilih Tambahkan.
Pilih Simpan.
Mengakses data
Untuk menyelesaikan langkah-langkah ini, Anda memerlukan klien SSH. Jika menggunakan Windows, Anda dapat menggunakan klien SSH di Subsistem Windows untuk Linux. Jika Anda memerlukan bantuan untuk mengonfigurasi kunci klien SSH Anda, lihat Cara Menggunakan kunci SSH dengan Windows di Microsoft Azure, atau Cara membuat dan menggunakan pasangan kunci publik dan privat SSH untuk komputer virtual Linux di Microsoft Azure.
Penting
Semua Azure SDK mendukung pustaka Azure.Identity yang memudahkan untuk memperoleh token Microsoft Entra untuk mengakses layanan target. Pelajari selengkapnya tentang Azure SDK dan mengakses pustaka Azure.Identity.
- Di portal, navigasikan ke VM Linux Anda dan di Gambaran Umum, pilih Sambungkan.
- Sambungkan ke komputer virtual dengan klien SSH pilihan Anda.
- Di jendela terminal, gunakan cURL untuk membuat permintaan ke identitas terkelola lokal untuk titik akhir sumber daya Azure untuk mendapatkan token akses untuk Azure Key Vault. Permintaan CURL untuk token akses di bawah ini.
curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fvault.azure.net' -H Metadata:true
```
The response includes the access token you need to access Resource Manager.
Response:
```bash
{"access_token":"eyJ0eXAi...",
"refresh_token":"",
"expires_in":"3599",
"expires_on":"1504130527",
"not_before":"1504126627",
"resource":"https://vault.azure.net",
"token_type":"Bearer"}
Anda dapat menggunakan token akses ini untuk mengautentikasi ke Azure Key Vault. Permintaan CURL berikutnya menunjukkan cara membaca rahasia dari Key Vault menggunakan CURL dan Key Vault REST API. Anda memerlukan URL Key Vault Anda, yang ada di bagian Esensial di halaman Gambaran Umum Key Vault. Anda juga memerlukan token akses yang Anda peroleh pada panggilan sebelumnya.
curl 'https://<YOUR-KEY-VAULT-URL>/secrets/<secret-name>?api-version=2016-10-01' -H "Authorization: Bearer <ACCESS TOKEN>"
Responsnya terlihat seperti ini:
{"value":"p@ssw0rd!","id":"https://mytestkeyvault.vault.azure.net/secrets/MyTestSecret/7c2204c6093c4d859bc5b9eff8f29050","attributes":{"enabled":true,"created":1505088747,"updated":1505088747,"recoveryLevel":"Purgeable"}}
Setelah Anda mengambil rahasia dari Key Vault, Anda dapat menggunakannya untuk mengautentikasi ke layanan yang memerlukan nama dan kata sandi.
Membersihkan sumber daya
Ketika Anda siap untuk membersihkan sumber daya, masuk ke portal Azure, pilih Grup sumber daya, lalu temukan dan pilih grup sumber daya yang dibuat dalam proses tutorial ini, seperti mi-test
. Anda dapat menggunakan perintah Hapus grup sumber daya atau melalui PowerShell atau CLI.
Menggunakan identitas terkelola yang ditetapkan sistem komputer virtual Linux untuk mengakses grup sumber daya di resource manager
Tip
Langkah-langkah dalam artikel ini mungkin sedikit berbeda berdasarkan portal tempat Anda memulai.
Tutorial ini menjelaskan cara membuat identitas yang ditetapkan sistem, menetapkannya ke Komputer Virtual Linux (VM), lalu menggunakan identitas tersebut untuk mengakses API Azure Resource Manager . Identitas Layanan Terkelola dikelola secara otomatis oleh Azure. Mereka mengaktifkan autentikasi ke layanan yang mendukung autentikasi Microsoft Entra, tanpa perlu menyematkan kredensial ke dalam kode Anda.
Anda akan mempelajari cara untuk:
- Berikan akses VM Anda ke azure resource manager.
- Dapatkan token akses dengan menggunakan identitas terkelola yang ditetapkan sistem VM untuk mengakses resource manager.
Masuk ke portal Azure dengan akun administrator Anda.
Navigasi ke tab Grup Sumber Daya.
Pilih Grup Sumber Daya yang ingin Anda berikan akses identitas terkelola VM.
Di panel kiri, pilih Kontrol akses (IAM).
Pilih Tambahkan, lalu pilih Tambahkan penetapan peran.
Di tab Peran , pilih Pembaca. Peran ini memungkinkan melihat semua sumber daya, tetapi tidak memungkinkan Anda untuk membuat perubahan apa pun.
Di tab Anggota , di opsi Tetapkan akses ke , pilih Identitas terkelola, lalu pilih + Pilih anggota.
Pastikan langganan yang tepat tercantum di menu dropdown Langganan . Untuk Grup Sumber Daya, pilih Semua grup sumber daya.
Di menu dropdown Kelola identitas , pilih Komputer Virtual.
Di opsi Pilih, pilih VM Anda di menu dropdown, lalu pilih Simpan.
Mendapatkan token akses
Gunakan identitas terkelola yang ditetapkan sistem VM dan panggil manajer sumber daya untuk mendapatkan token akses.
Untuk menyelesaikan langkah-langkah ini, Anda memerlukan klien SSH. Jika menggunakan Windows, Anda dapat menggunakan klien SSH di Subsistem Windows untuk Linux. Jika Anda memerlukan bantuan untuk mengonfigurasi kunci klien SSH Anda, lihat Cara Menggunakan kunci SSH dengan Windows di Microsoft Azure, atau Cara membuat dan menggunakan pasangan kunci publik dan privat SSH untuk komputer virtual Linux di Microsoft Azure.
- Di portal Azure, navigasikan ke VM Linux Anda.
- Di Gambaran Umum, pilih Sambungkan.
- Sambungkan ke komputer virtual dengan klien SSH pilihan Anda.
- Di jendela terminal, menggunakan
curl
, buat permintaan ke identitas terkelola lokal untuk titik akhir sumber daya Azure untuk mendapatkan token akses untuk azure resource manager. Permintaancurl
untuk token akses ada di bawah.
curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/' -H Metadata:true
Catatan
Nilai resource
parameter harus sama persis dengan apa yang diharapkan oleh ID Microsoft Entra. Dalam kasus ID sumber daya resource manager, Anda harus menyertakan garis miring berikutnya pada URI.
Respons mencakup token akses yang Anda butuhkan untuk mengakses azure resource manager.
Respons:
{
"access_token":"eyJ0eXAiOi...",
"refresh_token":"",
"expires_in":"3599",
"expires_on":"1504130527",
"not_before":"1504126627",
"resource":"https://management.azure.com",
"token_type":"Bearer"
}
Gunakan token akses ini untuk mengakses azure resource manager. Misalnya, untuk membaca detail grup sumber daya tempat Anda sebelumnya memberikan akses VM ini. Ganti nilai <SUBSCRIPTION-ID>
, <RESOURCE-GROUP>
dan <ACCESS-TOKEN>
dengan nilai yang Anda buat sebelumnya.
Catatan
URL peka huruf besar/kecil, jadi pastikan jika Anda menggunakan kasus yang tepat seperti yang Anda gunakan sebelumnya saat Anda menamai grup sumber daya, dan huruf besar "G" di resourceGroup
.
curl https://management.azure.com/subscriptions/<SUBSCRIPTION-ID>/resourceGroups/<RESOURCE-GROUP>?api-version=2016-09-01 -H "Authorization: Bearer <ACCESS-TOKEN>"
Respons kembali dengan informasi grup sumber daya tertentu:
{
"id":"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/DevTest",
"name":"DevTest",
"location":"westus",
"properties":
{
"provisioningState":"Succeeded"
}
}
Menggunakan identitas terkelola yang ditetapkan pengguna VM Linux untuk mengakses grup sumber daya di Resource Manager
Tip
Langkah-langkah dalam artikel ini mungkin sedikit berbeda berdasarkan portal tempat Anda memulai.
Tutorial ini menjelaskan cara membuat identitas yang ditetapkan pengguna, menetapkannya ke Komputer Virtual Linux (VM), lalu menggunakan identitas tersebut untuk mengakses API Azure Resource Manager . Identitas Layanan Terkelola dikelola secara otomatis oleh Azure. Mereka mengaktifkan autentikasi ke layanan yang mendukung autentikasi Microsoft Entra, tanpa perlu menyematkan kredensial ke dalam kode Anda.
Anda akan mempelajari cara:
- Berikan akses VM Anda ke Azure Resource Manager.
- Dapatkan token akses dengan menggunakan identitas terkelola yang ditetapkan sistem VM untuk mengakses Resource Manager.
Buat identitas terkelola yang ditetapkan pengguna menggunakan buat identitas az. Parameter -g
menentukan grup sumber daya tempat identitas terkelola yang ditetapkan pengguna dibuat, dan parameter -n
menentukan namanya. Pastikan untuk mengganti nilai parameter <RESOURCE GROUP>
dan <UAMI NAME>
dengan nilai Anda sendiri:
Penting
Saat Anda membuat identitas terkelola yang ditetapkan pengguna, nama harus dimulai dengan huruf atau angka, dan dapat menyertakan kombinasi karakter alfanumerik, tanda hubung (-) dan garis bawah (_). Untuk penugasan ke komputer virtual atau skala komputer virtual yang diatur agar berfungsi dengan baik, namanya dibatasi hingga 24 karakter. Untuk informasi selengkapnya, lihat Tanya Jawab Umum dan masalah yang sering ditanyakan.
az identity create -g <RESOURCE GROUP> -n <UAMI NAME>
Respons berisi detail untuk identitas terkelola yang ditetapkan pengguna yang telah dibuat, serupa dengan contoh berikut. Catat nilai id
untuk identitas terkelola yang ditetapkan pengguna, karena akan digunakan di langkah berikutnya:
{
"clientId": "00001111-aaaa-2222-bbbb-3333cccc4444",
"clientSecretUrl": "https://control-westcentralus.identity.azure.net/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<UAMI NAME>/credentials?tid=5678&oid=9012&aid=aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
"id": "/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<UAMI NAME>",
"location": "westcentralus",
"name": "<UAMI NAME>",
"principalId": "9012",
"resourceGroup": "<RESOURCE GROUP>",
"tags": {},
"tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
"type": "Microsoft.ManagedIdentity/userAssignedIdentities"
}
Menetapkan identitas ke komputer virtual Linux Anda
Identitas terkelola yang ditetapkan pengguna dapat digunakan oleh klien di beberapa sumber daya Azure. Gunakan perintah berikut untuk menetapkan identitas terkelola yang ditetapkan pengguna ke satu komputer virtual. Gunakan properti Id
yang dikembalikan di langkah sebelumnya untuk parameter -IdentityID
.
Tetapkan identitas terkelola yang ditetapkan pengguna ke komputer virtual Linux Anda menggunakan penetapan identitas az vm. Pastikan untuk mengganti nilai parameter <RESOURCE GROUP>
dan <VM NAME>
dengan nilai Anda sendiri. Gunakan properti id
yang dikembalikan di langkah sebelumnya untuk nilai parameter --identities
.
az vm identity assign -g <RESOURCE GROUP> -n <VM NAME> --identities "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<UAMI NAME>"
Memberikan akses ke grup sumber daya di Azure Resource Manager
Identitas terkelola adalah identitas yang dapat digunakan kode Anda untuk meminta token akses untuk mengautentikasi ke API sumber daya yang mendukung autentikasi Microsoft Entra. Dalam tutorial ini, kode Anda akan mengakses API Azure Resource Manager.
Sebelum kode dapat mengakses API, Anda harus memberikan akses identitas ke sumber daya di Azure Resource Manager. Dalam hal ini, grup sumber daya tempat VM berada. Perbarui nilai untuk <SUBSCRIPTION ID>
dan <RESOURCE GROUP>
yang sesuai dengan lingkungan Anda. Selain itu, ganti <UAMI PRINCIPALID>
dengan properti principalId
yang dikembalikan oleh perintah az identity create
di Membuat identitas terkelola yang ditetapkan pengguna:
az role assignment create --assignee <UAMI PRINCIPALID> --role 'Reader' --scope "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/<RESOURCE GROUP> "
Respons berisi detail penetapan peran yang dibuat, serupa dengan contoh berikut:
{
"id": "/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000",
"name": "00000000-0000-0000-0000-000000000000",
"properties": {
"principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
"roleDefinitionId": "/subscriptions/<SUBSCRIPTION ID>/providers/Microsoft.Authorization/roleDefinitions/00000000-0000-0000-0000-000000000000",
"scope": "/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>"
},
"resourceGroup": "<RESOURCE GROUP>",
"type": "Microsoft.Authorization/roleAssignments"
}
Mendapatkan token akses menggunakan identitas komputer virtual dan menggunakannya untuk memanggil Resource Manager
Tip
Langkah-langkah dalam artikel ini mungkin sedikit berbeda berdasarkan portal tempat Anda memulai.
Untuk sisa tutorial, Anda bekerja dari VM yang Anda buat sebelumnya.
Untuk menyelesaikan langkah-langkah ini, Anda memerlukan klien SSH. Jika menggunakan Windows, Anda dapat menggunakan klien SSH di Subsistem Windows untuk Linux.
Masuk ke portal Azure.
Di portal, arahkan ke Microsoft Azure Virtual Machines, lalu buka komputer virtual Windows dan di Gambaran Umum, klik Hubungkan. Salin string untuk menyambungkan ke komputer virtual Anda.
Sambungkan ke komputer virtual dengan klien SSH pilihan Anda. Jika menggunakan Windows, Anda dapat menggunakan klien SSH di Subsistem Windows untuk Linux. Jika Anda memerlukan bantuan untuk mengonfigurasi kunci klien SSH Anda, lihat Cara Menggunakan kunci SSH dengan Windows di Microsoft Azure, atau Cara membuat dan menggunakan pasangan kunci publik dan privat SSH untuk komputer virtual Linux di Microsoft Azure.
Di jendela terminal, gunakan CURL untuk membuat permintaan ke titik akhir identitas Azure Instance Metadata Service (IMDS) untuk mendapatkan token akses untuk Azure Resource Manager.
Permintaan CURL untuk memperoleh token akses ditunjukkan dalam contoh berikut. Pastikan untuk mengganti
<CLIENT ID>
dengan properticlientId
yang dikembalikan oleh perintahaz identity create
di Membuat identitas terkelola yang ditetapkan pengguna:curl -H Metadata:true "http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fmanagement.azure.com/&client_id=<UAMI CLIENT ID>"
Catatan
Nilai
resource
parameter harus sama persis dengan apa yang diharapkan oleh ID Microsoft Entra. Saat menggunakan ID sumber daya Resource Manager, Anda harus menyertakan garis miring di URI.Respons mencakup token akses yang Anda butuhkan untuk mengakses Azure Resource Manager.
Contoh respons:
{ "access_token":"eyJ0eXAiOi...", "refresh_token":"", "expires_in":"3599", "expires_on":"1504130527", "not_before":"1504126627", "resource":"https://management.azure.com", "token_type":"Bearer" }
Gunakan token akses untuk mengakses Azure Resource Manager, dan baca properti grup sumber daya tempat Anda sebelumnya memberikan akses identitas terkelola yang ditetapkan pengguna. Pastikan untuk mengganti
<SUBSCRIPTION ID>
,<RESOURCE GROUP>
dengan nilai yang Anda tentukan sebelumnya, dan<ACCESS TOKEN>
dengan token dikembalikan di langkah sebelumnya.Catatan
URL peka huruf besar/kecil, jadi pastikan untuk menggunakan kasus yang sama persis dengan yang Anda gunakan sebelumnya saat Anda menamai grup sumber daya, dan huruf besar "G" di
resourceGroups
.curl https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>?api-version=2016-09-01 -H "Authorization: Bearer <ACCESS TOKEN>"
Respons berisi informasi grup sumber daya tertentu, mirip dengan contoh berikut:
{ "id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/DevTest", "name":"DevTest", "location":"westus", "properties":{"provisioningState":"Succeeded"} }