Delen via


Zelfstudie: Een Virtuele Linux-machine/VMSS gebruiken voor toegang tot Azure-resources

Beheerde identiteiten voor Azure-resources is een functie van Microsoft Entra ID. Voor alle Azure-services die beheerde identiteiten voor Azure-resources ondersteunen, geldt een eigen tijdlijn. Controleer de beschikbaarheidsstatus van beheerde identiteiten voor uw resource en eventuele bekende problemen voordat u begint.

Vereisten

Een door het Linux-VM-systeem toegewezen beheerde identiteit gebruiken voor toegang tot Azure Data Lake Store

Deze zelfstudie laat zien hoe u toegang krijgt tot Azure Data Lake Store met een door het systeem toegewezen beheerde identiteit voor een virtuele Linux-machine (VM).

U leert het volgende:

  • Uw virtuele machine toegang verlenen tot Azure Data Lake Storage.
  • Een toegangstoken ophalen met behulp van de door het systeem toegewezen beheerde identiteit voor de Linux-VM om toegang te krijgen tot Azure Data Lake Storage.

Toegang verlenen

In deze sectie leert u hoe u uw VM toegang tot bestanden en mappen in Azure Data Lake Storage kunt verlenen. Voor deze stap kunt u een bestaand Data Lake Storage-exemplaar gebruiken, of een nieuw exemplaar maken. Als u een Data Lake Storage wilt maken met behulp van Azure Portal, volgt u deze snelstart voor Azure Data Lake Storage. Er zijn ook snelstarts in de documentatie over Azure Data Lake Storage voor het gebruik van Azure CLI en Azure Powershell.

Maak in Data Lake Store een nieuwe map en verwijs de door het Linux-VM-systeem toegewezen beheerde identiteit machtigingen voor het lezen, schrijven en uitvoeren van bestanden in die map:

  1. Selecteer in Azure Portal Data Lake Storage in het linkerdeelvenster.
  2. Selecteer het Data Lake Storage-exemplaar dat u wilt gebruiken.
  3. Selecteer Data Explorer in de opdrachtbalk.
  4. De hoofdmap van het Data Lake Storage-exemplaar wordt geselecteerd. Selecteer Toegang op de opdrachtbalk.
  5. Selecteer Toevoegen. Voer in het vak Selecteren de naam van uw VIRTUELE machine in, bijvoorbeeld DevTestVM. Selecteer uw virtuele machine in de zoekresultaten en selecteer vervolgens Selecteren.
  6. Selecteer Machtigingen selecteren. Selecteer Lezen en uitvoeren, voeg deze toe aan deze map, voeg deze alleen toe als toegangsmachtiging en selecteer vervolgens OK. De machtiging wordt toegevoegd.
  7. Sluit het deelvenster Toegang.
  8. Maak een nieuwe map en selecteer Vervolgens Nieuwe map op de opdrachtbalk en geef de nieuwe map een naam op, bijvoorbeeld TestFolder en selecteer Vervolgens OK.
  9. Selecteer de map die u hebt gemaakt en selecteer vervolgens Access op de opdrachtbalk.
  10. Selecteer Toevoegen en voer vervolgens in het vak Selecteren de naam van uw virtuele machine in.
  11. Selecteer uw virtuele machine in de zoekresultaten en selecteer vervolgens Selecteren.
  12. Selecteer Machtigingen selecteren en selecteer vervolgens Lezen en Vervolgens Schrijven en Uitvoeren.
  13. Selecteer deze optie om aan deze map toe te voegen en vervolgens toe te voegen als een toegangsmachtigingsvermelding en een standaardmachtigingsvermelding, en selecteer vervolgens OK. De machtiging wordt toegevoegd.

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

Een toegangstoken opvragen

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

Als u zich wilt verifiëren bij het Data Lake Store-bestandssysteem, verzendt u een toegangstoken dat is uitgegeven door Microsoft Entra ID naar uw Data Lake Store-bestandssysteemeindpunt. 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 de REST API voor het Data Lake Store-bestandssysteem met behulp van cURL om REST-aanvragen te doen.

Notitie

Beheerde identiteiten voor Azure-resources worden nog niet ondersteund in de client-SDK's van het Data Lake Storage-bestandssysteem.

U hebt een SSH-client nodig om deze stappen uit te voeren. Als u Windows gebruikt, kunt u de SSH-client in het Windows-subsysteem voor Linux gebruiken. Zie De sleutels van uw SSH-client gebruiken onder Windows in Azure of Een sleutelpaar met een openbare SSH-sleutel en een privé-sleutel maken en gebruiken voor virtuele Linux-machines in Azure als u hulp nodig hebt bij het configureren van de sleutels van uw SSH-client.

  1. Blader in de portal naar uw Virtuele Linux-machine en selecteer vervolgens in de sectie Overzicht de optie Verbinding maken.

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

  3. In het terminalvenster doet u met cURL een aanvraag naar het eindpunt van de lokale beheerde identiteiten van Azure voor Azure-resources om een toegangstoken voor het Data Lake Store-bestandssysteem op te halen. De resource-id voor Data Lake Storage is https://datalake.azure.net/. Het is belangrijk om de afsluitende slash in de resource-id op te nemen.

    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 succesvol antwoord retourneert het toegangstoken dat u gebruikt voor verificatie bij Data Lake Storage:

    {"access_token":"eyJ0eXAiOiJ...",
     "refresh_token":"",
     "expires_in":"3599",
     "expires_on":"1508119757",
     "not_before":"1508115857",
     "resource":"https://datalake.azure.net/",
     "token_type":"Bearer"}
    
  4. Verzend met behulp van cURL een aanvraag naar het REST-eindpunt van het Data Lake Storage-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 autorisatieheader de hoofdletter 'B' heeft. U vindt de naam van uw Data Lake Store-exemplaar in de sectie Overzicht van het deelvenster Data Lake Store in Azure Portal.

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

    Een geslaagde respons 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-exemplaar. Maak eerst een bestand om te uploaden.

    echo "Test file." > Test1.txt
    
  6. Verzend met behulp van cURL een aanvraag naar het REST-eindpunt van uw Data Lake Storage-bestandssysteem om het bestand te uploaden naar de map die u eerder hebt gemaakt. Het uploaden 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 geslaagde respons 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.

Een door het Linux-VM-systeem toegewezen beheerde identiteit gebruiken voor toegang tot Azure Storage

Deze zelfstudie laat zien hoe u toegang krijgt tot Azure Storage met een door het systeem toegewezen beheerde identiteit voor een virtuele Linux-machine (VM).

U leert het volgende:

  • Een opslagaccount maken
  • Een blobcontainer in een opslagaccount maken
  • De beheerde identiteit van de Linux-VM toegang geven tot een Azure Storage-container
  • Een toegangstoken ophalen en daarmee Azure Storage aanroepen

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 Azure Portal.

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

  3. Geef onder Naam een naam voor het opslagaccount op.

  4. Implementatiemodel en Soort account moeten respectievelijk worden ingesteld op Resource Manager en Storage (algemeen gebruik v1).

  5. Zorg ervoor dat de waarden van Abonnement en Resourcegroep overeenkomen met de waarden die u hebt opgegeven bij het maken van de virtuele machine in de vorige stap.

  6. Selecteer Maken.

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

Een blobcontainer maken en een bestand naar het opslagaccount uploaden

Voor bestanden is blobopslag nodig, dus moeten we een blobcontainer maken waarin het bestand kan worden opgeslagen. Vervolgens uploadt u een bestand naar de blobcontainer in het nieuwe opslagaccount.

  1. Ga naar het zojuist 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 openbare toegangsniveau de standaardwaarde is.

    Schermopname van het scherm voor het maken van opslagcontainers.

  6. Maak met behulp van een editor naar keuze een bestand met de naam hello_world.txt op uw lokale computer. Open het bestand en voeg de tekst Hallo wereld toe en sla het op.

  7. Selecteer de containernaam en vervolgens Uploaden. Hiermee wordt het bestand geüpload naar de zojuist gemaakte container.

  8. Selecteer in het deelvenster Blob uploaden in de sectie Bestanden het mappictogram en blader naar het bestand hello_world.txt op uw lokale computer.

  9. Selecteer het bestand en selecteer vervolgens Uploaden.

    Schermopname van de sectie Tekstbestand uploaden.

Uw virtuele machine toegang verlenen tot een Azure Storage-container

U kunt de beheerde identiteit van de virtuele machine gebruiken om de gegevens in de Azure Storage-blob 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-data-reader toe te wijzen aan de beheerde identiteit binnen het bereik van de resourcegroep die uw opslagaccount bevat.

Raadpleeg Azure-rollen toewijzen met Azure Portal voor informatie over het toewijzen van rollen.

Notitie

Voor meer informatie over de verschillende rollen die u kunt gebruiken om machtigingen te verlenen voor opslagbeoordeling Autoriseren van toegang tot blobs en wachtrijen met behulp van Microsoft Entra-id

Een toegangstoken ophalen en daarmee Azure Storage aanroepen

Azure Storage biedt systeemeigen ondersteuning voor Microsoft Entra-verificatie, zodat toegangstokens die zijn verkregen via een beheerde identiteit rechtstreeks kunnen worden geaccepteerd. Dit maakt deel uit van de integratie van Azure Storage met Microsoft Entra ID en verschilt van het opgeven van referenties op de verbindingsreeks.

Om de volgende stappen te voltooien, moet u werken met de eerder gemaakte VM, en u hebt een SSH-client nodig om daar verbinding mee te maken.

Als u Windows gebruikt, kunt u de SSH-client in het Windows-subsysteem voor Linux gebruiken. Zie De sleutels van uw SSH-client gebruiken onder Windows in Azure of Een sleutelpaar met een openbare SSH-sleutel en een privé-sleutel maken en gebruiken voor virtuele Linux-machines in Azure als u hulp nodig hebt bij het configureren van de sleutels van uw SSH-client.

  1. Navigeer in Azure Portal naar Virtuele machines, ga naar uw virtuele Linux-machine en selecteer vervolgens op de pagina Overzicht verbinding maken. Kopieer de verbindingsreeks voor uw virtuele machine.

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

  3. Dien in het terminalvenster met behulp van CURL een aanvraag in op het lokale beheerde identiteit-eindpunt om een toegangstoken voor Azure Storage op te halen.

    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 van het voorbeeldbestand wilt lezen 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 dit doorgeven aan de tweede opdracht, zoals wordt 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"

Een door het Linux-VM-systeem toegewezen beheerde identiteit gebruiken voor toegang tot Azure Storage via een SAS-referentie

In deze zelfstudie leert 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; met name een SAS-referentie voor de service.

Notitie

De SAS-sleutel die in deze zelfstudie wordt gegenereerd, is niet beperkt tot/gebonden aan de virtuele machine.

Een service-SAS biedt beperkte toegang tot objecten in een opslagaccount zonder dat een toegangssleutel voor het account wordt weergegeven. Toegang kan gedurende een beperkte tijd en voor een specifieke service worden verleend. U kunt een SAS-referentie zoals gebruikelijk gebruiken bij het uitvoeren van opslagbewerkingen; Bijvoorbeeld wanneer u de Storage SDK gebruikt. In deze zelfstudie uploadt en downloadt u een blob met behulp van Azure Storage CLI.

U leert het volgende:

  • Een opslagaccount maken
  • Een blobcontainer in het opslagaccount maken
  • Uw virtuele machine toegang verlenen tot een SAS voor een opslagaccount in Resource Manager
  • Een toegangstoken ophalen met de identiteit van de virtuele machine, en daarmee de SAS ophalen uit Resource Manager

Een opslagaccount maken

Als u er nog geen hebt, moet u een opslagaccount maken. U kunt deze stap overslaan en uw door het VM-systeem toegewezen beheerde identiteit toegang verlenen tot de sleutels van een bestaand opslagaccount.

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

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

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

  4. Zorg ervoor dat het implementatiemodel is ingesteld op Resource Manager en het accounttype is ingesteld op Algemeen gebruik.

  5. Zorg ervoor dat het abonnement en de resourcegroep overeenkomen met de abonnementen die u hebt opgegeven bij het maken van uw virtuele machine.

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

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

Een blobcontainer in het opslagaccount maken

Verderop 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 het bestand moet worden opgeslagen.

  1. Ga naar het zojuist gemaakte opslagaccount.

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

  3. Selecteer + Container boven aan de pagina en vervolgens wordt er een deelvenster Nieuwe container weergegeven.

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

    Schermopname van het scherm voor het maken van opslagcontainers.

De door het systeem toegewezen beheerde identiteit voor uw VM toegang verlenen tot het gebruik van een SAS-opslag

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 voor toegang tot opslag.

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

Raadpleeg Azure-rollen toewijzen met Azure Portal voor informatie over het toewijzen van rollen.

Notitie

Voor meer informatie over de verschillende rollen die u kunt gebruiken om machtigingen te verlenen voor opslagbeoordeling Autoriseren van toegang tot blobs en wachtrijen met behulp van Microsoft Entra-id.

Een toegangstoken ophalen met behulp van de identiteit van de virtuele machine en daarmee Azure Resource Manager aanroepen

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

U hebt een SSH-client nodig om deze stappen uit te voeren. Als u Windows gebruikt, kunt u de SSH-client in het Windows-subsysteem voor Linux gebruiken. Als u hulp nodig hebt bij het configureren van de sleutels van uw SSH-client, raadpleegt u:

Zodra u uw SSH-client hebt, voert u de volgende stappen uit:

  1. Navigeer in Azure Portal naar Virtuele machines en ga vervolgens naar uw virtuele Linux-machine.
  2. Selecteer op de pagina Overzicht de optie Verbinding maken boven aan het scherm.
  3. Kopieer de verbindingsreeks voor uw virtuele machine.
  4. Maak verbinding met uw virtuele machine via de SSH-client.
  5. Voer uw wachtwoord in dat u hebt toegevoegd bij het maken van de Virtuele Linux-machine. Als het goed is, bent u daarna aangemeld.
  6. Gebruik CURL om een toegangstoken voor Azure Resource Manager op te halen.

Hieronder ziet u de CURL-aanvraag en de reactie voor het toegangstoken:

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    

Notitie

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

In het volgende antwoord is het element access_token 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 uit Azure Resource Manager om opslagaanroepen te maken

Gebruik VERVOLGENS CURL om Resource Manager aan te roepen met behulp van het toegangstoken dat we in de vorige sectie hebben opgehaald. Gebruik deze 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 naslaginformatie over REST voor het weergeven van service-SAS 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. Vervang de parameterwaarden <SUBSCRIPTION ID>, <RESOURCE GROUP>, <STORAGE ACCOUNT NAME>, <CONTAINER NAME> en <EXPIRATION TIME> door uw eigen waarden. Vervang de waarde <ACCESS TOKEN> 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>"

Notitie

De tekst in de vorige URL is hoofdlettergevoelig. Zorg er dus voor dat u hoofdletters gebruikt voor uw resourcegroepen om deze dienovereenkomstig weer te geven. Het is ook belangrijk om te weten dat dit een POST-aanvraag is, niet een GET-aanvraag.

De SAS-referentie wordt geretourneerd in de CURL-reactie:

{"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 Virtuele Linux-machine een voorbeeldblobbestand om te uploaden naar uw blobopslagcontainer met behulp van de volgende opdracht:

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

Verifieer 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 nieuwste versie van Azure CLI installeren op de virtuele machine, als u dat nog niet gedaan hebt.

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

Een door het Linux-VM-systeem toegewezen beheerde identiteit gebruiken voor toegang tot Azure Storage via een toegangssleutel

Deze zelfstudie laat zien hoe u toegangssleutels voor opslagaccounts kunt ophalen met een door het systeem toegewezen beheerde identiteit voor een virtuele Linux-machine (VM). U kunt een opslagtoegangssleutel zoals gebruikelijk gebruiken bij het uitvoeren van opslagbewerkingen; Bijvoorbeeld wanneer u de Storage SDK gebruikt. Voor deze zelfstudie uploadt en downloadt u blobs met behulp van Azure CLI.

U leert het volgende:

  • Uw virtuele machine toegang verlenen tot toegangssleutels voor opslagaccounts in Resource Manager
  • Een toegangstoken ophalen met de identiteit van de virtuele machine, en daarmee de toegangssleutels voor opslag ophalen uit Resource Manager

Een opslagaccount maken

Als u nog geen opslagaccount hebt voordat u aan deze zelfstudie begint, moet u er een maken. Als u een bestaand opslagaccount hebt, volgt u deze stappen om uw door 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 Azure Portal.

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

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

  4. Zorg ervoor dat het implementatiemodel is ingesteld op Resource Manager en het accounttype is ingesteld op Algemeen gebruik.

  5. Zorg ervoor dat het abonnement en de resourcegroep overeenkomen met de abonnementen die u hebt opgegeven bij het maken van uw virtuele machine.

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

    Schermopname van het maken van een nieuw opslagaccount.

Een blobcontainer in het opslagaccount maken

Verderop 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 het bestand moet worden opgeslagen.

  1. Ga naar het zojuist gemaakte opslagaccount.

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

  3. Selecteer + Container boven aan de pagina en vervolgens wordt er een deelvenster Nieuwe container weergegeven.

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

    Schermopname van het maken van een opslagcontainer.

De door het systeem toegewezen beheerde entiteit van de virtuele machine toegang verlenen tot het gebruik van toegangssleutels voor het opslagaccount

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

Raadpleeg Azure-rollen toewijzen met Azure Portal voor informatie over het toewijzen van rollen.

Notitie

Voor meer informatie over de verschillende rollen die u kunt gebruiken om machtigingen te verlenen voor opslagbeoordeling Autoriseren van toegang tot blobs en wachtrijen met behulp van Microsoft Entra-id.

Een toegangstoken ophalen met behulp van de identiteit van de virtuele machine en daarmee Azure Resource Manager aanroepen

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

U hebt een SSH-client nodig om deze stappen uit te voeren. Als u Windows gebruikt, kunt u de SSH-client in het Windows-subsysteem voor Linux gebruiken. Zie De sleutels van uw SSH-client gebruiken onder Windows in Azure of Een sleutelpaar met een openbare SSH-sleutel en een privé-sleutel maken en gebruiken voor virtuele Linux-machines in Azure als u hulp nodig hebt bij het configureren van de sleutels van uw SSH-client.

  1. Navigeer in Azure Portal naar Virtuele machines, selecteer uw virtuele Linux-machine en selecteer vervolgens op de pagina Overzicht bovenaan Verbinding maken. Kopieer de verbindingsreeks voor uw virtuele machine.

  2. Maak verbinding met uw virtuele machine via de SSH-client.

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

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

    Hieronder ziet u de CURL-aanvraag en de reactie voor het toegangstoken:

    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
    

    Notitie

    In de vorige aanvraag moet de waarde van de parameter 'resource' exact overeenkomen met wat wordt verwacht door Microsoft Entra-id. Wanneer u de resource-id van Azure Resource Manager gebruikt, moet u de URI opgeven met een slash op het einde. In het volgende antwoord is het element access_token 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 uit Azure Resource Manager om opslagaanroepen te maken

Gebruik nu CURL voor het aanroepen van Resource Manager met behulp van het toegangstoken dat we in de vorige sectie hebben opgehaald, om de toegangssleutel voor opslag op te halen. Als we de toegangssleutel voor opslag eenmaal hebben, kunnen we up- en downloadbewerkingen aanroepen. Vervang de parameterwaarden <SUBSCRIPTION ID>, <RESOURCE GROUP> en <STORAGE ACCOUNT NAME> door uw eigen waarden. Vervang de waarde <ACCESS TOKEN> 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>" 

Notitie

De tekst in de voorgaande URL is hoofdlettergevoelig, dus gebruik dienovereenkomstige hoofdletters en kleine letters voor de resourcegroepen. Daarnaast is het belangrijk om te weten dat dit een POST-aanvraag is en niet een GET-aanvraag. Zorg ervoor dat u een waarde doorgeeft voor het vastleggen van een maximale lengte met -d. Deze waarde kan NULL zijn.

In de CURL-reactie vindt u de lijst met sleutels:

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

Maak een voorbeeldblobbestand en upload het naar uw blobopslagcontainer. Op een virtuele Linux-machine kunt u dit doen met de volgende opdracht.

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

Voer de verificatie uit 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 nieuwste Azure CLI op uw VIRTUELE machine 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"
}

U kunt het bestand ook downloaden met behulp van Azure CLI en de verificatie uitvoeren met de opslagsleutel 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
}

Een door het Linux-VM-systeem toegewezen beheerde identiteit gebruiken voor toegang tot Azure Key Vault

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

U leert het volgende:

  • Uw virtuele machine toegang verlenen tot een geheim dat is opgeslagen in een sleutelkluis
  • Een toegangstoken ophalen met behulp van de identiteit van de virtuele machine en het gebruiken om het geheim op te halen uit de Key Vault

Een sleutelkluis maken

U hebt ook een Linux-VM nodig waarvoor door het systeem toegewezen beheerde identiteiten zijn ingeschakeld.

Tip

Stappen in dit artikel kunnen enigszins variëren op basis van de portal waaruit u begint.

In deze sectie wordt uitgelegd hoe u uw VM toegang verleent tot een geheim dat is opgeslagen in een sleutelkluis. Met 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 ondersteunen Microsoft Entra-verificatie. Als u bij deze services beheerde identiteiten voor Azure-resources wilt gebruiken, 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 en de referenties op te halen.

Eerst moet u een Key Vault maken en de door het systeem toegewezen beheerde identiteit van uw VIRTUELE machine toegang verlenen tot de Key Vault.

  1. Meld u aan bij het Azure-portaal.

  2. Selecteer bovenaan de linkernavigatiebalk de optie Een resource maken.

  3. In het vak Marketplace doorzoeken typt u Key Vault en drukt u op Enter.

  4. Selecteer Key Vault in de resultaten.

  5. Selecteer Maken.

  6. Geef een naam op voor de nieuwe sleutelkluis.

    Schermopname van het scherm voor het maken van Azure Key Vault.

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

  8. Selecteer Beoordelen en maken en selecteer vervolgens Maken.

Een geheim maken

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

  1. Ga naar uw zojuist gemaakte sleutelkluis.

  2. Selecteer Geheimen en selecteer vervolgens Toevoegen.

  3. Selecteer Genereren/Importeren.

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

  5. Voer een naam en een waarde in voor de geheime sleutel.  De waarde mag elke gewenste waarde zijn. 

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

  7. Selecteer Maken om het geheim te maken.

    Schermopname van het maken van geheimen.

Toegang verlenen

De beheerde identiteit die door de virtuele machine wordt gebruikt, moet toegang hebben tot het geheim dat is opgeslagen in Key Vault.

  1. Ga naar uw zojuist gemaakte sleutelkluis.

  2. Selecteer Toegangsbeleid in het linkernavigatievenster.

  3. Selecteer Toegangsbeleid toevoegen.

    Schermopname van het scherm toegangsbeleid maken in de sleutelkluis.

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

  5. Kies Principal selecteren en voer in het zoekveld de naam in van de virtuele machine die u eerder hebt gemaakt.  Selecteer de VIRTUELE machine in de resultatenlijst en selecteer vervolgens.

  6. Selecteer Toevoegen.

  7. Selecteer Opslaan.

Toegang tot gegevens

U hebt een SSH-client nodig om deze stappen uit te voeren.  Als u Windows gebruikt, kunt u de SSH-client in het Windows-subsysteem voor Linux gebruiken. Zie De sleutels van uw SSH-client gebruiken onder Windows in Azure of Een sleutelpaar met een openbare SSH-sleutel en een privé-sleutel maken en gebruiken voor virtuele Linux-machines in Azure als u hulp nodig hebt bij het configureren van de sleutels van uw SSH-client.

