1

그래서 이상한 내용입니다. KeyVault를 만들었습니다. 해당 KV의 액세스 정책에 서비스 보안 주체를 추가하여 모든 사용 권한을 부여했습니다.Get-AzureKeyVaultSecret을 수행 할 때 서비스 사용자가 인증되지 않음

VSTS에서 내 인프라 릴리스를 실행합니다. KV의 비밀을 얻기 위해 cmdlet Get-AzureKeyVaultSecret을 실행하는 단계가 있습니다. 이 단계에서는 서비스 주체 연결이 설정되어 작동합니다.

나는 어제 이것을 돌렸다. 그리고 그것은 잘 동작했다. ARM 템플릿을 변경하면서 인프라를 다시 실행해야했습니다. 는 Get-AzureKeyVaultSecret 부분에 도착했을 때, 그것은 실패하고이 오류가있어 :

Microsoft.Azure.KeyVault.Models.KeyVaultErrorException: Operation returned an invalid status code 'Unauthorized'

이것은 아무 의미합니다. 이 똑같은 봉사 교장이 전에 이것을 해왔다. 아무것도 변하지 않았다. 앱이 여전히 KV의 액세스 정책에 있습니다. VSTS에서 연결이 여전히 작동합니다.

무슨 일입니까?

답변

0

Azure AD를 사용하고 계십니까? 당신은 이런 일에 응용 프로그램을 얻을 수 있습니다 : 응용 프로그램이 올바르게 설정하고 교장의 자격 증명 등이 만료되지 않은 경우

$application = Get-AzureRmADApplication | ? { $_.DisplayName -match "xxx" } 
Get-AzureRmADServicePrincipal | ? { $_.DisplayName -match "xxx" } 
Get-AzureRmADAppCredential -ApplicationId $application.ApplicationId 

이 결정해야

이 잘 보이는, 당신은 확인해야 키 저장소에 대한 사용 권한은 응용 프로그램이 아닌 사용자의 ObjectId에 할당됩니다.

그렇다면 자격 증명으로 실행되지 않는 코드에 문제가있을 수 있습니다. 현재 진행중인 작업에 대한 정보를 제공하는 키 저장소 (Azure 포털의 진단 로그 아래)에 대한 로깅을 켜보십시오.

0

Dainel이 말했듯이 사용자의 개체 ID가 올바른지 확인해야합니다. 이렇게 question와 비슷합니다.

Enterprise applications - All applications에 있지 않은 개체 ID는 App registrations이 아닙니다.

enter image description here

또한 파워 셸 개체 ID를 얻을 수 있습니다.

Get-AzureADServicePrincipal 
+0

안녕하세요. 도움이 더 필요하시면 알려 주시기 바랍니다. –

관련 문제