Delen via


Zelfstudie: Een Linux-VM/VMSS gebruiken om toegang te krijgen tot Azure-resources

Vereiste voorwaarden

Gebruik een beheerde identiteit die door het Linux-VM-systeem is toegewezen om toegang te krijgen tot Azure Data Lake Store

In deze zelfstudie ziet u hoe u een door het systeem toegewezen beheerde identiteit gebruikt voor een virtuele Linux-machine (VM) om toegang te krijgen tot Azure Data Lake Store.

U leert het volgende:

  • Verleen uw VM toegang tot Azure Data Lake Store.
  • Verkrijg een toegangstoken met behulp van de door het systeem toegewezen beheerde identiteit van de VM om toegang te krijgen tot Azure Data Lake Store.

Toegang verlenen

In deze sectie ziet u hoe u uw VM toegang verleent tot bestanden en mappen in Azure Data Lake Store. Voor deze stap kunt u een bestaand Data Lake Store-exemplaar gebruiken of een nieuw exemplaar maken. Als u een Data Lake Store-exemplaar wilt maken met behulp van de Azure Portal, volgt u de quickstart van Azure Data Lake Store. Er zijn ook quickstarts die gebruikmaken van Azure CLI en Azure PowerShell in de Azure Data Lake Store-documentatie.

Maak in Data Lake Store een nieuwe map en verleen de aan het Linux-VM-systeem toegewezen beheerde identiteitsmachtiging om bestanden in die map te lezen, te schrijven en uit te voeren:

  1. Selecteer in de Azure Portal de optie Data Lake Store in het linkerdeelvenster.
  2. Selecteer het Data Lake Store-exemplaar dat u wilt gebruiken.
  3. Selecteer Gegevensverkenner op de opdrachtbalk.
  4. De hoofdmap van het Data Lake Store-exemplaar is geselecteerd. Selecteer Toegang op de opdrachtbalk.
  5. Selecteer Toevoegen. Voer in het vak Selecteren de naam van uw VM in. bijvoorbeeld DevTestVM. Selecteer uw VM in de zoekresultaten en selecteer vervolgens Selecteren.
  6. Selecteer Machtigingen selecteren. Selecteer Lezen en uitvoeren, voeg toe aan deze map, voeg toe als Alleen toegangsmachtiging en selecteer vervolgens Ok. De machtiging moet met succes zijn toegevoegd.
  7. Sluit het deelvenster Toegang .
  8. Maak een nieuwe map, selecteer vervolgens Nieuwe map op de opdrachtbalk en geef de nieuwe map een naam; bijvoorbeeld TestMap en selecteer vervolgens Ok.
  9. Selecteer de map die u hebt gemaakt en selecteer vervolgens Toegang op de opdrachtbalk.
  10. Selecteer Toevoegen en voer vervolgens in het vak Selecteren de naam van uw VM in.
  11. Selecteer uw VM in de zoekresultaten en selecteer vervolgens Selecteren.
  12. Selecteer Machtigingen selecteren, selecteer vervolgens Lezen en vervolgens Schrijven en uitvoeren.
  13. Selecteer om toe te voegen aan deze map en voeg vervolgens toe als een toegangsmachtigingsitem en een standaardmachtigingsitem en selecteer vervolgens Ok. De machtiging moet met succes zijn toegevoegd.

Beheerde identiteiten voor Azure-resources kunnen nu alle bewerkingen uitvoeren op bestanden in de map die u hebt gemaakt. Zie Toegangsbeheer in Data Lake Store voor meer informatie over het beheren van toegang tot Data Lake Store.

Een toegangstoken opvragen

In deze sectie ziet u hoe u een toegangstoken kunt verkrijgen en het Data Lake Store-bestandssysteem kunt aanroepen. Azure Data Lake Store biedt systeemeigen ondersteuning voor Microsoft Entra-verificatie, zodat het rechtstreeks toegangstokens kan accepteren die zijn verkregen via het gebruik van beheerde identiteiten voor Azure-resources.

Als u zich wilt verifiëren bij het Data Lake Store-bestandssysteem, verzendt u een toegangstoken dat is uitgegeven door Microsoft Entra-id naar het eindpunt van het Data Lake Store-bestandssysteem. Het toegangstoken bevindt zich in een autorisatieheader in de indeling Bearer \<ACCESS_TOKEN_VALUE\>. Zie Verificatie met Data Lake Store met behulp van Microsoft Entra-ID voor meer informatie over Data Lake Store-ondersteuning voor Microsoft Entra-verificatie.

Vervolgens verifieert u zich bij de REST API voor het Data Lake Store-bestandssysteem met behulp van cURL om REST-aanvragen uit te voeren.

Opmerking

De client-SDK's voor het Data Lake Store-bestandssysteem bieden nog geen ondersteuning voor beheerde identiteiten voor Azure-resources.

Om deze stappen te doorlopen, heb je een SSH-client nodig. Als u Windows gebruikt, kunt u de SSH-client gebruiken in het Windows-subsysteem voor Linux. Als u hulp nodig hebt bij het configureren van de sleutels van uw SSH-client, raadpleegt u SSH-sleutels gebruiken met Windows op Azure of Een openbaar en privésleutelpaar SSH maken en gebruiken voor Linux-VM's in Azure.

  1. Blader in de portal naar uw Linux-VM en selecteer vervolgens in de sectie Overzichtde optie Verbinding maken.

  2. Maak verbinding met de VM met behulp van de SSH-client van uw keuze.

  3. Maak in het terminalvenster met behulp van cURL een aanvraag voor het eindpunt van de lokale beheerde identiteiten Azure voor Azure-resources om een toegangstoken op te halen voor het Data Lake Store-bestandssysteem. De resource-id voor Data Lake Store is https://datalake.azure.net/. Het is belangrijk om de schuine streep aan het einde op te nemen in de resource-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   
    

    Een succesvolle reactie retourneert het toegangstoken dat u gebruikt om te verifiëren bij 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. Door cURL te gebruiken, dient u een verzoek in bij het REST-eindpunt van uw Data Lake Store-bestandssysteem om de mappen in de hoofdmap weer te geven. Dit is de beste manier om te controleren of alles correct is geconfigureerd. Kopieer de waarde van het toegangstoken uit de vorige stap. Het is belangrijk dat de tekenreeks Bearer in de kop Autorisatie een hoofdletter 'B' heeft. U vindt de naam van uw Data Lake Store-exemplaar in de sectie Overzicht van het Data Lake Store-deelvenster in de Azure Portal.

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

    Een geslaagd antwoord ziet er als volgt uit:

    {"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. Upload nu een bestand naar uw Data Lake Store-instantie. Maak eerst een bestand om te uploaden.

    echo "Test file." > Test1.txt
    
  6. Door cURL te gebruiken, dient u een verzoek in bij het REST-eindpunt van uw Data Lake Store-bestandssysteem om het bestand te uploaden naar de map die u eerder hebt gemaakt. De upload omvat een omleiding en cURL volgt de omleiding automatisch.

    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' 
    

    Een geslaagd antwoord ziet er als volgt uit:

    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
    

Ten slotte kunt u nu andere API's voor het Data Lake Store-bestandssysteem gebruiken om bestanden toe te voegen, bestanden te downloaden en meer.

Gebruik een beheerde identiteit die door het Linux-VM-systeem is toegewezen om toegang te krijgen tot Azure Storage

In deze zelfstudie ziet u hoe u een door het systeem toegewezen beheerde identiteit gebruikt voor een virtuele Linux-machine (VM) om toegang te krijgen tot Azure Storage.

U leert het volgende:

  • Een opslagaccount maken
  • Een blobcontainer maken in een opslagaccount
  • De beheerde identiteit van de Linux-VM toegang verlenen tot een Azure Storage-container
  • Haal een toegangstoken op en gebruik deze om Azure Storage aan te roepen

Een opslagaccount maken

Als u de CLI-scripts in dit voorbeeld wilt uitvoeren, hebt u twee opties:

Maak eerst een opslagaccount.

  1. Selecteer de knop + Een resource maken in de linkerbovenhoek van de Azure Portal.

  2. Selecteer Opslag en vervolgens Opslagaccount - blob, bestand, tabel, wachtrij.

  3. Voer onder Naam een naam in voor het opslagaccount.

  4. Het implementatiemodel en het accounttype moeten worden ingesteld op Resourcebeheer en Opslag (algemeen gebruik v1).

  5. Zorg ervoor dat het abonnement en de resourcegroep overeenkomen met de nummers die u hebt opgegeven toen u uw VM in de vorige stap maakte.

  6. Klik op Creëren.

    Schermafbeelding van het scherm voor het maken van een nieuw opslagaccount.

Maak een blobcontainer en upload een bestand naar het opslagaccount

Voor bestanden is blobopslag vereist, dus u moet een blobcontainer maken waarin u het bestand wilt opslaan. Vervolgens uploadt u een bestand naar de blobcontainer in het nieuwe opslagaccount.

  1. Navigeer naar uw nieuw gemaakte opslagaccount.

  2. Selecteer Blob Service en vervolgens Containers.

  3. Selecteer + Container boven aan de pagina.

  4. Selecteer Nieuwe container en voer vervolgens een naam in voor de container.

  5. Zorg ervoor dat het niveau van openbare toegang de standaardwaarde is.

    Schermafbeelding van het scherm voor het maken van opslagcontainers.

  6. Gebruik een editor naar keuze om een bestand met de titel hello world.txt op uw lokale computer te maken. Open het bestand en voeg de tekst Hallo wereld! toe en sla het op.

  7. Selecteer de naam van de container en vervolgens Uploaden. Hiermee wordt het bestand geüpload naar de nieuw gemaakte container.

  8. Selecteer in het deelvenster Upload-blob in de sectie Bestanden het mappictogram en blader naar het bestand dathello_world.txt op uw lokale computer.

  9. Selecteer het bestand en selecteer vervolgens Uploaden.

    Screenshot van het gedeelte met het uploadtekstbestand.

Uw VM toegang verlenen tot een Azure Storage-container

U kunt de beheerde identiteit van de VM gebruiken om de gegevens in de Azure-opslagblob op te halen. Beheerde identiteiten voor Azure-resources kunnen worden gebruikt om te verifiëren bij resources die ondersteuning bieden voor Microsoft Entra-verificatie. Verleen toegang door de rol storage-blob-datareader toe te wijzen aan de beheerde identiteit binnen het bereik van de resourcegroep die uw opslagaccount bevat.

Zie Azure-rollen toewijzen met behulp van Azure Portal voor gedetailleerde stappen.

Opmerking

Voor meer informatie over de verschillende rollen die u kunt gebruiken om machtigingen voor opslag te verlenen, raadpleegt u Toegang tot blobs en wachtrijen autoriseren met behulp van Microsoft Entra-id

Haal een toegangstoken op en gebruik deze om Azure Storage aan te roepen

Azure Storage biedt native ondersteuning voor Microsoft Entra-verificatie, zodat het rechtstreeks toegangstokens kan accepteren die zijn verkregen met behulp van een beheerde identiteit. Dit maakt deel uit van de integratie van Azure Storage met Microsoft Entra-ID en verschilt van het verstrekken van referenties voor de verbindingsreeks.

Als u de volgende stappen wilt uitvoeren, moet u werken vanaf de VM die eerder is gemaakt en hebt u een SSH-client nodig om er verbinding mee te maken.

Als u Windows gebruikt, kunt u de SSH-client gebruiken in het Windows-subsysteem voor Linux. Als u hulp nodig hebt bij het configureren van de sleutels van uw SSH-client, raadpleegt u SSH-sleutels gebruiken met Windows op Azure of Een openbaar en privésleutelpaar SSH maken en gebruiken voor Linux-VM's in Azure.

  1. Navigeer in de Azure Portal naar virtuele machines, ga naar uw virtuele Linux-machine en selecteer vervolgens op de pagina Overzichtde optie Verbinding maken. Kopieer de tekenreeks om verbinding te maken met uw VM.

  2. Maak verbinding met de VM met de SSH-client van uw keuze.

  3. Gebruik in het terminalvenster CURL om een aanvraag in te dienen bij het lokale beheerde identiteitseindpunt om een toegangstoken voor Azure Storage te verkrijgen.

    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. Gebruik het toegangstoken om toegang te krijgen tot Azure Storage. Als u bijvoorbeeld de inhoud wilt lezen van het voorbeeldbestand dat u eerder naar de container hebt geüpload, vervangt u de waarden van <STORAGE ACCOUNT>, <CONTAINER NAME>en <FILE NAME> door de waarden die u eerder hebt opgegeven, en <ACCESS TOKEN> door het token dat in de vorige stap is geretourneerd.

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

    Het antwoord bevat de inhoud van het bestand:

    Hello world! :)
    

Ten slotte kunt u het token ook opslaan in een variabele en deze doorgeven aan de tweede opdracht, zoals weergegeven:

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

Gebruik een beheerde identiteit die door het Linux-VM-systeem is toegewezen om toegang te krijgen tot Azure Storage via een SAS-referentie

In deze zelfstudie ziet u hoe u een door het systeem toegewezen beheerde identiteit gebruikt voor een virtuele Linux-machine (VM) om een SAS-referentie (Shared Access Signature) voor opslag te verkrijgen; in het bijzonder een Service SAS-referentie.

Opmerking

De SAS-sleutel die in deze zelfstudie wordt gegenereerd, wordt niet beperkt/gebonden aan de VM.

Een Service SAS verleent beperkte toegang tot objecten in een opslagaccount zonder dat er een accounttoegangssleutel beschikbaar is. Toegang kan gedurende een beperkte tijd en voor een specifieke service worden verleend. U kunt een SAS-referentie zoals gewoonlijk gebruiken bij het uitvoeren van opslagbewerkingen; bijvoorbeeld bij het gebruik van de Storage SDK. In deze zelfstudie uploadt en downloadt u een blob met behulp van Azure Storage CLI.

U leert het volgende:

  • Een opslagaccount maken
  • Een blobcontainer maken in het opslagaccount
  • Uw VM toegang verlenen tot een SAS-opslagaccount in Resource Manager
  • Haal een toegangstoken op met de identiteit van uw VM en gebruik deze om de SAS op te halen uit Resource Manager

Een opslagaccount maken

Als u er nog geen heeft, moet u een opslagaccount maken. U kunt ervoor kiezen om deze stap over te slaan en uw aan het VM-systeem toegewezen beheerde identiteit toegang te verlenen tot de sleutels van een bestaand opslagaccount.

  1. Selecteer de knop +/Nieuwe service maken in de linkerbovenhoek van de Azure Portal.

  2. Selecteer Opslag, vervolgens Opslagaccount en vervolgens wordt het deelvenster Opslagaccount maken weergegeven.

  3. Voer een naam in voor het opslagaccount. Onthoud deze naam, want je hebt hem later nodig.

  4. Zorg ervoor dat het implementatiemodel is ingesteld op Resourcebeheer en dat het accounttype is ingesteld op Algemeen doel.

  5. Zorg ervoor dat het abonnement en de resourcegroep overeenkomen met de gegevens die u hebt opgegeven toen u uw VM maakte.

  6. Selecteer Maken om het maken van een opslagaccount te voltooien.

    Schermafbeelding van het scherm voor het maken van een nieuw opslagaccount.

Een blobcontainer maken in het opslagaccount

Later in de zelfstudie uploadt en downloadt u een bestand naar het nieuwe opslagaccount. Omdat voor bestanden blobopslag is vereist, moet u een blobcontainer maken waarin u het bestand wilt opslaan.

  1. Navigeer naar uw nieuw gemaakte opslagaccount.

  2. Selecteer de koppeling Containers in het linkerdeelvenster onder Blob-service.

  3. Selecteer + Container boven aan de pagina en vervolgens verschijnt het deelvenster Nieuw container .

  4. Geef de container een naam, selecteer een toegangsniveau en selecteer vervolgens OK. U hebt de naam nodig die u later in de tutorial hebt opgegeven.

    Schermafbeelding van het scherm voor het maken van opslagcontainers.

Verleen de door het systeem toegewezen beheerde identiteit van uw VM toegang tot het gebruik van een opslag-SAS

Azure Storage biedt systeemeigen ondersteuning voor Microsoft Entra-verificatie, zodat u de door het systeem toegewezen beheerde identiteit van uw VM kunt gebruiken om een opslag-SAS op te halen uit Resource Manager. Vervolgens kunt u de SAS gebruiken om toegang te krijgen tot opslag.

In deze sectie verleent u de door het systeem toegewezen beheerde identiteit van uw VM toegang tot uw opslagaccount SAS. Wijs de rol Inzender van opslagaccount toe aan de beheerde identiteit binnen het bereik van de resourcegroep die uw opslagaccount bevat.

Zie Azure-rollen toewijzen met behulp van Azure Portal voor gedetailleerde stappen.

Opmerking

Voor meer informatie over de verschillende rollen die u kunt gebruiken om machtigingen voor opslag te verlenen, raadpleegt u Toegang tot blobs en wachtrijen autoriseren met behulp van Microsoft Entra-id.

Haal een toegangstoken op met behulp van de identiteit van de VM en gebruik deze om Azure Resource Manager aan te roepen

