Microsoft Entra 통합은 Microsoft Entra 통합 프로세스를 간소화합니다. 이전에는 클라이언트 및 서버 앱을 만들어야 했고, Microsoft Entra 테넌트는 디렉터리 읽기 권한자 역할 권한을 할당해야 했습니다. 이제 AKS(Azure Kubernetes Service) 리소스 공급자가 클라이언트 및 서버 앱을 관리합니다.
클러스터 관리자는 사용자의 ID 또는 디렉터리 그룹 구성원 자격에 따라 Kubernetes RBAC(Kubernetes 역할 기반 액세스 제어)를 구성할 수 있습니다.
Microsoft Entra 설명서에서 Microsoft Entra 통합 흐름에 대해 자세히 알아보세요.
제한점
클러스터에서 Microsoft Entra 통합을 사용하도록 설정한 후에는 사용하지 않도록 설정할 수 없습니다.
시작하기 전 주의 사항:
AKS 추가 기능을 설치하려면 다음 항목이 있는지 확인합니다.
- Azure CLI 버전 2.29.0 이상이 설치 및 구성되어 있습니다. 버전을 찾으려면
az --version명령을 실행합니다. 설치 또는 업그레이드해야 하는 경우 Azure CLI 설치를 참조하세요. -
kubectl최소 버전 1.18.1 또는kubelogin이 필요합니다. Azure CLI 및 Azure PowerShell 모듈을 사용하면 이러한 두 명령이 포함되고 자동으로 관리됩니다. 즉, 기본적으로 업그레이드되며az aks install-cli실행은 필요하지 않거나 권장되지 않습니다. 자동화된 파이프라인을 사용하는 경우 올바른 버전 또는 최신 버전의 업그레이드를 관리해야 합니다. Kubernetes와kubectl의 부 버전 간 차이가 한 버전을 초과하면 안 됩니다. 그렇지 않으면 잘못된 버전에서 인증 문제가 발생합니다. - 이 구성을 사용하려면 클러스터용 Microsoft Entra 그룹이 있어야 합니다. 이 그룹은 관리자 권한을 부여하기 위해 클러스터에 관리자 그룹으로 등록됩니다. 기존 Microsoft Entra 그룹이 없는 경우
az ad group create명령을 사용하여 그룹을 만들 수 있습니다.
AKS 클러스터에서 통합을 활성화하십시오
먼저 리소스 그룹, 클러스터 이름, Microsoft Entra 관리 그룹 개체 ID 및 테넌트 ID에 대한 환경 변수를 설정합니다. 다음 명령에서 이러한 변수를 다시 사용합니다.
export RESOURCE_GROUP="myResourceGroup"
export CLUSTER_NAME="myManagedCluster"
export AAD_ADMIN_GROUP_OBJECT_IDS="<group-object-id>" # comma-separated for multiple groups
export AAD_TENANT_ID="<tenant-id>"
export LOCATION="centralus"
새 클러스터 만들기
az group create명령을 사용하여 Azure 리소스 그룹을 만듭니다.az group create --name $RESOURCE_GROUP --location $LOCATIONaz aks create명령을 사용하여 AKS 클러스터를 만들고 Microsoft Entra 그룹에 대한 관리 액세스를 사용합니다.az aks create \ --resource-group $RESOURCE_GROUP \ --name $CLUSTER_NAME \ --enable-aad \ --aad-admin-group-object-ids $AAD_ADMIN_GROUP_OBJECT_IDS \ --aad-tenant-id $AAD_TENANT_ID \ --generate-ssh-keysMicrosoft Entra ID 클러스터를 성공적으로 만들면 응답 본문에 다음 섹션이 있습니다.
"AADProfile": { "adminGroupObjectIds": [ "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb" ], "clientAppId": null, "managed": true, "serverAppId": null, "serverAppSecret": null, "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee" }
기존 클러스터 사용
az aks update 명령을 사용하여 기존 Kubernetes RBAC 사용 클러스터에서 Microsoft Entra 통합을 활성화하세요. 클러스터에 대한 액세스를 유지하려면 관리자 그룹을 설정해야 합니다.
az aks update \
--resource-group $RESOURCE_GROUP \
--name $CLUSTER_NAME \
--enable-aad \
--aad-admin-group-object-ids $AAD_ADMIN_GROUP_OBJECT_IDS \
--aad-tenant-id $AAD_TENANT_ID
Microsoft Entra ID 클러스터를 성공적으로 활성화하면 응답 본문에 다음 섹션이 있습니다.
"AADProfile": {
"adminGroupObjectIds": [
"aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
],
"clientAppId": null,
"managed": true,
"serverAppId": null,
"serverAppSecret": null,
"tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
}
통합으로 레거시 클러스터 마이그레이션
클러스터에서 레거시 Microsoft Entra 통합을 사용하는 경우 명령을 통해 az aks update Microsoft Entra 통합으로 업그레이드할 수 있습니다.
Warning
무료 계층 클러스터는 업그레이드 중에 API 서버 가동 중지 시간이 발생할 수 있습니다. 업무 시간이 아닐 때 업그레이드하는 것이 좋습니다.
업그레이드 후 콘텐츠가 kubeconfig 변경됩니다. 새 자격 증명을 az aks get-credentials --resource-group <AKS resource group name> --name <AKS cluster name> 파일에 병합하려면 kubeconfig 을(를) 실행해야 합니다.
az aks update \
--resource-group $RESOURCE_GROUP \
--name $CLUSTER_NAME \
--enable-aad \
--aad-admin-group-object-ids $AAD_ADMIN_GROUP_OBJECT_IDS \
--aad-tenant-id $AAD_TENANT_ID
Microsoft Entra ID 클러스터의 성공적인 마이그레이션은 응답 본문에 다음 섹션이 있습니다.
"AADProfile": {
"adminGroupObjectIds": [
"aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
],
"clientAppId": null,
"managed": true,
"serverAppId": null,
"serverAppSecret": null,
"tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
}
지원 클러스터에 액세스
az aks get-credentials명령을 사용하여 클러스터에 액세스하기 위한 사용자 자격 증명을 가져옵니다.az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME로그인 지침을 따릅니다.
kubectl get nodes명령을 사용하여 클러스터의 노드를 확인합니다.kubectl get nodes
Kubernetes 1.24 이상을 실행하는 클러스터는 exec 플러그 인 형식을 자동으로 사용 kubelogin 하므로 대화형 Azure CLI 로그인에는 수동 kubeconfig 변환이 필요하지 않습니다. CI 파이프라인과 같은 비대화형 시나리오 또는 다른 인증 방법(서비스 주체, 관리 ID, 워크로드 ID 또는 디바이스 코드)을 사용하려면 kubelogin을 사용하여 AKS에서 사용자를 인증합니다.
비상 액세스
드물게 클러스터의 Kubernetes API 서버에 대한 Microsoft Entra ID 로그인이 작동하지 않는 경우(예: 광범위한 Microsoft Entra 서비스 인시던트 중) 클러스터의 로컬 관리자 계정으로 대체하여 Entra 기반 로그인이 복원될 때까지 클러스터를 계속 작동할 수 있습니다.
메모
이 대체는 Entra 기반 로그인 자체를 사용할 수 없는 경우에만 필요합니다. 잘못 구성된 관리 그룹(예: 그룹이 삭제되었거나 잘못된 개체 ID가 설정된 경우)을 문제로 보고 있는 경우, 권한이 있는 az aks update --aad-admin-group-object-ids 계정을 사용하여 관리자 그룹을 직접 Microsoft.ContainerService/managedClusters/write 업데이트할 필요가 없습니다. 그럴 필요가 없습니다.
중요합니다
이 워크플로는 Microsoft Entra 인증을 무시합니다. 임시 대체로만 사용하고 Microsoft Entra 로그인이 복원되면 로컬 계정을 다시 사용하지 않도록 설정합니다.
break-glass 경로를 사용하려면 클러스터 리소스에 대한 Azure Kubernetes Service Contributor 역할이 필요합니다. 이 역할은 로컬 계정을 다시 사용하도록 설정하는 데 필요한 권한과 로컬 클러스터 관리자 자격 증명에 대한 액세스 권한을 부여 Microsoft.ContainerService/managedClusters/write 합니다. Azure Resource Manager에서 평가하므로 Kubernetes API 서버에 대한 Microsoft Entra 로그인 경로와 독립적으로 작동합니다.
클러스터 에서 로컬 계정을 사용하지 않도록 설정한 경우 일시적으로 다시 사용하도록 설정합니다.
az aks update --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --enable-local-accounts로컬 클러스터 관리자 자격 증명을
az aks get-credentials명령과--admin플래그를 사용하여 검색합니다. 이 자격 증명은 Microsoft Entra를 우회하는 인증서 기반 kubeconfig입니다.az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --adminMicrosoft Entra를 사용할 수 없는 동안 클러스터를 작동하는 데 사용합니다
kubectl. Microsoft Entra 로그인이 다시 작동하면 로컬 계정을 사용하지 않도록 설정 하여 클러스터를 보안 기준선으로 반환합니다.az aks update --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --disable-local-accounts
다음 단계
- 조건부 액세스를 사용하여 클러스터 및 노드 액세스에 대한 로그인 보안을 강화합니다.
- 클러스터 및 노드 액세스에 대해 Privileged Identity Management를 사용하여 즉시 상승된 액세스를 구현합니다.
- Kubernetes RBAC와 Microsoft Entra 통합에 대해 알아봅니다.
- AKS 및 Kubernetes ID 개념에 대한 자세한 정보를 알아봅니다.
- AKS에서 지원되는 모든 Microsoft Entra 인증 방법에 kubelogin을 사용하는 방법을 알아봅니다.
- Azure Resource Manager 템플릿을 사용하여 Microsoft Entra ID 사용 클러스터를 만듭니다.