Isolamento dei tenant con il modello di documento OPA - AWS Guida prescrittiva

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Isolamento dei tenant con il modello di documento OPA

OPA utilizza i documenti per prendere decisioni. Questi documenti possono contenere dati specifici del tenant, quindi è necessario considerare come mantenere l'isolamento dei dati degli inquilini. I documenti OPA sono costituiti da documenti di base e documenti virtuali. I documenti di base contengono dati provenienti dal mondo esterno. Ciò include i dati forniti direttamente all'OPA, i dati sulla richiesta OPA e i dati che potrebbero essere passati all'OPA come input. I documenti virtuali vengono calcolati in base a criteri e includono politiche e regole OPA. Per ulteriori informazioni, consulta la documentazione OPA.

Per progettare un modello di documento in OPA per un'applicazione multi-tenant, è necessario innanzitutto considerare il tipo di documenti di base necessari per prendere una decisione in OPA. Se questi documenti di base contengono dati specifici del tenant, è necessario adottare misure per garantire che tali dati non vengano esposti accidentalmente all'accesso tra tenant. Fortunatamente, in molti casi, i dati specifici del locatario non sono necessari per prendere una decisione in OPA. L'esempio seguente mostra un ipotetico modello di documento OPA che consente l'accesso a un'API in base al tenant proprietario dell'API e al fatto che l'utente sia un membro del tenant, come indicato nel documento di input.

Modello di documento OPA di base

In questo approccio, OPA non ha accesso a nessun dato specifico del tenant, ad eccezione delle informazioni su quali inquilini possiedono un'API. In questo caso, non c'è motivo di preoccuparsi che l'OPA faciliti l'accesso tra tenant, perché le uniche informazioni che OPA utilizza per prendere una decisione di accesso sono l'associazione dell'utente con un tenant e l'associazione del tenant con. APIs È possibile applicare questo tipo di modello di documento OPA a un modello SaaS in silos, poiché ogni tenant avrebbe la proprietà di risorse indipendenti.

Tuttavia, in molti approcci di autorizzazione RBAC, esiste la possibilità di un'esposizione delle informazioni tra diversi tenant. Nell'esempio seguente, un ipotetico modello di documento OPA consente l'accesso a un'API in base al fatto che un utente sia membro di un tenant e che l'utente abbia il ruolo corretto per accedere all'API.

Modello di documento OPA per casi d'uso tra tenant

Questo modello comporta il rischio di accesso tra tenant diversi, poiché i ruoli e le autorizzazioni di più tenant data.tenant2.user_roles devono ora essere resi accessibili all'OPA per data.tenant1.user_roles prendere decisioni di autorizzazione. Per mantenere l'isolamento dei tenant e la riservatezza della mappatura dei ruoli, questi dati non devono risiedere all'interno dell'OPA. I dati RBAC devono risiedere in una fonte di dati esterna come un database. Inoltre, l'OPA non deve essere utilizzato per mappare ruoli predefiniti a permessi specifici, poiché ciò rende difficile per gli inquilini definire i propri ruoli e le proprie autorizzazioni. Inoltre, rende la logica di autorizzazione rigida e necessita di un aggiornamento costante. Per indicazioni su come incorporare in modo sicuro i dati RBAC nel processo decisionale dell'OPA, consulta la sezione Raccomandazioni per l'isolamento degli inquilini e la privacy dei dati più avanti in questa guida.

È possibile mantenere facilmente l'isolamento dei tenant in OPA evitando di archiviare alcun dato specifico del tenant come documento di base asincrono. Un documento di base asincrono è costituito da dati archiviati in memoria e che possono essere aggiornati periodicamente in OPA. Altri documenti di base, come l'input OPA, vengono trasmessi in modo sincrono e sono disponibili solo al momento della decisione. Ad esempio, fornire dati specifici del tenant come parte dell'input OPA a una query non costituirebbe una violazione dell'isolamento del tenant, poiché tali dati sono disponibili solo in modo sincrono durante il processo decisionale.