Kurz: Použití spravované identity přiřazené systémem na virtuálním počítači s Windows pro přístup k Azure Storage
Spravované identity pro prostředky Azure jsou funkcí ID Microsoft Entra. Každá ze služeb Azure, které podporují spravované identity pro prostředky Azure, se řídí vlastní časovou osou. Než začnete, nezapomeňte zkontrolovat stav dostupnosti spravovaných identit pro váš prostředek a známé problémy.
V tomto kurzu se dozvíte, jak pomocí spravované identity přiřazené systémem pro virtuální počítač s Windows získat přístup ke službě Azure Storage. Získáte informace pro:
- Vytvoření kontejneru objektů blob v účtu úložiště
- Udělení přístupu k účtu úložiště spravovaným identitám přiřazeným systémem na virtuálním počítači s Windows
- Získání a použití přístupu k volání Azure Storage
Poznámka:
Ověřování Microsoft Entra pro Azure Storage je ve verzi Public Preview.
Předpoklady
- Pokud ještě neznáte funkci spravovaných identit pro prostředky Azure, podívejte se na tento přehled.
- Pokud nemáte účet Azure, zaregistrujte si bezplatný účet před tím, než budete pokračovat.
- K provedení potřebných kroků k vytvoření prostředku a správě rolí potřebuje váš účet oprávnění vlastníka v odpovídajícím oboru (vaše předplatné nebo skupina prostředků). Pokud potřebujete pomoc s přiřazením role, přečtěte si téma Přiřazení rolí Azure ke správě přístupu k prostředkům předplatného Azure.
Povolit
Povolení spravované identity přiřazené systémem je prostředí jedním kliknutím. Můžete ho buď povolit při vytváření virtuálního počítače, nebo ve vlastnostech existujícího virtuálního počítače.
Povolení spravované identity přiřazené systémem na novém virtuálním počítači:
Přihlaste se k portálu Azure Portal.
Vytvoření virtuálního počítače s povolenou identitou přiřazenou systémem
Udělení přístupu
Vytvoření účtu úložiště
V této části vytvoříte účet úložiště.
V levém horním rohu webu Azure Portal vyberte tlačítko + Vytvořit prostředek.
Vyberte Storage, pak Účet úložiště – objekt blob, soubor, tabulka, fronta.
V části Název zadejte název účtu úložiště.
V polích Model nasazení a Druh účtu nastavte Resource manager a Úložiště (v1 pro obecné účely).
Ověřte, že pole Předplatné a Skupina prostředků se shodují s údaji zadanými při vytvoření virtuálního počítače v předchozím kroku.
Vyberte Vytvořit.
Vytvoření kontejneru objektů blob a nahrání souboru do účtu úložiště
Soubory vyžadují úložiště objektů blob. Proto potřebujete vytvořit kontejner objektů blob, do kterého soubor uložíte. Potom soubor nahrajete do kontejneru objektů blob v novém účtu úložiště.
Vraťte se k nově vytvořenému účtu úložiště.
V části Blob Service vyberte Kontejnery.
V horní části stránky vyberte + Kontejner .
V části Nový kontejner zadejte název kontejneru a v části Úroveň veřejného přístupu nechte výchozí hodnotu.
Na místním počítači vytvořte ve vámi vybraném editoru soubor s názvem hello world.txt. Otevřete soubor a přidejte text (bez uvozovek) „Hello world! :)“ a pak ho uložte.
Nahrajte soubor do nově vytvořeného kontejneru – klikněte na název kontejneru a vyberte Nahrát.
V podokně Nahrát objekt blob vyberte v části Soubory ikonu složky a přejděte na soubor hello_world.txt na místním počítači, vyberte soubor a pak vyberte Nahrát.
Udělení přístupu
V této části se dozvíte, jak udělit virtuálnímu počítači přístup ke kontejneru Azure Storage. Spravovanou identitu přiřazenou systémem na virtuálním počítači můžete použít k načtení dat, která jsou v úložišti Azure Storage Blob.
Vraťte se k nově vytvořenému účtu úložiště.
Vyberte Řízení přístupu (IAM) .
Výběrem možnosti Přidat>přiřazení role otevřete stránku Přidat přiřazení role.
Přiřaďte následující roli. Podrobný postup najdete v tématu Přiřazování rolí Azure s využitím webu Azure Portal.
Nastavení Hodnota Role Čtenář dat v objektech blob služby Storage Přiřadit přístup k Spravovaná identita Přiřazeno systémem Virtuální počítač Vybrat <váš virtuální počítač>
Přístup k datům
Azure Storage nativně podporuje ověřování Microsoft Entra, takže může přímo přijímat přístupové tokeny získané pomocí spravované identity. Tento přístup používá integraci služby Azure Storage s ID Microsoft Entra a liší se od zadávání přihlašovacích údajů v připojovací řetězec.
Tady je příklad kódu .NET pro otevření připojení ke službě Azure Storage. Příklad používá přístupový token a pak přečte obsah souboru, který jste vytvořili dříve. Tento kód je potřeba spustit na virtuálním počítači, aby byl možný přístup ke koncovému bodu spravované identity virtuálního počítače. K použití metody přístupového tokenu se vyžaduje rozhraní .NET Framework 4.6 nebo vyšší. Parametr <URI to blob file>
nahraďte odpovídající hodnotou. Tuto hodnotu získáte, když přejdete k vytvořenému souboru, který jste nahráli do úložiště objektů blob, a zkopírujete adresu URL, která je na stránce Přehled v části Vlastnosti.
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;
}
}
}
}
Odpověď bude obsahovat obsah souboru:
Hello world! :)
Zakázat
Pokud chcete na virtuálním počítači zakázat identitu přiřazenou systémem, nastavte stav identity přiřazené systémem na Vypnuto.
Další kroky
V tomto kurzu jste zjistili, jak identitě přiřazené systémem na virtuálním počítači s Windows povolit přístup k Azure Storage. Další informace o službě Azure Storage najdete tady: