Compreender o Azure Policy para clusters do KubernetesUnderstand Azure Policy for Kubernetes clusters

A Azure Policy estende o Gatekeeper v3, um webhook do controlador de admissão para o Agente de Política Aberta (OPA), para aplicar aplicações e salvaguardas em escala nos seus clusters de forma centralizada e consistente.Azure Policy extends Gatekeeper v3, an admission controller webhook for Open Policy Agent (OPA), to apply at-scale enforcements and safeguards on your clusters in a centralized, consistent manner. A Azure Policy permite gerir e reportar sobre o estado de conformidade dos seus aglomerados Kubernetes a partir de um local.Azure Policy makes it possible to manage and report on the compliance state of your Kubernetes clusters from one place. O addon promulga as seguintes funções:The add-on enacts the following functions:

  • Verifica com o serviço Azure Policy para atribuições de políticas para o cluster.Checks with Azure Policy service for policy assignments to the cluster.
  • Implementa definições de política no cluster como modelo de restrição e limita recursos personalizados.Deploys policy definitions into the cluster as constraint template and constraint custom resources.
  • Relatórios de auditoria e conformidade de volta ao serviço de Política Azure.Reports auditing and compliance details back to Azure Policy service.

A Azure Policy for Kubernetes suporta os seguintes ambientes de cluster:Azure Policy for Kubernetes supports the following cluster environments:

Importante

Os addons para AKS Engine e Arc ativados Kubernetes estão em pré-visualização.The add-ons for AKS Engine and Arc enabled Kubernetes are in preview. A Azure Policy for Kubernetes suporta apenas piscinas de nól de Linux e definições políticas incorporadas.Azure Policy for Kubernetes only supports Linux node pools and built-in policy definitions. As definições políticas incorporadas estão na categoria Kubernetes.Built-in policy definitions are in the Kubernetes category. As definições de política de pré-visualização limitadas com o efeito EnforceOPAConstraint e EnforceRegoPolicy e a categoria de Serviço Kubernetes conexa são depreciadas.The limited preview policy definitions with EnforceOPAConstraint and EnforceRegoPolicy effect and the related Kubernetes Service category are deprecated. Em vez disso, utilize a auditoria de efeitos e negue com o modo Fornecedor de Recursos Microsoft.Kubernetes.Data .Instead, use the effects audit and deny with Resource Provider mode Microsoft.Kubernetes.Data.

Descrição geralOverview

Para ativar e utilizar a Política Azure com o seu cluster Kubernetes, tome as seguintes ações:To enable and use Azure Policy with your Kubernetes cluster, take the following actions:

  1. Configure o seu cluster Kubernetes e instale o addon:Configure your Kubernetes cluster and install the add-on:

    Nota

    Para questões comuns com a instalação, consulte Troubleshoot - Azure Policy Add-on.For common issues with installation, see Troubleshoot - Azure Policy Add-on.

  2. Compreender a linguagem política do Azure para KubernetesUnderstand the Azure Policy language for Kubernetes

  3. Atribua uma definição incorporada ao seu cluster KubernetesAssign a built-in definition to your Kubernetes cluster

  4. Aguarde a validaçãoWait for validation

LimitaçõesLimitations

As seguintes limitações gerais aplicam-se ao Add-on de Política Azure para os clusters Kubernetes:The following general limitations apply to the Azure Policy Add-on for Kubernetes clusters:

  • O Azure Policy Add-on for Kubernetes é suportado na versão 1.14 ou superior de Kubernetes.Azure Policy Add-on for Kubernetes is supported on Kubernetes version 1.14 or higher.
  • Azure Policy Add-on para Kubernetes só pode ser implantado em piscinas de nól de linuxAzure Policy Add-on for Kubernetes can only be deployed to Linux node pools
  • Apenas as definições políticas incorporadas são apoiadasOnly built-in policy definitions are supported
  • Número máximo de registos não conformes por política por agrupamento: 500Maximum number of Non-compliant records per policy per cluster: 500
  • Número máximo de registos não conformes por subscrição: 1 milhãoMaximum number of Non-compliant records per subscription: 1 million
  • As instalações do Gatekeeper fora do Azure Policy Add-on não são suportadas.Installations of Gatekeeper outside of the Azure Policy Add-on aren't supported. Desinstale quaisquer componentes instalados por uma instalação anterior do Gatekeeper antes de ativar o Add-on de Política Azure.Uninstall any components installed by a previous Gatekeeper installation before enabling the Azure Policy Add-on.
  • As razões para o incumprimento não estão disponíveis para o Microsoft.Kubernetes.Data modo Fornecedor de Recursos.Reasons for non-compliance aren't available for the Microsoft.Kubernetes.Data Resource Provider mode. Utilizar detalhes do Componente.Use Component details.
  • As isenções não são suportadas para os modos fornecedores de recursos.Exemptions aren't supported for Resource Provider modes.

As seguintes limitações aplicam-se apenas ao Add-on da Política Azure para a AKS:The following limitations apply only to the Azure Policy Add-on for AKS:

RecomendaçõesRecommendations

Seguem-se recomendações gerais relativas à utilização do Complemento político Azure:The following are general recommendations for using the Azure Policy Add-on:

  • O Add-on de Política Azure requer 3 componentes gatekeeper para executar: 1 cápsula de auditoria e 2 réplicas de pod webhook.The Azure Policy Add-on requires 3 Gatekeeper components to run: 1 audit pod and 2 webhook pod replicas. Estes componentes consomem mais recursos à medida que a contagem de recursos da Kubernetes e atribuições de políticas aumenta no cluster, o que requer operações de auditoria e execução.These components consume more resources as the count of Kubernetes resources and policy assignments increases in the cluster which requires audit and enforcement operations.

    • Por menos de 500 cápsulas num único cluster com um máximo de 20 restrições: 2 vCPUs e 350 MB de memória por componente.For less than 500 pods in a single cluster with a max of 20 constraints: 2 vCPUs and 350 MB memory per component.
    • Para mais de 500 cápsulas num único cluster com um máximo de 40 restrições: 3 vCPUs e 600 MB de memória por componente.For more than 500 pods in a single cluster with a max of 40 constraints: 3 vCPUs and 600 MB memory per component.
  • As cápsulas windows não suportam contextos de segurança.Windows pods don't support security contexts. Assim, algumas das definições da Política Azure, como a desaferição de privilégios de raiz, não podem ser escaladas em pods Windows e apenas se aplicam a cápsulas Linux.Thus, some of the Azure Policy definitions, such as disallowing root privileges, can't be escalated in Windows pods and only apply to Linux pods.

A seguinte recomendação aplica-se apenas à AKS e ao Addon da Política Azure:The following recommendation applies only to AKS and the Azure Policy Add-on:

  • Utilize a piscina de nó do sistema com CriticalAddonsOnly mancha para agendar cápsulas gatekeeper.Use system node pool with CriticalAddonsOnly taint to schedule Gatekeeper pods. Para obter mais informações, consulte Usando as piscinas de nó do sistema.For more information, see Using system node pools.
  • Proteja o tráfego de saída dos seus clusters AKS.Secure outbound traffic from your AKS clusters. Para obter mais informações, consulte o controle do tráfego para os nós de cluster.For more information, see Control egress traffic for cluster nodes.
  • Se o cluster aad-pod-identity tiver ativado, as cápsulas de identidade gerida do nó (NMI) modificam os iptables dos nós para intercetar chamadas para o ponto final dos metadados de instância Azure.If the cluster has aad-pod-identity enabled, Node Managed Identity (NMI) pods modify the nodes' iptables to intercept calls to the Azure Instance Metadata endpoint. Esta configuração significa que qualquer pedido feito ao ponto final dos metadados é intercetado pelo NMI mesmo que a cápsula não utilize aad-pod-identity .This configuration means any request made to the Metadata endpoint is intercepted by NMI even if the pod doesn't use aad-pod-identity. AzurePodIdentityException CRD pode ser configurado para informar aad-pod-identity que quaisquer pedidos para o ponto final de metadados originários de um pod que corresponda às etiquetas definidas em CRD devem ser proxiited sem qualquer processamento em NMI.AzurePodIdentityException CRD can be configured to inform aad-pod-identity that any requests to the Metadata endpoint originating from a pod that matches labels defined in CRD should be proxied without any processing in NMI. As cápsulas do sistema com kubernetes.azure.com/managedby: aks etiqueta no espaço de nomes do sistema kube devem ser excluídas aad-pod-identity configurando o CRD AzurePodIdentityException.The system pods with kubernetes.azure.com/managedby: aks label in kube-system namespace should be excluded in aad-pod-identity by configuring the AzurePodIdentityException CRD. Para obter mais informações, consulte Desativar a identidade do aad-pod para uma cápsula ou aplicação específica.For more information, see Disable aad-pod-identity for a specific pod or application. Para configurar uma exceção, instale a yaML de exceção ao microfone.To configure an exception, install the mic-exception YAML.

Instale add-on de política Azure para AKSInstall Azure Policy Add-on for AKS

Antes de instalar o Add-on de Política Azure ou permitir qualquer uma das funcionalidades de serviço, a sua subscrição deve ativar os fornecedores de recursos Microsoft.ContainerService e Microsoft.PolicyInsights.Before installing the Azure Policy Add-on or enabling any of the service features, your subscription must enable the Microsoft.ContainerService and Microsoft.PolicyInsights resource providers.

  1. Precisa da versão Azure CLI 2.12.0 ou posteriormente instalada e configurada.You need the Azure CLI version 2.12.0 or later installed and configured. Executar az --version para localizar a versão.Run az --version to find the version. Se precisar de instalar ou atualizar, veja Instalar a CLI do Azure.If you need to install or upgrade, see Install the Azure CLI.

  2. Registe os fornecedores de recursos e as funcionalidades de pré-visualização.Register the resource providers and preview features.

    • Portal Azure:Azure portal:

      Registe-se os fornecedores de recursos Microsoft.ContainerService e Microsoft.PolicyInsights.Register the Microsoft.ContainerService and Microsoft.PolicyInsights resource providers. Para obter etapas, consulte fornecedores e tipos de recursos.For steps, see Resource providers and types.

    • Azure CLI:Azure CLI:

      # Log in first with az login if you're not using Cloud Shell
      
      # Provider register: Register the Azure Kubernetes Service provider
      az provider register --namespace Microsoft.ContainerService
      
      # Provider register: Register the Azure Policy provider
      az provider register --namespace Microsoft.PolicyInsights
      
  3. Se forem instaladas definições de política de pré-visualização limitadas, remova o add-on com o botão Desativar no seu cluster AKS na página Políticas.If limited preview policy definitions were installed, remove the add-on with the Disable button on your AKS cluster under the Policies page.

  4. O cluster AKS deve ser a versão 1.14 ou superior.The AKS cluster must be version 1.14 or higher. Utilize o seguinte script para validar a sua versão de cluster AKS:Use the following script to validate your AKS cluster version:

    # Log in first with az login if you're not using Cloud Shell
    
    # Look for the value in kubernetesVersion
    az aks list
    
  5. Instale a versão 2.12.0 ou superior do Azure CLI.Install version 2.12.0 or higher of the Azure CLI. Para mais informações, consulte instalar o Azure CLI.For more information, see Install the Azure CLI.

Uma vez concluídos os passos pré-requisitos acima, instale o Add-on de Política Azure no cluster AKS que pretende gerir.Once the above prerequisite steps are completed, install the Azure Policy Add-on in the AKS cluster you want to manage.

  • Portal do AzureAzure portal

    1. Inicie o serviço AKS no portal Azure selecionando todos os serviços, procurando e selecionando os serviços kubernetes.Launch the AKS service in the Azure portal by selecting All services, then searching for and selecting Kubernetes services.

    2. Selecione um dos seus clusters AKS.Select one of your AKS clusters.

    3. Selecione Políticas no lado esquerdo da página de serviço de Kubernetes.Select Policies on the left side of the Kubernetes service page.

    4. Na página principal, selecione o botão de alimentação ativa.In the main page, select the Enable add-on button.

      Nota

      Se o botão de desativação de desativar estiver ativado e for visualizada uma mensagem v2 de aviso de migração, o add-on V1 é instalado e deve ser removido antes de atribuir definições de política v2.If the Disable add-on button is enabled and a migration warning v2 message is displayed, v1 add-on is installed and must be removed prior to assigning v2 policy definitions. O addon v1 prectado será automaticamente substituído pelo addon v2 a partir de 24 de agosto,The deprecated v1 add-on will automatically be replaced with the v2 add-on starting August 24, 2020. Devem então ser atribuídas novas versões v2 das definições políticas.New v2 versions of the policy definitions must then be assigned. Para atualizar agora, siga estes passos:To upgrade now, follow these steps:

      1. Validar o seu cluster AKS tem o add-on v1 instalado visitando a página Políticas no seu cluster AKS e tem o "O cluster atual usa add-on Azure Policy v1..." Mensagem.Validate your AKS cluster has the v1 add-on installed by visiting the Policies page on your AKS cluster and has the "The current cluster uses Azure Policy add-on v1..." message.
      2. Retire o addon.Remove the add-on.
      3. Selecione o botão de adicionar Ativar para instalar a versão V2 do add-on.Select the Enable add-on button to install the v2 version of the add-on.
      4. Atribua versões v2 das suas definições de política incorporadas v1Assign v2 versions of your v1 built-in policy definitions
  • CLI do AzureAzure CLI

    # Log in first with az login if you're not using Cloud Shell
    
    az aks enable-addons --addons azure-policy --name MyAKSCluster --resource-group MyResourceGroup
    

Para validar que a instalação de complemento foi bem sucedida e que as cápsulas de política azul e gatekeeper estão em funcionamento, executar o seguinte comando:To validate that the add-on installation was successful and that the azure-policy and gatekeeper pods are running, run the following command:

# azure-policy pod is installed in kube-system namespace
kubectl get pods -n kube-system

# gatekeeper pod is installed in gatekeeper-system namespace
kubectl get pods -n gatekeeper-system

Por último, verifique se o último add-on é instalado executando este comando Azure CLI, substituindo <rg> pelo nome do seu grupo de recursos e com o nome do seu cluster <cluster-name> AKS: az aks show --query addonProfiles.azurepolicy -g <rg> -n <cluster-name> .Lastly, verify that the latest add-on is installed by running this Azure CLI command, replacing <rg> with your resource group name and <cluster-name> with the name of your AKS cluster: az aks show --query addonProfiles.azurepolicy -g <rg> -n <cluster-name>. O resultado deve ser semelhante à seguinte saída e config.versão deve v2 ser:The result should look similar to the following output and config.version should be v2:

"addonProfiles": {
    "azurepolicy": {
        "config": {
            "version": "v2"
        },
        "enabled": true,
        "identity": null
    },
}

Instalar Add-on de política Azure para Azure Arc ativado Kubernetes (pré-visualização)Install Azure Policy Add-on for Azure Arc enabled Kubernetes (preview)

