Multi-tenancy
Chef 360 Platform is a sophisticated multi-tenant software system designed to cater to multiple “customers” (or tenants) within a single installation of the software. This architecture ensures that each tenant’s data is securely isolated and remains invisible to other tenants, providing a high level of privacy and security.
Each tenant in Chef 360 Platform is uniquely identified with a DNS entry, which serves as a distinct identifier for that tenant’s instance of the software. This allows for easy identification and management of tenants within the system.
Furthermore, each tenant maintains a unique relationship with an identity provider (IdP). An IdP is a crucial component in the system that manages user identity information and provides authentication services. This setup ensures that each tenant’s user authentication process is handled securely and independently.
Within each tenant, there are one or more organizational units (OUs). While the OUs own the majority of the data, certain elements like licenses and users are owned at the tenant level. Conversely, built-in roles (also known as system roles) are owned by the platform install, making them accessible to all tenants and OUs.
Data security
Chef 360 Platform employs several layers of security to protect data:
API gateway access
All access requests to the Application Programming Interface (API) Gateway are specific to a tenant, organization, and role. The API gateway verifies that the requesting user has the appropriate access rights to the organization.
Database isolation
The data stored in databases is segregated by using a dedicated database, schema, and access credentials for each service. This ensures that data for one service isn’t accessible to another service.
Row-level access controls
Chef 360 Platform uses row-level access controls in its Postgres databases to further secure data. Before a connection is established, the API assesses which organization and role the transaction is relevant for. Based on this assessment, the database enforces access restrictions, ensuring that data is only accessible to authorized users. This level of isolation is maintained both at the tenant and organization levels.
HTTP message signatures
Chef 360 Platform uses HTTP Message Signatures to enhance security (including the tenant and organization). This method involves signing parts of the HTTP request to ensure the integrity and authenticity of the message, providing an added layer of security for data access and transactions.