turbot/microsoft365_compliance

Control: 1.1.3 Ensure that between two and four global admins are designated

Description

More than one global administrator should be designated so a single admin can be monitored and to provide redundancy should a single admin leave an organization. Additionally, there should be no more than four global admins set for any tenant. Ideally global administrators will have no licenses assigned to them.

If there is only one global tenant administrator, he or she can perform malicious activity without the possibility of being discovered by another admin. If there are numerous global tenant administrators, the more likely it is that one of their accounts will be successfully breached by an external attacker.

Remediation

To correct the number of global tenant administrators, use the Microsoft 365 Admin Center:

  1. Log in to https://admin.microsoft.com as a Global Administrator.
  2. Select Users > Active Users.
  3. In the Search field enter the name of the user to be made a Global Administrator.
  4. To create a new Global Admin:
    1. Select the user's name.
    2. A window will appear to the right.
    3. Select Manage roles.
    4. Select Admin center access.
    5. Check Global Administrator.
    6. Click Save changes.
  5. To remove Global Admins:
    1. Select User.
    2. Under Roles select Manage roles.
    3. De-Select the appropriate role.
    4. Click Save changes.

To correct the number of global tenant administrators, you can also use the Office 365 PowerShell MSOL:

  1. Connect to Microsoft 365 using Connect-MSOLService.
  2. Store the variables with the following Powershell.
$dispName="" $roleName="Company Administrator"
  1. Run the following PowerShell command to create a new Global Admin:
Add-MsolRoleMember -RoleMemberEmailAddress (Get-MsolUser -All | Where DisplayName -eq $dispName).UserPrincipalName -RoleName $roleName
  1. Run the following PowerShell command to remove Global Admins:
Remove-MsolRoleMember -RoleMemberEmailAddress (Get-MsolUser -All | Where DisplayName -eq $dispName).UserPrincipalName -RoleName $roleName

Usage

Run the control in your terminal:

powerpipe control run microsoft365_compliance.control.cis_v140_1_1_3

Snapshot and share results via Turbot Pipes:

powerpipe login
powerpipe control run microsoft365_compliance.control.cis_v140_1_1_3 --share

SQL

This control uses a named query:

azuread_global_admin_range_restricted

Tags