Oktatóanyag: Hozzáférés az Azure Storage-hoz egy Windows VM-beli, rendszer által hozzárendelt felügyelt identitással
Az Azure-erőforrások felügyelt identitásai a Microsoft Entra ID egyik funkciója. Az Azure-erőforrások felügyelt identitását támogató összes Azure-szolgáltatásra a saját ütemterve vonatkozik. Mielőtt nekikezdene, tekintse át az erőforrásához tartozó felügyelt identitások elérhetőségi állapotát, valamint az ismert problémákat.
Ez az oktatóanyag bemutatja, hogyan férhet hozzá az Azure Storage-hoz egy Windows rendszerű virtuális gép (VM) rendszer által hozzárendelt felügyelt identitásával. Az alábbiak végrehajtásának módját ismerheti meg:
- Blobtároló létrehozása egy tárfiókban
- Hozzáférés engedélyezése Windows VM-beli, rendszer által hozzárendelt felügyelt identitás számára egy tárfiókhoz
- Hozzáférés kérése, majd az Azure Storage meghívása a hozzáféréssel
Feljegyzés
Az Azure Storage Microsoft Entra-hitelesítése nyilvános előzetes verzióban érhető el.
Előfeltételek
- Ha még nem ismeri az Azure-erőforrások felügyelt identitására vonatkozó funkciót, tekintse meg ezt az áttekintést.
- Ha még nincs Azure-fiókja, a folytatás előtt regisztráljon egy ingyenes fiókra.
- A szükséges erőforrás-létrehozás és szerepkör-felügyelet végrehajtásához a fiókjának „Tulajdonos” jogosultságokkal kell rendelkeznie a megfelelő hatókörben (az előfizetésben vagy az erőforráscsoportban) Ha segítségre van szüksége a szerepkör-hozzárendeléssel kapcsolatban, olvassa el az Azure-szerepkörök hozzárendelése az Azure-előfizetés erőforrásaihoz való hozzáférés kezeléséhez című témakört.
Engedélyezés
A rendszer által hozzárendelt felügyelt identitás engedélyezése egy kattintásos felület. Ezt engedélyezheti a virtuális gép létrehozásakor vagy egy meglévő virtuális gép tulajdonságaiban.
Rendszer által hozzárendelt felügyelt identitás engedélyezése új virtuális gépen:
Jelentkezzen be az Azure Portalra
Rendszer által hozzárendelt identitással rendelkező virtuális gép létrehozása
Hozzáférés biztosítása
Storage-fiók létrehozása
Ebben a szakaszban egy új tárfiókot fog létrehozni.
Válassza az Azure Portal bal felső sarkában található + Erőforrás létrehozása gombot.
Válassza a Storage, majd a Storage-fiók – blob, fájl, tábla, üzenetsor lehetőséget.
A Név mezőben adja meg a tárfiók nevét.
A Telepítési modell mezőben a Resource Manager, a Fiók típusa mezőben a Storage (általános célú v1) beállítást kell megadni.
Ellenőrizze, hogy az Előfizetés és az Erőforráscsoport mező értéke egyezik-e az előző lépésben a virtuális gép létrehozása során megadottakkal.
Válassza a Létrehozás lehetőséget.
Blobtároló létrehozása és egy fájl feltöltése a tárfiókba
A fájlok tárolásához blobtároló szükséges, ezért létre kell hoznia egyet, amelyben a fájlt tárolhatja. Ezután fel fog tölteni egy fájlt az új tárfiókon lévő blobtárolóba.
Lépjen vissza az újonnan létrehozott tárfiókra.
A Blob Service alatt válassza a Tárolók lehetőséget.
Válassza a + Tároló lehetőséget a lap tetején.
Az Új tároló területen írja be a tároló nevét, és a Nyilvános hozzáférés szintje területen tartsa meg az alapértelmezett értéket.
Egy tetszőleges szövegszerkesztővel hozzon létre egy hello world.txt nevű fájlt a helyi gépen. Nyissa meg a fájlt, adja hozzá a „Hello, world! :)” szöveget (idézőjel nélkül), majd mentse el.
A tároló nevére, majd a Feltöltés lehetőségre kattintva töltse fel a fájlt az újonnan létrehozott tárolóba.
A Blob feltöltése panel Fájlok csoportjában válassza a mappa ikont, és keresse meg a helyi gépen hello_world.txt fájlt, jelölje ki a fájlt, majd válassza a Feltöltés lehetőséget.
Hozzáférés biztosítása
Ez a szakasz bemutatja, hogyan biztosíthat hozzáférést a virtuális gépnek egy Azure Storage-tárolóhoz. A VM rendszer által hozzárendelt felügyelt identitásával lekérheti az Azure-tárolóblob adatait.
Lépjen vissza az újonnan létrehozott tárfiókra.
Válassza a Hozzáférés-vezérlés (IAM) lehetőséget.
Kattintson a Hozzáadás>Szerepkör-hozzárendelés hozzáadása lehetőségre a Szerepkör-hozzárendelés hozzáadása oldal megnyitásához.
Rendelje hozzá a következő szerepkört. A részletes lépésekért tekintse meg az Azure-szerepköröknek az Azure Portalon történő hozzárendelését ismertető cikket.
Beállítás Érték Szerepkör Storage Blob adatolvasó Hozzáférés hozzárendelése a következőhöz: Felügyelt identitás Rendszer által hozzárendelt Virtuális gép Kijelölés <a virtuális gép>
Adatok elérése
Az Azure Storage natív módon támogatja a Microsoft Entra-hitelesítést, így közvetlenül elfogadhatja a felügyelt identitással beszerzett hozzáférési jogkivonatokat. Ez a megközelítés az Azure Storage Microsoft Entra-azonosítóval való integrációját használja, és eltér a hitelesítő adatok megadásától a kapcsolati sztring.
Íme egy .NET-kód példa az Azure Storage-kapcsolat megnyitására. A példa egy hozzáférési jogkivonatot használ, majd beolvassa a korábban létrehozott fájl tartalmát. Ennek a kódnak kell futnia a virtuális gépen a VM felügyelt identitásához tartozó végpont eléréséhez. .NET-keretrendszer 4.6-os vagy újabb verzióra van szükség a hozzáférési jogkivonat-metódus használatához. Cserélje le az <URI to blob file>
értékét a megfelelőre. Az érték lekéréséhez keresse meg a létrehozott és a blobtárolóba feltöltött fájlt, és másolja ki az Áttekintés oldalon lévő Tulajdonságok területen szereplő URL értéket.
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;
}
}
}
}
A válasz tartalmazza a fájl tartalmát:
Hello world! :)
Letiltás
Ha le szeretné tiltani a rendszer által hozzárendelt identitást a virtuális gépen, állítsa a rendszer által hozzárendelt identitás állapotát Ki értékre.
Következő lépések
Az oktatóanyag bemutatta, hogyan gondoskodhat róla, hogy egy Windows rendszerű virtuális gép rendszer által hozzárendelt identitása hozzá tudjon férni az Azure Storage-hoz. Az Azure Storage-ról további információt a következő témakörben talál: