Dela via


Självstudie: Använda en virtuell Linux-dator/VMSS för att komma åt Azure-resurser

Hanterade identiteter för Azure-resurser är en funktion i Microsoft Entra-ID. Alla Azure-tjänster som stöder hanterade identiteter för Azure-resurser har sin egen tidslinje. Var noga med att kontrollera tillgänglighetsstatus för hanterade identiteter för din resurs och kända problem innan du börjar.

Förutsättningar

Använda systemtilldelad hanterad identitet för en virtuell Linux-dator för åtkomst till Azure Data Lake Store

Den här självstudien visar hur du använder en systemtilldelad hanterad identitet för en virtuell Linux-dator (VM) för att få åtkomst till Azure Data Lake Store.

Du lär dig att:

  • Bevilja din virtuella dator åtkomst till Azure Data Lake Store.
  • Få en åtkomsttoken genom att använda den virtuella datorns systemtilldelade hanterade identitet för åtkomst till Azure Data Lake Store.

Bevilja åtkomst

Det här avsnittet visar hur du ger den virtuella datorn åtkomst till filer och mappar i Azure Data Lake Store. Du kan använda en befintlig Data Lake Store-instans eller skapa en ny för det här steget. Så här skapar du en Data Lake Store-instans med hjälp av Azure-portalen i snabbstarten för Azure Data Lake Store. Det finns även snabbstarter som använder Azure CLI och Azure PowerShell i dokumentationen om Azure Data Lake Store.

Skapa en ny mapp i Data Lake Store och ge den systemtilldelade hanterade identiteten för den virtuella Linux-datorn behörighet att läsa, skriva och köra filer i den mappen:

  1. I Azure-portalen väljer du Data Lake Store i den vänstra rutan.
  2. Välj den Data Lake Store-instans som du vill använda.
  3. Klicka på Datautforskaren i kommandofältet.
  4. Rotmappen för Data Lake Store-instansen har valts. Välj Åtkomst i kommandofältet.
  5. Markera Lägga till. I rutan Välj anger du namnet på den virtuella datorn, till exempel DevTestVM. Välj den virtuella datorn i sökresultaten och välj sedan Välj.
  6. Välj Välj behörigheter. Välj Läs och kör, lägg till i Den här mappen, lägg till som Endast åtkomstbehörighet och välj sedan Ok. Behörigheten bör nu har lagts till.
  7. Stäng den fönstret Åtkomst.
  8. Skapa en ny mapp och välj sedan Ny mapp i kommandofältet och ge den nya mappen ett namn, till exempel TestFolder och välj sedan Ok.
  9. Välj mappen som du skapade och välj sedan Åtkomst i kommandofältet.
  10. Välj Lägg till och ange sedan namnet på den virtuella datorn i rutan Välj .
  11. Välj den virtuella datorn i sökresultaten och välj sedan Välj.
  12. Välj Välj behörigheter och välj sedan Läs och sedan Skriv och Kör.
  13. Välj att lägga till i den här mappen och lägg sedan till som En åtkomstbehörighetspost och en standardbehörighetspost och välj sedan Ok. Behörigheten bör nu har lagts till.

Hanterade identiteter för Azure-resurser kan nu utföra alla åtgärder på filer i mappen du har skapat. Mer information om hur du hanterar åtkomst till Data Lake Store finns i Åtkomstkontroll i Data Lake Store.

Hämta en åtkomsttoken

Det här avsnittet visar hur du hämtar en åtkomsttoken och anropar Data Lake Store-filsystemet. Azure Data Lake Store har inbyggt stöd för Microsoft Entra-autentisering, så att det direkt kan acceptera åtkomsttoken som hämtas via hanterade identiteter för Azure-resurser.

Om du vill autentisera till Data Lake Store-filsystemet skickar du en åtkomsttoken utfärdad av Microsoft Entra-ID till data Lake Store-filsystemets slutpunkt. Åtkomsttoken finns i ett auktoriseringshuvud i formatet Bearer \<ACCESS_TOKEN_VALUE\>. Mer information om Data Lake Store-stöd för Microsoft Entra-autentisering finns i Autentisering med Data Lake Store med Microsoft Entra-ID.

Därefter autentiserar du till REST-API:et för Data Lake Store-filsystemet med hjälp av cURL för att göra REST-begäranden.

Kommentar

Klient-SDK:er för Data Lake Store-filsystemet stöder inte ännu hanterade identiteter för Azure-resurser.

För att slutföra de här stegen behöver du en SSH-klient. Om du använder Windows kan du använda SSH-klienten i Windows-undersystemet för Linux. Om du behöver hjälp att konfigurera SSH-klientens nycklar läser du Så använder du SSH-nycklar med Windows på Azure eller Så här skapar du säkert ett offentligt och ett privat SSH-nyckelpar för virtuella Linux-datorer i Azure.

  1. I portalen bläddrar du till den virtuella Linux-datorn och väljer sedan Anslut i avsnittet Översikt.

  2. Anslut till den virtuella datorn med valfri SSH-klient.

  3. I terminalfönstret gör cURL en begäran till de lokala hanterade identiteterna Azure for Azure-resursers slutpunkt för att hämta en åtkomsttoken för Data Lake Store-filsystemet. Resursidentifieraren för Data Lake Store är https://datalake.azure.net/. Det är viktigt att inkludera avslutande snedstreck i resurs-ID.

    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   
    

    Ett lyckat svar returnerar den åtkomsttoken som du använder för att autentisera till 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"}
    
  4. Med hjälp av CURL kan du skicka en förfrågan till REST-slutpunkten för ditt Data Lake Store-filsystem för att lista mappar i rotmappen. Det här är det bästa sättet att kontrollera att allt är korrekt konfigurerat. Kopiera värdet för åtkomsttoken från föregående steg. Det är viktigt att strängen Bearer i auktoriseringshuvudet har versalt "B". Du hittar namnet på din Data Lake Store-instans i avsnittet Översikt i fönstret Data Lake Store i Azure-portalen.

    curl https://<YOUR_ADLS_NAME>.azuredatalakestore.net/webhdfs/v1/?op=LISTSTATUS -H "Authorization: Bearer <ACCESS_TOKEN>"
    

    Ett framgångsrikt svar ser ut så här:

    {"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"}]}}
    
  5. Ladda nu upp en fil till din Data Lake Store-instans. Skapa först en fil som ska laddas upp.

    echo "Test file." > Test1.txt
    
  6. Med hjälp av CURL kan du skicka en förfrågan till REST-slutpunkten för ditt Data Lake Store-filsystem för att ladda upp filen till mappen du skapade innan. Överföringen innebär en omdirigering och CURL följer omdirigeringen automatiskt.

    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' 
    

    Ett framgångsrikt svar ser ut så här:

    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
    

Slutligen kan du nu använda andra API:er för Data Lake Store-filsystemet för att lägga till filer, ladda ned filer med mera.

Använda en systemtilldelad hanterad identitet för en virtuell Linux-dator för åtkomst till Azure Storage

I den här självstudien lär du dig hur du använder en systemtilldelad hanterad identitet för en virtuell Linux-dator för att komma åt Azure Storage.

Du lär dig att:

  • Skapa ett lagringskonto
  • Skapa en blobcontainer i ett lagringskonto
  • Ge en hanterade identitet på en virtuell Linux-dator åtkomst till en Azure Storage-container
  • Hämta en åtkomsttoken och använda den för att anropa Azure Storage

Skapa ett lagringskonto

Om du vill köra CLI-skripten i det här exemplet har du två alternativ:

Skapa först ett lagringskonto.

  1. Välj knappen + Skapa en resurs i det övre vänstra hörnet i Azure-portalen.

  2. Välj Lagring och sedan Lagringskonto – blob, fil, tabell, kö.

  3. Under Namn anger du ett namn för lagringskontot.

  4. Distributionsmodell och Typ av konto ska vara inställda på Resurshanterare respektive Lagring (generell användning v1).

  5. Kontrollera att informationen under Prenumeration och Resursgrupp matchar informationen som du angav när du skapade den virtuella datorn i föregående steg.

  6. Välj Skapa.

    Skärmbild som visar skärmen för att skapa det nya lagringskontot.

Skapa en blobcontainer och ladda upp en fil till lagringskontot

Eftersom filer kräver bloblagring måste du skapa en blobcontainer som du lagrar filen i. Sedan laddar du upp en fil till blobcontainern i det nya lagringskontot.

  1. Gå till ditt nyligen skapade lagringskonto.

  2. Välj Blob Service och sedan Containrar.

  3. Välj + Container överst på sidan.

  4. Välj Ny container och ange sedan ett namn för containern.

  5. Kontrollera att offentlig åtkomstnivå är standardvärdet.

    Skärmbild som visar skärmen för att skapa lagringscontainer.

  6. Med hjälp av valfritt redigeringsprogram skapar du en fil som heter hello world.txt på den lokala datorn. Öppna filen och lägg till texten Hello world!och spara den sedan.

  7. Välj containernamnet och sedan Ladda upp. Då laddas filen upp till den nyligen skapade containern.

  8. I fönstret Ladda upp blob i avsnittet Filer väljer du mappikonen och bläddrar till filen hello_world.txt på den lokala datorn.

  9. Välj filen och välj sedan Ladda upp.

    Skärmbild som visar avsnittet ladda upp textfil.

Ge din virtuella dator åtkomst till en Azure Storage-container

Du kan använda den hanterade identiteten på den virtuella datorn till att hämta data i Azure Storage Blob. Hanterade identiteter för Azure-resurser kan användas för att autentisera mot resurser som stöder Microsoft Entra-autentisering. Bevilja åtkomst genom att tilldela rollen storage-blob-data-reader till den hanterade identiteten i omfånget för den resursgrupp som innehåller ditt lagringskonto.

Läs mer om att tilldela roller i Tilldela Azure-roller via Azure Portal.

Kommentar

Mer information om de olika roller som du kan använda för att bevilja behörigheter för lagring finns i Auktorisera åtkomst till blobar och köer med hjälp av Microsoft Entra-ID

Hämta en åtkomsttoken och använda den för att anropa Azure Storage

Azure Storage har inbyggt stöd för Microsoft Entra-autentisering, så att det direkt kan acceptera åtkomsttoken som hämtas med hjälp av en hanterad identitet. Detta är en del av Azure Storages integrering med Microsoft Entra-ID och skiljer sig från att ange autentiseringsuppgifter på niska veze.

För att kunna utföra följande steg måste du arbeta från den virtuella datorn som du skapade tidigare och du behöver en SSH-klient för att ansluta till den.

Om du använder Windows kan du använda SSH-klienten i Windows-undersystemet för Linux. Om du behöver hjälp att konfigurera SSH-klientens nycklar läser du Använda SSH-nycklar med Windows i Azure eller How to create and use an SSH public and private key pair for Linux VMs in Azure (Skapa och använda SSH-nyckelpar med privata och offentliga nycklar för virtuella Linux-datorer i Azure).

  1. Gå till Virtuella datorer i Azure-portalen, gå till din virtuella Linux-dator och välj sedan Anslutsidan Översikt. Kopiera strängen för anslutning till din virtuella dator.

  2. Anslut till den virtuella datorn med valfri SSH-klient.

  3. I terminalfönstret använder du CURL för att göra en begäran till den lokala slutpunkten för hanterad identitet för att hämta en åtkomsttoken för 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
    
  4. Använd åtkomsttoken för att få åtkomst till Azure Storage. Om du till exempel vill läsa innehållet i exempelfilen som du tidigare laddade upp till containern ersätter du värdena <STORAGE ACCOUNT>för , <CONTAINER NAME>och <FILE NAME> med de värden som du angav tidigare och <ACCESS TOKEN> med den token som returnerades i föregående steg.

    curl https://<STORAGE ACCOUNT>.blob.core.windows.net/<CONTAINER NAME>/<FILE NAME> -H "x-ms-version: 2017-11-09" -H "Authorization: Bearer <ACCESS TOKEN>"
    

    Svaret innehåller filens innehåll:

    Hello world! :)
    

