AKS(Azure Kubernetes Service)에서 관리 ID 사용

AKS(Azure Kubernetes Service) 클러스터에는 부하 분산 장치 및 관리 디스크와 같은 Azure 리소스에 액세스할 수 있는 ID가 필요합니다. 이 ID는 관리 ID 또는 서비스 주체일 수 있습니다.

이 문서에서는 새 또는 기존 AKS 클러스터에서 다음 관리 ID 형식을 사용하도록 설정하는 방법에 대해 자세히 설명합니다.

  • 시스템 할당 관리 ID
  • 사용자 고유의 사용자가 할당한 관리 ID
  • 미리 만든 kubelet 관리 ID

개요

AKS 클러스터를 배포하면 시스템이 할당한 관리 ID가 자동으로 만들어지고 Azure 플랫폼에서 관리되므로 비밀을 프로비전하거나 회전할 필요가 없습니다. 자세한 내용은 Azure 리소스에 대한 ID 관리를 참조하세요.

AKS는 서비스 주체가 자동으로 만들어지지 않으므로 서비스 주체를 만들어야 합니다. 서비스 주체를 사용하는 클러스터는 결국 만료되며, ID를 사용한 클러스터 인증에 영향을 주지 않도록 서비스 주체를 갱신해야 합니다. 서비스 주체를 관리하면 복잡성이 추가되므로 대신 관리 ID를 사용하는 것이 더 쉽습니다. 서비스 주체와 관리 ID에는 둘 다 동일한 권한 요구 사항이 적용됩니다. 관리 ID는 인증서 기반 인증을 사용합니다. 각 관리 ID 자격 증명은 90일 후에 만료되며 45일 후에 롤업됩니다.

AKS는 시스템이 할당한 관리 ID 및 사용자가 할당한 관리 ID의 두 유형을 모두 사용하며 이러한 ID는 변경할 수 없습니다. 이러한 ID 형식은 Pod에서 실행되는 애플리케이션에서 사용하기 위한 Microsoft Entra Workload ID혼동해서는 안 됩니다.

Important

Azure Kubernetes Service의 오픈 소스 Microsoft Entra Pod 관리 ID(미리 보기)는 2022년 10월 24일에 더 이상 사용되지 않으며 프로젝트는 2023년 9월에 보관되었습니다. 자세한 내용은 사용 중단 알림을 참조하세요. AKS 관리 추가 기능은 2024년 9월에 더 이상 사용되지 않습니다.

먼저, Microsoft Entra 워크로드 ID 개요를 검토해 보시기 바랍니다. Entra 워크로드 ID 인증은 Microsoft Entra Pod 관리 ID(미리 보기)를 대체하며 Pod에서 실행되는 애플리케이션이 이를 지원하는 다른 Azure 서비스에 대해 인증할 수 있도록 하는 권장 방법입니다.

시작하기 전에

제한 사항

  • 테넌트에서 관리 ID를 사용하는 클러스터를 이동하거나 마이그레이션하는 것은 지원되지 않습니다.
  • 클러스터에 Microsoft Entra Pod 관리 ID(aad-pod-identity)가 사용하도록 설정된 경우, NMI(노드 관리 ID) Pod는 노드의 iptables를 수정하여 IMDS(Azure 인스턴스 메타데이터) 엔드포인트에 대한 호출을 가로챕니다. 이 구성은 Pod가 aad-pod-identity를 사용하지 않는 경우에도 메타데이터 엔드포인트에 대한 모든 요청을 NMI가 가로챈다는 의미입니다. AzurePodIdentityException CRD는 CRD에 정의된 레이블과 일치하는 Pod에서 메타데이터 엔드포인트로 전송되는 모든 요청을 NMI에서 처리하지 않고 프록시되어야 함을 aad-pod-identity에 알리도록 구성할 수 있습니다. AzurePodIdentityException CRD를 구성하여 kube-system 네임스페이스에 kubernetes.azure.com/managedby: aks 레이블이 지정된 시스템 Pod를 aad-pod-identity에서 제외해야 합니다.
  • AKS는 사용자 지정 프라이빗 DNS 영역을 사용하는 경우 시스템이 할당한 관리 ID의 사용을 지원하지 않습니다.

관리 ID 요약

AKS는 기본 제공 서비스 및 추가 항목에 대해 여러 관리 ID를 사용합니다.

ID 이름 사용 사례 기본 권한 사용자 고유의 ID 가져오기
제어 평면 AKS 클러스터 이름 AKS 컨트롤 플레인 구성 요소에서 수신 부하 분산 장치 및 AKS 관리 공용 IP, 클러스터 자동 크기 조정기, Azure 디스크, 파일, Blob CSI 드라이버를 관리하는 데 사용합니다. 노드 리소스 그룹에 대한 기여자 역할 지원 여부
kubelet AKS Cluster Name-agentpool ACR(Azure Container Registry)로 인증합니다. 해당 없음(kubernetes v1.15 이상의 경우) 지원 여부
추가 기능 AzureNPM ID가 필요하지 않습니다. 해당 없음 아니요
추가 기능 AzureCNI network monitoring ID가 필요하지 않습니다. 해당 없음 아니요
추가 기능 azure-policy(gatekeeper) ID가 필요하지 않습니다. 해당 없음 아니요
추가 기능 azure-policy ID가 필요하지 않습니다. 해당 없음 아니요
추가 기능 Calico ID가 필요하지 않습니다. 해당 없음 아니요
추가 기능 대시보드 ID가 필요하지 않습니다. 해당 없음 아니요
추가 기능 application-routing Azure DNS 및 Azure Key Vault 인증서를 관리합니다. Key Vault에 대한 Key Vault 비밀 사용자 역할, DNS 영역에 대한 DNZ 영역 기여자 역할, 프라이빗 DNS 영역에 대한 프라이빗 DNS 영역 기여자 역할 아니요
추가 기능 HTTPApplicationRouting 필요한 네트워크 리소스를 관리합니다. 노드 리소스 그룹에 대한 읽기 권한자 역할, DNS 영역에 대한 기여자 역할 아니요
추가 기능 수신 애플리케이션 게이트웨이 필요한 네트워크 리소스를 관리합니다. 노드 리소스 그룹에 대한 기여자 역할 아니요
추가 기능 omsagent Azure Monitor에 AKS 메트릭을 전송하는 데 사용됩니다. 모니터링 메트릭 게시자 역할 아니요
추가 기능 Virtual-Node(ACIConnector) ACI(Azure Container Instances)에 필요한 네트워크 리소스를 관리합니다. 노드 리소스 그룹에 대한 기여자 역할 아니요
추가 기능 비용 분석 비용 할당 데이터를 수집하는 데 사용됩니다.
워크로드 ID Microsoft Entra 워크로드 ID 애플리케이션이 Microsoft Entra 워크로드 ID를 사용하여 클라우드 리소스에 안전하게 액세스할 수 있도록 합니다. 해당 없음 아니요

새 AKS 클러스터에서 관리 ID 사용

참고 항목

사용자 고유의 kubelet 관리 ID를 지정하지 않으면 AKS에서 사용자가 할당한 kubelet ID를 노드 리소스 그룹에 만듭니다.

참고 항목

클러스터가 이미 관리 ID를 사용하고 있고 ID가 변경된 경우(예: 클러스터 ID 유형을 시스템이 할당한 ID에서 사용자가 할당한 ID로 업데이트하는 경우) 컨트롤 플레인 구성 요소가 새 ID로 전환하는 데 지연이 있습니다. 컨트롤 플레인 구성 요소는 토큰이 만료될 때까지 계속 이전 ID를 사용합니다. 토큰이 새로 고쳐지면 새 ID로 전환됩니다. 이 프로세스는 몇 시간 정도 걸릴 수 있습니다.

  1. az group create 명령을 사용하여 Azure 리소스 그룹을 만듭니다.

    az group create --name myResourceGroup --location westus2
    
  2. az aks create 명령을 사용하여 AKS 클러스터를 만듭니다.

    az aks create -g myResourceGroup -n myManagedCluster --enable-managed-identity
    
  3. az aks get-credentials 명령을 사용하여 클러스터에 액세스하는 데 사용할 자격 증명을 가져오려면 다음을 수행합니다.

    az aks get-credentials --resource-group myResourceGroup --name myManagedCluster
    

기존 AKS 클러스터에서 관리 ID 사용

서비스 주체를 사용하여 시스템이 할당한 관리 ID를 사용하는 기존 AKS 클러스터를 업데이트하려면 az aks update 명령을 실행합니다.

