Overview
AWX’s RBAC system has been moved to thedjango-ansible-base library, providing a standardized approach to access control across Ansible automation projects.
The RBAC implementation is now maintained in the django-ansible-base library:
https://github.com/ansible/django-ansible-base
Core Concepts
Users and Teams
Users are individual accounts that can:- Be assigned direct permissions to resources
- Belong to one or more teams
- Have organization-level roles
- Be designated as superusers (full system access)
- Share common permissions across resources
- Simplify permission management for groups
- Can have organization-scoped access
- Support hierarchical permission inheritance
Organizations
Organizations are the top-level container for AWX resources:- Group related projects, inventories, and templates
- Provide logical separation between different departments or customers
- Enable multi-tenant environments
- Have dedicated admin and auditor roles
Roles
Roles define what actions users or teams can perform on resources:Admin
Full control over a resource including permissions management
Execute
Ability to launch jobs and workflows
Read
View-only access to resource details
Update
Modify resource configuration
Use
Use resource in job templates (for credentials, inventories)
Adhoc
Run ad-hoc commands against inventory
Resource-Level Permissions
Job Templates
Permissions control who can:- Admin: Modify template, manage permissions, delete
- Execute: Launch jobs from the template
- Read: View template configuration
Inventories
Credentials
Credentials use a restricted permission model:- Admin: Manage credential and grant access to others
- Use: Utilize credential in job templates (cannot view secret values)
- Read: View credential metadata (not secret fields)
Projects
Project permissions determine access to source control repositories:- Admin: Full project management including SCM configuration
- Use: Reference project in job templates
- Update: Trigger project syncs
- Read: View project details
Workflows
Workflow Admin Role enables:- Creating and modifying workflow templates
- Managing workflow nodes and topology
- Configuring approval nodes
- Setting up workflow schedules
- Launching workflow jobs
- Viewing workflow job results
- Approving or denying workflow approval nodes
- Only applicable to workflows with approval steps
Organization-Level Roles
Organization Admin
Organization Admins have broad permissions within their organization:- Create and manage all resources (projects, inventories, templates)
- Grant permissions to other users
- Manage teams within the organization
- Cannot access resources in other organizations (unless explicitly granted)
Organization Auditor
Auditors have read-only access across the organization:- View all resources and configurations
- Monitor job execution and results
- Cannot modify or execute anything
- Useful for compliance and oversight
Organization Member
Basic membership in an organization:- No implicit permissions
- Must be granted specific resource-level roles
- Can view organization details
System-Level Roles
System Administrator
Superusers have unrestricted access to all AWX resources and settings across all organizations.
- Full system configuration
- User and organization management
- Access to all resources regardless of organization
- System-level settings and maintenance
System Auditor
Read-only access across the entire AWX instance:- View all organizations and resources
- Monitor system-wide activity
- Cannot execute or modify anything
- Perfect for security audits and compliance
Permission Inheritance
Permissions follow an inheritance hierarchy:- Organization Admins automatically have admin access to all resources in their organization
- Resource Admins can grant lower-level permissions to others
- Higher-level permissions include all lower-level permissions
- Superusers bypass all RBAC checks
Common RBAC Patterns
Multi-Tenant Setup
Development/Production Separation
Development Teams
Grant Execute and Update permissions on dev inventories and templates
Production Teams
Restrict to Execute-only on production resources with change control
Credential Isolation
Leverage credential “Use” permission:- Store sensitive credentials (cloud APIs, SSH keys)
- Grant “Use” permission to teams/users
- Users can launch jobs without viewing secrets
- Maintains security while enabling automation
Best Practices
Least Privilege
Grant minimum permissions required for users to perform their duties
Use Teams
Manage permissions at team level rather than individual users
Regular Audits
Periodically review and revoke unnecessary permissions
Separate Environments
Use organizations to isolate dev, staging, and production
API Access
RBAC applies to API access:- Users can only access resources they have permissions for
- API tokens inherit the user’s permissions
- OAuth2 tokens can have scoped permissions
- Personal Access Tokens (PAT) support for API automation
Troubleshooting Permissions
User Cannot See Resource
User Cannot Execute Job Template
Missing any of these permissions will prevent job launch.Migration Notes
If migrating from older AWX versions:- Legacy RBAC settings are automatically migrated
- Review permissions after upgrade
- Test user access in non-production first
- django-ansible-base provides enhanced flexibility