Belangrijk

Alle Azure SDK's ondersteunen de Azure.Identity-bibliotheek waarmee u eenvoudig Microsoft Entra-tokens kunt 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 Virtuele Linux-machine en selecteer Verbinding maken in het overzicht
  2. Maak verbinding met de virtuele machine 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 op te halen.   Hieronder ziet u de CURL-aanvraag voor het toegangstoken.
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 voor verificatie bij Azure Key Vault.  Met de volgende CURL-aanvraag wordt een geheim uit Key Vault gelezen met behulp van CURL en de REST-API van Key Vault.  U hebt de URL van uw Key Vault nodig. Deze bevindt zich in de sectie Essentials van de pagina Overzicht van de Sleutelkluis.  U hebt ook het toegangstoken nodig dat u hebt verkregen tijdens de vorige aanroep. 

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

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

Resources opschonen

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

Een door het Linux-VM-systeem toegewezen beheerde identiteit gebruiken om toegang te krijgen tot een resourcegroep in Resource Manager

Tip

Stappen in dit artikel kunnen enigszins variëren op basis van de portal waaruit u begint.

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

U leert het volgende:

  • Ververleent uw VM toegang tot Azure Resource Manager.
  • Haal een toegangstoken op met behulp van de door het systeem toegewezen beheerde identiteit van de VM voor toegang tot Resource Manager.
  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 virtuele machine toegang wilt verlenen.

  4. Selecteer toegangsbeheer (IAM) in het linkerdeelvenster.

  5. Selecteer Toevoegen en selecteer vervolgens Roltoewijzing toevoegen.

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

  7. Selecteer op het tabblad Leden, in de optie Toegang tot toewijzen, beheerde identiteit toewijzen en selecteer vervolgens + Leden selecteren.

  8. Zorg ervoor dat het juiste abonnement wordt vermeld in de vervolgkeuzelijst Abonnement . Selecteer alle resourcegroepen voor resourcegroep.

  9. Selecteer Virtuele machine in de vervolgkeuzelijst Identiteit beheren.

  10. Kies uw VIRTUELE machine in de vervolgkeuzelijst in de optie Selecteren en selecteer Opslaan.

    Schermopname van het toevoegen van de rol lezer aan de beheerde identiteit.

Een toegangstoken opvragen

Gebruik de door het systeem toegewezen beheerde identiteit van de VIRTUELE machine en roep de resourcemanager aan om een toegangstoken op te halen.

U hebt een SSH-client nodig om deze stappen uit te voeren. Als u Windows gebruikt, kunt u de SSH-client in het Windows-subsysteem voor Linux gebruiken. Zie De sleutels van uw SSH-client gebruiken onder Windows in Azure of Een sleutelpaar met een openbare SSH-sleutel en een privé-sleutel maken en gebruiken voor virtuele Linux-machines in Azure als u hulp nodig hebt bij het configureren van de sleutels van uw SSH-client.

  1. Navigeer in Azure Portal naar uw Virtuele Linux-machine.
  2. Selecteer Verbinding maken in het overzicht.
  3. Maak verbinding met de virtuele machine met de SSH-client van uw keuze.
  4. Voer in het terminalvenster met behulp van een curlaanvraag een aanvraag in voor het eindpunt van de lokale beheerde identiteiten voor Azure-resources om een toegangstoken voor Azure Resource Manager op te halen.   Hieronder ziet u de curl-aanvraag voor het toegangstoken.
curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/' -H Metadata:true

Notitie

De waarde van de resource parameter moet een exacte overeenkomst zijn voor wat wordt verwacht door Microsoft Entra ID. In het geval van de resource-id van Resource Manager moet u de afsluitende slash op de URI opnemen.

Het antwoord bevat het toegangstoken dat u nodig hebt voor toegang 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. Als u bijvoorbeeld de details wilt lezen van de resourcegroep waaraan u eerder toegang tot deze VM hebt verleend. Vervang de waarden <SUBSCRIPTION-ID>, <RESOURCE-GROUP> en <ACCESS-TOKEN> door de waarden die u eerder hebt gemaakt.

