Aislamiento de inquilinos - Fundamentos de la arquitectura SaaS

Aislamiento de inquilinos

Cuanto más avance en la adopción de un modelo multiinquilino, más les preocupará a sus inquilinos la posibilidad de que algunos puedan acceder a los recursos de otros. Los sistemas SaaS incluyen mecanismos explícitos que garantizan que los recursos de cada inquilino, incluso si se ejecutan en una infraestructura compartida, estén aislados.

Esto es lo que denominamos aislamiento de inquilinos. La idea detrás del aislamiento de inquilinos es que su arquitectura de SaaS introduzca mecanismos que controlen estrictamente el acceso a los recursos y bloqueen cualquier intento de acceder a los recursos de otro inquilino.

Tenga en cuenta que el aislamiento de los inquilinos es independiente de los mecanismos de seguridad generales. Aunque su sistema incluya funciones de autenticación y autorización, el hecho de que un usuario inquilino esté autenticado no significa que su sistema cuente con aislamiento. El aislamiento se aplica aparte de las funciones de autenticación y autorización básicas que pueden formar parte de su aplicación.

Para entenderlo mejor, imagine que ha utilizado un proveedor de identidades para autenticar el acceso a su sistema SaaS. El token de esta experiencia de autenticación también puede incluir información sobre el rol de un usuario, que podría utilizarse para controlar el acceso de ese usuario a una función específica de la aplicación. Estos elementos proporcionan seguridad, pero no aislamiento. De hecho, un usuario podría estar autenticado y autorizado y, aun así, acceder a los recursos de otro inquilino. Las funciones de autenticación y autorización podrían no impedir este acceso.

El aislamiento de inquilinos se centra exclusivamente en utilizar el contexto del inquilino para limitar el acceso a los recursos. Evalúa el contexto del inquilino actual y lo utiliza para determinar a qué recursos podrá acceder. A continuación, aplica este aislamiento a todos los usuarios de ese inquilino.

Esto se hace más complejo a medida que observamos cómo se logra el aislamiento de inquilinos en los diferentes patrones de la arquitectura SaaS. En algunos casos, el aislamiento puede lograrse dedicando pilas completas de recursos a un inquilino al que se le apliquen políticas de red (u otras más generales) que impidan el acceso entre los inquilinos. En otros casos, puede tener recursos agrupados (elementos de una tabla de Amazon DynamoDB) que requieran políticas más granulares para controlar el acceso a los recursos.

Los intentos de acceder al recurso de un inquilino deben limitarse únicamente a aquellos recursos que pertenezcan a ese inquilino. El trabajo de los desarrolladores y arquitectos de SaaS es determinar qué combinación de herramientas y tecnologías serán necesarias para cumplir con los requisitos de aislamiento de una aplicación específica.