Slutligen kan du även lagra token i en variabel och skicka den till det andra kommandot enligt följande:

# 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"

Använda en systemtilldelad hanterad identitet för virtuella Linux-datorer för att få åtkomst till Azure Storage via en SAS-autentiseringsuppgift

Den här självstudien visar hur du använder en systemtilldelad hanterad identitet för en virtuell Linux-dator (VM) för att hämta en SAS-autentiseringsuppgift (Storage Shared Access Signature). mer specifikt en Service SAS-autentiseringsuppgift.

Kommentar

SAS-nyckeln som genereras i den här självstudien kommer inte att begränsas/bindas till den virtuella datorn.

En tjänst-SAS beviljar begränsad åtkomst till objekt i ett lagringskonto utan att uppvisa någon kontoåtkomstnyckel. Åtkomst kan beviljas under en begränsad tid och för en specifik tjänst. Du kan använda en SAS-autentiseringsuppgift som vanligt när du utför lagringsåtgärder. till exempel när du använder Storage SDK. I den här självstudien laddar du upp och laddar ned en blob med Hjälp av Azure Storage CLI.

Du lär dig att:

  • Skapa ett lagringskonto
  • Skapa en blob-container i lagringskontot
  • Ge den virtuella datorn åtkomst till en SAS för lagringskonton i Resource Manager
  • Hämta en åtkomsttoken med hjälp av den virtuella datorns identitet och använde den när du hämtar SAS:en från Resource Manager

Skapa ett lagringskonto

Om du inte redan har ett måste du skapa ett lagringskonto. Du kan välja att hoppa över det här steget och ge den virtuella datorn systemtilldelad hanterad identitet åtkomst till nycklarna för ett befintligt lagringskonto.

  1. Välj knappen +/Skapa ny tjänst längst upp till vänster i Azure-portalen.

  2. Välj Lagring och sedan Lagringskonto. Sedan visas panelen Skapa lagringskonto .

  3. Ange ett namn för lagringskontot. Kom ihåg det här namnet eftersom du behöver det senare.

  4. Kontrollera att Distributionsmodellen är inställd på Resource Manager och att kontotypen är inställd på Generell användning.

  5. Se till att prenumerationen och resursgruppen matchar de som du angav när du skapade den virtuella datorn.

  6. Välj Skapa för att slutföra skapandet av ett lagringskonto.

    Skärmbild som visar skärmen för att skapa det nya lagringskontot.

Skapa en blob-container i lagringskontot

Senare i självstudien laddar du upp och laddar ned en fil till det nya lagringskontot. Eftersom filer kräver bloblagring måste du skapa en blobcontainer där filen ska lagras.

  1. Gå till ditt nyligen skapade lagringskonto.

  2. Välj länken Containrar i den vänstra panelen under Blob-tjänsten.

  3. Välj + Container överst på sidan och sedan visas panelen Ny container .

  4. Ge containern ett namn, välj en åtkomstnivå och välj sedan OK. Du behöver det namn som du angav senare i självstudien.

    Skärmbild som visar skärmen för att skapa lagringscontainer.

Ge den virtuella datorns systemtilldelade hanterade identitet åtkomst till att använda lagrings-SAS

Azure Storage har inbyggt stöd för Microsoft Entra-autentisering, så att du kan använda den virtuella datorns systemtilldelade hanterade identitet för att hämta en lagrings-SAS från Resource Manager. Sedan kan du använda SAS för att få åtkomst till lagring.

I det här avsnittet ger du den virtuella datorns systemtilldelade hanterade identitet åtkomst till ditt lagringskontos SAS. Tilldela rollen Lagringskontodeltagare till den hanterade identiteten i omfånget för resursgruppen som innehåller ditt lagringskonto.

Läs mer om att tilldela roller i Tilldela Azure-roller via Azure Portal.

Kommentar

Mer information om de olika roller som du kan använda för att bevilja behörigheter för lagring finns i Auktorisera åtkomst till blobar och köer med hjälp av Microsoft Entra-ID.

Hämta en åtkomsttoken med hjälp av den virtuella datorns identitet och använd den för att anropa Azure Resource Manager

Under resten av den här självstudien arbetar du från den virtuella dator som du skapade tidigare.

Du behöver en SSH-klient för att slutföra de här stegen. Om du använder Windows kan du använda SSH-klienten i Windows podsistem za Linux. Om du behöver hjälp med att konfigurera SSH-klientens nycklar kan du läsa:

När du har din SSH-klient följer du dessa steg:

  1. I Azure-portalen går du till Virtuella datorer och går sedan till den virtuella Linux-datorn.
  2. På sidan Översikt väljer du Anslut överst på skärmen.
  3. Kopiera strängen för anslutning till din virtuella dator.
  4. Anslut till den virtuella datorn med hjälp av SSH-klienten.
  5. Ange ditt lösenord som du lade till när du skapade den virtuella Linux-datorn. Därefter bör du loggas in.
  6. Använd CURL och hämta en åtkomsttoken för Azure Resource Manager.

CURL-begäran och -svar för åtkomsttoken visas nedan:

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    

Kommentar

