Isolamento de inquilinos com o modelo de documento OPA - AWS Orientação prescritiva

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Isolamento de inquilinos com o modelo de documento OPA

A OPA usa documentos para tomar decisões. Esses documentos podem conter dados específicos do inquilino, portanto, você deve considerar como manter o isolamento dos dados do inquilino. Os documentos OPA consistem em documentos básicos e documentos virtuais. Os documentos básicos contêm dados do mundo exterior. Isso inclui dados fornecidos diretamente à OPA, dados sobre a solicitação de OPA e dados que podem ser passados para a OPA como entrada. Os documentos virtuais são computados por política e incluem políticas e regras de OPA. Para obter mais informações, consulte a documentação do OPA.

Para criar um modelo de documento no OPA para um aplicativo multilocatário, você deve primeiro considerar o tipo de documentos básicos necessários para tomar uma decisão no OPA. Se esses documentos básicos contiverem dados específicos do inquilino, você deverá tomar medidas para garantir que esses dados não sejam expostos acidentalmente ao acesso entre inquilinos. Felizmente, em muitos casos, dados específicos do inquilino não são necessários para tomar uma decisão na OPA. O exemplo a seguir mostra um modelo hipotético de documento OPA que permite acesso a uma API com base em qual inquilino é proprietário da API e se o usuário é membro do locatário, conforme indicado no documento de entrada.

Modelo básico de documento OPA

Nessa abordagem, a OPA não tem acesso a nenhum dado específico do inquilino, exceto às informações sobre quais inquilinos possuem uma API. Nesse caso, não há preocupação com o fato de a OPA facilitar o acesso entre inquilinos, porque as únicas informações que a OPA usa para tomar uma decisão de acesso são a associação do usuário com um inquilino e a associação do inquilino com. APIs Você poderia aplicar esse tipo de modelo de documento OPA a um modelo SaaS em silos, porque cada inquilino teria propriedade de recursos independentes.

No entanto, em muitas abordagens de autorização do RBAC, existe o potencial de exposição de informações entre inquilinos. No exemplo a seguir, um modelo hipotético de documento OPA permite o acesso a uma API com base no fato de o usuário ser membro de um locatário e se o usuário tem a função correta para acessar a API.

Modelo de documento OPA para caso de uso entre inquilinos

Esse modelo introduz o risco de acesso entre inquilinos, porque as funções e permissões de vários inquilinos estão e agora data.tenant2.user_roles devem ser disponibilizadas à OPA para tomar decisões de autorização. data.tenant1.user_roles Para manter o isolamento do inquilino e a privacidade do mapeamento de funções, esses dados não devem residir na OPA. Os dados do RBAC devem residir em uma fonte de dados externa, como um banco de dados. Além disso, o OPA não deve ser usado para mapear funções predefinidas para permissões específicas, pois isso dificulta que os inquilinos definam suas próprias funções e permissões. Isso também torna sua lógica de autorização rígida e precisa de atualização constante. Para obter orientação sobre como incorporar com segurança os dados do RBAC no processo de tomada de decisão da OPA, consulte a seção Recomendações para isolamento de inquilinos e privacidade de dados, mais adiante neste guia.

Você pode manter facilmente o isolamento do inquilino no OPA ao não armazenar nenhum dado específico do inquilino como um documento base assíncrono. Um documento base assíncrono são dados armazenados na memória e que podem ser atualizados periodicamente, no OPA. Outros documentos básicos, como a entrada OPA, são transmitidos de forma síncrona e estão disponíveis somente no momento da decisão. Por exemplo, fornecer dados específicos do inquilino como parte da entrada do OPA para uma consulta não constituiria uma violação do isolamento do inquilino, porque esses dados estão disponíveis somente de forma síncrona durante o processo de tomada de decisão.