Antes de instalar o Azure Policy Add-on ou permitir qualquer uma das funcionalidades de serviço, a sua subscrição deve ativar o fornecedor de recursos Microsoft.PolicyInsights e criar uma atribuição de funções para o principal do serviço de cluster.Before installing the Azure Policy Add-on or enabling any of the service features, your subscription must enable the Microsoft.PolicyInsights resource provider and create a role assignment for the cluster service principal.

  1. Precisa da versão Azure CLI 2.12.0 ou posteriormente instalada e configurada.You need the Azure CLI version 2.12.0 or later installed and configured. Executar az --version para localizar a versão.Run az --version to find the version. Se precisar de instalar ou atualizar, veja Instalar a CLI do Azure.If you need to install or upgrade, see Install the Azure CLI.

  2. Para ativar o fornecedor de recursos, siga os passos nos fornecedores e tipos de recursos ou execute o comando Azure CLI ou Azure PowerShell:To enable the resource provider, follow the steps in Resource providers and types or run either the Azure CLI or Azure PowerShell command:

    • CLI do AzureAzure CLI

      # Log in first with az login if you're not using Cloud Shell
      
      # Provider register: Register the Azure Policy provider
      az provider register --namespace 'Microsoft.PolicyInsights'
      
    • Azure PowerShellAzure PowerShell

      # Log in first with Connect-AzAccount if you're not using Cloud Shell
      
      # Provider register: Register the Azure Policy provider
      Register-AzResourceProvider -ProviderNamespace 'Microsoft.PolicyInsights'
      
  3. O cluster Kubernetes deve ser a versão 1.14 ou superior.The Kubernetes cluster must be version 1.14 or higher.

  4. Instalar o Leme 3.Install Helm 3.

  5. O seu cluster Kubernetes habilitado para o Arco Azure. Para mais informações, consulte a bordo de um cluster Kubernetes para O Arco de Azure.Your Kubernetes cluster enabled for Azure Arc. For more information, see onboarding a Kubernetes cluster to Azure Arc.

  6. Ter o ID de Recursos Azure totalmente qualificado do Arco Azure habilitado para o cluster Kubernetes.Have the fully qualified Azure Resource ID of the Azure Arc enabled Kubernetes cluster.

  7. Abra as portas para o add-on.Open ports for the add-on. O Azure Policy Add-on utiliza estes domínios e portas para obter definições e atribuições políticas e reportar o cumprimento do cluster de volta à Política Azure.The Azure Policy Add-on uses these domains and ports to fetch policy definitions and assignments and report compliance of the cluster back to Azure Policy.

    DomínioDomain PortaPort
    gov-prod-policy-data.trafficmanager.net 443
    raw.githubusercontent.com 443
    login.windows.net 443
    dc.services.visualstudio.com 443
  8. Atribua a atribuição de funções 'Policy Insights Data Writer (Preview)' ao Azure Arc ativado pelo cluster Kubernetes.Assign 'Policy Insights Data Writer (Preview)' role assignment to the Azure Arc enabled Kubernetes cluster. <subscriptionId>Substitua-se pelo seu ID de subscrição, <rg> com o Azure Arc ativado pelo grupo de recursos do cluster Kubernetes, e <clusterName> com o nome do Azure Arc ativado o cluster Kubernetes.Replace <subscriptionId> with your subscription ID, <rg> with the Azure Arc enabled Kubernetes cluster's resource group, and <clusterName> with the name of the Azure Arc enabled Kubernetes cluster. Acompanhe os valores devolvidos para appId, senha e inquilino para as etapas de instalação.Keep track of the returned values for appId, password, and tenant for the installation steps.

    • CLI do AzureAzure CLI

      az ad sp create-for-rbac --role "Policy Insights Data Writer (Preview)" --scopes "/subscriptions/<subscriptionId>/resourceGroups/<rg>/providers/Microsoft.Kubernetes/connectedClusters/<clusterName>"
      
    • Azure PowerShellAzure PowerShell

      $sp = New-AzADServicePrincipal -Role "Policy Insights Data Writer (Preview)" -Scope "/subscriptions/<subscriptionId>/resourceGroups/<rg>/providers/Microsoft.Kubernetes/connectedClusters/<clusterName>"
      
      @{ appId=$sp.ApplicationId;password=[System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($sp.Secret));tenant=(Get-AzContext).Tenant.Id } | ConvertTo-Json
      

    Saída de amostra dos comandos acima referidos:Sample output of the above commands:

    {
        "appId": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
        "password": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb",
        "tenant": "cccccccc-cccc-cccc-cccc-cccccccccccc"
    }
    

Uma vez concluídos os passos pré-requisitos acima, instale o Add-on de Política Azure no seu agrupamento Azure Arc ativado por Kubernetes:Once the above prerequisite steps are completed, install the Azure Policy Add-on in your Azure Arc enabled Kubernetes cluster:

  1. Adicione o repo adicional da política Azure ao Helm:Add the Azure Policy Add-on repo to Helm:

    helm repo add azure-policy https://raw.githubusercontent.com/Azure/azure-policy/master/extensions/policy-addon-kubernetes/helm-charts
    
  2. Instale o Add-on de política Azure utilizando o Gráfico de Timão:Install the Azure Policy Add-on using Helm Chart:

    # In below command, replace the following values with those gathered above.
    #    <AzureArcClusterResourceId> with your Azure Arc enabled Kubernetes cluster resource Id. For example: /subscriptions/<subscriptionId>/resourceGroups/<rg>/providers/Microsoft.Kubernetes/connectedClusters/<clusterName>
    #    <ServicePrincipalAppId> with app Id of the service principal created during prerequisites.
    #    <ServicePrincipalPassword> with password of the service principal created during prerequisites.
    #    <ServicePrincipalTenantId> with tenant of the service principal created during prerequisites.
    helm install azure-policy-addon azure-policy/azure-policy-addon-arc-clusters \
        --set azurepolicy.env.resourceid=<AzureArcClusterResourceId> \
        --set azurepolicy.env.clientid=<ServicePrincipalAppId> \
        --set azurepolicy.env.clientsecret=<ServicePrincipalPassword> \
        --set azurepolicy.env.tenantid=<ServicePrincipalTenantId>
    

    Para obter mais informações sobre o que o Add-on Helm Chart instala, consulte a definição de Azure Policy Add-on Helm Chart no GitHub.For more information about what the add-on Helm Chart installs, see the Azure Policy Add-on Helm Chart definition on GitHub.

Para validar que a instalação de complemento foi bem sucedida e que as cápsulas de política azul e gatekeeper estão em funcionamento, executar o seguinte comando:To validate that the add-on installation was successful and that the azure-policy and gatekeeper pods are running, run the following command:

# azure-policy pod is installed in kube-system namespace
kubectl get pods -n kube-system

# gatekeeper pod is installed in gatekeeper-system namespace
kubectl get pods -n gatekeeper-system

Instalar Add-on de política Azure para o motor AKS (pré-visualização)Install Azure Policy Add-on for AKS Engine (preview)

