Adicionar IPs do Chaos Studio como IPs autorizados no AKS
Visão geral
O Serviço de Kubernetes do Azure permite que apenas determinados intervalos de IP cheguem a um cluster. Se você tiver habilitado essa opção, as falhas do AKS do Chaos Studio poderão falhar, a menos que você autorize os endereços IP usados pelo Chaos Studio para comunicação.
Por exemplo, se você tentar executar uma falha de Malha do Chaos em um cluster do AKS com intervalos de IP autorizados habilitados, mas os endereços IP do Chaos Studio não forem permitidos, o experimento poderá falhar com o erro de tempo limite: The request was canceled due to the configured HttpClient.Timeout of 100 seconds elapsing
.
Autorizando IPs
Há várias maneiras de resolver isso:
- Usar a Marca de Serviço do Chaos Studio para autorizar os IPs relevantes (versão prévia)
- Usar um script do PowerShell para recuperar os IPs e adicioná-los automaticamente
- Recuperar e adicionar os IPs manualmente
Usar marcas de serviço com a versão prévia do recurso do AKS
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 um recurso de visualização do AKS para adicionar marcas de serviço diretamente aos intervalos de IP autorizados: Use marcas de serviço para intervalos de IP autorizados do Servidor de API.
A marca de serviço relevante é ChaosStudio
.
Scripts PowerShell
O script do PowerShell a seguir recupera os endereços IP listados na Marca de Serviço ChaosStudio
e os adiciona aos intervalos de IP autorizados do cluster AKS usando a CLI do Azure.
Para usar esse script, copie e cole-o em um novo arquivo e nomeie-o Add-KubernetesChaosStudioAuthorizedIPs.ps1
, em seguida, execute o script usando as instruções comentadas.
# Script to add Chaos Studio IPs to authorized IP range of AKS cluster.
# Run command .\Add-KubernetesChaosStudioAuthorizedIps.ps1 -subscriptionId "yourSubscriptionId" -resourceGroupName "yourResourceGroupName" -clusterName "yourAKSClusterName" -region "regionName"
[CmdletBinding()]
param (
[Parameter(Mandatory=$true)]
[string]
$subscriptionId,
[Parameter(Mandatory=$true)]
[string]
$resourceGroupName,
[Parameter(Mandatory=$true)]
[string]
$clusterName,
[Parameter(Mandatory=$true)]
[string]
$region
)
# Get IP addresses for the Chaos Studio service tag using the Service Tag Discovery API.
try {
Write-Host "Getting IP addresses for the ChaosStudio service tag..." -ForegroundColor Yellow
$chaosStudioIps = $(az network list-service-tags --location $region --query "values[?contains(name, 'ChaosStudio')].properties.addressPrefixes[]" -o tsv)
} catch {
throw "Failed to retrieve IPs for Chaos Studio service tag from Service Tag Discovery API (https://learn.microsoft.com/en-us/azure/virtual-network/service-tags-overview#use-the-service-tag-discovery-api). Exception: $($_.Exception)"
}
# List IP addresses associated with the Chaos Studio service tag.
Write-Host "Chaos Studio IPs:"
$chaosStudioIps | ForEach-Object {
Write-Host "$_"
}
# Add Chaos Studio IPs to authorized IP range of AKS cluster.
try {
Write-Host "Adding Chaos Studio IPs to authorized IP range of AKS cluster '$clusterName' in resource group '$resourceGroupName' of subscription '$subscriptionId'." -ForegroundColor Yellow
az account set --subscription $subscriptionId
az aks update -g $resourceGroupName -n $clusterName --api-server-authorized-ip-ranges $($chaosStudioIps -join (","))
Write-Host "Successfully added Chaos Studio IPs to authorized IP range of AKS cluster '$clusterName' in resource group '$resourceGroupName' of subscription '$subscriptionId'." -ForegroundColor Yellow
} catch {
throw "Failed to add Chaos Studio IPs to authorized IP range of AKS cluster '$clusterName'. Exception: $($_.Exception)"
}
Adição manual
Saiba como limitar o acesso de rede do AKS a um conjunto de intervalos de IP aqui. Obtenha os intervalos de IP do Chaos Studio consultando a ChaosStudio
marca de serviço com a API de Descoberta de Marca de Serviço ou arquivos JSON para download.