Voor de rest van deze zelfstudie werkt u vanuit de VM die u eerder hebt gemaakt.

Je hebt een SSH-client nodig om deze stappen te doorlopen. Als u Windows gebruikt, kunt u de SSH-client gebruiken in het Windows-subsysteem voor Linux. Als je hulp nodig hebt bij het configureren van de sleutels van je SSH-client, zie:

Zodra je je SSH-client hebt, volg je deze stappen:

  1. Navigeer in de Azure Portal naar Virtual Machines en ga vervolgens naar uw virtuele Linux-machine.
  2. Selecteer op de pagina Overzicht de optie Verbinden boven aan het scherm.
  3. Kopieer de tekenreeks om verbinding te maken met uw VM.
  4. Maak verbinding met uw VM met behulp van uw SSH-client.
  5. Voer uw wachtwoord in dat u hebt toegevoegd bij het maken van de Linux-VM. U zou dan succesvol moeten zijn ingelogd.
  6. Gebruik CURL om een toegangstoken voor Azure Resource Manager te verkrijgen.

Het CURL-verzoek en antwoord voor het toegangstoken staan hieronder:

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    

Opmerking

In de vorige aanvraag moet de waarde van de resource parameter exact overeenkomen met wat wordt verwacht door Microsoft Entra ID. Wanneer u de Azure Resource Manager-resource-id gebruikt, moet u de schuine streep aan het einde van de URI opnemen.

In het volgende antwoord is het access_token element kortheidshalve ingekort.

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

Een SAS-referentie ophalen van Azure Resource Manager om opslagaanroepen te doen

Gebruik vervolgens CURL om Resource Manager aan te roepen met behulp van het toegangstoken dat we in de vorige sectie hebben opgehaald. Gebruik dit om een SAS-referentie voor opslag te maken. Zodra u de SAS-referentie hebt, kunt u upload-/downloadbewerkingen voor opslag aanroepen.

Gebruik voor deze aanvraag de volgende HTTP-aanvraagparameters om de SAS-referentie te maken:

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

Neem deze parameters op in de hoofdtekst van de POST-aanvraag voor de SAS-referentie. Zie de referentie List Service SAS REST voor meer informatie over de parameters voor het maken van een SAS-referentie.

Gebruik de volgende CURL-aanvraag om de SAS-referentie op te halen. Zorg ervoor dat u de <SUBSCRIPTION ID>waarden , <RESOURCE GROUP>, <STORAGE ACCOUNT NAME>, , <CONTAINER NAME>en <EXPIRATION TIME> parameter vervangt door uw eigen waarden. Vervang de <ACCESS TOKEN> waarde door het toegangstoken dat u eerder hebt opgehaald:

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

Opmerking

De tekst in de vorige URL is hoofdlettergevoelig, dus zorg ervoor dat als u kleine hoofdletters gebruikt voor uw brongroepen, deze dienovereenkomstig wordt weergegeven. Het is ook belangrijk om te weten dat dit een POST-verzoek is, geen GET-verzoek.

Het CURL-antwoord retourneert de SAS-referentie:

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

Maak op een Linux-VM een voorbeeldblobbestand dat u wilt uploaden naar uw blobopslagcontainer met behulp van de volgende opdracht:

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

Controleer vervolgens met de CLI-opdracht az storage met behulp van de SAS-referentie en upload het bestand vervolgens naar de blobcontainer. Voor deze stap moet u de meest recente Azure CLI op uw VM installeren, als u dat nog niet hebt gedaan.

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

U kunt het bestand ook downloaden met behulp van de Azure CLI en verifiëren met de SAS-referentie.

Aanvraag:

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
}

Gebruik een beheerde identiteit die door het Linux-VM-systeem is toegewezen om toegang te krijgen tot Azure Storage via een toegangssleutel

In deze zelfstudie ziet u hoe u een door het systeem toegewezen beheerde identiteit gebruikt voor een virtuele Linux-machine (VM) om toegangssleutels voor opslagaccounts op te halen. U kunt een toegangssleutel voor opslag zoals gewoonlijk gebruiken bij het uitvoeren van opslagbewerkingen; bijvoorbeeld bij het gebruik van de Storage SDK. Voor deze zelfstudie uploadt en downloadt u blobs met behulp van Azure CLI.

U leert het volgende:

  • Uw VM toegang verlenen tot toegangssleutels voor opslagaccounts in Resource Manager
  • Haal een toegangstoken op met de identiteit van uw VM en gebruik deze om de opslagtoegangssleutels op te halen uit Resource Manager

Een opslagaccount maken

Als u geen bestaand opslagaccount hebt voordat u met deze zelfstudie begint, moet u er een maken. Als u een bestaand opslagaccount hebt, volgt u deze stappen om uw aan het VM-systeem toegewezen beheerde identiteit toegang te verlenen tot de sleutels voor uw bestaande opslagaccount.

  1. Selecteer de knop +/Nieuwe service maken in de linkerbovenhoek van de Azure Portal.

  2. Selecteer Opslag, vervolgens Opslagaccount en vervolgens wordt het deelvenster Opslagaccount maken weergegeven.

  3. Voer een naam in voor het opslagaccount. Onthoud deze naam, want je hebt hem later nodig.

  4. Zorg ervoor dat het implementatiemodel is ingesteld op Resourcebeheer en dat het accounttype is ingesteld op Algemeen doel.

  5. Zorg ervoor dat het abonnement en de resourcegroep overeenkomen met de gegevens die u hebt opgegeven toen u uw VM maakte.

  6. Selecteer Maken om het maken van een opslagaccount te voltooien.

    Schermafbeelding van het maken van een nieuw opslagaccount.

Een blobcontainer maken in het opslagaccount

Later in de zelfstudie uploadt en downloadt u een bestand naar het nieuwe opslagaccount. Omdat voor bestanden blobopslag is vereist, moet u een blobcontainer maken waarin u het bestand wilt opslaan.

  1. Navigeer naar uw nieuw gemaakte opslagaccount.

  2. Selecteer de koppeling Containers in het linkerdeelvenster onder Blob-service.

  3. Selecteer + Container boven aan de pagina en vervolgens verschijnt het deelvenster Nieuw container .

  4. Geef de container een naam, selecteer een toegangsniveau en selecteer vervolgens OK. U hebt de naam nodig die u later in de tutorial hebt opgegeven.

    Schermafbeelding van het maken van een opslagcontainer.

Verleen de door het systeem toegewezen beheerde identiteit van uw VM toegang tot het gebruik van toegangssleutels voor opslagaccounts

Azure Storage biedt geen systeemeigen ondersteuning voor Microsoft Entra-verificatie. U kunt echter de door het systeem toegewezen beheerde identiteit van uw VM gebruiken om een opslag-SAS op te halen uit Resource Manager en vervolgens de SAS te gebruiken om toegang te krijgen tot opslag. In deze stap verleent u de door het systeem toegewezen beheerde identiteit van uw VM toegang tot uw opslagaccount SAS. Verleen toegang door de rol Inzender van opslagaccount toe te wijzen aan de beheerde identiteit binnen het bereik van de resourcegroep die uw opslagaccount bevat.

Zie Azure-rollen toewijzen met behulp van Azure Portal voor gedetailleerde stappen.

Opmerking

Voor meer informatie over de verschillende rollen die u kunt gebruiken om machtigingen voor opslag te verlenen, raadpleegt u Toegang tot blobs en wachtrijen autoriseren met behulp van Microsoft Entra-id.

Haal een toegangstoken op met behulp van de identiteit van de VM en gebruik deze om Azure Resource Manager aan te roepen

Voor de rest van de zelfstudie werken we vanuit de VM die we eerder hebben gemaakt.

Om deze stappen te doorlopen, heb je een SSH-client nodig. Als u Windows gebruikt, kunt u de SSH-client gebruiken in het Windows-subsysteem voor Linux. Als u hulp nodig hebt bij het configureren van de sleutels van uw SSH-client, raadpleegt u SSH-sleutels gebruiken met Windows op Azure of Een openbaar en privésleutelpaar SSH maken en gebruiken voor Linux-VM's in Azure.

  1. Navigeer in de Azure Portal naar Virtual Machines, selecteer uw virtuele Linux-machine en selecteer vervolgens op de pagina Overzichtde optie Verbinden bovenaan. Kopieer de tekenreeks om verbinding te maken met uw VM.

  2. Maak verbinding met uw VM met behulp van uw SSH-client.

  3. Vervolgens moet u het wachtwoord invoeren dat u hebt toegevoegd bij het maken van de Linux-VM.

  4. Gebruik CURL om een toegangstoken voor Azure Resource Manager te verkrijgen.

    Het CURL-verzoek en antwoord voor het toegangstoken staan hieronder:

    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
    

    Opmerking

    In de vorige aanvraag moet de waarde van de parameter 'resource' exact overeenkomen met wat wordt verwacht door Microsoft Entra ID. Wanneer u de Azure Resource Manager-resource-id gebruikt, moet u de schuine streep aan het einde van de URI opnemen. In de volgende reactie is het access_token element kortheidshalve ingekort.

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

Toegangssleutels voor opslagaccounts ophalen van Azure Resource Manager om opslagaanroepen te doen

Gebruik nu CURL om Resource Manager aan te roepen met behulp van het toegangstoken dat we in de vorige sectie hebben opgehaald om de toegangssleutel voor de opslag op te halen. Zodra we de toegangssleutel voor de opslag hebben, kunnen we de upload-/downloadbewerkingen van de opslag aanroepen. Zorg ervoor dat u de <SUBSCRIPTION ID>waarden , <RESOURCE GROUP>, en <STORAGE ACCOUNT NAME> parameter vervangt door uw eigen waarden. Vervang de <ACCESS TOKEN> waarde door het toegangstoken dat u eerder hebt opgehaald:

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

Opmerking

De tekst in de vorige URL is hoofdlettergevoelig, dus zorg ervoor dat als u kleine hoofdletters gebruikt voor uw brongroepen, deze dienovereenkomstig wordt weergegeven. Bovendien is het belangrijk om te weten dat dit een POST-verzoek is en geen GET-verzoek en ervoor te zorgen dat u een waarde doorgeeft om een lengtelimiet vast te leggen met -d die NULL kan zijn.

De CURL-respons geeft u de lijst met sleutels:

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

Maak een voorbeeldblobbestand dat u wilt uploaden naar uw blobopslagcontainer. Op een Linux-VM kunt u dit doen met de volgende opdracht.

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

Verifieer vervolgens met de CLI-opdracht az storage met behulp van de toegangssleutel voor opslag en upload het bestand naar de blobcontainer. Voor deze stap moet u de meest recente Azure CLI op uw VM installeren, als u dat nog niet hebt gedaan.

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

Bovendien kunt u het bestand downloaden met behulp van de Azure CLI en verifiëren met de toegangssleutel voor opslag.

Aanvraag:

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
}

Gebruik een beheerde identiteit die door het Linux-VM-systeem is toegewezen om toegang te krijgen tot Azure Key Vault

In deze zelfstudie ziet u hoe een virtuele Linux-machine (VM) een door het systeem toegewezen beheerde identiteit kan gebruiken om toegang te krijgen tot Azure Key Vault. Key Vault maakt het mogelijk voor uw clienttoepassing om vervolgens een geheim te gebruiken om toegang te krijgen tot resources die niet zijn beveiligd door Microsoft Entra ID. Beheerde service-identiteiten worden automatisch beheerd door Azure en stellen u in staat om u te verifiëren bij services die ondersteuning bieden voor Microsoft Entra-verificatie, zonder verificatiegegevens in uw code op te nemen.

