Usar a autenticação do Microsoft Entra com falhas do Chaos Studio AKS
Descrição geral
O Azure Chaos Studio integra-se com o Chaos Mesh para executar falhas em clusters do Serviço Kubernetes do Azure (AKS), como remoção de pods, stress da CPU, interrupção da rede e muito mais. Você pode usar dois tipos diferentes de autenticação para executar essas falhas, dependendo da sua configuração e preferências, contas locais ou autenticação do Microsoft Entra gerenciada pelo AKS:
- As contas locais do Kubernetes são armazenadas no servidor da API do Kubernetes e podem ser usadas para autenticar e autorizar solicitações para o cluster. Saiba mais sobre contas locais nesta página: Gerenciar contas locais.
- A autenticação do Microsoft Entra gerenciada pelo AKS permite que você entre e gerencie permissões para seu cluster usando credenciais do Microsoft Entra e o Azure RBAC. Saiba como ativar a autenticação do Microsoft Entra gerenciada pelo AKS.
Nota
As permissões de conta local concedem acesso desde que as credenciais estejam na máquina cliente, enquanto a autenticação do Microsoft Entra gerenciada pelo AKS permite atribuição e gerenciamento de permissões com mais escopo. Saiba mais sobre esta prática recomendada: Práticas recomendadas para segurança e atualizações de cluster.
O Chaos Studio anteriormente só suportava o uso do Chaos Mesh com contas locais, mas a Versão 2.2 de todas as falhas do AKS agora suporta contas locais e autenticação Microsoft Entra.
Aviso
Se você vir um erro Object reference not set to an instance of an object
de tempo de execução, este é um bug conhecido com as falhas da versão 2.2. Espera-se que uma correção termine a implantação no início de janeiro de 2025. Isso acontece ao usar a nova versão de falha do AKS Chaos Mesh (2.2) em um cluster com contas locais habilitadas. A solução alternativa é usar as falhas v2.1, que são marcadas como "(preterido)" na interface do usuário, ou usar um cluster AKS com a autenticação Entra habilitada.
Atualizar metas
Os destinos (Microsoft.Chaos/targets
) representam outro recurso do Azure no modelo de recursos do Chaos Studio, para que você possa controlar facilmente se um determinado recurso está habilitado ou não para injeção de falhas e quais falhas podem ser executadas contra ele. Nesse caso, o destino representa um cluster AKS que você deseja afetar.
Se você estiver integrando um cluster AKS como um novo destino do Chaos Studio no portal do Azure, as novas versões de falha estarão automaticamente disponíveis.
Se você quiser usar a nova versão de falha em um destino AKS existente, você precisa atualizar o destino. Pode fazer isso de duas maneiras:
- Desative e reative o recurso de destino.
- Para fazer isso no portal do Azure, visite o painel Destinos na interface do portal do Chaos Studio, selecione o(s) cluster(s) AKS relevante(s) e selecione Desabilitar destinos. Aguarde de 1 a 2 minutos ou por uma notificação de confirmação, selecione Habilitar destinos>Habilitar destinos diretos de serviço e passe pela tela Revisar & Criar.
- Atualize os recursos habilitados.
- Para fazer isso no portal do Azure, visite o painel Destinos no Chaos Studio, localize o(s) cluster(s) AKS, selecione Gerenciar ações e verifique se todos os recursos estão habilitados. Selecione Salvar para finalizar a atualização.
Se você estiver usando a API ou a linha de comando, siga as instruções em Criar um experimento de caos que usa uma falha do Chaos Mesh com a CLI do Azure para garantir que os recursos disponíveis mais recentes sejam habilitados.
Criar uma nova experimentação
Quando você cria um novo experimento que usa falhas do AKS Chaos Mesh no portal do Azure, você pode ver duas versões de cada falha, como "AKS Chaos Mesh DNS Chaos" e "AKS Chaos Mesh DNS Chaos (preterido)". Selecione a primeira opção, não a opção preterida.
Se você não vir seu cluster AKS como um possível destino depois de selecionar a falha, talvez seja necessário habilitar a nova versão de falha no cluster. Visite a página Destinos, encontre seu cluster AKS e selecione Gerenciar ações, em seguida, certifique-se de que todos os recursos estão selecionados antes de selecionar Salvar.
Siga o tutorial Criar um experimento de caos que usa uma falha do Chaos Mesh para matar pods AKS com o tutorial do portal do Azure para criar um experimento.
Atualizar uma experiência existente
Siga um desses dois métodos para atualizar seu experimento existente.
- Abra um experimento que contenha pelo menos uma falha AKS Chaos Mesh.
- Selecione Editar na falha e copie o valor do parâmetro para a
jsonSpec
área de transferência. - Abra a lista suspensa de seleção de falhas e selecione a versão da falha desejada sem a
(deprecated)
marcação. - Cole o
jsonSpec
da área de transferência no campo de parâmetro. - Salve a falha e o experimento.
Permissões
O Chaos Studio precisa de permissão para executar falhas em seus recursos.
Ao criar um experimento no portal do Azure, você pode, opcionalmente, selecionar Habilitar criação e atribuição de função personalizada para permitir que o Chaos Studio tente atribuir as permissões necessárias à identidade gerenciada do experimento.
Se você optar por não usar a criação de função personalizada ou não estiver usando o portal do Azure, deverá seguir um destes procedimentos depois de criar seu experimento:
- Atribua manualmente as funções de Administrador RBAC do Serviço Kubernetes do Azure e Usuário do Cluster de Serviço do Kubernetes do Azure à identidade gerenciada do experimento (atribuída pelo sistema ou atribuída pelo usuário).
- Crie manualmente uma função personalizada permitindo a lista completa de operações necessárias nas operações RBAC.
- Crie manualmente uma função personalizada permitindo uma lista parcial das operações necessárias e implante um arquivo YAML personalizado. Este processo é detalhado em Acesso opcional de privilégios mínimos.
Operações RBAC
As seguintes operações RBAC são usadas para falhas do AKS Chaos Mesh:
- Ações:
- Microsoft.ContainerService/managedClusters/read
- Ações de dados:
- Microsoft.ContainerService/managedClusters/namespaces/read
- Microsoft.ContainerService/managedClusters/pods/read
- Microsoft.ContainerService/managedClusters/apiextensions.k8s.io/customresourcedefinitions/write
- Microsoft.ContainerService/managedClusters/apiextensions.k8s.io/customresourcedefinitions/read
- Microsoft.ContainerService/managedClusters/authorization.k8s.io/subjectaccessreviews/write
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterroles/read
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterroles/write
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterroles/delete
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterroles/bind/action
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterroles/escalate/action
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterrolebindings/read
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterrolebindings/write
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterrolebindings/delete
Acesso opcional com privilégios mínimos
Se preferir não conceder acesso completo de leitura/gravação a ClusterRole e ClusterRoleBinding à identidade do experimento Chaos Studio, você poderá criar manualmente a função e a associação necessárias para o Chaos Mesh. Isso é necessário para que o Chaos Mesh garanta que o experimento tenha permissão para direcionar o namespace de locatário especificado.
Há duas etapas para essa configuração opcional.
Ao atribuir permissões à identidade gerenciada do experimento, use uma função personalizada com um conjunto limitado de permissões. As permissões necessárias são:
- Ações:
- Microsoft.ContainerService/managedClusters/read
- Ações de dados:
- Microsoft.ContainerService/managedClusters/namespaces/read
- Microsoft.ContainerService/managedClusters/pods/read
- Microsoft.ContainerService/managedClusters/apiextensions.k8s.io/customresourcedefinitions/write
- Microsoft.ContainerService/managedClusters/apiextensions.k8s.io/customresourcedefinitions/read
- Microsoft.ContainerService/managedClusters/authorization.k8s.io/subjectaccessreviews/write
- Ações:
Implante a seguinte configuração do YAML para criar a função e a vinculação. Saiba mais sobre implantações na documentação do AKS: Implantar um cluster do Serviço Kubernetes do Azure (AKS) usando o portal do Azure.
kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 metadata: name: role-cluster-manager-pdmas rules: - apiGroups: - chaos-mesh.org resources: [ "*" ] verbs: ["get", "list", "watch", "create", "delete", "patch", "update"] --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: cluster-manager-binding namespace: {Namespace targeted by experiment} subjects: - kind: User name: {CHAOS-STUDIO-EXPERIMENT-MSI-OBJECT-ID} roleRef: kind: ClusterRole name: role-cluster-manager-pdmas apiGroup: rbac.authorization.k8s.io