- Overview
- Role-Based Access Control
- Resource Ownership and Sharing
- Audit Logs
- Permission Management Best Practices
- Compliance and Monitoring
- Troubleshooting Access Issues
- Security Recommendations
- Integration with Other Systems
- Next Steps
Overview
Access control and audit logging are critical components of any IoT platform security strategy. IndustryOS provides comprehensive tools to manage user permissions, track user actions, and maintain compliance with security and regulatory requirements.
This documentation covers:
- Role-based access control (RBAC)
- Permission management
- Audit log functionality
- Compliance and monitoring
Role-Based Access Control
IndustryOS implements a hierarchical role-based access control system that defines what actions users can perform and which resources they can access.
User Hierarchy
IndustryOS supports the following user hierarchy:
- System Administrator - Has full access to the entire platform, including all tenants and system configuration
- Tenant Administrator - Has full access within their tenant, can manage users, devices, and resources
- Customer User - Has access to resources assigned to their customer account
- Generic User - Has limited access based on assigned permissions
Default Roles
IndustryOS provides several default roles with predefined permissions:
System Administrator
- Full system configuration access
- Tenant management
- System-wide monitoring and audit
- Global settings and policies
- System updates and maintenance
Tenant Administrator
- Tenant configuration and settings
- User and customer management
- Device and asset management
- Dashboard and rule chain creation
- Tenant-level integrations
Customer User
- View assigned devices and assets
- Access assigned dashboards
- View telemetry and attributes
- Create personal dashboards
- Limited rule chain access
Custom Roles
IndustryOS allows you to create custom roles with specific permissions tailored to your organisation’s needs.
Creating a Custom Role
- Navigate to “Security” → “Roles”
- Click “+ Add Role”
- Configure the role:
- Name - Descriptive name for the role
- Type - Generic or Customer-specific
- Permissions - Select from available permission groups
- Save the role
Permission Groups
Permissions are organised into groups based on functionality:
Entity Management
- Create, read, update, delete devices
- Create, read, update, delete assets
- Create, read, update, delete customers
- Manage entity relationships
Dashboard and Visualisation
- View dashboards
- Create and edit dashboards
- Share dashboards
- Export dashboard data
Data Access
- Read telemetry data
- Write telemetry data
- Read attributes
- Write attributes
- Execute RPC commands
Rule Engine
- View rule chains
- Create and edit rule chains
- Debug rule chains
- Import/export rule chains
Administration
- User management
- System settings
- Integration configuration
- Audit log access
Assigning Roles to Users
To assign a role to a user:
- Navigate to “Users”
- Select the user or create a new user
- In the user details, select the appropriate role
- Assign the user to a customer (if applicable)
- Save the user configuration
Resource Ownership and Sharing
Entity Ownership
Each entity (device, asset, dashboard, etc.) in IndustryOS has an owner:
- Tenant-Owned - Accessible to tenant administrators and users with appropriate permissions
- Customer-Owned - Accessible to customer users and tenant administrators
- User-Owned - Personal resources (e.g., private dashboards)
Sharing Resources
Resources can be shared across organisational boundaries:
Dashboard Sharing
- Open the dashboard
- Click the share icon
- Choose sharing options:
- Public - Accessible via public link (with optional password)
- Customer - Share with specific customers
- User Group - Share with specific user groups
- Set permissions (view-only or edit)
- Save sharing settings
Device and Asset Assignment
Devices and assets can be assigned to customers:
- Navigate to the device or asset
- Click “Assign to customer”
- Select the target customer
- Confirm assignment
Once assigned, customer users can access the device or asset according to their role permissions.
Audit Logs
IndustryOS provides the ability to track user actions in order to keep audit logs. It is possible to log user actions related to main entities: assets, devices, dashboards, rules, and more.
Audit Log Features
- Comprehensive Tracking - Log all user actions across the platform
- Entity-Specific Logs - Track actions on specific devices, assets, or other entities
- User Activity Monitoring - View all actions performed by a specific user
- Detailed Information - Capture action type, timestamp, user, entity, and changes made
- Search and Filter - Quickly find relevant audit entries
User Interface
Tenant administrators are able to review audit logs that belong to their tenant account. The administrator can set up date range and execute a full-text search for fetched entities.
The audit log interface displays:
- Timestamp - When the action occurred
- User - Who performed the action
- Entity Type - Type of entity affected (Device, Asset, Dashboard, etc.)
- Entity Name - Name of the specific entity
- Action Type - Type of action performed (Created, Updated, Deleted, etc.)
- Status - Success or failure of the action
The “Details” button allows reviewing low-level details of the logged action, including:
- Before and after values for updates
- Complete entity configuration
- IP address and user agent
- Additional context information
Audit Log Configuration
System administrators can configure audit log levels and behaviour.
Logging Levels
For each entity type, you can configure:
- OFF - Disable logging for this entity type
- W - Log write operations (create, update, delete)
- RW - Log read and write operations (includes view operations)
Configuration Example
1
2
3
4
5
6
7
8
9
10
11
12
13
audit_log:
enabled: true
by_tenant_partitioning: MONTHS
default_query_period: 30
logging_level:
mask:
device: W
asset: W
dashboard: OFF
customer: W
user: RW
rule: RW
integration: RW
This configuration:
- Disables logging for dashboards
- Logs read and write operations for users and rules
- Logs only write operations for devices, assets, and customers
Partitioning Strategy
The by_tenant_partitioning parameter controls how audit logs are partitioned:
- MINUTES - For very high-volume systems
- HOURS - For high-volume systems
- DAYS - For medium-volume systems
- MONTHS - For standard deployments (recommended)
Recommendation: Modify the partitioning parameter based on the number of devices and user actions that will be logged. The more actions you plan to log, the more precise partitioning is required. The approximate amount of records per partition should not exceed 500,000 records.
REST API Access
It is possible to fetch audit logs via REST API. There are several API calls that allow fetching entities related to a particular user, entity, customer, or fetching all records using page links.
Common API endpoints:
/api/audit/logs/{entityType}/{entityId}- Get logs for a specific entity/api/audit/logs/user/{userId}- Get logs for a specific user/api/audit/logs/customer/{customerId}- Get logs for a specific customer/api/audit/logs- Get all audit logs with pagination
External Log Sink Configuration
System administrators can configure connection to external systems for pushing audit logs. This is useful for:
- Long-term archival
- Integration with SIEM systems
- Centralised log management
- Compliance requirements
Elasticsearch Integration
Configure Elasticsearch as an external sink:
1
2
3
4
5
6
7
8
9
sink:
type: elasticsearch
index_pattern: "@{TENANT}_AUDIT_LOG_@{DATE}"
date_format: "YYYY.MM.DD"
scheme_name: https
host: elasticsearch.example.com
port: 9200
user_name: audit_user
password: ${AUDIT_LOG_SINK_PASSWORD}
Index pattern placeholders:
@{TENANT}- Substituted by tenant ID@{DATE}- Substituted by current date in the specified format
Permission Management Best Practices
Principle of Least Privilege
- Grant Minimum Required Access - Users should only have access to resources and actions necessary for their job function
- Use Custom Roles - Create specific roles for different job functions rather than using generic high-privilege roles
- Regular Reviews - Periodically review user permissions and remove unnecessary access
- Temporary Elevated Access - For temporary needs, grant access for a limited time and revoke afterwards
Role Design
- Functional Roles - Design roles based on job functions (e.g., “Operator”, “Maintenance Engineer”, “Analyst”)
- Separate Administration - Keep administrative roles separate from operational roles
- Customer Isolation - Ensure customer users cannot access other customers’ data
- Document Roles - Maintain documentation of each role’s purpose and permissions
User Management
- Onboarding Process - Establish a standard process for creating user accounts with appropriate roles
- Offboarding Process - Promptly disable or delete accounts for departing users
- Account Review - Regularly review active accounts and remove unused ones
- Strong Authentication - Enforce strong passwords and two-factor authentication
Compliance and Monitoring
Compliance Requirements
Audit logs help meet various compliance requirements:
GDPR Compliance
- Track access to personal data
- Log data modifications and deletions
- Maintain records of data subject requests
- Demonstrate accountability
ISO 27001
- Monitor security events
- Track privileged user actions
- Maintain access control records
- Support incident investigation
Industry-Specific Standards
- Healthcare (HIPAA) - Track access to protected health information
- Financial Services - Monitor transaction and data access
- Manufacturing (IEC 62443) - Log industrial control system changes
Monitoring and Alerting
Security Monitoring
Monitor audit logs for security-relevant events:
- Failed Authentication Attempts - Multiple failures may indicate brute-force attacks
- Privilege Escalation - Unexpected role or permission changes
- Unusual Activity - Actions outside normal patterns (time, location, volume)
- Critical Changes - Modifications to security settings or user accounts
- Data Exfiltration - Large data exports or unusual access patterns
Alert Configuration
Configure Pipeline rules to generate alerts based on audit log events:
- Create a rule chain that processes audit log events
- Define conditions for alerting (e.g., 5 failed logins in 10 minutes)
- Configure notification delivery (email, Slack, SMS)
- Set up escalation procedures for critical alerts
Report Generation
Generate regular reports from audit logs for:
- Compliance Audits - Demonstrate adherence to policies and regulations
- Security Reviews - Identify potential security issues
- User Activity Reports - Track user behaviour and productivity
- Resource Usage - Understand how platform resources are being utilised
See Creating Reports for detailed report configuration.
Troubleshooting Access Issues
User Cannot Access Resource
Problem: User reports they cannot view or modify a resource
Solutions:
- Verify user’s role has appropriate permissions
- Check if resource is assigned to user’s customer (if applicable)
- Confirm resource ownership allows access
- Review any resource-specific sharing settings
- Check audit logs for denied access attempts
Missing Audit Log Entries
Problem: Expected actions are not appearing in audit logs
Solutions:
- Verify audit logging is enabled for the entity type
- Check logging level configuration (OFF/W/RW)
- Confirm system time is correct
- Review partition settings if logs are very old
- Check external sink configuration if applicable
Permission Changes Not Taking Effect
Problem: User permission changes don’t seem to apply
Solutions:
- Ensure changes were saved correctly
- Ask user to log out and log back in
- Check for JWT token expiration settings
- Verify role assignment is correct
- Clear browser cache if using web interface
Security Recommendations
Access Control
- Implement Least Privilege - Only grant necessary permissions
- Regular Audits - Review user access quarterly
- Segregation of Duties - Separate administrative and operational roles
- Multi-Tenancy - Use customer assignments to isolate data
- Strong Authentication - Require 2FA for administrative accounts
Audit Logging
- Enable Comprehensive Logging - Log both read and write operations for sensitive entities
- Protect Log Integrity - Use external log sinks for tamper-proof storage
- Regular Review - Establish processes for reviewing audit logs
- Retention Policies - Define and implement appropriate log retention periods
- Alert on Critical Events - Configure real-time alerts for security events
Monitoring
- Establish Baselines - Understand normal user behaviour patterns
- Anomaly Detection - Use AI/ML to identify unusual activities
- Incident Response - Define procedures for investigating security events
- Documentation - Maintain records of security policies and procedures
- Regular Testing - Periodically test access controls and monitoring systems
Integration with Other Systems
SIEM Integration
Integrate IndustryOS audit logs with Security Information and Event Management (SIEM) systems:
- Configure external log sink to send logs to SIEM
- Map IndustryOS audit events to SIEM event taxonomy
- Configure correlation rules in SIEM
- Set up unified dashboards and alerts
Identity Provider Integration
Integrate with enterprise identity providers:
- Configure OAuth 2.0 or SAML integration
- Map identity provider roles to IndustryOS roles
- Enable automatic user provisioning
- Configure attribute synchronisation
See User Authentication for detailed OAuth configuration.
Next Steps
- Configure user authentication with OAuth and 2FA
- Set up device authentication for IoT devices
- Learn about Pipeline security for data protection
- Create compliance reports from audit logs
- Explore dashboard sharing options