Antes de instalar o Azure Policy Add-on ou permitir qualquer uma das funcionalidades de serviço, a sua subscrição deve ativar o fornecedor de recursos Microsoft.PolicyInsights e criar uma atribuição de funções para o principal do serviço de cluster.Before installing the Azure Policy Add-on or enabling any of the service features, your subscription must enable the Microsoft.PolicyInsights resource provider and create a role assignment for the cluster service principal.

  1. Precisa da versão 2.0.62 do Azure CLI ou posteriormente instalada e configurada.You need the Azure CLI version 2.0.62 or later installed and configured. Executar az --version para localizar a versão.Run az --version to find the version. Se precisar de instalar ou atualizar, veja Instalar a CLI do Azure.If you need to install or upgrade, see Install the Azure CLI.

  2. Para ativar o fornecedor de recursos, siga os passos nos fornecedores e tipos de recursos ou execute o comando Azure CLI ou Azure PowerShell:To enable the resource provider, follow the steps in Resource providers and types or run either the Azure CLI or Azure PowerShell command:

    • CLI do AzureAzure CLI

      # Log in first with az login if you're not using Cloud Shell
      
      # Provider register: Register the Azure Policy provider
      az provider register --namespace 'Microsoft.PolicyInsights'
      
    • Azure PowerShellAzure PowerShell

      # Log in first with Connect-AzAccount if you're not using Cloud Shell
      
      # Provider register: Register the Azure Policy provider
      Register-AzResourceProvider -ProviderNamespace 'Microsoft.PolicyInsights'
      
  3. Crie uma atribuição de papel para o diretor de serviço de cluster.Create a role assignment for the cluster service principal.

    • Se não conhece o ID principal do serviço de cluster, procure-o com o seguinte comando.If you don't know the cluster service principal app ID, look it up with the following command.

      # Get the kube-apiserver pod name
      kubectl get pods -n kube-system
      
      # Find the aadClientID value
      kubectl exec <kube-apiserver pod name> -n kube-system cat /etc/kubernetes/azure.json
      
    • Atribua a atribuição de funções 'Policy Insights Data Writer (Preview)' à iD principal do serviço de cluster (valor aadClientID from previous step) com a Azure CLI.Assign 'Policy Insights Data Writer (Preview)' role assignment to the cluster service principal app ID (value aadClientID from previous step) with Azure CLI. <subscriptionId>Substitua-se pelo seu ID de subscrição e <aks engine cluster resource group> pelo grupo de recursos onde se encontra o cluster Kubernetes auto-gerido pelo Motor AKS.Replace <subscriptionId> with your subscription ID and <aks engine cluster resource group> with the resource group the AKS Engine self-managed Kubernetes cluster is in.

      az role assignment create --assignee <cluster service principal app ID> --scope "/subscriptions/<subscriptionId>/resourceGroups/<aks engine cluster resource group>" --role "Policy Insights Data Writer (Preview)"
      

Uma vez concluídos os passos pré-requisitos acima, instale o Add-on de Política Azure.Once the above prerequisite steps are completed, install the Azure Policy Add-on. A instalação pode ser durante o ciclo de criação ou atualização de um motor AKS ou como uma ação independente num cluster existente.The installation can be during the creation or update cycle of an AKS Engine or as an independent action on an existing cluster.

  • Instalar durante o ciclo de criação ou atualizaçãoInstall during creation or update cycle

    Para permitir o Add-on de Política Azure durante a criação de um novo cluster auto-gerido ou como uma atualização para um cluster existente, inclua a definição de cluster de propriedades addons para O Motor AKS.To enable the Azure Policy Add-on during the creation of a new self-managed cluster or as an update to an existing cluster, include the addons property cluster definition for AKS Engine.

    "addons": [{
        "name": "azure-policy",
        "enabled": true
    }]
    

    Para obter mais informações sobre, consulte a definição de cluster do motor AKS doguia externo .For more information about, see the external guide AKS Engine cluster definition.

  • Instale em cluster existente com Gráficos de LemeInstall in existing cluster with Helm Charts

    Utilize os seguintes passos para preparar o cluster e instalar o add-on:Use the following steps to prepare the cluster and install the add-on:

    1. Instalar o Leme 3.Install Helm 3.

    2. Adicione a repo política de Azure ao Helm.Add the Azure Policy repo to Helm.

      helm repo add azure-policy https://raw.githubusercontent.com/Azure/azure-policy/master/extensions/policy-addon-kubernetes/helm-charts
      

      Para mais informações, consulte Helm Chart - Quickstart Guide.For more information, see Helm Chart - Quickstart Guide.

    3. Instale o addon com um Gráfico de Leme.Install the add-on with a Helm Chart. <subscriptionId>Substitua-se pelo seu ID de subscrição e <aks engine cluster resource group> pelo grupo de recursos onde se encontra o cluster Kubernetes auto-gerido pelo Motor AKS.Replace <subscriptionId> with your subscription ID and <aks engine cluster resource group> with the resource group the AKS Engine self-managed Kubernetes cluster is in.

      helm install azure-policy-addon azure-policy/azure-policy-addon-aks-engine --set azurepolicy.env.resourceid="/subscriptions/<subscriptionId>/resourceGroups/<aks engine cluster resource group>"
      

      Para obter mais informações sobre o que o Add-on Helm Chart instala, consulte a definição de Azure Policy Add-on Helm Chart no GitHub.For more information about what the add-on Helm Chart installs, see the Azure Policy Add-on Helm Chart definition on GitHub.

      Nota

      Devido à relação entre o Azure Policy Add-on e o id do grupo de recursos, a Azure Policy suporta apenas um cluster de motores AKS para cada grupo de recursos.Because of the relationship between Azure Policy Add-on and the resource group id, Azure Policy supports only one AKS Engine cluster for each resource group.

Para validar que a instalação de complemento foi bem sucedida e que as cápsulas de política azul e gatekeeper estão em funcionamento, executar o seguinte comando:To validate that the add-on installation was successful and that the azure-policy and gatekeeper pods are running, run the following command:

# azure-policy pod is installed in kube-system namespace
kubectl get pods -n kube-system

# gatekeeper pod is installed in gatekeeper-system namespace
kubectl get pods -n gatekeeper-system

Linguagem políticaPolicy language

A estrutura linguística da Política Azure para a gestão de Kubernetes segue a das definições políticas existentes.The Azure Policy language structure for managing Kubernetes follows that of existing policy definitions. Com um modo de Fornecedor de Microsoft.Kubernetes.Data Recursos, a auditoria de efeitos e a negação são usadas para gerir os seus clusters Kubernetes.With a Resource Provider mode of Microsoft.Kubernetes.Data, the effects audit and deny are used to manage your Kubernetes clusters. A auditoria e a negação devem fornecer propriedades específicas para trabalhar com o Quadro de Restrição da OPA e o Gatekeeper v3.Audit and deny must provide details properties specific to working with OPA Constraint Framework and Gatekeeper v3.

Como parte dos detalhes.restriçõesTemplate e details.restrição propriedades na definição de política, Azure Policy passa os URIs destas CustomResourceDefinitions (CRD) para o add-on.As part of the details.constraintTemplate and details.constraint properties in the policy definition, Azure Policy passes the URIs of these CustomResourceDefinitions (CRD) to the add-on. Rego é a língua que o OPA e o Gatekeeper apoiam para validar um pedido ao cluster Kubernetes.Rego is the language that OPA and Gatekeeper support to validate a request to the Kubernetes cluster. Ao apoiar um padrão existente para a gestão de Kubernetes, a Azure Policy permite reutilizar as regras existentes e emparelhá-las com a Azure Policy para uma experiência unificada de reporte de conformidade em nuvem.By supporting an existing standard for Kubernetes management, Azure Policy makes it possible to reuse existing rules and pair them with Azure Policy for a unified cloud compliance reporting experience. Para mais informações, veja o que é Rego?For more information, see What is Rego?.

Atribuir uma definição de política incorporadaAssign a built-in policy definition

Para atribuir uma definição de política ao seu cluster Kubernetes, deve ser-lhe atribuídas as operações de atribuição de dados de acesso baseados em funções Azure (Azure RBAC).To assign a policy definition to your Kubernetes cluster, you must be assigned the appropriate Azure role-based access control (Azure RBAC) policy assignment operations. As funções incorporadas Azure Colaborador e Proprietário têm estas operações.The Azure built-in roles Resource Policy Contributor and Owner have these operations. Para saber mais, consulte as permissões do Azure RBAC na Política Azure.To learn more, see Azure RBAC permissions in Azure Policy.

Encontre as definições de política incorporadas para gerir o seu cluster utilizando o portal Azure com os seguintes passos:Find the built-in policy definitions for managing your cluster using the Azure portal with the following steps:

  1. Inicie o serviço Azure Policy no portal Azure.Start the Azure Policy service in the Azure portal. Selecione Todos os serviços no painel esquerdo e, em seguida, procure e selecione Política.Select All services in the left pane and then search for and select Policy.

  2. No painel esquerdo da página Política Azure, selecione Definições.In the left pane of the Azure Policy page, select Definitions.

  3. A partir da caixa de lista de categorias, utilize Selecione tudo para limpar o filtro e, em seguida, selecione Kubernetes.From the Category drop-down list box, use Select all to clear the filter and then select Kubernetes.

  4. Selecione a definição de política e, em seguida, selecione o botão Atribuir.Select the policy definition, then select the Assign button.

  5. Desaprote o Âmbito para o grupo de gestão, subscrição ou grupo de recursos do cluster Kubernetes onde a atribuição de políticas será aplicada.Set the Scope to the management group, subscription, or resource group of the Kubernetes cluster where the policy assignment will apply.

    Nota

    Ao atribuir a definição Azure Policy for Kubernetes, o Âmbito deve incluir o recurso cluster.When assigning the Azure Policy for Kubernetes definition, the Scope must include the cluster resource. Para um cluster de motores AKS, o Scope deve ser o grupo de recursos do cluster.For an AKS Engine cluster, the Scope must be the resource group of the cluster.

  6. Dê à atribuição de política um nome e descrição que pode usar para identificá-lo facilmente.Give the policy assignment a Name and Description that you can use to identify it easily.

  7. Desa cos assim o coloque na aplicação da Política um dos valores abaixo.Set the Policy enforcement to one of the values below.

    • Habilitado - Impor a política no cluster.Enabled - Enforce the policy on the cluster. Os pedidos de admissão de Kubernetes com violações são negados.Kubernetes admission requests with violations are denied.

    • Desativado - Não aplique a política no cluster.Disabled - Don't enforce the policy on the cluster. Os pedidos de admissão de Kubernetes com violações não são negados.Kubernetes admission requests with violations aren't denied. Os resultados da avaliação da conformidade ainda estão disponíveis.Compliance assessment results are still available. Ao lançar novas definições de política para executar clusters, a opção de desativada é útil para testar a definição de política, uma vez que os pedidos de admissão com violações não são negados.When rolling out new policy definitions to running clusters, Disabled option is helpful for testing the policy definition as admission requests with violations aren't denied.

  8. Selecione Seguinte.Select Next.

  9. Definir valores de parâmetrosSet parameter values

    • Para excluir os espaços de nomes de Kubernetes da avaliação de políticas, especifique a lista de espaços de nome em exclusões de espaço de nome de parâmetros.To exclude Kubernetes namespaces from policy evaluation, specify the list of namespaces in parameter Namespace exclusions. É recomendado excluir: sistema kube, gatekeeper-system, e azure-arc.It's recommended to exclude: kube-system, gatekeeper-system, and azure-arc.
  10. Selecione Rever + criar.Select Review + create.

