Configurar dados dinâmicos em insights de contêiner

Para exibir dados dinâmicos com insights do contêiner dos clusters do AKS (Serviço de Kubernetes do Azure), configure a autenticação para conceder permissão de acesso aos dados do Kubernetes. Essa configuração de segurança permite o acesso em tempo real aos dados por meio da API do Kubernetes diretamente no portal do Azure.

Esse recurso dá suporte aos seguintes métodos para controlar o acesso aos logs, eventos e métricas:

  • AKS sem autorização de RBAC (controle de acesso baseado em função) do Kubernetes habilitada
  • AKS habilitado com autorização do RBAC do Kubernetes
  • AKS habilitado com logon único baseado no Microsoft Entra SAML

Essas instruções exigem acesso administrativo ao cluster do Kubernetes. Se você estiver configurando para usar o Microsoft Entra ID para autenticação de usuário, também precisará de acesso administrativo ao Microsoft Entra ID.

Este artigo explica como configurar a autenticação para controlar o acesso ao recurso de dados dinâmicos por meio do cluster:

  • Cluster AKS habilitado para RBAC do Kubernetes
  • Cluster do AKS integrado do Microsoft Entra

Modelo de autenticação

Os recursos de dados dinâmicos utilizam a API do Kubernetes, que é idêntica à ferramenta de linha de comando kubectl. Os pontos de extremidade da API do Kubernetes utilizam um certificado autoassinado, que o navegador não poderá validar. Esse recurso utiliza um proxy interno para validar o certificado com o serviço AKS, garantindo que o tráfego seja confiável.

O portal do Azure solicita que você valide suas credenciais de entrada para um cluster do Microsoft Entra ID. Ele redireciona você para a configuração de registro do cliente durante a criação do cluster (e reconfigurado neste artigo). Esse comportamento é semelhante ao processo de autenticação exigido pelo kubectl.

Observação

A autorização para o cluster é gerenciada pelo Kubernetes e pelo modelo de segurança com o qual ele está configurado. Os usuários que acessam esse recurso exigem permissão para baixar a configuração do Kubernetes (kubeconfig), que é semelhante à execução de az aks get-credentials -n {your cluster name} -g {your resource group}.

Esse arquivo de configuração contém o token de autorização e autenticação para a função de usuário de cluster do Serviço Kubernetes do Azure, no caso de clusters habilitados para RBAC e do AKS do Azure, sem a autorização RBAC do Kubernetes habilitada. Ele contém informações sobre o Microsoft Entra ID e os detalhes de registro do cliente quando o AKS está habilitado com o logon único baseado em SAML do Microsoft Entra.

Os usuários desses recursos exigem a função de usuário do cluster do Kubernetes do Azure para acessar o cluster a fim de baixar o kubeconfig e usar esse recurso. Os usuários não exigem acesso de colaborador ao cluster para utilizar esse recurso.

Usar clusterMonitoringUser com clusters habilitados para RBAC do Kubernetes

Para eliminar a necessidade de aplicar mais alterações de configuração que permitam que a associação de função de usuário do Kubernetes clusterUser acesse o recurso de dados dinâmicos depois de habilitar a autorização do RBAC do Kubernetes, foi adicionada ao AKS uma nova associação de função de cluster do Kubernetes chamada clusterMonitoringUser. Essa associação de função de cluster tem todas as permissões necessárias prontas para acessar a API do Kubernetes e os pontos de extremidade para utilizar o recurso de dados dinâmicos.

Para utilizar o recurso de dados dinâmicos com esse novo usuário, você precisa ser membro da função Usuário de cluster do Serviço de Kubernetes do Azure ou Colaborador no recurso de cluster do AKS. Os insights do contêiner, quando habilitados, são configurados para autenticar usando clusterMonitoringUser por padrão. Se a associação de função clusterMonitoringUser não existir em um cluster, o clusterUser que será usado para autenticação. O colaborador fornece acesso ao clusterMonitoringUser (se existir) e o usuário do cluster do Serviço de Kubernetes do Azure fornece acesso ao clusterUser. Qualquer uma dessas duas funções fornece acesso suficiente para usar esse recurso.

O AKS liberou essa nova associação de função em janeiro de 2020 e, portanto, os clusters criados antes de janeiro de 2020 não a possuem. Se você tiver um cluster que tenha sido criado antes de janeiro de 2020, o novo clusterMonitoringUser poderá ser adicionado a um cluster existente executando uma operação de PUT no cluster. Ou você pode executar qualquer outra operação no cluster que execute uma operação PUT no cluster, como atualizar a versão do cluster.

Cluster do Kubernetes sem RBAC do Kubernetes habilitado

Se você tiver um cluster do Kubernetes que não esteja configurado com autorização do RBAC do Kubernetes ou integrado ao Microsoft Entra ID com logon único, não precisará seguir estas etapas. Você já tem permissões administrativas por padrão em uma configuração não RBAC.

Configurar a autorização do RBAC do Kubernetes

Ao habilitar a autorização do RBAC do Kubernetes: clusterUser e clusterAdmin são usados para acessar a API do Kubernetes. Essa configuração é semelhante a executar az aks get-credentials -n {cluster_name} -g {rg_name} sem a opção administrativa. Por esse motivo, clusterUser precisa ter acesso aos pontos de extremidade na API do Kubernetes.

As etapas de exemplo a seguir demonstram como configurar a associação de função de cluster com base no modelo de configuração YAML.

  1. Copie e cole o arquivo YAML e salve-o como LogReaderRBAC.yaml.

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
       name: containerHealth-log-reader
    rules:
        - apiGroups: ["", "metrics.k8s.io", "extensions", "apps"]
          resources:
             - "pods/log"
             - "events"
             - "nodes"
             - "pods"
             - "deployments"
             - "replicasets"
          verbs: ["get", "list"]
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
       name: containerHealth-read-logs-global
    roleRef:
       kind: ClusterRole
       name: containerHealth-log-reader
       apiGroup: rbac.authorization.k8s.io
    subjects:
    - kind: User
      name: clusterUser
      apiGroup: rbac.authorization.k8s.io
    
  2. Para atualizar a configuração, execute o comando kubectl apply -f LogReaderRBAC.yaml.

Observação

Se você tiver aplicado uma versão prévia do arquivo LogReaderRBAC.yaml ao seu cluster, atualize-a copiando e colando o novo código mostrado na etapa 1. Em seguida, execute o comando mostrado na etapa 2 para aplicá-lo ao cluster.

Configurar a autenticação integrada do Microsoft Entra

Um cluster do AKS configurado para usar o Microsoft Entra ID para autenticação de usuário utiliza as credenciais de entrada da pessoa que está acessando o recurso. Nessa configuração, é possível entrar em um cluster do AKS usando o seu token de autenticação do Microsoft Entra.

O registro de cliente do Microsoft Entra deve ser reconfigurado para permitir que o portal do Azure redirecione páginas de autorização como uma URL de redirecionamento confiável. Os usuários do Microsoft Entra ID recebem acesso diretamente aos mesmos pontos de extremidade da API do Kubernetes por meio de ClusterRoles e ClusterRoleBindings.

Para obter mais informações sobre a configuração de segurança avançada no Kubernetes, consulte a documentação do Kubernetes.

Observação

Se estiver criando um novo cluster habilitado para RBAC do Kubernetes, consulte integrar o Microsoft Entra ID com o Serviço de Kubernetes do Azure e siga as etapas para configurar a autenticação do Microsoft Entra. Durante as etapas para criar o aplicativo cliente, uma observação nessa seção realça as duas URLs de redirecionamento que você precisa criar para as informações de contêiner correspondentes às especificadas na etapa 3.

Reconfigurar o registro do cliente

  1. Localize o registro do cliente para o cluster do Kubernetes no Microsoft Entra ID nos Registros de aplicativo do Microsoft Entra ID> no portal do Azure.

  2. No painel à esquerda, selecione Autenticação.

  3. Adicione duas URLs de redirecionamento a essa lista como tipos de aplicativos Web. O primeiro valor da URL base deve ser https://afd.hosting.portal.azure.net/monitoring/Content/iframe/infrainsights.app/web/base-libs/auth/auth.html. O segundo valor da URL base deve ser https://monitoring.hosting.portal.azure.net/monitoring/Content/iframe/infrainsights.app/web/base-libs/auth/auth.html.

    Observação

    Se você estiver usando esse recurso no Microsoft Azure operado pela 21Vianet, o primeiro valor de URL de base deverá ser https://afd.hosting.azureportal.chinaloudapi.cn/monitoring/Content/iframe/infrainsights.app/web/base-libs/auth/auth.html. O segundo valor da URL base deve ser https://monitoring.hosting.azureportal.chinaloudapi.cn/monitoring/Content/iframe/infrainsights.app/web/base-libs/auth/auth.html.

  4. Depois de registrar as URLs de redirecionamento, na Concessão implícita, selecione as opções Tokens de acesso e Tokens de ID. Em seguida, salve as alterações.

Você pode configurar a autenticação com o Microsoft Entra ID somente para logon único durante a implantação inicial de um novo cluster do AKS. Não é possível configurar o logon único em um cluster do AKS que já esteja implantado.

Importante

Se você reconfigurou o Microsoft Entra ID para autenticação de usuário usando o URI atualizado, limpe o cache do navegador para garantir que o token de autenticação atualizado seja baixado e aplicado.

Conceder permissão

Cada conta do Microsoft Entra precisa receber permissão para as APIs apropriadas no Kubernetes para acessar o recurso de dados dinâmicos. As etapas para conceder permissão à conta do Microsoft Entra são semelhantes às etapas descritas na seção autenticação RBAC Kubernetes. Antes de aplicar o modelo de configuração YAML ao cluster, substitua clusterUser em ClusterRoleBinding pelo usuário desejado.

Importante

Se o usuário para o qual você concedeu a associação do RBAC do Kubernetes estiver no mesmo locatário do Microsoft Entra, atribua permissões com base em userPrincipalName. Se o usuário estiver em um locatário diferente do Microsoft Entra, consulte e use a propriedade objectId.

Para obter mais ajuda sobre como configurar seu ClusterRoleBindingde cluster do AKS, confira criar Associação de RBAC do Kubernetes.

Próximas etapas

Agora que você configurou a autenticação, veja as métricas e os eventos e logs em tempo real do cluster.