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:
- Navigate to the 
Microsoft 365 admin centerhttps://admin.microsoft.com. - Select 
Users>Active Users. - In the 
Searchfield enter the name of the user to be made a Global Administrator. - To create a new Global Admin:
- Select the user's name.
 - A window will appear to the right.
 - Select 
Manage roles. - Select 
Admin center access. - Check 
Global Administrator. - Click 
Save changes. 
 - To remove Global Admins:
- Select User.
 - Under 
RolesselectManage roles. - De-Select the appropriate role.
 - Click 
Save changes. 
 
Usage
Run the control in your terminal:
powerpipe control run microsoft365_compliance.control.cis_v300_1_1_3Snapshot and share results via Turbot Pipes:
powerpipe loginpowerpipe control run microsoft365_compliance.control.cis_v300_1_1_3 --shareSQL
This control uses a named query:
with global_administrator_counts as (  select    role.tenant_id,    role._ctx,    count(*)  from    azuread_directory_role as role,    jsonb_array_elements_text(member_ids) as m_id,    azuread_user as u  where    u.id = m_id and role.display_name ='Global Administrator'  group by    role.tenant_id,    role._ctx)select  tenant_id as resource,  case    when count >= 2 and count <= 4 then 'ok'    else 'alarm'  end as status,  tenant_id || ' has ' || count || ' global administrators.' as reason  , tenant_id as tenant_idfrom  global_administrator_counts;