Controlling access to devices and resources is one of the most basic protections an enterprise needs to have in place to stay secure. Implementing access controls minimizes the exposure of key resources and helps you to comply with regulations in your industry. Currently, there are two main access control methods: RBAC vs ABAC.
RBAC stands for Role-Based Access Control and ABAC stands for Attribute-Based Access Control.
In this article, we’re going to look at what RBAC and ABAC are, and what is best for managing user access to resources.
What is RBAC?
RBAC is a method that manages access controls based on roles. A network administrator will determine the access privileges of a role such as whether the role can create and modify files or is restricted to reading. Under RBAC, the role employees are given determines what resources they have access to.
The level of access can be influenced by the seniority of the users in question and whether the materials are critical to their everyday work. When using RBAC, it’s best practice to restrict access to resources unless absolutely necessary, to limit the risk of data leaks.
In other words, employees should only have access to the systems and materials needed to carry out their jobs and nothing more to minimize the risk of an asset being compromised.
There are four levels of role-based access control that can be implemented:
- Flat RBAC – All users and permissions are assigned roles. A user must take on a role to obtain the permissions needed. As a consequence, a user can be assigned multiple roles to have multiple permissions. Roles can be assigned to multiple users.
- Hierarchical RBAC – Adds a hierarchy to the role structure that sets out relationships between roles. Higher seniority roles acquire the permissions of junior roles.
- Constrained RBAC – Adds a separation of duties so that multiple users must complete a single task to ensure that no malicious changes can be made to your system.
- Symmetric RBAC – The company periodically reviews the permissions associated with each role. An administrator can pull permissions from one user and then reassign them to another individual.
What is ABAC?
ABAC uses attributes, a set of labels and properties, to determine who has access to what resources. Attributes include attributes of the subject, attributes of objects, environmental conditions, and policies. In practice, attributes can include everything from the position of employees to their departments, IP addresses, devices, and more.
For example, an administrator could restrict access to a resource by setting one of the attributes to role = supervisor and another as department = marketing. These attributes act as conditions and determine what a user needs to have access to a resource or system.
Access can be controlled by using the eXtensible Access Control Markup Language (XACML) to set access control rules. The model uses Boolean logic following an IF, THEN format that decides a user’s access based on the attributes.
The process is automated which makes an efficient way of managing access permissions as an administrator doesn’t need to continually assign or reassign roles to users.
What’s the Difference Between RBAC vs ABAC?
The main difference between RBAC and ABAC is that the former is role-based and assigns permissions based on role, and the latter is attribute-based, and grants access based on attributes that change in real-time.
For example, if employees are moved to a different department, current permissions can automatically be revoked and they can immediately be granted access needed to do their new roles.
ABAC is mostly used by larger enterprises because of its complexity. It takes time to define the attributes needed for the system to function. However, once ABAC is configured then it’s much more efficient than RBAC because the entire process is automated.
How Can I Choose Between The Two?
The choice between the two depends on what your use case is. If you want to make simple and broad access role decisions then RBAC is a natural choice. However, if you need to add lots of specific restrictions and access conditions then you should use ABAC.
As a general rule of thumb, you should implement RBAC before ABAC. The reason is that both RBAC and ABAC act as filters. If RBAC can sufficiently control access to your key resources then there’s no point paying for the extra ABAC. It is important to note that you can also take the hybrid approach and use both RBAC and ABAC. We’re going to look at the advantages and disadvantages of each solution in further detail below.
Benefits of RBAC
While RBAC may not be as cutting edge as ABAC, it still has a set of entrenched advantages for managing access permissions. These are as follows:
- Increased efficiency
- Lower risk of data breaches
- Regulatory compliance
- Lower costs
A key advantage of RBAC is that it’s more efficient. You can add new roles and edit existing roles quickly, which allows you to onboard new staff quickly. Another is that controlling access to sensitive data lowers the risk of data breaches. Gatekeeping access to sensitive data lowers the risk of your falling victim to a cyber attack.
The increased efficiency also helps from a compliance perspective, as it enables you to verify that you’re keeping sensitive data private. It’s also simple enough that you can see how employees interact with data. This is invaluable for making sure that you don’t fall foul of any regulations in your industry.
RBAC can also be used to reduce costs by limiting access to certain resources. For example, if you stop employees from accessing a bandwidth-intensive application then you will be able to preserve other resources like your network bandwidth.
Limitations of RBAC
Although RBAC does come with many benefits, it isn’t without some significant disadvantages; these are:
- Role explosion
One of the biggest problems RBAC has is that of role explosion. If you’re in an environment with lots of roles with unique permissions then it can be difficult to manage all the roles your team needs to work effectively. It is here that the automated nature of ABAC stands out as a better alternative.
While RBAC can be efficient, it can also be difficult to manage when compared to ABAC because it isn’t automated. It becomes very difficult to manage if administrators add roles to users without removing them. It’s not uncommon for users to end up with multiple roles and permissions that all need to be proactively managed or they can easily spiral out of control.
If your company onboards a lot of new hires then you’re going to find it very difficult to upscale when using RBAC. You’ll need to define new roles for each hire, which will include lots of manual legwork.
ABAC has a number of benefits for managing permissions:
- Automatically updates permissions
- Less admin
Users don’t have to manually manage roles with ABAC, instead, they can define attributes and automate the system. The system permits or denies access requests based on the attributes of the user and the object. So once the attributes of users change, so do the materials they can access. Users only need to change attribute values rather than change the relationships between subjects and objects.
ABAC comes with less admin (at least after it’s set up!). With access permissions changing automatically as user attributes change there’s less administration when onboarding new users. For example, you don’t need to assign authorization to subjects before they try to access material.
There are also security advantages to using ABAC, such as being able to restrict users from accessing resources on unknown devices. This provides administrators with another buffer of security so they can make sure that users have to use secure devices to interact with important services.
Although ABAC does have some distinct strengths, it isn’t without its drawbacks:
- Difficult to audit
ABAC can become very complex to configure, particularly in environments with lots of information sharing. An administrator has to specify lots of policies to determine what attributes users need to have to access resources. Trying to manage attributes for all users can be a challenge.
Another key challenge is that ABAC is very difficult to audit. For security and regulatory compliance, it’s important to be able to see the exact resources a user has access to. With RBAC this is easy as you can just look at the privileges the user has been assigned. With ABAC you’re rarely able to look up users and see what they have permission to access, as you’d have to check each object against the access policy.
The scalability of ABAC remains unclear. Systems with hundreds or thousands of users are extremely difficult to manage and consume a significant footprint of system resources.
Do What’s Best for Your Access Control Process
No matter what route you choose to lean in the RBAC vs ABAC debate, you need to have a concerted plan in place to determine your access control process.
Without access controls, there’s nothing to stop an employee from accessing sensitive data. Adhering to the principle of least access and making sure that employees only have access to the essentials lowers the risk of you running into any cybersecurity issues and losing important data.
Pick an access control methodology that works for your environment. If the simple approach of RBAC works for you then stick with that. If you want more efficiency with automation then ABAC is worth taking a look at.