azureblog.co.uk
← cd ~/roles
// roles/entra

Compliance Data AdministratorMicrosoft Entra built-in role

Creates and manages compliance content.

Role IDe6d1a23a-da11-4be4-9570-befc86d067a7
PrivilegedNo
Permissions9

What it can do

PermissionWhat it allows
microsoft.azure.informationProtection/allEntities/allTasksManage all aspects of Azure Information Protection
microsoft.azure.serviceHealth/allEntities/allTasksRead and configure Azure Service Health
microsoft.azure.supportTickets/allEntities/allTasksCreate and manage Azure support tickets
microsoft.directory/authorizationPolicy/standard/readRead standard properties of authorization policy
microsoft.directory/cloudAppSecurity/allProperties/allTasksCreate and delete all resources, and read and update standard properties in Microsoft Defender for Cloud Apps
microsoft.office365.complianceManager/allEntities/allTasksManage all aspects of Office 365 Compliance Manager
microsoft.office365.serviceHealth/allEntities/allTasksRead and configure Service Health in the Microsoft 365 admin center
microsoft.office365.supportTickets/allEntities/allTasksCreate and manage Microsoft 365 service requests
microsoft.office365.webPortal/allEntities/standard/readRead basic properties on all resources in the Microsoft 365 admin center

Assign it

The role ID is the same in every tenant, so these work as they are. Make it eligible through PIM:

powershell13 lines
Connect-MgGraph -Scopes "RoleEligibilitySchedule.ReadWrite.Directory"
$user = Get-MgUser -UserId "jane.doe@contoso.com"
New-MgRoleManagementDirectoryRoleEligibilityScheduleRequest -BodyParameter @{
    Action           = "AdminAssign"
    Justification    = "Needs Compliance Data Administrator for <reason>"
    RoleDefinitionId = "e6d1a23a-da11-4be4-9570-befc86d067a7"
    DirectoryScopeId = "/"
    PrincipalId      = $user.Id
    ScheduleInfo     = @{
        StartDateTime = (Get-Date).ToUniversalTime().ToString("o")
        Expiration    = @{ Type = "afterDuration"; Duration = "P180D" }
    }
}

Who already has it?

powershell3 lines
Connect-MgGraph -Scopes "RoleManagement.Read.Directory"
Get-MgRoleManagementDirectoryRoleAssignment -Filter "roleDefinitionId eq 'e6d1a23a-da11-4be4-9570-befc86d067a7'" -ExpandProperty Principal |
    ForEach-Object { $_.Principal.AdditionalProperties.displayName }

Related roles

Find the smallest role for a task →