Alternadamente, utilize a política De atribuir uma política - Portal quickstart para encontrar e atribuir uma política de Kubernetes.Alternately, use the Assign a policy - Portal quickstart to find and assign a Kubernetes policy. Procure uma definição de política de Kubernetes em vez da amostra 'audit vms'.Search for a Kubernetes policy definition instead of the sample 'audit vms'.

Importante

As definições de política incorporada estão disponíveis para clusters Kubernetes na categoria Kubernetes.Built-in policy definitions are available for Kubernetes clusters in category Kubernetes. Para obter uma lista de definições políticas incorporadas, consulte as amostras de Kubernetes.For a list of built-in policy definitions, see Kubernetes samples.

Avaliação de políticasPolicy evaluation

O add-on faz check-in com o serviço Azure Policy para alterações nas atribuições de políticas a cada 15 minutos.The add-on checks in with Azure Policy service for changes in policy assignments every 15 minutes. Durante este ciclo de atualização, o add-on verifica as alterações.During this refresh cycle, the add-on checks for changes. Estas alterações disparam cria, atualizações ou elimina os modelos e constrangimentos de restrição.These changes trigger creates, updates, or deletes of the constraint templates and constraints.

Num cluster kubernetes, se um espaço de nome tiver uma das seguintes etiquetas, os pedidos de admissão com violações não são negados.In a Kubernetes cluster, if a namespace has either of the following labels, the admission requests with violations aren't denied. Os resultados da avaliação da conformidade ainda estão disponíveis.Compliance assessment results are still available.

  • control-plane
  • admission.policy.azure.com/ignore

Nota

Embora um administrador de cluster possa ter permissão para criar e atualizar modelos de restrições e restrições de recursos instalados pelo Azure Policy Add-on, estes não são cenários suportados à medida que as atualizações manuais são substituídas.While a cluster admin may have permission to create and update constraint templates and constraints resources install by the Azure Policy Add-on, these aren't supported scenarios as manual updates are overwritten. Gatekeeper continua a avaliar políticas que existiam antes de instalar o addon e atribuir definições políticas da Política Azure.Gatekeeper continues to evaluate policies that existed prior to installing the add-on and assigning Azure Policy policy definitions.

A cada 15 minutos, o complemento pede uma varredura completa do aglomerado.Every 15 minutes, the add-on calls for a full scan of the cluster. Depois de reunir detalhes da varredura completa e quaisquer avaliações em tempo real por Gatekeeper de tentativas de alterações ao cluster, o add-on relata os resultados de volta à Azure Policy para inclusão em detalhes de conformidade como qualquer atribuição da Política Azure.After gathering details of the full scan and any real-time evaluations by Gatekeeper of attempted changes to the cluster, the add-on reports the results back to Azure Policy for inclusion in compliance details like any Azure Policy assignment. Apenas os resultados para atribuições de políticas ativas são devolvidos durante o ciclo de auditoria.Only results for active policy assignments are returned during the audit cycle. Os resultados da auditoria também podem ser vistos como violações listadas no campo de estado da restrição falhada.Audit results can also be seen as violations listed in the status field of the failed constraint. Para obter informações sobre recursos não conformes, consulte os detalhes do Componente para os modos de Fornecedor de Recursos.For details on Non-compliant resources, see Component details for Resource Provider modes.

Nota

Cada relatório de conformidade na Azure Policy para os seus clusters Kubernetes inclui todas as violações nos últimos 45 minutos.Each compliance report in Azure Policy for your Kubernetes clusters include all violations within the last 45 minutes. A hora indica quando ocorreu uma violação.The timestamp indicates when a violation occurred.

Outras considerações:Some other considerations:

  • Se a subscrição do cluster for registada no Azure Security Center, então as políticas do Azure Security Center Kubernetes são aplicadas automaticamente no cluster.If the cluster subscription is registered with Azure Security Center, then Azure Security Center Kubernetes policies are applied on the cluster automatically.

  • Quando uma política de negação é aplicada em cluster com os recursos existentes de Kubernetes, qualquer recurso pré-existente que não esteja em conformidade com a nova política continua a funcionar.When a deny policy is applied on cluster with existing Kubernetes resources, any preexisting resource that is not compliant with the new policy continues to run. Quando o recurso não conforme é reagendado num nó diferente, o Gatekeeper bloqueia a criação de recursos.When the non-compliant resource gets rescheduled on a different node the Gatekeeper blocks the resource creation.

  • Quando um cluster tem uma política de negação que valida recursos, o utilizador não verá uma mensagem de rejeição ao criar uma implementação.When a cluster has a deny policy that validates resources, the user will not see a rejection message when creating a deployment. Por exemplo, considere uma implementação de Kubernetes que contenha réplicas e cápsulas.For example, consider a Kubernetes deployment that contains replicasets and pods. Quando um utilizador kubectl describe deployment $MY_DEPLOYMENT executa, não devolve uma mensagem de rejeição como parte dos acontecimentos.When a user executes kubectl describe deployment $MY_DEPLOYMENT, it does not return a rejection message as part of events. No entanto, kubectl describe replicasets.apps $MY_DEPLOYMENT devolve os eventos associados à rejeição.However, kubectl describe replicasets.apps $MY_DEPLOYMENT returns the events associated with rejection.

RegistoLogging

Como controlador/contentor Kubernetes, tanto as cápsulas de política azul como de gatekeeper mantêm registos no cluster Kubernetes.As a Kubernetes controller/container, both the the azure-policy and gatekeeper pods keep logs in the Kubernetes cluster. Os registos podem ser expostos na página Insights do cluster Kubernetes.The logs can be exposed in the Insights page of the Kubernetes cluster. Para obter mais informações, consulte o desempenho do seu cluster Kubernetes com o Azure Monitor para obter recipientes.For more information, see Monitor your Kubernetes cluster performance with Azure Monitor for containers.

