9.4. Extended Example: View All Resources, Edit Some Resources
The Setup
Example Corp. has three major groups associated with its IT infrastructure: development, QE, and production. Each group requires information from the other teams to help maintain their configuration, manage performance settings, and roll out new applications, but they should only be able to manage their own systems.
The Plan
Tim the IT Guy first defines the different relationships that need to be expressed within the access controls:
- Everyone needs to be able to view performance data for all stacks within the infrastructure.
- The individual divisions need write access to their own systems.
- At least some administrators within each group require the ability to update system configuration.
- At least some administrators within each group require the ability to create and deploy bundles to manage applications within their own groups.
- A mixed group which contains all of the resources within each given stack environment. The stacks include platforms, Postgres databases, EAP servers, web contexts, and other resources used to manage the production environment.This results in three groups: Dev Stack, QE Stack, and Production Stack.
- An "all stacks" nested group which includes all three stack groups.This group is not for all resources — it only includes the stack groups, excluding JBoss ON-related resources and other managed resources not relevant to those stacks.
- Since these environments include application development, each organization also requires its own bundle group to maintain deployments.
- There has to be a mechnism to promote bundles between environments. Tim the IT Guy creates "Promote Bundles" group where bundles can be added when they are ready to be moved into a different environment.
- View-only rights to all resources, including configuration view-only rights
- Edit rights to resources within the stacks for monitoring, alerts, drift, operations, and inventory
- Edit rights to resources within the stacks for configuration
- View bundle rights within the stacks
- Create and deploy bundle rights within the stacks
- Regular users
- Administrators which manage resource configuration
- Administrators which can create (promote) bundles between groups
Dev Stack
Bundle Group
|
Role BG1
|
V
Regular Joe
^ ^
| |
Role RG1 Role RG2
| |
"All Stack" Dev Stack
Resource Resource
Group Group
^ | Role RG1 <------Permissions | | "All Stack" View.alerts Resource View.inventory Group View.measurements View.etc... View.configuration
^ | Role RG2 <------Permissions | | Dev Stack Edit.alerts Resource Edit.inventory Group Edit.measurements Edit.etc... Deploy.bundles
Dev Stack Bundle Group | Role BG1 <-----Permissions | | V View.bundles Create.bundles
"Regular Joe" roles | V Group Lead <------Role RG3 | Permissions | Edit.configuration
Dev Stack Permission: Bundle Group Create.Bundles \ / \ / Role BG1 | V Role BG2 ----> Group Lead <---- Role BG3 / \ / \ / \ / \ QE Stack Permission: Prod Stack Permission: Bundle Group Create.Bundles Bundle Group Create.Bundles
The Result
Users within each group are granted access to view whatever performance and configuration information they need, but they can only make changes to resources within their specified group. Only administrators within each group can make configuration changes.