Verifica il ruolo di lettore per un soggetto di servizio
Per verificare se un soggetto di servizio dispone del ruolo "Reader" in un abbonamento a Azure, utilizzare il seguente script Python :
from azure.identity import DefaultAzureCredential
from azure.mgmt.authorization import AuthorizationManagementClient
from azure.core.exceptions import AzureError
def check_subscription_roles(subscription_id):
"""
Check if subscription has Reader, Contributor, or Owner role.
Returns True if any of these roles exist, False otherwise.
"""
ROLE_IDS = {
"Reader": "acdd72a7-3385-48ef-bd42-f606fba81ae7",
"Contributor": "b24988ac-6180-42a0-ab88-20f7382dd24c",
"Owner": "8e3af657-a8ff-443c-a75c-2fe8c4bcb635"
}
try:
credential = DefaultAzureCredential()
auth_client = AuthorizationManagementClient(credential, subscription_id)
for assignment in auth_client.role_assignments.list_for_subscription():
role_def_id = assignment.role_definition_id
for role_name, role_id in ROLE_IDS.items():
if role_id in role_def_id:
print(f"✓ Found {role_name} role for subscription: {subscription_id}")
return True # Return immediately when any role is found
return False # No matching roles found
except AzureError as e:
print(f"Azure Error:: {e}")
return False
except Exception as e:
print(f"Error:: {e}")
return False
# Main execution
if __name__ == "__main__":
subscription_id = "<your-subscription-id-here>"
result = check_subscription_roles(subscription_id)
if result:
print("\n✓ True - Required reader role exists\n")
exit(0)
else:
print("\n✗ False - No required role found\n")
exit(1)
Prerequisiti
Installa le interfacce CLI di Python, pip e Azure nel tuo ambiente in base al sistema operativo. I restanti comandi riportati di seguito sono compatibili su tutte le piattaforme.
Installa le dipendenze
pip3 install azure-identity azure-mgmt-authorization
Accedi utilizzando l'entità di servizio
az login --service-principal \
--username <client-id> \
--password <client-secret> \
--tenant <tenant-id>
Salva lo script precedente Python con il nome file ` check_azure_reader.py. Sostituisci <your-subscription-id-here> nello script Python con il tuo ID di abbonamento effettivo. Lo script restituisce True o False e visualizza un messaggio a seconda che il ruolo "reader" esista o meno.
Esegui lo script
python3 check_azure_reader.py
python o python3 e pip o pip3) a seconda della versione di Python installata nel proprio ambiente. python3 e fanno pip3 esplicito riferimento a Python 3.Risoluzione dei problemi
Se l'operazione pip install non va a buon fine e viene visualizzato externally-managed-environment un errore, crea un ambiente virtuale utilizzando i seguenti comandi.
- In ambiente virtuale, eseguire il seguente comando:
python3 -m venv azure-env - Per attivare un ambiente virtuale, eseguire i seguenti comandi:
- Sul sito macOS o all'indirizzo Linux :
source azure-env/bin/activate - Su Windows:
azure-env\Scripts\activate
- Sul sito macOS o all'indirizzo Linux :
- Per installare i pacchetti, esegui il seguente comando:
pip3 install azure-identity azure-mgmt-authorization - Per eseguire lo script, digita il seguente comando:
python3 check_azure_reader.py - Per disattivare l'ambiente virtuale, eseguire il seguente comando:
deactivate