az aks update -g myResourceGroup -n myManagedCluster --enable-managed-identity

클러스터를 업데이트한 후에는 컨트롤 플레인 및 Pod에서 관리 ID를 사용합니다. Kubelet은 agentpool을 업그레이드할 때까지 서비스 주체를 계속 사용합니다. 노드에서 az aks nodepool upgrade --resource-group myResourceGroup --cluster-name myAKSCluster --name mynodepool --node-image-only 명령을 사용하여 관리 ID로 업데이트할 수 있습니다. 노드 풀을 업그레이드할 때 노드 풀의 노드가 차단/드레이닝되고 이미지로 다시 설치되면서 AKS 클러스터에 대해 가동 중지 시간이 발생합니다.

참고 항목

클러스터를 업데이트할 때 다음 정보에 유의하세요.

  • 업데이트는 사용할 VHD 업데이트가 있는 경우에만 작동합니다. 최신 VHD를 실행하는 경우 다음 VHD를 사용할 수 있을 때까지 기다린 후에 업데이트를 수행해야 합니다.

  • Azure CLI를 사용하면 마이그레이션 후 추가 기능의 사용 권한이 올바르게 설정됩니다. Azure CLI를 사용하여 마이그레이션 작업을 수행하지 않는 경우에는 추가 기능 ID의 사용 권한을 직접 처리해야 합니다. ARM(Azure Resource Manager) 템플릿을 사용하는 예는 ARM 템플릿을 사용하여 Azure 역할 할당을 참조하세요.

  • 클러스터가 --attach-acr을 사용하여 Azure Container Registry의 이미지에서 끌어온 경우, 관리 ID에 사용되는 새로 만든 kubelet이 ACR로부터 끌어올 수 있는 권한을 얻을 수 있도록 클러스터를 업데이트한 후에 az aks update --resource-group myResourceGroup --name myAKSCluster --attach-acr <ACR resource ID> 명령을 실행해야 합니다. 그렇지 않으면 업데이트 후 ACR에서 끌어올 수 없습니다.

관리 ID에 대한 역할 할당 추가

리소스에서 작업자 노드 리소스 그룹 외부에 있는 사용자 고유의 VNet, 연결된 Azure 디스크, 고정 IP 주소, 경로 테이블 또는 사용자가 할당한 kubelet ID를 만들고 사용할 때 Azure CLI에서 자동으로 역할 할당을 추가합니다. ARM 템플릿 또는 다른 방법을 사용하는 경우 클러스터 관리 ID의 보안 주체 ID를 사용하여 역할 할당을 수행해야 합니다.

Azure CLI를 사용하지 않지만 작업자 노드 리소스 그룹 외부에 있는 사용자 고유의 VNet, 연결된 Azure 디스크, 고정 IP 주소, 경로 테이블 또는 사용자가 할당한 kubelet ID를 사용하는 경우에는 컨트롤 플레인에 대해 사용자가 할당한 관리 ID를 사용하는 것이 좋습니다. 시스템이 할당한 컨트롤 관리 ID를 사용할 컨트롤 플레인의 경우 역할 할당이 적용되는 것을 지연시키는 클러스터를 만들기 전에는 ID를 가져올 수 없습니다.

관리 ID의 보안 주체 ID 가져오기

  • az identity show 명령을 사용하여 기존 ID의 보안 주체 ID를 가져옵니다.

    az identity show --ids <identity-resource-id>
    

    다음 예와 유사하게 출력됩니다.

    {
      "clientId": "<client-id>",
      "id": "/subscriptions/<subscriptionid>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity",
      "location": "eastus",
      "name": "myIdentity",
      "principalId": "<principal-id>",
      "resourceGroup": "myResourceGroup",
      "tags": {},
      "tenantId": "<tenant-id>",
      "type": "Microsoft.ManagedIdentity/userAssignedIdentities"
    }
    

역할 할당 추가

기본 작업자 노드 리소스 그룹 외부에 있는 VNet, 연결된 Azure 디스크, 고정 IP 주소, 경로 테이블의 경우 사용자 지정 리소스 그룹에 Contributor 역할을 할당해야 합니다.

  • az role assignment create 명령을 사용하여 사용자 지정 리소스 그룹에 Contributor 역할을 할당합니다.

    az role assignment create --assignee <control-plane-identity-principal-id> --role "Contributor" --scope "<custom-resource-group-resource-id>"
    

기본 작업자 노드 리소스 그룹 외부에 있는 사용자가 할당한 kubelet ID의 경우 컨트롤 플레인 관리 ID의 kubelet ID에 관리 ID 운영자 역할을 할당해야 합니다.

  • az role assignment create 명령을 사용하여 kubelet ID에 Managed Identity Operator 역할을 할당합니다.

    az role assignment create --assignee  <control-plane-identity-principal-id> --role "Managed Identity Operator" --scope "<kubelet-identity-resource-id>"
    

참고 항목

클러스터의 관리 ID에 부여된 사용 권한이 채워지려면 최대 60분이 걸릴 수 있습니다.

사용자 고유의 관리 ID 가져오기

사용자가 할당한 관리 ID를 사용하여 클러스터 만들기

컨트롤 플레인에 대해 사용자가 할당한 사용자 지정 관리 ID를 사용하면 클러스터를 만들기 전에 기존 ID에 액세스할 수 있습니다. 이 기능은 미리 만든 관리 ID로 사용자 지정 VNet 또는 outboundType의 UDR을 사용하는 등의 시나리오를 지원합니다.

참고 항목

Azure US Government 클라우드의 미국 국방부 중부, 미국 국방부 동부, USGov 아이오와 지역은 지원되지 않습니다.

사용자 고유의 kubelet 관리 ID를 지정하지 않으면 AKS에서 사용자가 할당한 kubelet ID를 노드 리소스 그룹에 만듭니다.

  • 관리 ID가 없는 경우 az identity create 명령을 사용하여 만듭니다.

    az identity create --name myIdentity --resource-group myResourceGroup
    

    다음 예와 유사하게 출력됩니다.

    {                                  
      "clientId": "<client-id>",
      "clientSecretUrl": "<clientSecretUrl>",
      "id": "/subscriptions/<subscriptionid>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity", 
      "location": "westus2",
      "name": "myIdentity",
      "principalId": "<principal-id>",
      "resourceGroup": "myResourceGroup",                       
      "tags": {},
      "tenantId": "<tenant-id>",
      "type": "Microsoft.ManagedIdentity/userAssignedIdentities"
    }
    

참고 항목

클러스터의 관리 ID에 부여된 사용 권한이 채워지려면 최대 60분이 걸릴 수 있습니다.

  • 클러스터를 만들기 전에 az role assignment create 명령을 사용하여 관리 ID에 대한 역할 할당을 추가합니다.

  • 사용자가 할당한 관리 ID로 클러스터를 만듭니다.

    az aks create \
        --resource-group myResourceGroup \
        --name myManagedCluster \
        --network-plugin azure \
        --vnet-subnet-id <subnet-id> \
        --dns-service-ip 10.2.0.10 \
        --service-cidr 10.2.0.0/24 \
        --enable-managed-identity \
        --assign-identity <identity-resource-id>
    

기존 클러스터에서 관리 ID 업데이트

참고 항목

컨트롤 플레인에 대한 관리 ID를 시스템이 할당한 ID에서 사용자가 할당한 ID로 마이그레이션해도 컨트롤 플레인 및 에이전트 풀에 가동 중지 시간이 발생하지 않습니다. 한편, 컨트롤 플레인 구성 요소는 다음 토큰이 새로 고쳐질 때까지 몇 시간 동안 이전 시스템이 할당한 ID를 계속 사용합니다.

  • 관리 ID가 없는 경우 az identity create 명령을 사용하여 만듭니다.

    az identity create --name myIdentity --resource-group myResourceGroup
    

    다음 예와 유사하게 출력됩니다.

    {                                  
      "clientId": "<client-id>",
      "clientSecretUrl": "<clientSecretUrl>",
      "id": "/subscriptions/<subscriptionid>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity", 
      "location": "westus2",
      "name": "myIdentity",
      "principalId": "<principal-id>",
      "resourceGroup": "myResourceGroup",                       
      "tags": {},
      "tenantId": "<tenant-id>",
      "type": "Microsoft.ManagedIdentity/userAssignedIdentities"
    }
    
  • 컨트롤 플레인에 대해 사용자가 할당한 사용자 지정 관리 ID를 만든 후 az role assignment create 명령을 사용하여 관리 ID에 대한 역할 할당을 추가합니다.

  • az aks update 명령을 사용하여 클러스터를 기존 ID로 업데이트합니다. assign-identity 인수를 포함하여 컨트롤 플레인에 대한 관리 ID의 리소스 ID를 제공해야 합니다.

    az aks update \
        --resource-group myResourceGroup \
        --name myManagedCluster \
        --enable-managed-identity \
        --assign-identity <identity-resource-id> 
    

    사용자 고유의 kubelet 관리 ID를 사용하여 성공적으로 클러스터를 업데이트하면 다음 예와 유사하게 출력됩니다.

      "identity": {
        "principalId": null,
        "tenantId": null,
        "type": "UserAssigned",
        "userAssignedIdentities": {
          "/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity": {
            "clientId": "<client-id>",
            "principalId": "<principal-id>"
          }
        }
      },
    

미리 만든 kubelet 관리 ID 사용

kubelet ID를 사용하면 클러스터를 만들기 전에 기존 ID에 액세스할 수 있습니다. 이 기능을 사용하면 미리 만든 관리 ID를 사용하여 ACR에 연결과 같은 시나리오를 사용할 수 있습니다.

미리 만든 kubelet ID 제한 사항

  • 사용자가 할당한 관리형 클러스터에서만 작동합니다.
  • 21Vianet에서 운영하는 Microsoft Azure의 중국 동부 및 중국 북부 지역은 지원되지 않습니다.

사용자가 할당한 관리 ID 만들기

컨트롤 플레인 관리 ID

  • 컨트롤 플레인에 대한 관리 ID가 없는 경우 az identity create를 사용하여 만듭니다.

    az identity create --name myIdentity --resource-group myResourceGroup
    

    다음 예와 유사하게 출력됩니다.

    {                                  
      "clientId": "<client-id>",
      "clientSecretUrl": "<clientSecretUrl>",
      "id": "/subscriptions/<subscriptionid>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity", 
      "location": "westus2",
      "name": "myIdentity",
      "principalId": "<principal-id>",
      "resourceGroup": "myResourceGroup",                       
      "tags": {},
      "tenantId": "<tenant-id>",
      "type": "Microsoft.ManagedIdentity/userAssignedIdentities"
    }
    

kubelet 관리 ID

  • kubelet 관리 ID가 없는 경우 az identity create 명령을 사용하여 만듭니다.

    az identity create --name myKubeletIdentity --resource-group myResourceGroup
    

    다음 예와 유사하게 출력됩니다.

    {
      "clientId": "<client-id>",
      "clientSecretUrl": "<clientSecretUrl>",
      "id": "/subscriptions/<subscriptionid>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myKubeletIdentity", 
      "location": "westus2",
      "name": "myKubeletIdentity",
      "principalId": "<principal-id>",
      "resourceGroup": "myResourceGroup",                       
      "tags": {},
      "tenantId": "<tenant-id>",
      "type": "Microsoft.ManagedIdentity/userAssignedIdentities"
    }
    

사용자가 할당한 kubelet ID를 사용하여 클러스터 만들기

이제 기존 ID를 사용하여 AKS 클러스터를 만들 수 있습니다. assign-identity 인수와, assign-kubelet-identity 인수를 사용하는 kubelet 관리 ID를 포함하여 컨트롤 플레인에 대한 관리 ID의 리소스 ID를 제공해야 합니다.

  • az aks create 명령을 사용하는 기존 ID로 AKS 클러스터를 만듭니다.

    az aks create \
        --resource-group myResourceGroup \
        --name myManagedCluster \
        --network-plugin azure \
        --vnet-subnet-id <subnet-id> \
        --dns-service-ip 10.2.0.10 \
        --service-cidr 10.2.0.0/24 \
        --enable-managed-identity \
        --assign-identity <identity-resource-id> \
        --assign-kubelet-identity <kubelet-identity-resource-id>
    

    사용자 고유의 kubelet 관리 ID를 사용하여 AKS 클러스터가 성공적으로 만들어지면 다음 예와 유사하게 출력됩니다.

      "identity": {
        "principalId": null,
        "tenantId": null,
        "type": "UserAssigned",
        "userAssignedIdentities": {
          "/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity": {
            "clientId": "<client-id>",
            "principalId": "<principal-id>"
          }
        }
      },
      "identityProfile": {
        "kubeletidentity": {
          "clientId": "<client-id>",
          "objectId": "<object-id>",
          "resourceId": "/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myKubeletIdentity"
        }
      },
    

kubelet ID를 사용하여 기존 클러스터 업데이트

Warning

kubelet 관리 ID를 업데이트하면 노드 풀이 업그레이드되며, 이로 인해 노드 풀의 노드가 차단/드레이닝된 다음, 이미지로 다시 설치되므로 AKS 클러스터에 가동 중지 시간이 발생합니다.

참고 항목

클러스터가 --attach-acr을 사용하여 Azure Container Registry의 이미지에서 끌어온 경우, 관리 ID에 사용되는 새로 만든 kubelet이 ACR로부터 끌어올 수 있는 권한을 얻을 수 있도록 클러스터를 업데이트한 후에 az aks update --resource-group myResourceGroup --name myAKSCluster --attach-acr <ACR Resource ID> 명령을 실행해야 합니다. 그렇지 않으면 업그레이드 후 ACR에서 끌어올 수 없습니다.

AKS 클러스터에 대한 현재 컨트롤 플레인 ID 가져오기

  1. az aks show 명령을 사용하여 AKS 클러스터가 사용자가 할당한 관리 ID를 사용하고 있는지 확인합니다.

    az aks show -g <RGName> -n <ClusterName> --query "servicePrincipalProfile"
    

    클러스터에서 관리 ID를 사용하는 경우 출력에 msi 값이 있는 clientId가 표시됩니다. 서비스 주체를 사용하는 클러스터에 개체 ID가 표시됩니다. 예시:

    {
      "clientId": "msi"
    }
    
  2. 클러스터가 관리 ID를 사용하고 있는지 확인한 후 az aks show 명령을 사용하여 관리 ID의 리소스 ID를 찾습니다.

    az aks show -g <RGName> -n <ClusterName> --query "identity"
    

    사용자가 할당한 관리 ID의 경우 다음 예와 유사하게 출력됩니다.

    {
      "principalId": null,
      "tenantId": null,
      "type": "UserAssigned",
      "userAssignedIdentities": <identity-resource-id>
          "clientId": "<client-id>",
          "principalId": "<principal-id>"
    },
    

kubelet ID로 클러스터 업데이트

  1. kubelet 관리 ID가 없는 경우 az identity create 명령을 사용하여 만듭니다.

    az identity create --name myKubeletIdentity --resource-group myResourceGroup
    

    다음 예와 유사하게 출력됩니다.

    {
      "clientId": "<client-id>",
      "clientSecretUrl": "<clientSecretUrl>",
      "id": "/subscriptions/<subscriptionid>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myKubeletIdentity",
      "location": "westus2",
      "name": "myKubeletIdentity",
      "principalId": "<principal-id>",
      "resourceGroup": "myResourceGroup",                       
      "tags": {},
      "tenantId": "<tenant-id>",
      "type": "Microsoft.ManagedIdentity/userAssignedIdentities"
    }
    
  2. az aks update 명령을 사용하여 클러스터를 기존 ID로 업데이트합니다. assign-identity 인수와, assign-kubelet-identity 인수에 대한 kubelet 관리 ID를 포함하여 컨트롤 플레인에 대한 관리 ID의 리소스 ID를 제공해야 합니다.

    az aks update \
        --resource-group myResourceGroup \
        --name myManagedCluster \
        --enable-managed-identity \
        --assign-identity <identity-resource-id> \
        --assign-kubelet-identity <kubelet-identity-resource-id>
    

    사용자 고유의 kubelet 관리 ID를 사용하여 성공적으로 클러스터를 업데이트하면 다음 예와 유사하게 출력됩니다.

      "identity": {
        "principalId": null,
        "tenantId": null,
        "type": "UserAssigned",
        "userAssignedIdentities": {
          "/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity": {
            "clientId": "<client-id>",
            "principalId": "<principal-id>"
          }
        }
      },
      "identityProfile": {
        "kubeletidentity": {
          "clientId": "<client-id>",
          "objectId": "<object-id>",
          "resourceId": "/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myKubeletIdentity"
        }
      },
    

다음 단계

  • Azure Resource Manager 템플릿을 사용하여 관리 ID 사용 클러스터를 만듭니다.
  • AKS에서 지원되는 모든 Microsoft Entra 인증 방법에 [kubelogin][kubelogin-authentication]을 사용하는 방법을 알아봅니다.