Share via


컨테이너 인사이트에서 라이브 데이터 구성

AKS(Azure Kubernetes Service) 클러스터의 컨테이너 인사이트로 라이브 데이터를 보려면 인증을 구성하여 Kubernetes 데이터에 액세스할 수 있는 권한을 부여합니다. 이 보안 구성을 통해 Azure Portal에서 직접 Kubernetes API를 통해 데이터에 실시간으로 액세스할 수 있습니다.

이 기능은 로그, 이벤트 및 메트릭에 대한 액세스를 제어하는 다음과 같은 방법을 지원합니다.

  • Kubernetes RBAC(역할 기반 액세스 제어) 권한 부여가 사용하도록 설정되지 않은 AKS
  • Kubernetes RBAC 권한 부여를 사용하도록 설정된 AKS
  • Microsoft Entra SAML 기반 Single Sign-On으로 사용하도록 설정된 AKS

이 지침에는 Kubernetes 클러스터에 대한 관리 액세스 권한이 필요합니다. 사용자 인증에 Microsoft Entra ID를 사용하도록 구성하는 경우 Microsoft Entra ID에 대한 관리 액세스 권한도 필요합니다.

이 문서에서는 클러스터에서 라이브 데이터 기능에 대한 액세스를 제어하도록 인증을 구성하는 방법을 설명합니다.

  • Kubernetes RBAC를 사용하는 AKS 클러스터
  • Microsoft Entra 통합 AKS 클러스터

인증 모델

라이브 데이터 기능은 kubectl 명령줄 도구와 동일한 Kubernetes API를 사용합니다. Kubernetes API 엔드포인트는 브라우저에서 유효성을 검사할 수 없는 자체 서명된 인증서를 사용합니다. 이 기능은 내부 프록시를 사용하여 AKS 서비스에 대한 인증서의 유효성을 검사하고 트래픽을 신뢰할 수 있는지 확인합니다.

Azure Portal은 Microsoft Entra ID 클러스터에 대한 로그인 자격 증명의 유효성을 검사하라는 메시지를 표시합니다. 클러스터를 만드는 동안 클라이언트 등록 설정으로 리디렉션합니다(이 문서에서 다시 구성됨). 이 동작은 kubectl에서 요구하는 인증 프로세스와 유사합니다.

참고 항목

클러스터에 대한 권한 부여는 Kubernetes 및 구성된 보안 모델을 통해 관리됩니다. 이 기능에 액세스하는 사용자는 az aks get-credentials -n {your cluster name} -g {your resource group} 실행과 유사한 Kubernetes 구성(kubeconfig)을 다운로드할 수 있는 권한이 필요합니다.

이 구성 파일에는 Azure Kubernetes Service 클러스터 사용자 역할(Azure RBAC가 설정된 경우) 및 Kubernetes RBAC 권한 부여가 설정되지 않은 AKS 클러스터에 대한 권한 부여 및 인증 토큰이 포함되어 있습니다. Microsoft Entra SAML 기반 Single Sign-On을 사용하여 AKS를 사용하도록 설정한 경우 Microsoft Entra ID 및 클라이언트 등록 세부 정보에 대한 정보가 포함됩니다.

이 기능의 사용자는 클러스터에 액세스하여 kubeconfig를 다운로드하고 이 기능을 사용하려면 Azure Kubernetes 클러스터 사용자 역할이 필요합니다. 사용자는 이 기능을 사용하기 위해 클러스터에 대한 기여자 액세스를 요구하지 않습니다.

Kubernetes RBAC가 설정된 클러스터와 함께 clusterMonitoringUser 사용

Kubernetes RBAC 권한 부여를 사용하도록 설정한 후, Kubernetes 클러스터 역할 바인딩 clusterUser에 라이브 데이터 기능에 대한 액세스를 허용하는 추가 구성 변경을 적용할 필요가 없도록 AKS가 clusterMonitoringUser라는 새 Kubernetes 클러스터 역할 바인딩을 추가했습니다. 이 클러스터 역할 바인딩에는 라이브 데이터 기능을 사용하기 위해 Kubernetes API 및 엔드포인트에 액세스하는 데 필요한 모든 권한이 기본 제공됩니다.

