Usare Azure PIM per gestire l'accesso attivo con l'API REST
Azure Privileged Identity Management (PIM) consente di limitare l'accesso di amministratore permanente ai ruoli con privilegi, individuare chi ha accesso ed esaminare l'accesso con privilegi. Questo articolo descrive i modi comuni per gestire l'accesso tramite l'API REST.
Elencare le assegnazioni attive
Per elencare le assegnazioni di ruolo attive (accesso elenco), è possibile usare una delle istanze di pianificazione dell'assegnazione di ruolo - Elenco per le pianificazioni dell'ambito o delle assegnazioni di ruolo - Elenco per le API REST di ambito. Per affinare i risultati, specificare un ambito e un filtro facoltativo. Per chiamare l'API, è necessario avere accesso all'operazione Microsoft.Authorization/roleAssignments/read
nell'ambito specificato. A tutti i ruoli predefiniti viene concesso l'accesso a questa operazione.
Importante
La differenza tra le pianificazioni e le istanze di pianificazione è che, mentre le istanze di pianificazione includono solo assegnazioni attive all'ora corrente, le pianificazioni includono anche le assegnazioni che diventeranno attive in futuro.
Iniziare con la richiesta seguente:
GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignmentScheduleInstances?api-version=2020-10-01&$filter={filter}
GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignmentSchedules?api-version=2020-10-01&$filter={filter}
All'intero dell'URI sostituire {scope} con l'ambito per il quale elencare le assegnazioni di ruolo.
Scope Tipo providers/Microsoft.Management/managementGroups/{mg-name}
Gruppo di gestione subscriptions/{subscriptionId}
Subscription subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1
Resource group subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/providers/Microsoft.Web/sites/mysite1
Risorsa Sostituire {filter} con la condizione da applicare per filtrare l'elenco delle assegnazioni di ruolo.
Filtra Descrizione $filter=atScope()
Elencare le assegnazioni di ruolo solo per l'ambito specificato, senza includere le assegnazioni di ruolo negli ambiti secondari. $filter=principalId%20eq%20'{objectId}'
Elencare le assegnazioni di ruolo per un utente, un gruppo o un'entità servizio specificata. $filter=roleDefinitionId%20eq%20'{roleDefinitionId}'
Elencare le assegnazioni di ruolo per una definizione di ruolo specificata. $filter=assignedTo('{objectId}')
Elencare le assegnazioni di ruolo per un utente specificato, incluse quelle ereditate dai gruppi. $filter=asTarget()
Elencare le assegnazioni di ruolo per l'utente corrente o l'entità servizio, inclusi quelli ereditati dai gruppi. $filter=assignedTo('{objectId}')+and+atScope()
Elencare le assegnazioni di ruolo per un utente specificato, inclusi quelli ereditati dai gruppi solo per l'ambito specificato, senza includere le assegnazioni di ruolo nei ambiti secondari.
Concedere l'assegnazione attiva
Per creare un'assegnazione di ruolo attiva (concedere l'accesso), usare le richieste di pianificazione delle assegnazioni di ruolo - Creare l'API REST e specificare l'entità di sicurezza, la definizione del ruolo, la pianificazione, requestType = AdminAssign
e l'ambito. Per chiamare questa API, è necessario avere accesso all'operazione Microsoft.Authorization/roleAssignments/write
. Tra i ruoli predefiniti, l'accesso a questa operazione viene concesso soltanto ai ruoli Proprietario e Amministratore Accesso utenti.
Usare l'API REST per l'elenco delle definizioni del ruolo o vedere Ruoli predefiniti per ottenere l'identificatore per la definizione del ruolo da assegnare.
Usare uno strumento GUID per generare un identificatore univoco che verrà usato per l'identificatore dell'assegnazione di ruolo. Il formato dell'identificatore è:
00000000-0000-0000-0000-000000000000
Iniziare con la richiesta e il corpo seguenti:
PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignmentScheduleRequests/{roleAssignmentScheduleRequestName}?api-version=2020-10-01
{ "Properties": { "RoleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}", "PrincipalId": "{principalId}", "RequestType": "AdminAssign", "ScheduleInfo": { "StartDateTime": "2020-09-09T21:31:27.91Z", "Expiration": { "Type": "AfterDuration", // Values: AfterDuration, AfterDateTime, NoExpiration "EndDateTime": null, "Duration": "P30D" // Use ISO 8601 format } } } }
All'interno dell'URI sostituire {scope} con l'ambito per l'assegnazione di ruolo.
Scope Tipo providers/Microsoft.Management/managementGroups/{mg-name}
Gruppo di gestione subscriptions/{subscriptionId}
Subscription subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1
Resource group subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/providers/Microsoft.Web/sites/mysite1
Risorsa Sostituire {roleAssignmentScheduleRequestName} con l'identificatore GUID dell'assegnazione di ruolo.
All'interno del corpo della richiesta sostituire {subscriptionId} con l'identificatore della sottoscrizione.
Sostituire {roleDefinitionId} con l'identificatore della definizione del ruolo.
Sostituire {principalId} con l'identificatore di oggetto dell'utente, del gruppo o dell'entità servizio a cui verrà assegnato il ruolo.
Rimuovere l'assegnazione attiva
Per rimuovere un'assegnazione di ruolo attiva (rimuovere l'accesso), usare le richieste di pianificazione delle assegnazioni di ruolo - Creare un'API REST per creare una nuova richiesta per revocare l'assegnazione e specificare l'entità di sicurezza, la definizione del ruolo, requestType = AdminRemove
e l'ambito. Per chiamare questa API, è necessario avere accesso all'operazione Microsoft.Authorization/roleAssignments/write
. Tra i ruoli predefiniti, l'accesso a questa operazione viene concesso soltanto ai ruoli Proprietario e Amministratore Accesso utenti.
Usare uno strumento GUID per generare un identificatore univoco che verrà usato per l'identificatore dell'assegnazione di ruolo. Il formato dell'identificatore è:
00000000-0000-0000-0000-000000000000
Iniziare con la richiesta seguente:
PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignmentScheduleRequests/{roleAssignmentScheduleRequestName}?api-version=2020-10-01
{ "Properties": { "RoleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}", "PrincipalId": "{principalId}", "RequestType": "AdminRemove" } }
All'interno dell'URI sostituire {scope} con l'ambito per la rimozione dell'assegnazione di ruolo.
Scope Tipo providers/Microsoft.Management/managementGroups/{mg-name}
Gruppo di gestione subscriptions/{subscriptionId}
Subscription subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1
Resource group subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/ providers/Microsoft.Web/sites/mysite1
Risorsa Sostituire {roleAssignmentScheduleRequestName} con l'identificatore GUID dell'assegnazione di ruolo.
Attivare un'assegnazione di ruolo idonea
Per attivare un'assegnazione di ruolo idonea (ottenere l'accesso attivato), usare le richieste di pianificazione delle assegnazioni di ruolo - Creare un'API REST per creare una nuova richiesta e specificare l'entità di sicurezza, la definizione del ruolo, requestType = SelfActivate
e l'ambito. Per chiamare questa API, è necessario avere un'assegnazione di ruolo idonea nell'ambito.
Usare uno strumento GUID per generare un identificatore univoco che verrà usato per l'identificatore dell'assegnazione di ruolo. Il formato dell'identificatore è:
00000000-0000-0000-0000-000000000000
[Facoltativo] Scegliere un
RoleEligibilitySchedule
oggetto da attivare e ottenere dall'APIRoleEligibilityScheduleId
Pianificazioni ruolo da passare comeLinkedRoleEligibilityScheduleId
. Questa opzione è facoltativa e, se non viene passato, il sistema selezionerà un oggettoRoleEligibilitySchedule
.Iniziare con la richiesta seguente:
PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignmentScheduleRequests/{roleAssignmentScheduleRequestName}?api-version=2020-10-01
{ "Properties": { "RoleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}", "PrincipalId": "{principalId}", "RequestType": "SelfActivate", "ScheduleInfo": { "StartDateTime": "2020-09-09T21:31:27.91Z", "Expiration": { "Type": "AfterDuration", // Values: AfterDuration, AfterDateTime, NoExpiration "EndDateTime": null, "Duration": "PT8H" // Use ISO 8601 format } }, "LinkedRoleEligibilityScheduleId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleAssignmentSchedules/{roleAssignmentScheduleId}" //Optional } }
All'interno dell'URI sostituire {scope} con l'ambito per la rimozione dell'assegnazione di ruolo.
Scope Tipo providers/Microsoft.Management/managementGroups/{mg-name}
Gruppo di gestione subscriptions/{subscriptionId}
Subscription subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1
Resource group subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/ providers/Microsoft.Web/sites/mysite1
Risorsa Sostituire {roleAssignmentScheduleRequestName} con l'identificatore GUID dell'assegnazione di ruolo.
Disattivare un'assegnazione di ruolo attiva
Per annullare l'attivazione di un'assegnazione di ruolo (rimuovere l'accesso attivato), usare le richieste di pianificazione delle assegnazioni di ruolo - Creare un'API REST per creare una nuova richiesta e specificare l'entità di sicurezza, la definizione del ruolo, requestType = SelfDeactivate
e l'ambito. Per chiamare questa API, è necessario avere un'assegnazione di ruolo attivata nell'ambito.
Usare uno strumento GUID per generare un identificatore univoco che verrà usato per l'identificatore dell'assegnazione di ruolo. Il formato dell'identificatore è:
00000000-0000-0000-0000-000000000000
Iniziare con la richiesta seguente:
PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignmentScheduleRequests/{roleAssignmentScheduleRequestName}?api-version=2020-10-01
{ "Properties": { "RoleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}", "PrincipalId": "{principalId}", "RequestType": "SelfDeactivate" } }
All'interno dell'URI sostituire {scope} con l'ambito per la rimozione dell'assegnazione di ruolo.
Scope Tipo providers/Microsoft.Management/managementGroups/{mg-name}
Gruppo di gestione subscriptions/{subscriptionId}
Subscription subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1
Resource group subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/ providers/Microsoft.Web/sites/mysite1
Risorsa Sostituire {roleAssignmentScheduleRequestName} con l'identificatore GUID dell'assegnazione di ruolo.
Just-Enough-Access (JEA)
Se un utente ha un'assegnazione di ruolo idonea in una risorsa (padre), può scegliere di attivare il ruolo a livello figlio della risorsa padre anziché l'intero ambito padre. Ad esempio, se un utente ha Contributor
un ruolo idoneo in una sottoscrizione, può attivare il ruolo a livello di gruppo di risorse figlio della sottoscrizione.
Per ottenere un elenco di tutti gli elementi figlio di una risorsa in cui si ha accesso idoneo, è possibile usare l'API Risorse figlio idonee .
Iniziare con la richiesta seguente:
GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/eligibleChildResources?api-version=2020-10-01&$filter={filter}
All'intero dell'URI sostituire {scope} con l'ambito per il quale elencare le assegnazioni di ruolo.
Scope Tipo providers/Microsoft.Management/managementGroups/{mg-name}
Gruppo di gestione subscriptions/{subscriptionId}
Subscription subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1
Resource group Sostituire {filter} con la condizione da applicare per filtrare l'elenco delle assegnazioni di ruolo.
Filtra Descrizione $filter=resourceType+eq+'Subscription'
Elencare le risorse di tipo = 'Sottoscrizione'. $filter=$filter=resourceType+eq+'subscription'+or+resourceType+eq+'resourcegroup''
Elencare le risorse di tipo = 'Sottoscrizione' o tipo = 'ResourceGroup'. Usare l'oggetto
id
di qualsiasi risorsa figlio da usare comescope
per l'attivazioneRoleAssignmentScheduleRequest
Errori comuni restituiti per una nuova richiesta
Di seguito è riportato un elenco di errori comuni che potrebbero verificarsi durante la creazione di una nuova richiesta e come attenuarli.
Messaggio di errore | Explanantion | Strategia di riduzione del rischio |
---|---|---|
code : RoleAssignmentExistsmessage : l'assegnazione di ruolo esiste già. |
Esiste già un'assegnazione di ruolo simile | È possibile GET eseguire questa assegnazione di ruolo e verificare la pianificazione. |
code : RoleAssignmentRequestPolicyValidationFailedmessage : le regole dei criteri seguenti non sono riuscite: ["ExpirationRule"] |
L'oggetto ScheduleInfo specificato nella richiesta supera la durata massima consentita |
Per questa RoleDefinitionId operazione è possibile GET selezionare RoleManagementPolicyRoleManagementPolicyExpirationRule |
code : RoleAssignmentRequestPolicyValidationFailedmessage : le regole dei criteri seguenti non sono riuscite: ["JustificationRule"] |
È necessario specificare un Justification oggetto nel corpo della richiesta |
Per questa RoleDefinitionId operazione è possibile GET selezionare RoleManagementPolicyRoleManagementPolicyEnablementRule |
code : RoleAssignmentRequestPolicyValidationFailedmessage : le regole dei criteri seguenti non sono riuscite: ["IdoneitàRule"] |
Un valore valido RoleEligibilityScheduleInstance non esiste per attivare questo ruolo |
Un amministratore di risorse deve creare un RoleEligibilityScheduleRequest oggetto per questa entità |
code : RoleAssignmentRequestPolicyValidationFailedmessage : le regole dei criteri seguenti non sono riuscite: ["TicketingRule"] |
È necessario specificare un TicketInfo oggetto nel corpo della richiesta |
Per questa RoleDefinitionId operazione è possibile GET selezionare RoleManagementPolicyRoleManagementPolicyEnablementRule |
code : RoleAssignmentRequestPolicyValidationFailedmessage : le regole dei criteri seguenti non sono riuscite: ["MfaRule"] |
È necessario completare Azure Multi-Factor Authentication per inviare questa richiesta | Per questa RoleDefinitionId operazione è possibile GET selezionare RoleManagementPolicyRoleManagementPolicyEnablementRule |