Notitie

De URL is hoofdlettergevoelig, dus zorg ervoor dat u de exacte case gebruikt die u eerder hebt gebruikt toen u de resourcegroep noemde 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 resourcegroepgegevens:

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

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

Tip

Stappen in dit artikel kunnen enigszins variëren op basis van de portal waaruit u begint.

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

U leert het volgende:

  • Uw VM toegang verlenen tot Azure Resource Manager.
  • Haal een toegangstoken op met behulp van de door het systeem toegewezen beheerde identiteit van de VIRTUELE machine 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. De toewijzing aan een virtuele machine of virtuele-machineschaalset verloopt goed als de naam wordt beperkt 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 id voor uw door de gebruiker toegewezen beheerde identiteit, omdat deze bij 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-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"
}

Een identiteit toewijzen aan uw virtuele Linux-machine

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

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

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

Toegang verlenen tot een resourcegroep in Azure Resource Manager

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

Voordat uw code toegang tot de API kan krijgen, moet u de identiteit toegang geven tot een resource in Azure Resource Manager. In dit geval is de resourcegroep waarin de VIRTUELE machine zich bevindt. Werk de waarde voor <SUBSCRIPTION ID> en <RESOURCE GROUP> bij overeenkomstig uw omgeving. Vervang bovendien <UAMI PRINCIPALID> door de eigenschap principalId die wordt geretourneerd door de opdracht az identity create in Een door 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"
}

Een toegangstoken ophalen met behulp van de identiteit van de virtuele machine en daarmee Resource Manager aanroepen

Tip

Stappen in dit artikel kunnen enigszins variëren op basis van de portal waaruit u begint.

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

U hebt een SSH-client nodig om deze stappen uit te voeren. Als u Windows gebruikt, kunt u de SSH-client in het Windows-subsysteem voor Linux gebruiken.

  1. Meld u aan bij het Azure-portaal.

  2. Navigeer in de portal naar Virtuele machines, ga naar de virtuele Windows-machine en klik op de pagina Overzicht op Verbinden. Kopieer de verbindingsreeks voor uw virtuele machine.

  3. Maak verbinding met de virtuele machine met de SSH-client van uw keuze. Als u Windows gebruikt, kunt u de SSH-client in het Windows-subsysteem voor Linux gebruiken. Zie De sleutels van uw SSH-client gebruiken onder Windows in Azure of Een sleutelpaar met een openbare SSH-sleutel en een privé-sleutel maken en gebruiken voor virtuele Linux-machines in Azure als u hulp nodig hebt bij het configureren van de sleutels van uw SSH-client.

  4. Gebruik CURL in het terminalvenster om een aanvraag in te dienen bij het IDENTITEITSeindpunt van 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. Vervang <CLIENT ID> door de eigenschap clientId die wordt geretourneerd door de opdracht az identity create in Een door de 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>"
    

    Notitie

    De waarde van de resource parameter moet een exacte overeenkomst zijn voor wat wordt verwacht door Microsoft Entra ID. Wanneer u de resource-id van Resource Manager gebruikt, moet u de URI opgeven met een slash op het einde.

    Het antwoord bevat het toegangstoken dat u nodig hebt voor toegang tot Azure Resource Manager.

    Voorbeeldrespons:

    {
    "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 toegang hebt verleend aan uw door de gebruiker toegewezen beheerde identiteit. Vervang de waarden van <SUBSCRIPTION ID>, en <RESOURCE GROUP> door de waarden die u eerder hebt opgegeven, en <ACCESS TOKEN> door het token dat in de vorige stap is geretourneerd.

    Notitie

    De URL is hoofdlettergevoelig, dus zorg ervoor dat u exact dezelfde case gebruikt die u eerder hebt gebruikt bij het benoemen van de resourcegroep 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 resourcegroepgegevens, vergelijkbaar met het volgende voorbeeld:

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

Meer informatie