Compartilhar via


Permissões e segurança no Azure Chaos Studio

O Azure Chaos Studio permite melhorar a resiliência do serviço, injetando sistematicamente as falhas em seus recursos do Azure. A injeção de falhas é uma maneira eficiente de melhorar a resiliência do serviço, mas também pode ser perigosa. A causa de falhas em seu aplicativo pode ter mais impacto do que originalmente pretendido e abrir oportunidades para atores mal-intencionados invadirem seus aplicativos.

O Chaos Studio tem um modelo de permissão robusto que impede que as falhas sejam executadas involuntariamente ou por um ator ruim. Neste artigo, você aprenderá como proteger os recursos destinados à injeção de falhas usando o Chaos Studio.

Como posso restringir a capacidade de injetar falhas no Chaos Studio?

O Chaos Studio tem três níveis de segurança que ajudam a controlar como e quando a injeção de falha pode ocorrer em um recurso:

  • Primeiro, um experimento de caos é um recurso do Azure que é implantado em uma região, grupo de recursos e assinatura. Os usuários devem ter permissões apropriadas do Azure Resource Manager para criar, atualizar, iniciar, cancelar, excluir ou exibir um experimento.

    Cada permissão é uma operação do Resource Manager que pode ser atribuída de forma granular a uma identidade ou atribuída como parte de uma função com permissões curinga. Por exemplo, a função Colaborador no Azure tem a permissão de */write no escopo atribuído, que inclui a permissão Microsoft.Chaos/experiments/write.

    Quando você tenta controlar a capacidade de injetar falhas em um recurso, a operação mais importante para restringir é Microsoft.Chaos/experiments/start/action. Esta operação inicia um experimento de caos que injeta falhas.

  • Em segundo lugar, um experimento de caos tem uma identidade gerenciada atribuída pelo sistema ou uma identidade gerenciada atribuída pelo usuário que executa falhas em um recurso. Se você optar por usar uma identidade gerenciada atribuída pelo sistema para seu experimento, a identidade será criada no momento da criação do experimento em seu locatário do Microsoft Entra. As identidades gerenciadas atribuídas pelo usuário podem ser usadas em qualquer quantidade de experimentos.

    Em um experimento de caos, é possível optar por habilitar a atribuição de função personalizada na seleção de identidade gerenciada atribuída pelo sistema ou atribuída pelo usuário. Habilitar essa funcionalidade permite que o Chaos Studio crie e atribua uma função personalizada contendo todos os recursos de ação de experimento necessários à identidade do experimento (que ainda não existem na seleção de identidade). Se um experimento de caos estiver usando uma identidade gerenciada atribuída pelo usuário, todas as funções personalizadas atribuídas à identidade do experimento pelo Chaos Studio persistirão após a exclusão do experimento.

    Se você optar por conceder permissões de experimento manualmente, deve conceder permissões apropriadas de identidade para todos os recursos de destino. Se a identidade do experimento não tiver a permissão apropriada para um recurso, ela não será capaz de executar uma falha nele.

  • Em terceiro lugar, cada recurso deve ser integrado ao Chaos Studio como um destino com funcionalidades correspondentes habilitadas. Se um destino ou a funcionalidade para a falha que está sendo executada não existir, o experimento falhará sem afetar o recurso.

Identidade gerenciada atribuída ao usuário

Um experimento de caos pode utilizar uma identidade gerenciada atribuída pelo usuário para obter permissões suficientes para injetar falhas nos recursos de destino do experimento. Além disso, as identidades gerenciadas atribuídas pelo usuário podem ser usadas em qualquer quantidade de experimentos no Chaos Studio. Para utilizar essa funcionalidade:

  • Primeiro, crie uma identidade gerenciada atribuída pelo usuário no serviço Identidades Gerenciadas. Você pode atribuir permissões necessárias à identidade gerenciada atribuída pelo usuário para executar seus experimentos de caos neste momento.
  • Em segundo lugar, ao criar seu experimento de caos, selecione uma identidade gerenciada atribuída pelo usuário em sua assinatura. Você pode optar por habilitar a atribuição de função personalizada nesta etapa. Habilitar essa funcionalidade concederá à sua seleção de identidade todas as permissões necessárias com base nas falhas contidas em seu experimento.
  • Em terceiro lugar, depois de adicionar todas as suas falhas ao experimento de caos, examine se a configuração de identidade contém todas as ações necessárias para que seu experimento de caos seja executado com êxito. Caso contrário, entre em contato com o administrador do sistema para acessar ou editar as seleções de falha do experimento.

Autenticação de agente

Ao executar falhas baseadas em agente, é necessário instalar o agente do Chaos Studio em sua máquina virtual (VM) ou conjunto de dimensionamento de máquinas virtuais. O agente usa uma identidade gerenciada atribuída pelo usuário para se autenticar no Chaos Studio e um perfil de agente para estabelecer uma relação com um recurso de VM específico.

Ao integrar uma VM ou um conjunto de dimensionamento de máquinas virtuais para falhas baseadas em agente, primeiro você crie um destino de agente. O destino do agente deve ter uma referência à identidade gerenciada atribuída pelo usuário usada para autenticação. O destino do agente contém uma ID de perfil de agente, que é fornecida como configuração ao instalar o agente. Os perfis de agente são exclusivos para cada destino e os destinos são exclusivos por recurso.

Operações e funções do Azure Resource Manager

O Chaos Studio tem as seguintes operações:

