Azure에 구축된 AKS 클러스터에서 사용하던 서비스 프린시펄의 유효 기간이 만료됐습니다. 새로운 인증서 또는 클라이언트 시크릿을 설정하고자 하는데, 클러스터가 이를 인식하지 못하고 여전히 이전 자격으로 동작하고 있습니다. 어떤 방법으로 서비스 프린시펄을 안전하고 올바르게 갱신할 수 있을까요?
간단하게나마, 의견을 드립니다.
Azure CLI나 ARM 템플릿으로 새 시크릿을 생성 후 Azure AD 내에서 등록하시고, az aks update-credentials 명령으로 클러스터에 신규로 하신 후, 클러스터 내 kube-system 네임스페이스의 컨트롤러 매니페스트가 업데이트됐는지 확인하시면 될 듯합니다. 필요 시 az aks rotate-certs 명령을 이용해 재배포를 수행하셔도 되요.
그리고, kubectl get pods -n kube-system 명령으로 새 토큰 반영 여부 확인하사면 됩니다. 혹시, 적용되지 않았을 경우, az aks update-credentials --reset-service-principal을 실행 함 해보세요.
넵 한번 해보겠습니다. 감사합니다.
해보고 이후에 추가 질문 드려도 될까요?
넵 그럼요.. 저도 엄청난 전문가는 아니지만 ㅋㅋ..
[CloudBro AI Bot Response]
Azure 기반 쿠버네티스 클러스터(AKS)에서 Service Principal의 갱신 문제는 실제 운영 환경에서 자주 발생할 수 있는 이슈입니다. AKS 클러스터가 Service Principal을 사용하여 Azure 리소스에 접근할 때, 이 Service Principal의 비밀키(Secret)나 인증서가 만료되면 클러스터의 리소스 프로비저닝이나 스케일링 등 다양한 작업에 장애가 발생할 수 있습니다.
Service Principal의 비밀키가 만료되었을 때 대처 방법은 다음과 같습니다:
-
Service Principal 비밀키 갱신
Azure Portal이나 Azure CLI를 사용해 기존 Service Principal의 비밀키를 갱신할 수 있습니다. 예를 들어, Azure CLI에서는 다음과 같이 비밀키를 갱신합니다:az ad sp credential reset --name <APP_ID> --years 2여기서
<APP_ID>는 해당 Service Principal의 Application ID입니다. -
AKS 클러스터에 새로운 비밀키 적용
비밀키를 갱신한 후, AKS 클러스터에 새로운 비밀키 정보를 반영해야 합니다. 아래와 같이 Azure CLI를 활용해 클러스터 설정을 업데이트할 수 있습니다:az aks update-credentials \ --resource-group <RESOURCE_GROUP> \ --name <CLUSTER_NAME> \ --service-principal <APP_ID> \ --client-secret <NEW_CLIENT_SECRET> -
자동화 권장
비밀키 만료 주기를 사전에 파악하고, 자동화 스크립트나 Azure AD의 만료 알림 기능을 활용해 만료 전에 갱신할 수 있도록 관리하는 것이 좋습니다. 또한, 가능하다면 Service Principal 대신 Managed Identity(관리형 ID)로 전환하는 것도 고려해 보세요. Managed Identity는 별도의 비밀키 관리가 필요 없어 운영 부담이 크게 줄어듭니다.
참고로, 공식 문서는 Azure 공식 문서 - AKS에서 Service Principal 갱신에서 자세히 확인하실 수 있습니다.
추가적으로 궁금한 점 있으시면 언제든 질문해 주세요!