U leert het volgende:

  • Uw VM toegang verlenen tot een geheim dat is opgeslagen in een sleutelkluis
  • Haal een toegangstoken op met behulp van de identiteit van de VM en gebruik deze om het geheim uit de sleutelkluis op te halen

Een sleutelkluis maken

U hebt ook een virtuele Linux-machine nodig waarvoor aan het systeem toegewezen beheerde identiteiten zijn ingeschakeld.

In deze sectie wordt beschreven hoe u uw VM toegang verleent tot een geheim dat is opgeslagen in een Key Vault. Met behulp van beheerde identiteiten voor Azure-resources kan uw code toegangstokens ophalen om te verifiëren bij resources die ondersteuning bieden voor Microsoft Entra-verificatie.

Niet alle Azure-services bieden echter ondersteuning voor Microsoft Entra-verificatie. Als u beheerde identiteiten wilt gebruiken voor Azure-resources met deze services, slaat u de servicereferenties op in Azure Key Vault en gebruikt u de beheerde identiteit van de VM om toegang te krijgen tot Key Vault om de referenties op te halen.

Eerst moet u een sleutelkluis maken en de door het systeem toegewezen beheerde identiteit van uw VM toegang verlenen tot de sleutelkluis.

  1. Meld u aan bij het Azure-portaal.

  2. Selecteer boven aan de linkernavigatiebalk de optie Een resource maken.

  3. Typ in het vak Zoeken in de marktplaats Key Vault en druk op Enter.

  4. Selecteer Key Vault in de resultaten.

  5. Klik op Creëren.

  6. Geef een naam op voor de nieuwe sleutelkluis.

    Schermafbeelding van het scherm voor het maken van de Azure Key-kluis.

  7. Vul alle vereiste gegevens in en zorg ervoor dat u het abonnement en de resourcegroep kiest waarin u de virtuele machine hebt gemaakt die u voor deze zelfstudie gebruikt.

  8. Selecteer Review+ maken en selecteer vervolgens Create.

Een geheim maken

Vervolgens moet u een geheim toevoegen aan de Key Vault, zodat u het later kunt ophalen met behulp van de code die in uw VM wordt uitgevoerd. In deze sectie gebruikt u PowerShell. Maar dezelfde concepten zijn van toepassing op elke code die in deze virtuele machine wordt uitgevoerd.

  1. Navigeer naar uw nieuw gemaakte sleutelkluis.

  2. Selecteer Geheimen en selecteer vervolgens Toevoegen.

  3. Selecteer Genereren/importeren.

  4. Ga in het gedeelte Een geheim maken naar Uploadopties en zorg ervoor dat Handmatig is geselecteerd.

  5. Voer een naam en waarde in voor het geheim.  De waarde kan alles zijn wat je wilt. 

  6. Laat de activeringsdatum en vervaldatum vrij en zorg ervoor dat Ingeschakeld is ingesteld op Ja

  7. Selecteer Maken om het geheim aan te maken.

    Screenshot van geheime creatie.

Toegang verlenen

De beheerde identiteit die door de virtuele machine wordt gebruikt, heeft toegang nodig om het geheim te lezen dat is opgeslagen in Key Vault.

  1. Navigeer naar uw nieuw gemaakte sleutelkluis.

  2. Selecteer Toegangsbeleid in de linkernavigatiebalk.

  3. Selecteer Toegangsbeleid toevoegen.

    Schermafbeelding van het scherm voor het maken van toegangsbeleid voor het maken van sleutelkluis.

  4. Kies in de sectie Toegangsbeleid toevoegen onder Configureren op basis van sjabloon (optioneel) de optie Geheimbeheer in de vervolgkeuzelijst.

  5. Kies Principal selecteren en voer vervolgens in het zoekveld de naam in van de VM die u eerder hebt gemaakt.  Selecteer de VM in de resultatenlijst en vervolgens Selecteren.

  6. Selecteer Toevoegen.

  7. Selecteer Opslaan.

Toegang tot gegevens

Om deze stappen te doorlopen, heb je een SSH-client nodig.  Als u Windows gebruikt, kunt u de SSH-client gebruiken in het Windows-subsysteem voor Linux. Als u hulp nodig hebt bij het configureren van de sleutels van uw SSH-client, raadpleegt u SSH-sleutels gebruiken met Windows op Azure of Een openbaar en privésleutelpaar SSH maken en gebruiken voor Linux-VM's in Azure.

Belangrijk

Alle Azure-SDK's ondersteunen de Azure.Identity-bibliotheek die het eenvoudig maakt om Microsoft Entra-tokens te verkrijgen voor toegang tot doelservices. Meer informatie over Azure SDK's en toegang tot de Azure.Identity-bibliotheek.

  1. Navigeer in de portal naar uw Linux-VM en selecteer in het overzicht de optie Verbinding maken
  2. Maak verbinding met de VM met de SSH-client van uw keuze. 
  3. Gebruik in het terminalvenster cURL om een aanvraag in te dienen bij de lokale beheerde identiteiten voor het eindpunt van Azure-resources om een toegangstoken voor Azure Key Vault te verkrijgen.   Het CURL-verzoek voor het toegangstoken staat hieronder.
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"} 

U kunt dit toegangstoken gebruiken om u te verifiëren bij Azure Key Vault.  In de volgende CURL-aanvraag ziet u hoe u een geheim uit Key Vault kunt lezen met behulp van CURL en de Key Vault REST API.  U hebt de URL van uw sleutelkluis nodig, die zich in de sectie Essentials van de overzichtspagina van de sleutelkluis bevindt.  U hebt ook het toegangstoken nodig dat u bij het vorige gesprek hebt verkregen. 

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

Het antwoord ziet er als volgt uit:

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

Nadat u het geheim uit de sleutelkluis hebt opgehaald, kunt u het gebruiken om u te verifiëren bij een service waarvoor een naam en wachtwoord zijn vereist.

