Permissões e segurança no Azure Chaos Studio
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 do serviço, 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ão robusto que impede que falhas sejam executadas sem querer ou por um ator 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 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 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
*/write
permissão no escopo atribuído, o que incluiMicrosoft.Chaos/experiments/write
permissão.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 identificações gerenciadas atribuídas pelo usuário podem ser usadas em qualquer número de experimentos.
Em um experimento de caos, você pode optar por habilitar a atribuição de função personalizada na seleção de identidade gerenciada atribuída pelo sistema ou 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, 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 que está sendo 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 a identidade gerenciada atribuída pelo usuário as permissões necessárias para executar o(s) experimento(s) de caos neste momento.
- Em segundo lugar, ao criar sua experiência 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 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:
Operation | Description |
---|---|
Microsoft.Chaos/targets/[Ler,Escrever,Excluir] | Obter, criar, atualizar ou excluir um destino. |
Microsoft.Chaos/targets/capabilities/[Ler,Escrever,Excluir] | Obter, criar, atualizar ou excluir um recurso. |
Microsoft.Chaos/locations/targetTypes/Read | Obtenha todos os tipos de destino. |
Microsoft.Chaos/locations/targetTypes/capabilityTypes/Read | Obtenha todos os tipos de capacidade. |
Microsoft.Chaos/experiments/[Ler,Escrever,Excluir] | Obtenha, crie, atualize ou exclua um experimento de caos. |
Microsoft.Chaos/experiments/start/action | Inicie uma experiência de caos. |
Microsoft.Chaos/experimentos/cancelar/ação | Pare uma experiência de caos. |
Microsoft.Chaos/experimentos/execuções/Leitura | Obtenha o status de execução para uma execução de um experimento de caos. |
Microsoft.Chaos/experiments/executions/getExecutionDetails/action | 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.
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 usam o Chaos Mesh exigem acesso ao servidor de API Kubernetes do cluster 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 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 se comunicar com o serviço de back-end 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 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 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 da falha Regras do Grupo de Segurança de Rede para afetar o tráfego de/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 ser bloqueado em 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 habilitado para informações de experimentos de caos, e a permissão para acessar dados é concedida pelo cliente no nível da assinatura se o lockbox estiver habilitado.
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: