Azure RBAC em clusters Kubernetes habilitados para Azure Arc

Os tipos de objeto Kubernetes ClusterRoleBinding e Rolebinding ajudam a definir a autorização no Kubernetes nativamente. Com o controle de acesso baseado em função do Azure (Azure RBAC), você pode usar o Microsoft Entra ID e as atribuições de função no Azure para controlar as verificações de autorização no cluster. Isso permite que os benefícios das atribuições de função do Azure, como os logs de atividade mostrando todas as alterações do RBAC do Azure para um recurso do Azure, sejam usados com os Kubernetes habilitado para o Azure Arc.

Arquitetura

Diagrama mostrando a arquitetura de RBAC do Azure.

Para rotear todas as verificações de acesso de autorização para o serviço de autorização no Azure, um servidor de webhook (Guard) é implantado no cluster.

O apiserver do cluster é configurado para usar a autenticação de token de webhook e a autorização de webhook para que TokenAccessReview SubjectAccessReview as solicitações sejam roteadas para o servidor de webhook de proteção. As solicitações TokenAccessReview e SubjectAccessReview são disparadas por solicitações de recursos Kubernetes enviados para o apiserver.

Em seguida, a proteção faz uma chamada checkAccess no serviço de autorização no Azure para ver se a entidade do Microsoft Entra solicitante tem acesso ao recurso em questão.

Se a entidade possui uma função que permita esse acesso, uma resposta allowed será enviada da proteção do serviço de autorização. A proteção, por sua vez, envia uma resposta allowed ao apiserver, permitindo que a entidade de chamada acesse o recurso do Kubernetes solicitado.

Se a entidade não possui uma função que permita esse acesso, uma resposta denied será enviada da proteção do serviço de autorização. O Guard envia uma resposta denied para o apiserver, dando à entidade de chamada um erro 403 proibido no recurso solicitado.

Próximas etapas