다음을 통해 공유


ServicePrincipalValidationClientError 오류 코드 문제 해결

이 문서에서는 AKS(Microsoft Azure Kubernetes Service) 클러스터를 만들고 배포하려고 할 때 발생할 수 있는 오류를 식별하고 해결하는 ServicePrincipalValidationClientError 방법을 설명합니다.

필수 조건

  • Azure CLI, 버전 2.0.59 이상. Azure CLI가 이미 설치된 경우 실행 az --version하여 버전 번호를 찾을 수 있습니다.

증상

AKS 클러스터를 배포하려고 하면 다음 오류 메시지가 표시됩니다.

adal: 새로 고침 요청이 실패했습니다. 상태 코드 = '401'.

응답 본문: {

"error": "invalid_client",

"error_description": "AADSTS7000215: 잘못된 클라이언트 암호가 제공되었습니다. 앱 '123456789-1234-1234-1234-1234567890987'에 추가된 비밀에 대해 요청에서 전송되는 비밀이 클라이언트 비밀 ID가 아닌 클라이언트 비밀 값인지 확인합니다.\r\n

추적 ID: 12345\r\n

상관 관계 ID: 6789\r\n

타임스탬프: 2022-02-03 03:07:11Z",

"error_codes": [7000215],

"timestamp": "2022-02-03 03:07:11Z",

"trace_id": "12345",

"correlation_id": "6789",

"error_uri": "https://login.microsoftonline.com/error?code=7000215"

} 엔드포인트 https://login.microsoftonline.com/123456787/oauth2/token?api-version=1.0

원인

강조 표시된 서비스 주체에 대해 제공되는 비밀은 유효하지 않습니다.

해결 방법 1: 서비스 주체 암호 다시 설정

이 문제를 해결하려면 다음 방법 중 하나를 사용하여 서비스 주체 암호를 다시 설정합니다.

  • az ad sp credential reset 명령을 실행 하여 서비스 주체의 자격 증명을 다시 설정합니다 .

    az ad sp credential reset --name "01234567-89ab-cdef-0123-456789abcdef" --query password --output tsv
    
  • 다음 명령을 실행하여 만료 날짜를 지정합니다.

    az ad sp credential reset --name <service-principal-name> --credential-description "New secret for AKS" --years 1
    

위의 명령은 비밀을 다시 설정하여 출력으로 표시합니다. 그런 다음 새 클러스터를 다시 만들려고 할 때 새 비밀을 지정할 수 있습니다.

기존 클러스터에서 실패한 작업의 경우 AKS 클러스터를 새 비밀로 업데이트해야 합니다.

az aks update-credentials --resource-group <resource-group> --name <aks-cluster> --reset-service-principal --client-secret <new-client-secret>

솔루션 2: 새 서비스 주체 만들기

az ad sp create-for-rbac 명령을 실행하여 새 서비스 주체를 만들고 연결된 비밀을 가져올 수 있습니다.

az ad sp create-for-rbac --role Contributor

명령의 출력은 다음 JSON 문자열과 유사해야 합니다.

{
  "appId": "12345678-9abc-def0-1234-56789abcdef0",
  "name": "23456789-abcd-ef01-2345-6789abcdef01",
  "password": "3456789a-bcde-f012-3456-789abcdef012",
  "tenant": "456789ab-cdef-0123-4567-89abcdef0123"
}

appId 생성된 값과 password 값을 확인합니다. 이러한 값을 가져오면 새 서비스 주체 및 비밀에 대한 클러스터 만들기 명령을 다시 실행할 수 있습니다.

AKS 클러스터를 새 서비스 주체의 자격 증명으로 업데이트하려면 다음 명령을 실행합니다.

az aks update-credentials --resource-group <resource-group> --name <aks-cluster> --service-principal <new-client-id> --client-secret <new-client-secret>

자세한 정보

도움을 요청하십시오.

질문이 있거나 도움이 필요한 경우 지원 요청을 생성하거나Azure 커뮤니티 지원에 문의하세요. Azure 피드백 커뮤니티에 제품 피드백을 제출할 수도 있습니다.