Para visualizar os registos adicionais, kubectl utilize:To view the add-on logs, use kubectl:

# Get the azure-policy pod name installed in kube-system namespace
kubectl logs <azure-policy pod name> -n kube-system

# Get the gatekeeper pod name installed in gatekeeper-system namespace
kubectl logs <gatekeeper pod name> -n gatekeeper-system

Para mais informações, consulte o Gatekeeper de Debugging na documentação gatekeeper.For more information, see Debugging Gatekeeper in the Gatekeeper documentation.

Resolução de problemas do add-onTroubleshooting the add-on

Para obter mais informações sobre a resolução de problemas do Add-on para Kubernetes, consulte a secção Kubernetes do artigo de resolução de problemas da Política Azure.For more information about troubleshooting the Add-on for Kubernetes, see the Kubernetes section of the Azure Policy troubleshooting article.

Remova o addonRemove the add-on

Remova o addon da AKSRemove the add-on from AKS

Para remover o Add-on da Política Azure do seu cluster AKS, utilize o portal Azure ou o Azure CLI:To remove the Azure Policy Add-on from your AKS cluster, use either the Azure portal or Azure CLI:

  • Portal do AzureAzure portal

    1. Inicie o serviço AKS no portal Azure selecionando todos os serviços, procurando e selecionando os serviços kubernetes.Launch the AKS service in the Azure portal by selecting All services, then searching for and selecting Kubernetes services.

    2. Selecione o seu cluster AKS onde pretende desativar o Add-on de Política Azure.Select your AKS cluster where you want to disable the Azure Policy Add-on.

    3. Selecione Políticas no lado esquerdo da página de serviço de Kubernetes.Select Policies on the left side of the Kubernetes service page.

    4. Na página principal, selecione o botão de desativação para desativar.In the main page, select the Disable add-on button.

  • CLI do AzureAzure CLI

    # Log in first with az login if you're not using Cloud Shell
    
    az aks disable-addons --addons azure-policy --name MyAKSCluster --resource-group MyResourceGroup
    

Remova o addon do Arco Azure ativado KubernetesRemove the add-on from Azure Arc enabled Kubernetes

Para remover o Add-on de Política Azure e gatekeeper do seu Azure Arc ativado pelo cluster Kubernetes, executar o seguinte comando Helm:To remove the Azure Policy Add-on and Gatekeeper from your Azure Arc enabled Kubernetes cluster, run the following Helm command:

helm uninstall azure-policy-addon

Remova o addon do motor AKSRemove the add-on from AKS Engine

Para remover o Add-on e Gatekeeper da Política Azure do seu cluster de motores AKS, utilize o método que se alinha com a forma como o add-on foi instalado:To remove the Azure Policy Add-on and Gatekeeper from your AKS Engine cluster, use the method that aligns with how the add-on was installed:

  • Se instalado definindo a propriedade addons na definição de cluster para motor AKS:If installed by setting the addons property in the cluster definition for AKS Engine:

    Reimplantar a definição de cluster para AKS Engine depois de alterar a propriedade addons para a política azul para falso:Redeploy the cluster definition to AKS Engine after changing the addons property for azure-policy to false:

    "addons": [{
        "name": "azure-policy",
        "enabled": false
    }]
    

    Para obter mais informações, consulte o motor AKS - Desativar o Add-on de Política Azure.For more information, see AKS Engine - Disable Azure Policy Add-on.

  • Se instalado com Helm Charts, executar o seguinte comando Helm:If installed with Helm Charts, run the following Helm command:

    helm uninstall azure-policy-addon
    

Dados de diagnóstico recolhidos pela Azure Policy Add-onDiagnostic data collected by Azure Policy Add-on

O Azure Policy Add-on para Kubernetes recolhe dados limitados de diagnóstico de cluster.The Azure Policy Add-on for Kubernetes collects limited cluster diagnostic data. Estes dados de diagnóstico são dados técnicos vitais relacionados com software e desempenho.This diagnostic data is vital technical data related to software and performance. É usado das seguintes formas:It's used in the following ways:

  • Mantenha o Add-on da Política Azure atualizadoKeep Azure Policy Add-on up to date
  • Mantenha o Azure Policy Add-on seguro, fiável, performantKeep Azure Policy Add-on secure, reliable, performant
  • Melhorar o Add-on da Política Azure - através da análise agregada da utilização do add-onImprove Azure Policy Add-on - through the aggregate analysis of the use of the add-on

A informação recolhida pelo addon não são dados pessoais.The information collected by the add-on isn't personal data. Os seguintes detalhes são atualmente recolhidos:The following details are currently collected:

  • Versão do agente add-on da política AzureAzure Policy Add-on agent version
  • Tipo de clusterCluster type
  • Região de aglomeradosCluster region
  • Grupo de recursos de clusterCluster resource group
  • ID de recursos de clusterCluster resource ID
  • ID de assinatura de clusterCluster subscription ID
  • Cluster OS (Exemplo: Linux)Cluster OS (Example: Linux)
  • Cidade do Cluster (Exemplo: Seattle)Cluster city (Example: Seattle)
  • Estado ou província do cluster (Exemplo: Washington)Cluster state or province (Example: Washington)
  • País ou região de cluster (Exemplo: Estados Unidos)Cluster country or region (Example: United States)
  • Exceções/erros encontrados pelo Azure Policy Add-on durante a instalação do agente na avaliação de políticasExceptions/errors encountered by Azure Policy Add-on during agent installation on policy evaluation
  • Número de definições de política gatekeeper não instaladas pelo Add-on da Política AzureNumber of Gatekeeper policy definitions not installed by Azure Policy Add-on

Próximos passosNext steps