Utiliser Azure PIM pour gérer l’accès éligible avec l’API REST

Azure Privileged Identity Management (PIM) vous permet de limiter l’accès administrateur permanent aux rôles privilégiés, de découvrir qui a accès et de passer en revue l’accès privilégié. Cet article décrit les méthodes courantes de gestion de l’accès à l’aide de l’API REST.

Répertorier les affectations éligibles

Pour répertorier les attributions de rôles éligibles (accès à la liste), vous pouvez utiliser l’une des instances de planification d’éligibilité des rôles - Liste pour l’étendue ou planifications d’éligibilité des rôles - Liste pour les API REST d’étendue . Pour affiner vos résultats, vous spécifiez une étendue et un filtre facultatif. Pour appeler cette API, vous devez avoir accès à l’opération Microsoft.Authorization/roleAssignments/read dans l’étendue spécifiée. Tous les rôles intégrés ont accès à cette opération.

Important

La différence entre les planifications et les instances de planification est que si les instances de planification incluent uniquement des affectations actives à l’heure actuelle, les planifications incluent également des affectations qui deviendront actives à l’avenir.

  1. Commencez par la requête suivante :

    GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleEligibilityScheduleInstances?api-version=2020-10-01&$filter={filter}
    
    GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleEligibilitySchedules?api-version=2020-10-01&$filter={filter}
    
  2. Dans l’URI, remplacez {scope} par l’étendue dont vous souhaitez lister les attributions de rôle.

    Étendue Type
    providers/Microsoft.Management/managementGroups/{mg-name} Groupe d’administration
    subscriptions/{subscriptionId} Abonnement
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1 Resource group
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/providers/Microsoft.Web/sites/mysite1 Ressource
  3. Remplacez {filter} par la condition que vous voulez appliquer pour filtrer la liste des attributions de rôle.

    Filtrer Description
    $filter=atScope() Répertorier les affectations de rôle pour l’étendue spécifiée seulement, sans y inclure les affectations de rôles à des étendues secondaires.
    $filter=principalId%20eq%20'{objectId}' Répertorier les affectations de rôle pour un utilisateur, un groupe ou un principal de service spécifié.
    $filter=roleDefinitionId%20eq%20'{roleDefinitionId}' Répertoriez les attributions de rôles pour une définition de rôle spécifiée.
    $filter=assignedTo('{objectId}') Répertorier les affectations de rôle pour un utilisateur spécifié, y compris celles héritées de groupes.
    $filter=asTarget() Répertoriez les attributions de rôles pour l’utilisateur ou le principal de service actuel, y compris celles héritées des groupes.
    $filter=assignedTo('{objectId}')+and+atScope() Répertoriez les attributions de rôles pour un utilisateur spécifié, y compris celles héritées des groupes pour l’étendue spécifiée uniquement, sans inclure les attributions de rôle dans les sous-étendues.

Accorder une affectation éligible

Pour créer une attribution de rôle éligible (accorder l’accès), vous utilisez l’API REST d’éligibilité aux rôles - Créer l’API REST et spécifiez le principal de sécurité, la définition de rôle, la planification, requestType = AdminAssign et l’étendue. Pour appeler cette API, vous devez avoir accès à l’opération Microsoft.Authorization/roleAssignments/write . Parmi les rôles intégrés, seuls ceux du propriétaire et de l’administrateur des accès utilisateur se voient accorder l’accès à cette opération.

  1. Utilisez l’API REST Liste de définitions de rôles ou consultez Rôles intégrés pour obtenir l’identificateur de la définition de rôle que vous souhaitez assigner.

  2. Utilisez un outil GUID pour générer un identificateur unique qui servira d’identificateur d’attribution de rôle. Cet identificateur est au format : 00000000-0000-0000-0000-000000000000.

  3. Commencez par la requête et le corps suivants :

    PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleEligibilityScheduleRequests/{roleEligibilityScheduleRequestName}?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": "P365D" // Use ISO 8601 format
          }
        }
      }
    }
    
  4. Dans l’URI, remplacez {scope} par l’étendue de l’attribution de rôle.

    Étendue Type
    providers/Microsoft.Management/managementGroups/{mg-name} Groupe d’administration
    subscriptions/{subscriptionId} Abonnement
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1 Resource group
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/providers/Microsoft.Web/sites/mysite1 Ressource
  5. Remplacez {roleEligibilityScheduleRequestName} par l’identificateur GUID de l’attribution de rôle.

  6. Au sein du corps de la requête {subscriptionId}, par votre identificateur d’abonnement.

  7. Remplacez {roleDefinitionId} par l’identificateur de définition de rôle.

  8. Remplacez {principalId} par l’identificateur d’objet de l’utilisateur, du groupe ou du principal du service auquel le rôle sera attribué.

Supprimer l’affectation éligible

Pour supprimer une attribution de rôle éligible (supprimer l’accès), utilisez l’API REST d’éligibilité aux rôles - Créer l’API REST pour créer une nouvelle demande de révocation d’attribution et spécifier le principal de sécurité, la définition de rôle, requestType = AdminRemove et l’étendue. Pour appeler cette API, vous devez avoir accès à l’opération Microsoft.Authorization/roleAssignments/write. Parmi les rôles intégrés, seuls ceux du propriétaire et de l’administrateur des accès utilisateur se voient accorder l’accès à cette opération.

  1. Utilisez un outil GUID pour générer un identificateur unique qui servira d’identificateur d’attribution de rôle. Cet identificateur est au format : 00000000-0000-0000-0000-000000000000.

  2. Commencez par la requête suivante :

    PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleEligibilityScheduleRequests/{roleEligibilityScheduleRequestName}?api-version=2020-10-01
    
    {
      "Properties": {
        "RoleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}",
        "PrincipalId": "{principalId}",
        "RequestType": "AdminRemove"
        }
    }
    
  3. Dans l’URI, remplacez {scope} par l’étendue de suppression de l’attribution de rôle.

    Étendue Type
    providers/Microsoft.Management/managementGroups/{mg-name} Groupe d’administration
    subscriptions/{subscriptionId} Abonnement
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1 Resource group
    subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1/ providers/Microsoft.Web/sites/mysite1 Ressource
  4. Remplacez {roleEligibilityScheduleRequestName} par l’identificateur GUID de l’attribution de rôle.

Erreurs courantes retournées pour une nouvelle demande

Voici la liste des erreurs courantes que vous pouvez rencontrer lors de la création d’une nouvelle demande et la façon de les atténuer.

Message d’erreur Explanantion Limitation des risques
code: RoleAssignmentExists
message: l’attribution de rôle existe déjà.
Une attribution de rôle similaire existe déjà Vous pouvez GET cette attribution de rôle et vérifier sa planification.
code: RoleAssignmentRequestPolicyValidationFailed
message: Les règles de stratégie suivantes ont échoué : ["ExpirationRule"]
Le ScheduleInfo spécifié dans la demande dépasse la durée maximale autorisée Vous pouvez GET utiliser RoleManagementPolicy pour cela RoleDefinitionId et case activéeRoleManagementPolicyExpirationRule
code: RoleAssignmentRequestPolicyValidationFailed
message: Échec des règles de stratégie suivantes : ["JustificationRule"]
Vous devez spécifier un Justification dans le corps de la demande Vous pouvez GET utiliser RoleManagementPolicy pour cela RoleDefinitionId et case activéeRoleManagementPolicyEnablementRule
code: RoleAssignmentRequestPolicyValidationFailed
message: Les règles de stratégie suivantes ont échoué : ["EligibilityRule"]
Il n’existe pas de valide RoleEligibilityScheduleInstance pour activer ce rôle Un administrateur de ressources doit créer un RoleEligibilityScheduleRequest pour ce principal
code: RoleAssignmentRequestPolicyValidationFailed
message: Échec des règles de stratégie suivantes : ["TicketingRule"]
Vous devez spécifier un TicketInfo dans le corps de la demande Vous pouvez GET utiliser RoleManagementPolicy pour cela RoleDefinitionId et case activéeRoleManagementPolicyEnablementRule
code: RoleAssignmentRequestPolicyValidationFailed
message: Les règles de stratégie suivantes ont échoué : ["MfaRule"]
Vous devez effectuer Azure Multi-Factor Authentication pour envoyer cette demande Vous pouvez GET utiliser RoleManagementPolicy pour cela RoleDefinitionId et case activéeRoleManagementPolicyEnablementRule