Permissões e segurança para Experiências (clássico)

Importante

Este artigo aplica-se ao modelo antigo de recursos Experiments (clássico). A Microsoft já não desenvolve funcionalidades para o Experiments (clássico) e considera apenas correções críticas, como atualizações de segurança, para o backport. Para novos testes de resiliência, utilize o Chaos Studio Workspaces, onde o desenvolvimento está ativo. Para escolher um modelo de recursos, veja Escolher entre Espaços de Trabalho do Chaos Studio e Experiências (clássico).

Note

Se estiveres a usar Chaos Studio Workspaces, a identidade gerida do workspace executa ações de falha em seu nome. O portal pede-te para atribuires quaisquer funções em falta à identidade do espaço de trabalho, tanto no espaço de trabalho como quando configuras um cenário. Para mais detalhes, veja Como acontecem as atribuições de funções. A informação desta página aplica-se quando cria experiências diretamente.

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

O Chaos Studio tem um modelo de permissões em camadas que impede que falhas ocorram de forma involuntária ou por um agente mal-intencionado. Neste artigo, você aprenderá como proteger recursos direcionados para injeção de falhas usando o Chaos Studio.

Como posso restringir a capacidade de injetar falhas com o Chaos Studio?

O Chaos Studio tem três níveis de segurança para ajudá-lo a controlar como e quando a injeção de falhas pode ocorrer contra um recurso:

  • Primeiro, um experimento de caos é um recurso do Azure que é implantado numa região, grupo de recursos e subscrição. 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 Gerenciador de Recursos que pode ser atribuída granularmente a uma identidade ou atribuída como parte de uma função com permissões curinga. Por exemplo, a função de Colaborador no Azure tem permissão de */write no escopo atribuído, o que inclui permissão de Microsoft.Chaos/experiments/write.

    Quando você tenta controlar a capacidade de injetar falhas em um recurso, a operação mais importante a ser restringida é 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 ao 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 ao sistema para seu experimento, a identidade será criada no momento da criação do experimento em seu locatário do Microsoft Entra. As identidades geridas atribuídas pelos utilizadores podem ser usadas em qualquer número de experiências.

    Ao criar um experimento de caos no portal do Azure, você pode optar por habilitar a atribuição automática de funções usando funções internas do Azure ou uma função personalizada em sua seleção de identidade gerenciada atribuída pelo sistema ou pelo usuário. Habilitar essa funcionalidade permite que o Chaos Studio crie e atribua funções internas do Azure ou uma função personalizada contendo quaisquer recursos de ação de experimento necessários à identidade do seu experimento (que ainda não existem na sua 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, deverá conceder permissões apropriadas de identidade a todos os recursos de destino. Se a identidade do experimento não tiver permissão apropriada para um recurso, ela não poderá executar uma falha contra esse recurso.

  • Em terceiro lugar, cada recurso deve ser integrado ao Chaos Studio como um destino com os recursos correspondentes habilitados. Se um destino ou a capacidade para a falha ser executada não existir, o experimento falhará sem afetar o recurso.

Identidade gerenciada atribuída pelo 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 número de experimentos no Chaos Studio. Para utilizar essa funcionalidade, você deve:

  • Primeiro, crie uma identidade gerenciada atribuída pelo usuário dentro do serviço Identidades Gerenciadas . Você pode atribuir as permissões necessárias à identidade gerida atribuída pelo utilizador para executar os seus experimentos de caos neste momento.
  • Em segundo lugar, ao criar sua experiência de caos no portal do Azure, selecione uma identidade gerenciada atribuída pelo usuário em sua Assinatura. Você pode optar por habilitar a atribuição automática de funções usando funções internas do Azure ou uma função personalizada nesta etapa. Habilitar essa funcionalidade concederia à sua seleção de identidade todas as permissões necessárias que ela possa precisar com base nas falhas contidas em seu experimento.
  • Em terceiro lugar, depois de adicionar todas as suas falhas ao seu experimento de caos, verifique se sua 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 falhas do experimento.

Autenticação do agente

Ao executar falhas baseadas em agente, você deve instalar o agente do Chaos Studio em sua máquina virtual (VM) ou conjunto de dimensionamento de máquina virtual. O agente usa uma identidade gerenciada atribuída pelo usuário para autenticar no Chaos Studio e um perfil de agente para estabelecer um relacionamento com um recurso de VM específico.

Ao integrar uma VM ou um conjunto de dimensionamento de máquina virtual para falhas baseadas em agente, você primeiro cria um destino de agente. O destino do agente deve ter uma referência à identidade gerenciada atribuída pelo usuário que é usada para autenticação. O destino do agente contém um ID de perfil de agente, que é fornecido como configuração quando você instala 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/[Ler, Escrever, Eliminar] Obter, criar, atualizar ou eliminar um destino.
Microsoft.Chaos/targets/capabilities/[Ler, Escrever, Apagar] Obter, criar, atualizar ou excluir um recurso.
Microsoft.Chaos/locations/targetTypes/Read Obtenha todos os tipos de destino.
Microsoft.Chaos/locations/targetTypes/capabilityTypes/Leitura Obtenha todos os tipos de funcionalidades.
Microsoft.Chaos/experiments/[Ler,Escrever,Apagar] Obtenha, crie, atualize ou exclua um experimento de caos.
Microsoft.Caos/experimentos/iniciar/ação Inicie uma experiência de caos.
Microsoft.Chaos/experimentos/cancelar/ação Pare uma experiência de caos.
Microsoft.Chaos/experimentos/execuções/Ler Obtenha o estado de andamento de uma execução de um experimento de caos.
Microsoft.Chaos/experiências/execuções/obterDetalhesExecução/ação Obtenha os detalhes de execução (status e erros para cada ação) para uma execução de um experimento de caos.

Para atribuir essas permissões granularmente, você pode criar uma função personalizada. Você também pode usar as seguintes funções internas do Azure para gerenciar o acesso ao Chaos Studio:

  • Chaos Studio Experiment Contributor: Pode criar, executar e ver detalhes de experimentos, integrar alvos e gerenciar capacidades.
  • Chaos Studio Operator: Pode executar e ver detalhes de experimentos, mas não pode criar experimentos ou gerenciar alvos e recursos.
  • Chaos Studio Reader: Pode visualizar alvos, capacidades, experimentos e detalhes do experimento.
  • Chaos Studio Target Contributor: pode integrar destinos e gerenciar recursos, mas não pode criar, executar ou ver detalhes para experimentos.

Para obter informações mais detalhadas sobre essas funções internas para operações do Chaos Studio, consulte Funções de DevOps do RBAC.

Segurança da rede

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

  • Falhas diretas de serviço: a maioria das falhas diretas de serviço é executada por meio do Gerenciador de Recursos do Azure e não requer nenhum ponto de extremidade de rede permitido.
  • Falhas diretas do AKS Chaos Mesh: As falhas diretas do serviço para o Serviço Kubernetes do Azure que utilizam o Chaos Mesh exigem acesso ao servidor de API do Kubernetes do cluster AKS. Vários métodos para adicionar os IPs necessários estão incluídos em Como autorizar os endereços IP do Chaos Studio para um cluster AKS.
  • Falhas baseadas em agente: para usar falhas baseadas em agente, o agente precisa acessar o serviço de agente do Chaos Studio. Um conjunto de dimensionamento de VM ou máquina virtual 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 do serviço do agente é https://acs-prod-<region>.chaosagent.trafficmanager.net. Você deve substituir o espaço reservado <region> pela região onde 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 oferece suporte à rede privada. Consulte Rede privada para Chaos Agent.

Etiquetas de serviço

Uma etiqueta de serviço é um grupo de prefixos de endereço IP que podem ser atribuídos a regras de entrada e saída para grupos de segurança de rede. Ele lida automaticamente com atualizações para o grupo de prefixos de endereço IP sem qualquer intervenção. Como as tags de serviço habilitam principalmente a filtragem de endereços IP, as tags de serviço sozinhas não são suficientes para proteger o tráfego.

Você pode usar tags de serviço para permitir explicitamente o tráfego de entrada do Chaos Studio sem a necessidade de saber os endereços IP da plataforma. A etiqueta de serviço do Chaos Studio é ChaosStudio.

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

Casos de utilização

O Chaos Studio usa etiquetas 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 do cliente deve comunicar-se com o serviço de backend do Chaos Studio. A etiqueta de serviço permite que os clientes listem o tráfego da máquina virtual para o serviço Chaos Studio.
  • Para usar determinadas falhas que exigem comunicação fora do management.azure.com namespace, como as falhas do Chaos Mesh para o Serviço Kubernetes do Azure, o tráfego é originado do serviço Chaos Studio e direcionado para o recurso do cliente. A etiqueta de serviço permite que os clientes listem o tráfego do serviço Chaos Studio para o recurso de destino.
  • Os clientes podem usar outras Tags de Serviço como parte das regras do Grupo de Segurança de Rede para afetar o tráfego de e para determinados serviços do Azure.

Ao especificar a ChaosStudio etiqueta de serviço 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 tags de serviço, é importante observar que elas não fornecem controle granular sobre endereços IP individuais e não devem ser consideradas como o único método para proteger uma rede. Eles não substituem as medidas adequadas de segurança de rede.

Encriptação 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 gerenciado, nomes de experimento/etapa/ramificação e parâmetros de falha. Um exemplo é o intervalo de portas de rede a bloquear durante 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 Lockbox oferece o controle para aprovar ou rejeitar a solicitação do engenheiro da Microsoft para acessar os dados do experimento durante uma solicitação de suporte.

O Lockbox pode ser ativado para informações de experimentos de caos, e a permissão para acessar dados é concedida pelo cliente ao nível da assinatura, se o Lockbox estiver ativado.

Saiba mais sobre o Customer Lockbox for Microsoft Azure

Próximos passos

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