이 새 사용자와 함께 실시간 데이터 기능을 사용하려면 AKS 클러스터 리소스에서 Azure Kubernetes Service 클러스터 사용자 또는 기여자 역할의 멤버여야 합니다. 컨테이너 인사이트는 사용 설정되면 기본적으로 clusterMonitoringUser를 사용하여 인증하도록 구성됩니다. 클러스터에 clusterMonitoringUser 역할 바인딩이 없으면 clusterUser가 대신 인증에 사용됩니다. 기여자는 clusterMonitoringUser(존재하는 경우)에 대한 액세스 권한을 부여하고 Azure Kubernetes Service 클러스터 사용자는 clusterUser에 대한 액세스 권한을 부여합니다. 이러한 두 역할은 모두 이 기능을 사용할 수 있는 충분한 액세스 권한을 제공합니다.

AKS는 2020년 1월에 이 새 역할 바인딩을 릴리스했으므로, 2020년 1월 이전에 만든 클러스터에는 이 역할이 포함되지 않습니다. 2020년 1월 이전에 만들어진 클러스터가 있는 경우 클러스터에서 PUT 작업을 수행하여 새 clusterMonitoringUser를 기존 클러스터에 추가할 수 있습니다. 또는 클러스터 버전 업데이트와 같이 클러스터에서 PUT 작업을 수행하는 다른 작업을 클러스터에서 수행할 수 있습니다.

Kubernetes RBAC가 설정되지 않은 Kubernets 클러스터

Kubernetes RBAC 인증으로 구성되지 않았거나 Microsoft Entra Single Sign-On과 통합된 Kubernetes 클러스터가 있는 경우 다음 단계를 수행할 필요가 없습니다. 비 RBAC 구성에서 기본적으로 관리 권한이 이미 있습니다.

Kubernetes RBAC 권한 부여 구성

Kubernetes RBAC 권한 부여를 사용하도록 설정하면 clusterUserclusterAdmin이 Kubernetes API에 액세스하는 데 사용됩니다. 이 구성은 관리 옵션 없이 az aks get-credentials -n {cluster_name} -g {rg_name}을 실행하는 것과 유사합니다. 이러한 이유로 clusterUser는 Kubernetes API의 엔드포인트에 대한 액세스 권한을 부여받아야 합니다.

다음 예제 단계에서는 이 YAML 구성 템플릿에서 클러스터 역할 바인딩을 구성하는 방법을 보여 줍니다.

  1. YAML 파일을 복사하여 붙여넣고, 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. 구성을 업데이트하려면 kubectl apply -f LogReaderRBAC.yaml 명령을 실행합니다.

참고 항목

LogReaderRBAC.yaml 파일의 이전 버전을 클러스터에 적용한 경우 1단계에 표시된 새 코드를 복사하고 붙여넣어 업데이트합니다. 그런 다음 2단계에 표시된 명령을 실행하여 클러스터에 적용합니다.

Microsoft Entra 통합 인증 구성

사용자 인증에 Microsoft Entra ID를 사용하도록 구성된 AKS 클러스터는 이 기능에 액세스하는 사용자의 로그인 자격 증명을 사용합니다. 이 구성에서 Microsoft Entra 인증 토큰을 사용하여 AKS 클러스터에 로그인할 수 있습니다.

Azure Portal에서 권한 부여 페이지를 신뢰할 수 있는 리디렉션 URL로 리디렉션할 수 있도록 Microsoft Entra 클라이언트 등록을 다시 구성해야 합니다. 그러면 Microsoft Entra ID의 사용자에게 ClusterRolesClusterRoleBindings를 통해 동일한 Kubernetes API 엔드포인트에 대한 직접 액세스 권한이 부여됩니다.

Kubernetes의 고급 보안 설정에 대한 자세한 내용은 Kubernetes 설명서를 참조하세요.

참고 항목

새 Kubernetes RBAC 지원 클러스터를 만드는 경우 Azure Kubernetes Service와 Microsoft Entra ID 통합을 참조하고 Microsoft Entra 인증을 구성하는 단계를 따르세요. 클라이언트 애플리케이션을 만드는 단계에서 해당 섹션의 참고 사항에는 3단계에서 지정한 것과 일치하는 컨테이너 인사이트를 위해 만들어야 하는 두 개의 리디렉션 URL이 요약되어 있습니다.

클라이언트 등록 재구성

  1. Azure Portal의 Microsoft Entra ID>앱 등록에서 Microsoft Entra ID의 Kubernetes 클러스터에 대한 클라이언트 등록을 찾습니다.

  2. 왼쪽 창에서 인증을 선택합니다.

  3. 이 목록에 두 개의 리디렉션 URL을 애플리케이션 유형으로 추가합니다. 첫 번째 기준 URL 값은 https://afd.hosting.portal.azure.net/monitoring/Content/iframe/infrainsights.app/web/base-libs/auth/auth.html이어야 합니다. 두 번째 기준 URL 값은 https://monitoring.hosting.portal.azure.net/monitoring/Content/iframe/infrainsights.app/web/base-libs/auth/auth.html이어야 합니다.

    참고 항목

    21Vianet에서 운영하는 Microsoft Azure에서 이 기능을 사용하는 경우 첫 번째 기준 URL 값은 https://afd.hosting.azureportal.chinaloudapi.cn/monitoring/Content/iframe/infrainsights.app/web/base-libs/auth/auth.html이어야 합니다. 두 번째 기준 URL 값은 https://monitoring.hosting.azureportal.chinaloudapi.cn/monitoring/Content/iframe/infrainsights.app/web/base-libs/auth/auth.html이어야 합니다.

  4. 리디렉션 URL을 등록한 후 암시적 허용에서 액세스 토큰ID 토큰 옵션을 선택합니다. 그런 다음, 변경 사항을 저장합니다.

새 AKS 클러스터의 초기 배포 중에만 Single Sign-On에 대해 Microsoft Entra ID로 인증을 구성할 수 있습니다. 이미 배포된 AKS 클러스터에 대한 Single Sign-On을 구성할 수 없습니다.

Important

업데이트된 URI를 사용하여 사용자 인증을 위해 Microsoft Entra ID를 다시 구성한 경우 브라우저의 캐시를 지워서 업데이트된 인증 토큰이 다운로드되고 적용되도록 해야 합니다.

사용 권한 부여

라이브 데이터 기능에 액세스하려면 각 Microsoft Entra 계정에 Kubernetes의 적절한 API에 대한 권한이 부여되어야 합니다. Microsoft Entra 계정에 권한을 부여하는 단계는 Kubernetes RBAC 인증 섹션에 설명된 단계와 유사합니다. 클러스터에 YAML 구성 템플릿을 적용하기 전에 ClusterRoleBinding 아래의 clusterUser를 원하는 사용자로 바꿉니다.

Important

Kubernetes RBAC 바인딩 권한을 부여한 사용자가 동일한 Microsoft Entra 테넌트에 있는 경우 userPrincipalName에 따라 권한을 할당합니다. 사용자가 다른 Microsoft Entra 테넌트에 있는 경우에는 objectId 속성을 쿼리하고 사용합니다.

AKS 클러스터 ClusterRoleBinding 구성에 대한 추가 도움말은 Kubernetes RBAC 바인딩 만들기를 참조하세요.

다음 단계

이제 인증을 설정했으므로 클러스터에서 실시간으로 메트릭이벤트 및 로그를 볼 수 있습니다.