Sheriff
Automate Microsoft Entra PIM to secure your enterprise
Sheriff enables you to automate the configuration and operation of Microsoft Entra Privileged Identity Management (PIM) across your enterprise, secure by default thanks to some clever features Sheriff adds.
Benefits
Single source of truth
Maintain a single source of truth for access config across your entire Azure estate.
Detect and correct misconfigurations
Stateless operation means Sheriff will detect and correct misconfigurations automatically.
Operate secure by default
Clever features in Sheriff, like role management policy inheritance and defaults, enable you to operate secure by default.
Reduce operating costs
Operate at reduced cost by using Sheriff to automate time-intensive manual management.
Sheriff is made to run in CI
Sheriff is primarily a command-line (CLI) tool, made to run on any modern CI system, including Azure DevOps, Jenkins, GitHub Actions, GitLab CI/CD, Bamboo, CircleCI, Travis CI, TeamCity and Octopus Deploy. If you're using Sheriff on Azure DevOps, the Sheriff extension makes it even easier. Of course, you can run it locally, too, which is handy for using import or plan.
Features
Active and eligible assignments
Manage active and eligible role assignments for users and groups, including start and end dates, at any scope.
Role management policies
Manage role management policies to require approval to activate privileged roles, enforce multifactor authentication and more.
Policy inheritance and defaults
Overcome limitations in Microsoft Entra PIM with Sheriff’s role management policy inheritance and defaults.
Import existing config
Import your existing config to immediately establish a single source of truth.
Sheriff has been created by Microsoft Azure experts
We are a platform engineering company. Our directors have been building in Microsoft Azure since 2012. We're also a Microsoft Solutions Partner. Sheriff was born from the work we do with our customers to enable them to operate predictably and innovate safely.
Azure resource roles
Sheriff manages active and eligible role assignments for built-in Azure resource roles like Reader, Contributor and Owner.
And it’ll manage custom roles, too. You can have up to 5,000 of those per tenant.
Use Sheriff to manage assignments and role management policies for users and groups at subscription, resource group and resource scopes.
See Assign Azure resource roles in Privileged Identity Management for more information.
# config/groups/CSG-RBAC-Engineers.yml
---
subscription:
active:
- roleName: Reader
eligible:
- roleName: Contributor
resourceGroups:
storageaccount-rg:
eligible:
- roleName: Storage Blob Data Reader
endDateTime: 2024-11-30T18:00:00
FTSE 100 companies use Sheriff
M&G use Sheriff to configure and operate Microsoft Entra PIM for Azure resource roles, Microsoft Entra roles and Groups across multiple business units. It allows them to use Git as their single source of truth for access configuration across Azure and beyond, combining the benefits of an as-code approach with a single unified configuration model that's easy to understand and maintain.
Microsoft Entra roles
Sheriff manages active and eligible role assignments for built-in Microsoft Entra roles like Application Developer, Security Operator and Global Administrator.
And it’ll manage custom roles, too. You can have up to 5,000 of those per tenant.
Use Sheriff to manage assignments and role management policies for users and groups at directory, administrative unit, application and service principal scopes.
See Assign Microsoft Entra roles in Privileged Identity Management for more information.
# config/users/sally@frontierhq.com
---
directory:
eligible:
- roleName: Global Administrator
applications:
14739921-46fd-4faf-9d77-caaaf19fbda8: # SonarQube
active:
- roleName: Application Developer
eligible:
- roleName: Application Administrator
administrativeUnits:
2a3c3347-e294-4350-aec5-6cab3323599c: # Engineering
eligible:
- roleName: Helpdesk Administrator
Run Sheriff on any platform
Sheriff runs on Windows, Linux and MacOS. If you're using Sheriff on Azure DevOps, the Sheriff extension makes it even easier to install and run Sheriff.
Groups (PIM-enabled)
Sheriff manages active and eligible role assignments for PIM-managed group roles like Member and Owner.
Use Sheriff to manage assignments and role management policies for users and groups for PIM-enabled groups.
See Assign eligibility for a group in Privileged Identity Management for more information.
# config/groups/CSG-RBAC-SRE.yml
---
managedGroups:
CSG-App-OpenShiftUser:
active:
- roleName: Member
CSG-App-OpenShiftClusterAdmin:
eligible:
- roleName: Member
CSG-App-SonarQubeAdmin:
eligible:
- roleName: Member
- roleName: Owner
Role management policies
Sheriff manages activation, assignment and notification role management policy rules for complete governance coverage.
These rules cover things like whether multi-factor authentication (MFA) is required to activate an eligible role or group membership; who receives alerts when a role is activated; or whether you can create permanent role assignments, group ownership, or group memberships.
Sheriff extends out-the-box PIM role management policy features to make it safer and easier to operate at scale, such as policy inheritance and defaults. These allow for the creation global or role specific defaults, reducing the management overhead of PIM and establishing a secure by default operating model.
Use Sheriff to manage role management policy rules for Azure resource roles, Microsoft Entra roles and Groups (PIM-enabled).
See Start using Privileged Identity Management for more information.
# config/policies/Contributor.yml
---
default:
- rulesetName: StandardRules
resourceGroups:
storageaccount-rg:
- rulesetName: RelaxedRules
# config/policies/rulesets/StandardRules.yml
---
rules:
- id: Expiration_EndUser_Assignment
patch:
maximumDuration: PT1H
- id: Enablement_EndUser_Assignment
patch:
enabledRules:
- Justification
- MultiFactorAuthentication
- Ticketing
# config/policies/rulesets/RelaxedRules.yml
---
rules:
- id: Expiration_EndUser_Assignment
patch:
maximumDuration: PT4H
- id: Enablement_EndUser_Assignment
patch:
enabledRules:
- MultiFactorAuthentication
FAQs
Where does Sheriff run?
Sheriff is primarily a command-line (CLI) tool that can be run on Windows, Linux and MacOS. It's been made to run on any modern CI system, including Azure DevOps, Jenkins, GitHub Actions, GitLab CI/CD, Bamboo, CircleCI, Travis CI, TeamCity and Octopus Deploy. If you're using Sheriff on Azure DevOps, the Sheriff extension makes it even easier. Of course, you can run it locally, too, which is handy for using import or plan.
How does Sheriff authenticate?
Sheriff uses the Azure Identity module for Go to authenticate to Azure and Microsoft Entra. Azure Identity allows for a number of different authentication mechanisms to be used, including environment variables, managed identity, workload identity and Azure CLI authentication.
See Azure Identity module for Go for more information.
What Microsoft licenses are required?
You need either Microsoft Entra ID Governance licenses or Microsoft Entra ID P2 licenses to use PIM - and therefore Sheriff - and all of its settings.
See Microsoft Entra ID Governance licensing fundamentals for more information.
What happens if someone changes PIM config outside of Sheriff?
Sheriff is stateless, which means it compares roles assignments in Azure and Microsoft Entra with what's been defined in configuration every time it runs. This means when it finds something either not in or different to that configuration - known as configuration drift - it corrects it. Detecting and correcting misconfigurations like this is one of Sheriff's most valuable features.
Can I exclude certain users or groups from being managed by Sheriff?
Yes, Sheriff includes support for excluding specific users or groups from being managed by Sheriff, which can be useful for example when service accounts that have role assignments managed elsewhere are present in the subscriptions and tenants where Sheriff is being used.
Pricing
Azure resource roles
£1,000/year
per subscription
Only charged for first 20 subscriptions
- Azure resource roles
- Role management policies
- Policy inheritance and defaults
- Free upgrades
- Business hours support
Microsoft Entra roles + Groups
£3,000/year
for first tenant
£1,000/year
for additional tenants
Only charged for first 3 tenants
- Microsoft Entra roles
- Groups (PIM-enabled)
- Role management policies
- Policy inheritance and defaults
- Free upgrades
- Business hours support
Unlimited
£24,950/year
Flat fee for Azure resource roles, Microsoft Entra roles and Groups across unlimited subscriptions and tenants.
- Azure resource roles
- Microsoft Entra roles
- Groups (PIM-enabled)
- Role management policies
- Policy inheritance and defaults
- Free upgrades
- Business hours support