Tipos de controle de acesso - 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á.

Tipos de controle de acesso

Você pode usar dois modelos amplamente definidos para implementar o controle de acesso: controle de acesso baseado em função (RBAC) e controle de acesso baseado em atributos (ABAC). Cada modelo tem vantagens e desvantagens, que são discutidas brevemente nesta seção. O modelo que você deve usar depende do seu caso de uso específico. A arquitetura discutida neste guia é compatível com os dois modelos.

RBAC

O controle de acesso baseado em funções (RBAC) determina o acesso aos recursos com base em uma função que geralmente se alinha à lógica de negócios. As permissões são associadas à função, conforme apropriado. Por exemplo, uma função de marketing autorizaria um usuário a realizar atividades de marketing em um sistema restrito. Esse é um modelo de controle de acesso relativamente simples de implementar porque se alinha bem à lógica de negócios facilmente reconhecível. 

O modelo RBAC é menos eficaz quando: 

  • Você tem usuários exclusivos cujas responsabilidades abrangem várias funções. 

  • Você tem uma lógica de negócios complexa que dificulta a definição de funções. 

  • A escalabilidade para um tamanho grande exige administração e mapeamento constantes de permissões para funções novas e existentes. 

  • As autorizações são baseadas em parâmetros dinâmicos.

ABAC

O controle de acesso baseado em atributos (ABAC) determina o acesso aos recursos com base nos atributos. Os atributos podem ser associados a um usuário, recurso, ambiente ou até mesmo ao estado do aplicativo. Suas políticas ou regras fazem referência a atributos e podem usar a lógica booleana básica para determinar se um usuário tem permissão para realizar uma ação. Aqui está um exemplo básico de permissões: 

No sistema de pagamentos, todos os usuários do departamento financeiro podem processar pagamentos no endpoint da API /payments durante o horário comercial.

Ser membro do departamento financeiro é um atributo do usuário que determina o acesso /payments a. Também há um atributo de recurso associado ao endpoint da /payments API que permite acesso somente durante o horário comercial. No ABAC, se um usuário pode ou não processar um pagamento é determinado por uma política que inclui a associação ao departamento financeiro como um atributo do usuário e a hora como um atributo de recurso do/payments.

O modelo ABAC é muito flexível ao permitir decisões de autorização dinâmicas, contextuais e granulares. No entanto, o modelo ABAC é difícil de implementar inicialmente. A definição de regras e políticas, bem como a enumeração de atributos para todos os vetores de acesso relevantes, exigem um investimento inicial significativo para serem implementadas.

Abordagem híbrida RBAC-ABAC

A combinação do RBAC e do ABAC pode oferecer algumas das vantagens de ambos os modelos. O RBAC, estando tão alinhado à lógica de negócios, é mais simples de implementar do que o ABAC. Para fornecer uma camada adicional de granularidade ao tomar decisões de autorização, você pode combinar o ABAC com o RBAC. Essa abordagem híbrida determina o acesso combinando a função de um usuário (e suas permissões atribuídas) com atributos adicionais para tomar decisões de acesso. O uso dos dois modelos permite uma administração e atribuição simples de permissões, além de permitir maior flexibilidade e granularidade em relação às decisões de autorização.

Comparação de modelos de controle de acesso

A tabela a seguir compara os três modelos de controle de acesso discutidos anteriormente. Essa comparação deve ser informativa e de alto nível. Usar um modelo de acesso em uma situação específica pode não necessariamente se correlacionar com as comparações feitas nesta tabela.

Fator

RBAC

ABAC

Híbrida

Flexibilidade

Médio 

Alta

Alta

Simplicidade

Alta

Baixo

Médio

Granularity

Baixo

Alta

Médio

Decisões e regras dinâmicas

Não

Sim

Sim

Consciente do contexto

Não

Sim

Um pouco

Esforço de implementação

Baixo

Alta

Médio