De hulpbronnen opschonen

Wanneer u klaar bent om de resources op te schonen, meldt u zich aan bij de Azure Portal, selecteert u Resourcegroepen en zoekt en selecteert u vervolgens de resourcegroep die tijdens het proces van deze zelfstudie is gemaakt, zoals mi-test. U kunt de opdracht Resourcegroep verwijderen gebruiken of via PowerShell of CLI.

Gebruik een beheerde identiteit die door het Linux-VM-systeem is toegewezen om toegang te krijgen tot een resourcegroep in Resourcebeheer

In deze zelfstudie wordt uitgelegd hoe u een door het systeem toegewezen identiteit maakt, deze toewijst aan een Linux Virtual Machine (VM) en die identiteit vervolgens gebruikt om toegang te krijgen tot de Azure Resource Manager-API . Beheerde service-identiteiten worden automatisch beheerd door Azure. Ze maken verificatie mogelijk voor services die Microsoft Entra-verificatie ondersteunen, zonder dat u referenties in uw code hoeft in te sluiten.

U leert het volgende:

  • Verleen uw VM toegang tot Azure Resource Manager.
  • Verkrijg een toegangstoken met behulp van de door het systeem toegewezen beheerde identiteit van de VM om toegang te krijgen tot resourcebeheer.
  1. Meld u aan bij Azure Portal met uw beheerdersaccount.

  2. Navigeer naar het tabblad Resourcegroepen .

  3. Selecteer de resourcegroep waaraan u de beheerde identiteit van de VM wilt toekennen.

  4. Selecteer in het linkerdeelvenster de optie Toegangsbeheer (IAM).

  5. Selecteer Toevoegen en selecteer vervolgens Roltoewijzing toevoegen.

  6. Selecteer op het tabblad Rol de optie Lezer. Met deze rol kunt u alle resources bekijken, maar kunt u geen wijzigingen aanbrengen.

  7. Selecteer op het tabblad Leden in de optie Toegang toewijzen aande optie Beheerde identiteit en selecteer vervolgens + Leden selecteren.

  8. Zorg ervoor dat het juiste abonnement wordt vermeld in de vervolgkeuzelijst Abonnement . Selecteer bij Resourcegroep de optie Alle resourcegroepen.

  9. Selecteer in de vervolgkeuzelijst Identiteit beheren de optie Virtuele machine.

  10. Kies in de optie Selecteren uw VM in de vervolgkeuzelijst en selecteer vervolgens Opslaan.

    Schermafbeelding waarin u de lezersrol toevoegt aan de beheerde identiteit.

Een toegangstoken opvragen

Gebruik de door het systeem toegewezen beheerde identiteit van de VM en roep de resourcemanager aan om een toegangstoken te verkrijgen.

Om deze stappen te doorlopen, heb je een SSH-client nodig. Als u Windows gebruikt, kunt u de SSH-client gebruiken in het Windows-subsysteem voor Linux. Als u hulp nodig hebt bij het configureren van de sleutels van uw SSH-client, raadpleegt u SSH-sleutels gebruiken met Windows op Azure of Een openbaar en privésleutelpaar SSH maken en gebruiken voor Linux-VM's in Azure.

  1. Navigeer in de Azure Portal naar uw Linux-VM.
  2. Selecteer in het overzicht de optie Verbinden.
  3. Maak verbinding met de VM met de SSH-client van uw keuze.
  4. Maak in het terminalvenster met behulp van curl, een aanvraag indienen bij de lokale beheerde identiteiten voor het eindpunt van Azure-resources om een toegangstoken voor Azure Resource Manager op te halen.   Het curl verzoek om het toegangstoken staat hieronder.
curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/' -H Metadata:true

Opmerking

De waarde van de resource parameter moet exact overeenkomen met wat wordt verwacht door Microsoft Entra ID. In het geval van de resource-ID van resourcebeheer moet u de schuine streep aan het einde van de URI opnemen.

Het antwoord bevat het toegangstoken dat u nodig hebt om toegang te krijgen tot 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"
}

Gebruik dit toegangstoken om toegang te krijgen tot Azure Resource Manager. Bijvoorbeeld om de details te lezen van de resourcegroep waartoe u deze VM eerder toegang hebt verleend. Vervang de waarden van <SUBSCRIPTION-ID>, <RESOURCE-GROUP>en <ACCESS-TOKEN> door de waarden die u eerder hebt gemaakt.

Opmerking

De URL is hoofdlettergevoelig, dus zorg ervoor dat u de exacte hoofdletter gebruikt zoals u eerder hebt gebruikt toen u de brongroep een naam gaf, en de hoofdletter "G" in resourceGroup.

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

Het antwoord terug met de specifieke resourcegroepinformatie:

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

Gebruik een door de gebruiker toegewezen beheerde identiteit van een Linux-VM om toegang te krijgen tot een resourcegroep in Resource Manager

In deze zelfstudie wordt uitgelegd hoe u een door de gebruiker toegewezen identiteit maakt, deze toewijst aan een Linux Virtual Machine (VM) en vervolgens die identiteit gebruikt om toegang te krijgen tot de Azure Resource Manager-API . Beheerde service-identiteiten worden automatisch beheerd door Azure. Ze maken verificatie mogelijk voor services die Microsoft Entra-verificatie ondersteunen, zonder dat u referenties in uw code hoeft in te sluiten.

U leert het volgende:

  • Verleen uw VM toegang tot Azure Resource Manager.
  • Verkrijg een toegangstoken met behulp van de door het systeem toegewezen beheerde identiteit van de VM om toegang te krijgen tot Resource Manager.

Maak een door de gebruiker toegewezen beheerde identiteit met az identity create. De parameter -g geeft de resourcegroep aan waarin de door de gebruiker toegewezen beheerde identiteit wordt gemaakt en de parameter -n geeft de naam ervan aan. Vervang de parameterwaarden <RESOURCE GROUP> en <UAMI NAME> door uw eigen waarden:

