Role-Based Access Control (RBAC) enhances security by defining user roles and permissions. It improves data protection, supports selective access, and ensures separation of duties. RBAC is crucial for managing access in CI/CD pipelines and DevOps, offering flexibility and improved organizational security through regular role reviews and adjustments.
Ever wonder why someone was somewhere they weren't supposed to be? Access control is how organizations can govern access over their IT resources, such as parts of your CI/CD pipeline, including related environments, stages, and workflows. This blog post will discuss how to implement and use role-based access control, a popular governance capability for better software delivery.
Role-based access control is control over user groups and access to resources based on a defined role.
According to the National Institute of Science and Technology (NIST), "rudimentary forms of role-based access control were implemented in a variety of ad hoc forms on many systems beginning in the 1970s." However, a formal model wasn't proposed until 1992. Ferrailo and Kuhn published a paper that proposed an alternative to the traditional models of Mandatory Access Control (MAC) and Discretionary Access Control (DAC). RBAC defined three basic requirements for access control:
As described above, the main feature of RBAC is accessed through roles. A role is a collection of permissions. This allows organizations to grant appropriate permissions to employees or guests, and ensure privileges and permissions keep to a role hierarchy.
RBAC differs from access control lists (ACL) as it provides security at an organization or enterprise level. In contrast, ACL is better suited for implementing security at the individual user level and for low-level data. RBAC also differs from attribute-based access control (ABAC), which is another form of access control that uses a different approach.
As mentioned with RBAC systems, businesses can protect their data and key business processes through company-set rules and roles. Additionally, RBAC gives administrators increased visibility across various cloud tooling and IT systems. For DevOps teams, in particular, this is important as many teams exist and require varying amounts of control over specific workloads or groups of resources.
Here are some benefits to RBAC:
Here are some RBAC tips and practices:
How is RBAC used in practice in different situations? Let’s take a look at modern software businesses using CI/CD and DevOps.
RBAC, as it pertains to CI/CD pipeline definitions, development, and other resources, is all about defining the roles and actions on these resources. RBAC can be helpful in ensuring a separation of duties. Not everyone needs access to the CI/CD pipelines that deploy into a live production environment. It’s often that many developers aren’t granted access beyond development or non-production environments.
As it pertains to DevOps, it’s important to consider how RBAC and governance can encourage developers to focus on their core responsibilities. Delivering better software faster is about focusing on outcomes rather than outputs and having teams work together to make decisions and take ownership of their processes.
With the Harness platform, it's fairly simple to get started with implementing RBAC on your defined CI/CD resources. Every user is authenticated via their User Group and Role Assignment. Define User Groups at an Account, Org, or Project scope to assign different role assignments which can provide permissions for various actions including:
Take the Next Step in Security & Governance
IT organizations can benefit from governance to avoid hacks, mistakes, and even accidents. This blog post shares the role of RBAC in governance - and its complexities - and how you can use it to improve your software delivery practices.
Harness provides RBAC along with various other enterprise-ready governance features. You can try these governance features for free at harness.io.