Operação Descrição
Microsoft.Chaos/targets/[Read,Write,Delete] Obter, criar, atualizar ou excluir um destino.
Microsoft.Chaos/targets/capabilities/[Read,Write,Delete] Obter, criar, atualizar ou excluir uma funcionalidade.
Microsoft.Chaos/locations/targetTypes/Read Obter todos os tipos de destino.
Microsoft.Chaos/locations/targetTypes/capabilityTypes/Read Obter todos os tipos de funcionalidade.
Microsoft.Chaos/experiments/[Read,Write,Delete] Obter, criar, atualizar ou excluir um experimento de caos.
Microsoft.Chaos/experiments/start/action Iniciar um experimento de caos.
Microsoft.Chaos/experiments/cancel/action Interromper um experimento de caos.
Microsoft.Chaos/experiments/executions/Read Obter o status de execução para uma execução de um experimento de caos.
Microsoft.Chaos/experiments/executions/getExecutionDetails/action Obter os detalhes de execução (status e erros de cada ação) para uma execução de um experimento de caos.

Para atribuir essas permissões de maneira granular, você pode criar uma função personalizada.

Segurança de rede

Todas as interações de usuário com o Chaos Studio acontecem por meio do Azure Resource Manager. Se um usuário iniciar um experimento, o experimento poderá interagir com pontos de extremidade diferentes do Resource Manager, dependendo da falha:

  • Falhas diretas de serviço: a maioria das falhas diretas de serviços são executadas por meio do Azure Resource Manager e não exigem pontos de extremidade de rede na lista de permitidos.
  • Falhas diretas de serviço do Chaos Mesh do AKS: falhas diretas de serviço para o Serviço de Kubernetes do Azure que usam o Chaos Mesh exigem acesso ao servidor de API do Kubernetes do cluster do AKS. Vários métodos para adicionar os IPs necessários estão incluídos em Autorizar endereços IP do Chaos Studio para um cluster do AKS.
  • Falhas baseadas em agente: para usar falhas baseadas em agente, o agente precisa de acesso ao serviço de agente do Chaos Studio. Uma VM ou conjunto de dimensionamento de máquinas virtuais deve ter acesso de saída ao ponto de extremidade de serviço do agente para que o agente se conecte com êxito. O ponto de extremidade de serviço do agente é https://acs-prod-<region>.chaosagent.trafficmanager.net. Você deve substituir o espaço reservado <region> pela região em que sua VM está implantada. Um exemplo é https://acs-prod-eastus.chaosagent.trafficmanager.net para uma VM no Leste dos EUA.
  • Rede privada baseada em agente: o agente do Chaos Studio agora dá suporte à rede privada. Consulte Rede privada para o agente do Chaos.

Marcas de serviço

Uma marca de serviço é um grupo de endereços IP que podem ser atribuídos a regras de entrada e saída para grupos de segurança de rede. Ela manipula automaticamente com as atualizações do grupo de prefixos de endereços IP sem intervenções. Como as marcas de serviço habilitam principalmente a filtragem de endereços IP, elas por si só não são suficientes para proteger o tráfego.

Você pode usar marcas de serviços para permitir explicitamente o tráfego de entrada do Chaos Studio sem precisar conhecer os endereços IP da plataforma. A marca de serviço do Chaos Studio é ChaosStudio.

Uma limitação das marcas de serviço é que elas só podem ser utilizadas com aplicativos que têm um endereço IP público. Se um recurso tiver apenas um endereço IP privado, as marcas de serviço não poderão rotear tráfego para ele.

Casos de uso

O Chaos Studio usa marcas de serviço para vários casos de uso.

  • Para usar falhas baseadas em agente, o agente do Chaos Studio em execução dentro das máquinas virtuais cliente deve se comunicar com o serviço de back-end do Chaos Studio. A marca de serviço permite que os clientes insiram na lista de permitidos o tráfego da máquina virtual para o serviço Chaos Studio.
  • Para usar determinadas falhas que exigem comunicação fora do namespace management.azure.com, como falhas do Chaos Mesh para o Serviço Kubernetes do Azure, o tráfego vem do serviço Chaos Studio para o recurso do cliente. A marca de serviço permite que os clientes insiram na lista de permitidos o tráfego do serviço Chaos Studio para o recurso de destino.
  • Os clientes podem usar outras marcas de serviço como parte da falha de Regras de Grupo de Segurança de Rede para afetar o tráfego de/para determinados serviços do Azure.

Ao especificar a marca de serviço ChaosStudio nas regras de segurança, o tráfego pode ser permitido ou negado para o serviço Chaos Studio sem a necessidade de especificar endereços IP individuais.

Considerações de segurança

Ao avaliar e usar marcas de serviço, é importante observar que elas não fornecem controle granular sobre endereços IP individuais e não devem ser confiadas como o único método para proteger uma rede. Eles não são um substituto para as medidas de segurança de rede apropriadas.

Criptografia de dados

O Chaos Studio criptografa todos os dados por padrão. O Chaos Studio só aceita entrada para propriedades do sistema, como IDs de objeto de identidade gerenciada, nomes de experimento/etapa/branch e parâmetros de falha. Um exemplo é o intervalo de portas de rede para bloquear uma falha de desconexão de rede.

Essas propriedades não devem ser usadas para armazenar dados confidenciais, como informações de pagamento ou senhas. Para obter mais informações sobre como o Chaos Studio protege seus dados, consulte Proteção de dados do cliente do Azure.

Sistema de Proteção de Dados do Cliente

O Sistema de Proteção de Dados oferece o controle para aprovar ou rejeitar a solicitação de engenheiro da Microsoft para acessar os dados do experimento durante uma solicitação de suporte.

O Sistema de Proteção de Dados pode ser habilitado para informações de teste de caos e a permissão para acessar dados é concedida pelo cliente no nível da assinatura se o sistema de proteção de dados estiver habilitado.

Saiba mais sobre o Sistema de Proteção de Dados do Cliente do Microsoft Azure

Próximas etapas

Agora que você entende como proteger seu experimento de caos, está pronto para: