AKS(Azure Kubernetes Service)에 대한 자격 증명 업데이트 및 회전
서비스 주체와 함께 만들어진 AKS 클러스터는 만료 시간이 1년입니다. 만료 날짜가 가까워지면 자격 증명을 다시 설정하여 서비스 주체를 추가 기간 동안 연장할 수 있습니다. 정의된 보안 정책의 일부로 자격 증명을 업데이트하거나 순환할 수도 있습니다. 인증 공급자로 Microsoft Entra ID와 통합된 AKS 클러스터에는 Microsoft Entra 서버 앱과 Microsoft Entra 클라이언트 앱이라는 두 가지 ID가 더 있습니다. 이 문서에서는 AKS 클러스터에 대한 서비스 주체 및 Microsoft Entra 자격 증명을 업데이트하는 방법을 자세히 설명합니다.
참고 항목
또는 서비스 주체 대신 사용 권한에 대해 관리 ID를 사용할 수 있습니다. 관리 ID는 업데이트하거나 회전할 필요가 없습니다. 자세한 내용은 관리 ID 사용을 참조하세요.
시작하기 전에
Azure CLI 버전 2.0.65 이상을 설치하고 구성해야 합니다. az --version
을 실행하여 버전을 찾습니다. 설치 또는 업그레이드해야 하는 경우 Azure CLI 설치를 참조하세요.
AKS 클러스터에 대한 새 서비스 주체를 업데이트하거나 만듭니다
AKS 클러스터의 자격 증명을 업데이트하려는 경우 다음을 선택할 수 있습니다.
- 기존 서비스 주체의 자격 증명을 업데이트하세요.
- 새 서비스 주체를 만들고 이 새 자격 증명을 사용하도록 클러스터를 업데이트합니다.
Warning
새 서비스 주체를 만들기로 선택한 경우 서비스 주체 권한이 모든 지역에 전파될 때까지 약 30분 정도 기다립니다. 이러한 자격 증명을 사용하도록 큰 AKS 클러스터를 업데이트하려면 완료하는 데 시간이 오래 걸릴 수 있습니다.
서비스 주체의 만료 날짜를 확인합니다
서비스 주체의 만료 날짜를 확인하려면 az ad app credential list
명령을 사용합니다. 다음 예제에서는 az aks show
명령을 사용하여 $RESOURCE_GROUP_NAME
리소스 그룹의 $CLUSTER_NAME
클러스터의 서비스 주체 ID를 가져옵니다. 서비스 주체 ID는 'SP_ID'라는 변수로 설정됩니다.
SP_ID=$(az aks show --resource-group $RESOURCE_GROUP_NAME --name $CLUSTER_NAME \
--query servicePrincipalProfile.clientId -o tsv)
az ad app credential list --id "$SP_ID" --query "[].endDateTime" -o tsv
기존 서비스 주체 자격 증명 다시 설정
기존 서비스 주체의 자격 증명을 업데이트하려면 az aks show
명령을 사용하여 클러스터의 서비스 주체 ID를 가져옵니다. 다음 예제에서는 $RESOURCE_GROUP_NAME
리소스 그룹의 $CLUSTER_NAME
클러스터의 ID를 가져옵니다. 'SP_ID'라는 변수는 다음 단계에서 사용되는 서비스 주체 ID를 저장합니다. 이러한 명령은 Bash 명령 언어를 사용합니다.
Warning
Azure Virtual Machine Scale Sets를 사용하는 AKS 클러스터에서 클러스터 자격 증명을 다시 설정하는 경우 새 자격 증명 정보를 사용하여 노드를 업데이트하기 위해 노드 이미지 업그레이드가 수행됩니다.
SP_ID=$(az aks show --resource-group $RESOURCE_GROUP_NAME --name $CLUSTER_NAME \
--query servicePrincipalProfile.clientId -o tsv)
az ad app credential reset
명령을 사용해 자격 증명을 다시 설정하려면 서비스 주체 ID가 포함된 변수 'SP_ID'를 사용합니다. 다음 예제에서는 Azure 플랫폼에서 새롭고 안전한 서비스 주체 비밀을 생성하고 이를 'SP_SECRET'이라는 변수로 저장할 수 있습니다.
SP_SECRET=$(az ad app credential reset --id "$SP_ID" --query password -o tsv)
그런 다음, 서비스 주체 자격 증명으로 AKS 클러스터를 업데이트합니다. 이 단계는 AKS 클러스터에서 서비스 주체를 업데이트하는 데 필요합니다.
새 서비스 주체 만들기
참고 항목
이전 섹션에서 기존 서비스 주체 자격 증명을 업데이트한 경우 이 섹션을 건너뛰고 대신 서비스 주체 자격 증명으로 AKS 클러스터를 업데이트합니다.
서비스 주체를 만들고 새 자격 증명을 사용하도록 AKS 클러스터를 업데이트하려면 az ad sp create-for-rbac
명령을 사용합니다.
az ad sp create-for-rbac --role Contributor --scopes /subscriptions/$SUBSCRIPTION_ID
출력은 다음 예제 출력과 유사합니다. 다음 단계에서 사용할 수 있도록 자신의 appId
및 password
를 적어 둡니다.
{
"appId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"password": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"tenant": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
az ad sp create-for-rbac
명령 실행의 출력을 사용하여 서비스 주체 ID 및 클라이언트 암호에 대한 변수를 정의합니다. 'SP_ID'는 'appId'이고, 'SP_SECRET'은 사용자의 '암호'입니다.
SP_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
SP_SECRET=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
다음으로, 새 서비스 주체 자격 증명으로 AKS 클러스터를 업데이트합니다. 이 단계는 새 서비스 주체 자격 증명으로 AKS 클러스터를 업데이트하는 데 필요합니다.
서비스 주체 자격 증명으로 AKS 클러스터 업데이트
Important
대량 클러스터의 경우 새 서비스 주체로 AKS 클러스터를 업데이트하는 경우 완료하는 데 시간이 오래 걸릴 수 있습니다. 업데이트 중에 중단을 최소화하려면 노드 서지 업그레이드 설정을 검토하고 사용자 지정하는 것이 좋습니다. 중소형 클러스터의 경우 클러스터에서 새 자격 증명을 업데이트하는 데 몇 분 정도 걸립니다.
az aks update-credentials
명령을 실행하여 새 자격 증명 또는 기존 자격 증명으로 AKS 클러스터를 업데이트합니다.
az aks update-credentials \
--resource-group $RESOURCE_GROUP_NAME \
--name $CLUSTER_NAME \
--reset-service-principal \
--service-principal "$SP_ID" \
--client-secret "${SP_SECRET}"
새 Microsoft Entra 애플리케이션 자격 증명으로 AKS 클러스터 업데이트
통합 단계에 따라 새 Microsoft Entra 서버 및 클라이언트 애플리케이션을 만들거나, 서비스 주체 다시 설정과 동일한 방법에 따라 기존 Microsoft Entra 애플리케이션을 다시 설정할 수 있습니다. 그 후에는 --reset-aad 변수와 함께 az aks update-credentials
명령을 사용하여 클러스터 Microsoft Entra 애플리케이션 자격 증명을 업데이트해야 합니다.
az aks update-credentials \
--resource-group $RESOURCE_GROUP_NAME \
--name $CLUSTER_NAME \
--reset-aad \
--aad-server-app-id $SERVER_APPLICATION_ID \
--aad-server-app-secret $SERVER_APPLICATION_SECRET \
--aad-client-app-id $CLIENT_APPLICATION_ID
다음 단계
이 문서에서는 서비스 주체와 Microsoft Entra 애플리케이션 자격 증명을 업데이트하거나 회전하는 방법을 알아보았습니다. AKS 클러스터 내에서 워크로드용 관리 ID를 사용하는 방법에 대한 자세한 내용은 AKS의 인증 및 권한 부여 모범 사례를 참조하세요.
Azure Kubernetes Service