I föregående begäran måste värdet för parametern resource vara en exakt matchning för vad som förväntas av Microsoft Entra-ID. När du använder Azure Resource Manager-resurs-ID:t måste du ta med det avslutande snedstrecket i URI:n.

I följande svar har elementet access_token förkortats för korthet.

{
  "access_token":"eyJ0eXAiOiJ...",
  "refresh_token":"",
  "expires_in":"3599",
  "expires_on":"1504130527",
  "not_before":"1504126627",
  "resource":"https://management.azure.com",
  "token_type":"Bearer"
}

Hämta en SAS-autentiseringsuppgift från Azure Resource Manager om du vill göra lagringsanrop

Använd sedan CURL för att anropa Resource Manager med hjälp av den åtkomsttoken som vi hämtade i föregående avsnitt. Använd detta för att skapa en SAS-autentiseringsuppgift för lagring. När du har SAS-autentiseringsuppgifterna kan du anropa åtgärder för uppladdning/nedladdning av lagring.

För den här begäran använder du följande HTTP-begäransparametrar för att skapa SAS-autentiseringsuppgifterna:

{
    "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.
}

Inkludera dessa parametrar i POST-brödtexten i begäran för SAS-autentiseringsuppgifterna. Mer information om parametrarna som krävs när du skapar en SAS-autentiseringsuppgift finns i referensen för tjänsten för SAS REST-listan.

Använd följande CURL-begäran och få SAS-autentiseringsuppgiften. Ersätt parametervärdena <SUBSCRIPTION ID>, <RESOURCE GROUP>, <STORAGE ACCOUNT NAME>, <CONTAINER NAME> och <EXPIRATION TIME> med dina egna värden. Ersätt värdet <ACCESS TOKEN> med den åtkomsttoken som du hämtade tidigare:

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>"

Kommentar

Texten i den tidigare URL:en är skiftlägeskänslig, så se till att om du använder versaler för dina resursgrupper för att återspegla den i enlighet med detta. Det är också viktigt att veta att det här är en POST-begäran, inte en GET-begäran.

CURL-svaret returnerar SAS-autentiseringsuppgiften:

{"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"} 

På en virtuell Linux-dator skapar du en exempelblobfil som ska laddas upp till din bloblagringscontainer med hjälp av följande kommando:

echo "This is a test file." > test.txt

Autentisera sedan med CLI-kommandot az storage med hjälp av SAS-autentiseringsuppgifterna och ladda sedan upp filen till blobcontainern. För det här steget måste du installera den senaste Azure CLI på den virtuella datorn, om du inte redan har gjort det.

 az storage blob upload --container-name 
                        --file 
                        --name
                        --account-name 
                        --sas-token

Svar:

Finished[#############################################################]  100.0000%
{
  "etag": "\"0x8D4F9929765C139\"",
  "lastModified": "2017-09-21T03:58:56+00:00"
}

Du kan också ladda ned filen med hjälp av Azure CLI och autentisera med SAS-autentiseringsuppgifterna.

Begäran:

az storage blob download --container-name
                         --file 
                         --name 
                         --account-name
                         --sas-token

Svar:

{
  "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
}

Använda en systemtilldelade hanterad identitet för en virtuell Linux-dator för åtkomst till Azure Storage via åtkomstnyckel

I den här självstudien lär du dig att hämta åtkomstnycklar till lagringskonton med en systemtilldelad hanterad identitet för en virtuell Linux-dator. Du kan använda en lagringsåtkomstnyckel som vanligt när du utför lagringsåtgärder. till exempel när du använder Storage SDK. I den här självstudien laddar du upp och laddar ned blobar med Hjälp av Azure CLI.

Du lär dig att:

  • Ge din virtuella dator åtkomst till åtkomstnycklar för lagringskonton i Resource Manager
  • Hämtar en åtkomsttoken med hjälp av den virtuella datorns identitet och använder den för att hämta lagringsåtkomstnycklarna från Resource Manager

Skapa ett lagringskonto

Om du inte har ett befintligt lagringskonto innan du påbörjar den här självstudien måste du skapa ett. Om du har ett befintligt lagringskonto följer du de här stegen för att ge den virtuella datorn systemtilldelad hanterad identitet åtkomst till nycklarna för ditt befintliga lagringskonto.

  1. Välj knappen +/Skapa ny tjänst längst upp till vänster i Azure-portalen.

  2. Välj Lagring och sedan Lagringskonto. Sedan visas panelen Skapa lagringskonto .

  3. Ange ett namn för lagringskontot. Kom ihåg det här namnet eftersom du behöver det senare.

  4. Kontrollera att Distributionsmodellen är inställd på Resource Manager och att kontotypen är inställd på Generell användning.

  5. Se till att prenumerationen och resursgruppen matchar de som du angav när du skapade den virtuella datorn.

  6. Välj Skapa för att slutföra skapandet av ett lagringskonto.

    Skärmbild som visar hur du skapar ett nytt lagringskonto.

Skapa en blob-container i lagringskontot

Senare i självstudien laddar du upp och laddar ned en fil till det nya lagringskontot. Eftersom filer kräver bloblagring måste du skapa en blobcontainer där filen ska lagras.

  1. Gå till ditt nyligen skapade lagringskonto.

  2. Välj länken Containrar i den vänstra panelen under Blob-tjänsten.

  3. Välj + Container överst på sidan och sedan visas panelen Ny container .

  4. Ge containern ett namn, välj en åtkomstnivå och välj sedan OK. Du behöver det namn som du angav senare i självstudien.

    Skärmbild som visar skapandet av en lagringscontainer.

Bevilja den virtuella datorns systemtilldelade hanterade identitet åtkomst till att använda lagringskontots åtkomstnycklar

Azure Storage stöder inte Microsoft Entra-autentisering internt. Du kan dock använda den virtuella datorns systemtilldelade hanterade identitet för att hämta en lagrings-SAS från Resource Manager och sedan använda SAS för att komma åt lagringen. I det här steget ger du den virtuella datorns systemtilldelade hanterade identitet åtkomst till SAS för lagringskontot. Bevilja åtkomst genom att tilldela rollen Lagringskontodeltagare till den hanterade identiteten i omfånget för resursgruppen som innehåller ditt lagringskonto.

Läs mer om att tilldela roller i Tilldela Azure-roller via Azure Portal.

Kommentar

Mer information om de olika roller som du kan använda för att bevilja behörigheter för lagring finns i Auktorisera åtkomst till blobar och köer med hjälp av Microsoft Entra-ID.

Hämta en åtkomsttoken med hjälp av den virtuella datorns identitet och använd den för att anropa Azure Resource Manager

Under resten av självstudien arbetar vi från den virtuella dator som vi skapade tidigare.

För att slutföra de här stegen behöver du en SSH-klient. Om du använder Windows kan du använda SSH-klienten i Windows-undersystemet för Linux. Om du behöver hjälp att konfigurera SSH-klientens nycklar läser du Använda SSH-nycklar med Windows i Azure eller How to create and use an SSH public and private key pair for Linux VMs in Azure (Skapa och använda SSH-nyckelpar med privata och offentliga nycklar för virtuella Linux-datorer i Azure).

  1. Gå till Virtuella datorer i Azure-portalen, välj din virtuella Linux-dator och välj sedan Anslut överst på sidan Översikt. Kopiera strängen för anslutning till din virtuella dator.

  2. Anslut till den virtuella datorn med hjälp av SSH-klienten.

  3. Därefter måste du ange lösenordet som du lade till när du skapade den virtuella Linux-datorn.

  4. Använd CURL och hämta en åtkomsttoken för Azure Resource Manager.

    CURL-begäran och -svar för åtkomsttoken visas nedan:

    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
    

    Kommentar

    I föregående begäran måste värdet för parametern "resurs" vara en exakt matchning för vad som förväntas av Microsoft Entra-ID. När du använder Azure Resource Manager-resurs-ID:t måste du ta med det avslutande snedstrecket i URI:n. I följande svar har access_token-elementet kortats ned.

    {
      "access_token": "eyJ0eXAiOiJ...",
      "refresh_token": "",
      "expires_in": "3599",
      "expires_on": "1504130527",
      "not_before": "1504126627",
      "resource": "https://management.azure.com",
      "token_type": "Bearer"
    }
    

Hämta åtkomstnycklar för lagringskonton från Azure Resource Manager för att göra lagringsanrop

Anropa Resource Manager via CURL med hjälp av den åtkomsttoken som vi hämtade i föregående avsnitt och hämta lagringsåtkomstnyckeln. När vi har fått lagringsåtkomstnyckeln kan vi anropa uppladdnings- och nedladdningsåtgärder för lagring. Ersätt parametervärdena <SUBSCRIPTION ID>, <RESOURCE GROUP> och <STORAGE ACCOUNT NAME> med dina egna värden. Ersätt värdet <ACCESS TOKEN> med den åtkomsttoken som du hämtade tidigare:

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>" 

Kommentar

Eftersom texten i den tidigare URL:en är skiftlägeskänslig måste du använda samma skiftläge för dina resursgrupper. Dessutom är det viktigt att du är medveten om att det här är en POST-begäran, inte en GET-begäran, samt att du skickar ett värde för att registrera en längdbegränsning med -d som kan vara NULL.

CURL-svaret returnerar listan med nycklar:

{"keys":[{"keyName":"key1","permissions":"Full","value":"iqDPNt..."},{"keyName":"key2","permissions":"Full","value":"U+uI0B..."}]} 

Skapa en blob-exempelfil att ladda upp till din bloblagringscontainer. På en virtuell Linux-dator kan du göra detta med följande kommando.

echo "This is a test file." > test.txt

Sedan autentiserar du med CLI-kommandot az storage med hjälp av lagringsåtkomstnyckeln och laddar upp filen till blobcontainern. För det här steget måste du installera den senaste Azure CLI på den virtuella datorn, om du inte redan har gjort det.

az storage blob upload -c <CONTAINER NAME> -n test.txt -f test.txt --account-name <STORAGE ACCOUNT NAME> --account-key <STORAGE ACCOUNT KEY>

Svar:

Finished[#############################################################]  100.0000%
{
  "etag": "\"0x8D4F9929765C139\"",
  "lastModified": "2017-09-12T03:58:56+00:00"
}

Du kan dessutom ladda ned filen med hjälp av Azure CLI och autentisera med lagringsåtkomstnyckeln.

Begäran:

az storage blob download -c <CONTAINER NAME> -n test.txt -f test-download.txt --account-name <STORAGE ACCOUNT NAME> --account-key <STORAGE ACCOUNT KEY>

Svar:

{
  "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
}

Använda en systemtilldelad hanterad identitet för en virtuell Linux-dator för åtkomst till Azure Key Vault

Den här självstudien visar hur en virtuell Linux-dator (VM) kan använda en systemtilldelad hanterad identitet för att få åtkomst till Azure Key Vault. Key Vault gör det möjligt för klientprogrammet att sedan använda en hemlighet för att komma åt resurser som inte skyddas av Microsoft Entra-ID. Hanterade tjänstidentiteter hanteras automatiskt av Azure och gör att du kan autentisera till tjänster som stöder Microsoft Entra-autentisering, utan att inkludera autentiseringsinformation i koden.

Du lär dig att:

  • Ge din virtuella dator åtkomst till en hemlighet som lagras i Key Vault
  • Hämta en åtkomsttoken med hjälp av den virtuella datorns identitet och använd den för att hämta hemligheten från Key Vault

Skapa ett Nyckelvalv

Du behöver också en virtuell Linux-dator som har systemtilldelade hanterade identiteter aktiverade.

Dricks

Stegen i den här artikeln kan variera något beroende på vilken portal du börjar från.

Det här avsnittet visar hur du beviljar den virtuella datorn åtkomst till en hemlighet som lagras i ett Key Vault. Med hjälp av hanterade identiteter för Azure-resurser kan din kod få åtkomsttoken för att autentisera till resurser som stöder Microsoft Entra-autentisering.

Alla Azure-tjänster stöder dock inte Microsoft Entra-autentisering. Om du vill använda hanterade identiteter för Azure-resurser med dessa tjänster lagrar du autentiseringsuppgifterna för tjänsten i Azure Key Vault och får åtkomst till Key Vault och hämtar autentiseringsuppgifterna med hjälp av den virtuella datorns hanterade identitet.

Först måste du skapa ett Key Vault och ge den virtuella datorns systemtilldelade hanterade identitet åtkomst till Key Vault.

  1. Logga in på Azure-portalen.

  2. Längst upp i det vänstra navigeringsfältet väljer du Skapa en resurs.

  3. I rutan Sök på Marketplace skriver du in Key Vault och trycker på Retur.

  4. Välj Key Vault i resultatet.

  5. Välj Skapa.

  6. Ange ett namn för det nya nyckelvalvet.

    Skärmbild som visar skärmen för att skapa Azure Key Vault.

  7. Fyll i all nödvändig information och se till att du väljer den prenumeration och resursgrupp där du skapade den virtuella dator som du använder för den här självstudien.

  8. Välj Granska+ skapa och välj sedan Skapa.

Skapa en hemlighet

Därefter måste du lägga till en hemlighet i Key Vault, så att du kan hämta den senare med hjälp av kod som körs på den virtuella datorn. I det här avsnittet använder du PowerShell. Men samma begrepp gäller för alla kodkörningar på den här virtuella datorn.

  1. Navigera till ditt nyligen skapade Key Vault.

  2. Välj Hemligheter och välj sedan Lägg till.

  3. Välj Generera/Importera.

  4. I avsnittet Skapa en hemlighet går du till Alternativ för uppladdning och kontrollerar att Manuell har valts.

  5. Ange ett namn och värde för hemligheten.  Värdet kan vara vad du vill. 

  6. Lämna aktiveringsdatum och förfallodatum avmarkerat och se till att Aktiverad är inställt på Ja

  7. Välj Skapa för att skapa hemligheten.

    Skärmbild som visar hur hemligheten skapas.

Bevilja åtkomst

Den hanterade identitet som används av den virtuella datorn behöver åtkomst för att läsa hemligheten som lagras i Key Vault.

  1. Navigera till ditt nyligen skapade Key Vault.

  2. Välj Åtkomstprincip i det vänstra navigeringsfältet.

  3. Välj Lägg till åtkomstprincip.

    Skärmbild av skärmen skapa åtkomstprincip för nyckelvalvet.

  4. I avsnittet Lägg till åtkomstprincip under Konfigurera från mall (valfritt) väljer du Hemlig hantering på den nedrullningsbara menyn.

  5. Välj Välj huvudnamn och ange sedan namnet på den virtuella dator som du skapade tidigare i sökfältet.  Välj den virtuella datorn i resultatlistan och välj sedan .

  6. Markera Lägg till.

  7. Välj Spara.

Åtkomst till data

För att slutföra de här stegen behöver du en SSH-klient.  Om du använder Windows kan du använda SSH-klienten i Windows-undersystemet för Linux. Om du behöver hjälp att konfigurera SSH-klientens nycklar läser du Använda SSH-nycklar med Windows i Azure eller How to create and use an SSH public and private key pair for Linux VMs in Azure (Skapa och använda SSH-nyckelpar med privata och offentliga nycklar för virtuella Linux-datorer i Azure).

Viktigt!

Alla Azure SDK:er stöder Azure.Identity-biblioteket som gör det enkelt att hämta Microsoft Entra-token för att få åtkomst till måltjänster. Läs mer om Azure SDK:er och åtkomst till Azure.Identity-biblioteket.

  1. Gå till den virtuella Linux-datorn i portalen och välj Anslut i Översikt
  2. Anslut till den virtuella datorn med valfri SSH-klient. 
  3. I terminalfönstret använder du cURL för att göra en begäran till de lokala hanterade identiteterna för Azure-resursers slutpunkt för att hämta en åtkomsttoken för Azure Key Vault.   CURL-begäran för åtkomsttoken visas nedan.
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"} 

Du kan använda denna åtkomsttoken för att autentisera till Azure Key Vault.  Nästa CURL-begäran visar hur du kan läsa en hemlighet från Key Vault med hjälp av CURL och Key Vault REST API:et.  Du behöver URL:en för ditt Nyckelvalv, som finns i avsnittet Essentialssidan Översikt i Key Vault.  Du behöver också den åtkomsttoken som du fick vid föregående anrop. 

curl 'https://<YOUR-KEY-VAULT-URL>/secrets/<secret-name>?api-version=2016-10-01' -H "Authorization: Bearer <ACCESS TOKEN>" 

Svaret ser ut så här:

{"value":"p@ssw0rd!","id":"https://mytestkeyvault.vault.azure.net/secrets/MyTestSecret/7c2204c6093c4d859bc5b9eff8f29050","attributes":{"enabled":true,"created":1505088747,"updated":1505088747,"recoveryLevel":"Purgeable"}} 

När du har hämtat hemligheten från Key Vault kan du använda den för att autentisera till en tjänst som kräver ett namn och lösenord.

Rensa resurser

När du är redo att rensa resurserna loggar du in på Azure-portalen, väljer Resursgrupper och letar sedan upp och väljer den resursgrupp som skapades i den här självstudien, till exempel mi-test. Du kan använda kommandot Ta bort resursgrupp eller via PowerShell eller CLI.

Använda en systemtilldelad hanterad identitet för virtuell Linux-dator för att få åtkomst till en resursgrupp i Resource Manager

Dricks

Stegen i den här artikeln kan variera något beroende på vilken portal du börjar från.

I den här självstudien beskrivs hur du skapar en systemtilldelad identitet, tilldelar den till en virtuell Linux-dator (VM) och sedan använder den identiteten för att komma åt Azure Resource Manager-API:et. Hanterade tjänstidentiteter hanteras automatiskt av Azure. De möjliggör autentisering till tjänster som stöder Microsoft Entra-autentisering, utan att behöva bädda in autentiseringsuppgifter i koden.

Du lär dig att:

  • Ge den virtuella datorn åtkomst till Azure Resource Manager.
  • Hämta en åtkomsttoken med hjälp av den virtuella datorns systemtilldelade hanterade identitet för att få åtkomst till resource manager.
  1. Logga in på Azure-portalen med ditt administratörskonto.

  2. Gå till fliken Resursgrupper .

  3. Välj den resursgrupp som du vill bevilja den virtuella datorns hanterade identitetsåtkomst.

  4. Välj Åtkomstkontroll (IAM) i den vänstra panelen.

  5. Välj Lägg till och sedan Lägg till rolltilldelning.

  6. På fliken Roll väljer du Läsare. Med den här rollen kan du visa alla resurser, men du kan inte göra några ändringar.

  7. På fliken Medlemmar går du till alternativet Tilldela åtkomst till, väljer Hanterad identitet och väljer sedan + Välj medlemmar.

  8. Kontrollera att rätt prenumeration visas i listrutan Prenumeration . För Resursgrupp väljer du Alla resursgrupper.

  9. I listrutan Hantera identitet väljer du Virtuell dator.

  10. I alternativet Välj väljer du den virtuella datorn i listrutan och väljer sedan Spara.

    Skärmbild som visar hur du lägger till läsarrollen i den hanterade identiteten.

Hämta en åtkomsttoken

Använd den virtuella datorns systemtilldelade hanterade identitet och anropa resurshanteraren för att hämta en åtkomsttoken.

För att slutföra de här stegen behöver du en SSH-klient. Om du använder Windows kan du använda SSH-klienten i Windows podsistem za Linux. Om du behöver hjälp att konfigurera SSH-klientens nycklar läser du Använda SSH-nycklar med Windows i Azure eller How to create and use an SSH public and private key pair for Linux VMs in Azure (Skapa och använda SSH-nyckelpar med privata och offentliga nycklar för virtuella Linux-datorer i Azure).

  1. Gå till den virtuella Linux-datorn i Azure-portalen.
  2. I Översikt väljer du Anslut.
  3. Anslut till den virtuella datorn med valfri SSH-klient.
  4. I terminalfönstret med hjälp av curlgör du en begäran till de lokala hanterade identiteterna för Azure-resursers slutpunkt för att hämta en åtkomsttoken för Azure Resource Manager.   curl-begäran för åtkomsttoken visas nedan.
curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/' -H Metadata:true

Kommentar

Värdet för parametern resource måste vara en exakt matchning för vad som förväntas av Microsoft Entra-ID. När det gäller resurs-ID:t för resurshanteraren måste du inkludera det avslutande snedstrecket på URI:n.

Svaret innehåller den åtkomsttoken som du behöver för att få åtkomst till Azure Resource Manager.

Svar:

{
  "access_token":"eyJ0eXAiOi...",
  "refresh_token":"",
  "expires_in":"3599",
  "expires_on":"1504130527",
  "not_before":"1504126627",
  "resource":"https://management.azure.com",
  "token_type":"Bearer"
}

Använd den här åtkomsttoken för att få åtkomst till Azure Resource Manager. Om du till exempel vill läsa information om resursgruppen som du tidigare gav den här virtuella datorn åtkomst till. Ersätt värdena <SUBSCRIPTION-ID>för , <RESOURCE-GROUP>och <ACCESS-TOKEN> med de som du skapade tidigare.

Kommentar

URL:en är skiftlägeskänslig, så se till att om du använder det exakta fallet som du använde tidigare när du namngav resursgruppen och versaler "G" i resourceGroup.

curl https://management.azure.com/subscriptions/<SUBSCRIPTION-ID>/resourceGroups/<RESOURCE-GROUP>?api-version=2016-09-01 -H "Authorization: Bearer <ACCESS-TOKEN>" 

Svaret tillbaka med den specifika resursgruppsinformationen:

{
"id":"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/DevTest",
"name":"DevTest",
"location":"westus",
"properties":
{
  "provisioningState":"Succeeded"
  }
} 

Använda en användartilldelad hanterad identitet för virtuella Linux-datorer för att få åtkomst till en resursgrupp i Resource Manager

Dricks

Stegen i den här artikeln kan variera något beroende på vilken portal du börjar från.

I den här självstudien beskrivs hur du skapar en användartilldelad identitet, tilldelar den till en virtuell Linux-dator (VM) och sedan använder den identiteten för att komma åt Azure Resource Manager-API:et. Hanterade tjänstidentiteter hanteras automatiskt av Azure. De möjliggör autentisering till tjänster som stöder Microsoft Entra-autentisering, utan att behöva bädda in autentiseringsuppgifter i koden.

Du lär dig att:

  • Ge den virtuella datorn åtkomst till Azure Resource Manager.
  • Hämta en åtkomsttoken med hjälp av den virtuella datorns systemtilldelade hanterade identitet för att få åtkomst till Resource Manager.

Skapa en användartilldelad hanterad identitet med hjälp av az identity create. Parametern -g anger resursgruppen där den användartilldelade hanterade identiteten skapas, och parametern -n anger dess namn. Ersätt parametervärdena <RESOURCE GROUP> och <UAMI NAME> med dina egna värden:

Viktigt!

När du skapar användartilldelade hanterade identiteter måste namnet börja med en bokstav eller siffra och kan innehålla en kombination av alfanumeriska tecken, bindestreck (-) och understreck (_). För att tilldelningen till en virtuell dator eller vm-skalningsuppsättning ska fungera korrekt är namnet begränsat till 24 tecken. Mer information finns i Vanliga frågor och kända problem.

az identity create -g <RESOURCE GROUP> -n <UAMI NAME>

Svaret innehåller information om den användartilldelade hanterade identiteten som skapats, liknande den i följande exempel. Notera id-värdet för den användartilldelade hanterade identiteten. Du behöver det i nästa steg:

{
"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-0b0b-1c1c-2d2d-333333333333",
"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"
}

Tilldela en identitet till din virtuella Linux-dator

En användartilldelad hanterad identitet kan användas av klienter på flera Azure-resurser. Använd följande kommandon för att tilldela den användartilldelade hanterade identiteten till en enskild virtuell dator. Använd egenskapen Id som returnerades i föregående steg för -IdentityID-parametern.

Tilldela den användartilldelade hanterade identiteten till din virtuella Linux-dator med hjälp av az vm identity assign. Ersätt parametervärdena <RESOURCE GROUP> och <VM NAME> med dina egna värden. Använd egenskapen id som returnerades i föregående steg för --identities-parametervärdet.

az vm identity assign -g <RESOURCE GROUP> -n <VM NAME> --identities "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<UAMI NAME>"

Bevilja åtkomst till en resursgrupp i Azure Resource Manager

Hanterade identiteter är identiteter som din kod kan använda för att begära åtkomsttoken för att autentisera till resurs-API:er som stöder Microsoft Entra-autentisering. I den här självstudiekursen använder koden Azure Resource Manager-API:et.

Innan koden kan komma åt API:et måste du ge identiteten åtkomst till en resurs i Azure Resource Manager. I det här fallet resursgruppen där den virtuella datorn finns. Uppdatera värdet för <SUBSCRIPTION ID> och <RESOURCE GROUP> baserat på din miljö. Ersätt även <UAMI PRINCIPALID> med principalId-egenskapen som returnerades av kommandot az identity create i Skapa en användartilldelad hanterad identitet:

az role assignment create --assignee <UAMI PRINCIPALID> --role 'Reader' --scope "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/<RESOURCE GROUP> "

Svaret innehåller information om rolltilldelningen som skapats, liknande den i följande exempel:

{
  "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"
}

Hämta en åtkomsttoken med hjälp av den virtuella datorns identitet och använd den för att anropa Resource Manager

Dricks

Stegen i den här artikeln kan variera något beroende på vilken portal du börjar från.

Under resten av självstudien arbetar du från den virtuella dator som du skapade tidigare.

För att slutföra de här stegen behöver du en SSH-klient. Om du använder Windows kan du använda SSH-klienten i Windows-undersystemet för Linux.

  1. Logga in på Azure-portalen.

  2. Gå till Virtuella datorer på portalen, gå till den virtuella Linux-datorn och klicka sedan på Anslut under Översikt. Kopiera strängen för anslutning till din virtuella dator.

  3. Anslut till den virtuella datorn med valfri SSH-klient. Om du använder Windows kan du använda SSH-klienten i Windows-undersystemet för Linux. Om du behöver hjälp att konfigurera SSH-klientens nycklar läser du Använda SSH-nycklar med Windows i Azure eller How to create and use an SSH public and private key pair for Linux VMs in Azure (Skapa och använda SSH-nyckelpar med privata och offentliga nycklar för virtuella Linux-datorer i Azure).

  4. I terminalfönstret använder du CURL för att göra en begäran till IMDS-identitetsslutpunkten (Azure Instance Metadata Service) för att hämta en åtkomsttoken för Azure Resource Manager.

    CURL-begäran om att hämta en åtkomsttoken visas i följande exempel. Ersätt <CLIENT ID> med clientId-egenskapen som returnerades av kommandot az identity create i Skapa en användartilldelad hanterad identitet:

    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>"
    

    Kommentar

    Värdet för parametern resource måste vara en exakt matchning för vad som förväntas av Microsoft Entra-ID. När du använder Resource Manager-resurs-ID:t måste du ta med det avslutande snedstrecket i URI:n.

    Svaret innehåller den åtkomsttoken som du behöver för att komma åt Azure Resource Manager.

    Svarsexempel:

    {
    "access_token":"eyJ0eXAiOi...",
    "refresh_token":"",
    "expires_in":"3599",
    "expires_on":"1504130527",
    "not_before":"1504126627",
    "resource":"https://management.azure.com",
    "token_type":"Bearer"
    } 
    
  5. Använd åtkomsttoken för att komma åt Azure Resource Manager och läs egenskaperna för den resursgrupp som du tidigare gav din användartilldelade hanterade identitetsåtkomst till. Ersätt <SUBSCRIPTION ID> och <RESOURCE GROUP> med de värden som du angav tidigare, och <ACCESS TOKEN> med den token som returnerades i föregående steg.

    Kommentar

    URL:en är skiftlägeskänslig, så se till att använda exakt samma fall som du använde tidigare när du namngav resursgruppen och versaler "G" i resourceGroups.

    curl https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>?api-version=2016-09-01 -H "Authorization: Bearer <ACCESS TOKEN>" 
    

    Svaret innehåller den specifika resursgruppsinformationen, ungefär som i följande exempel:

    {
    "id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/DevTest",
    "name":"DevTest",
    "location":"westus",
    "properties":{"provisioningState":"Succeeded"}
    } 
    

Läs mer