Belangrijk

Wanneer u door de gebruiker toegewezen beheerde identiteiten maakt, moet de naam beginnen met een letter of cijfer en kan een combinatie van alfanumerieke tekens, afbreekstreepjes (-) en onderstrepingstekens (_) bevatten. Voor een goede werking van de toewijzing aan een virtuele machine of virtuele-machineschaalset, moet de naam beperkt zijn tot 24 tekens. Zie Veelgestelde vragen en bekende problemen voor meer informatie.

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

Het antwoord bevat details voor de door de gebruiker toegewezen beheerde identiteit die is gemaakt, vergelijkbaar met het volgende voorbeeld. Noteer de waarde voor uw door de gebruiker toegewezen beheerde id identiteit, aangezien deze in de volgende stap wordt gebruikt:

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

Een identiteit toewijzen aan uw Linux-VM

Een door de gebruiker toegewezen beheerde identiteit kan worden gebruikt door clients op meerdere Azure-resources. Gebruik de volgende opdrachten om de door de gebruiker toegewezen beheerde identiteit toe te wijzen aan één VM. Gebruik de Id eigenschap die in de vorige stap is geretourneerd voor de -IdentityID parameter.

Wijs de door de gebruiker toegewezen beheerde identiteit toe aan uw Linux-VM met behulp van az vm identity assign. Vervang de parameterwaarden <RESOURCE GROUP> en <VM NAME> door uw eigen waarden. Gebruik de id eigenschap die in de vorige stap is geretourneerd voor de --identities parameterwaarde.

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

Toegang verlenen tot een resourcegroep in Azure Resource Manager

Beheerde identiteiten zijn identiteiten die uw code kan gebruiken om toegangstokens aan te vragen om te verifiëren bij resource-API's die ondersteuning bieden voor Microsoft Entra-verificatie. In deze zelfstudie heeft uw code toegang tot de Azure Resource Manager-API.

Voordat uw code toegang heeft tot de API, moet u de identiteitstoegang verlenen aan een resource in Azure Resource Manager. In dit geval de resourcegroep waarin de VM zich bevindt. Werk de waarde bij voor <SUBSCRIPTION ID> en <RESOURCE GROUP> indien van toepassing voor uw omgeving. Vervang <UAMI PRINCIPALID> bovendien door de principalId eigenschap die wordt geretourneerd door de opdracht az identity create de gebruiker toegewezen beheerde identiteit maken:

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

Het antwoord bevat details voor de gemaakte roltoewijzing, vergelijkbaar met het volgende voorbeeld:

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

Haal een toegangstoken op met behulp van de identiteit van de VM en gebruik deze om Resource Manager aan te roepen

Voor de rest van de zelfstudie werkt u vanuit de VM die u eerder hebt gemaakt.

Om deze stappen te doorlopen, heb je een SSH-client nodig. Als u Windows gebruikt, kunt u de SSH-client gebruiken in het Windows-subsysteem voor Linux.

  1. Meld u aan bij het Azure-portaal.

  2. Navigeer in de portal naar Virtuele machines en ga naar de virtuele Linux-machine en klik in het overzicht op Verbinden. Kopieer de tekenreeks om verbinding te maken met uw VM.

  3. Maak verbinding met de VM met de SSH-client van uw keuze. Als u Windows gebruikt, kunt u de SSH-client gebruiken in het Windows-subsysteem voor Linux. Als u hulp nodig hebt bij het configureren van de sleutels van uw SSH-client, raadpleegt u SSH-sleutels gebruiken met Windows op Azure of Een openbaar en privésleutelpaar SSH maken en gebruiken voor Linux-VM's in Azure.

  4. Gebruik in het terminalvenster CURL om een aanvraag in te dienen bij het identiteitseindpunt van de Azure Instance Metadata Service (IMDS) om een toegangstoken voor Azure Resource Manager op te halen.

    De CURL-aanvraag voor het verkrijgen van een toegangstoken wordt in het volgende voorbeeld weergegeven. Zorg ervoor dat u de <CLIENT ID> eigenschap vervangt clientId die wordt geretourneerd door de opdracht in az identity create gebruiker toegewezen beheerde identiteit maken:

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

    Opmerking

    De waarde van de resource parameter moet exact overeenkomen met wat wordt verwacht door Microsoft Entra ID. Wanneer u de resource-id van Resource Manager gebruikt, moet u de schuine streep aan het einde van de URI opnemen.

    Het antwoord bevat het toegangstoken dat u nodig hebt om toegang te krijgen tot Azure Resource Manager.

    Antwoordvoorbeeld:

    {
    "access_token":"eyJ0eXAiOi...",
    "refresh_token":"",
    "expires_in":"3599",
    "expires_on":"1504130527",
    "not_before":"1504126627",
    "resource":"https://management.azure.com",
    "token_type":"Bearer"
    } 
    
  5. Gebruik het toegangstoken om toegang te krijgen tot Azure Resource Manager en lees de eigenschappen van de resourcegroep waaraan u eerder uw door de gebruiker toegewezen beheerde identiteitstoegang hebt verleend. Zorg ervoor dat u <SUBSCRIPTION ID>vervangt , <RESOURCE GROUP> met de waarden die u eerder hebt opgegeven en <ACCESS TOKEN> met het token dat in de vorige stap is geretourneerd.

    Opmerking

    De URL is hoofdlettergevoelig, dus zorg ervoor dat u exact dezelfde hoofdletters gebruikt die u eerder hebt gebruikt toen u de brongroep een naam gaf, en de hoofdletter "G" in resourceGroups.

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

    Het antwoord bevat de specifieke brongroepgegevens, vergelijkbaar met het volgende voorbeeld:

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

Meer informatie