Azure Application Gateway의 일반적인 키 자격 증명 모음 오류
Application Gateway를 사용하면 고객은 Azure Key Vault의 TLS 인증서를 안전하게 저장할 수 있습니다. 키 자격 증명 모음 리소스를 사용하는 경우 게이트웨이가 항상 연결된 키 자격 증명 모음에 액세스할 수 있는 것이 중요합니다. Application Gateway가 인증서를 가져올 수 없는 경우 연결된 HTTPS 수신기는 사용 안 함 상태로 배치됩니다. 자세히 알아보기.
이 문서는 오류 코드의 세부 정보와 이러한 키 자격 증명 모음의 잘못된 구성을 해결하는 단계를 이해하는 데 도움이 됩니다.
팁
버전을 지정하지 않는 비밀 식별자를 사용합니다. 이렇게 하면 Azure Key Vault에서 새 버전을 사용할 수 있는 경우 Azure Application Gateway가 인증서를 자동으로 회전합니다. 버전이 없는 비밀 URI의 예는 https://myvault.vault.azure.net/secrets/mysecret/
입니다.
Azure Advisor 오류 코드
다음 섹션에서는 발생할 수 있는 다양한 오류에 대해 설명합니다. 계정의 Azure Advisor 를 방문하여 게이트웨이에 문제가 있는지 확인하고 이 문제 해결 문서를 사용하여 문제를 해결할 수 있습니다. 게이트웨이에 대한 키 자격 증명 모음 문제가 검색될 때 정보를 유지하도록 Azure Advisor 경고를 구성하는 것이 좋습니다.
참고 항목
Azure Application Gateway는 4시간마다 키 자격 증명 모음 진단에 대한 로그를 생성합니다. 구성을 수정한 후에도 진단에 오류가 계속 표시되는 경우 로그가 새로 고쳐질 때까지 기다려야 할 수 있습니다.
오류 코드: UserAssignedIdentityDoesNotHaveGetPermissionOnKeyVault
설명: 연결된 사용자 할당 관리 ID에는 필요한 권한이 없습니다.
해결 방법: 비밀에 대한 사용자 할당 관리 ID 권한을 부여하도록 키 자격 증명 모음의 액세스 정책을 구성합니다. 다음과 같은 방법으로 수행할 수 있습니다.
키 자격 증명 모음 액세스 정책
- Azure Portal에서 연결된 키 자격 증명 모음으로 이동합니다.
- 액세스 정책 블레이드를 엽니다.
- 권한 모델에 대해 Vault 액세스 정책을 선택합니다.
- 비밀 관리 작업에서 권한 가져오기를 선택합니다.
- 저장을 선택합니다.
자세한 내용은 Azure Portal을 사용하여 Key Vault 액세스 정책 할당을 참조하세요.
Azure 역할 기반 Access Control
- Azure Portal에서 연결된 키 자격 증명 모음으로 이동합니다.
- 액세스 정책 블레이드를 엽니다.
- 권한 모델에서 Azure 역할 기반 액세스 제어를 선택합니다.
- Access Contol(IAM) 블레이드로 이동하여 권한을 구성합니다.
- 다음을 선택하여 관리 ID에 대한 역할 할당 추가
a. 역할: Key Vault 비밀 사용자
b. 액세스 권한 부여: 관리 ID
c. 멤버: 애플리케이션 게이트웨이와 연결한 사용자 할당 관리 ID를 선택합니다. - 검토 + 할당을 선택합니다.
자세한 내용은 Key Vault의 Azure 역할 기반 액세스 제어를 참조하세요.
참고 항목
Azure 역할 기반 액세스 제어를 사용하는 경우 현재는 새 키 자격 증명 모음 기반 인증서를 추가하기 위한 포털 지원을 사용할 수 없습니다. ARM 템플릿, CLI 또는 PowerShell을 사용하여 수행할 수 있습니다. 지침은 이 페이지를 방문하세요.
오류 코드: SecretDisabled
설명: 연관된 인증서가 Key Vault에서 사용되지 않습니다.
해결 방법: Application Gateway에 현재 사용 중인 인증서 버전을 다시 사용하도록 설정합니다.
- Azure Portal에서 연결된 키 자격 증명 모음으로 이동합니다.
- 인증서 창을 엽니다.
- 필요한 인증서 이름을 선택한 다음 비활성 버전을 선택합니다.
- 관리 페이지에서 토글을 사용하여 해당 인증서 버전을 사용하도록 설정합니다.
오류 코드: SecretDeletedFromKeyVault
설명: 연관된 인증서가 Key Vault에서 삭제되었습니다.
해결 방법: 삭제된 인증서를 복구하려면 다음을 수행합니다.
- Azure Portal에서 연결된 키 자격 증명 모음으로 이동합니다.
- 인증서 창을 엽니다.
- 관리되는 삭제된 인증서 탭을 사용하여 삭제된 인증서를 복구합니다.
반면에 인증서 개체가 영구적으로 삭제된 경우에는 새 인증서를 만들고 새로운 인증서 세부 정보를 사용해서 Application Gateway를 업데이트해야 합니다. Azure CLI 또는 Azure PowerShell을 통해 구성하는 경우 버전 없이 비밀 식별자 URI를 사용합니다. 이 선택을 통해 인증서가 있는 경우 인스턴스는 갱신된 버전의 인증서를 검색할 수 있습니다.
오류 코드: UserAssignedManagedIdentityNotFound
설명: 연관된 사용자가 할당한 관리 ID가 삭제되었습니다.
해결 방법: 새 관리 ID를 만들고 키 자격 증명 모음과 함께 사용합니다.
- 이전에 사용된 동일한 이름을 사용하고 동일한 리소스 그룹 아래에서 관리 ID를 다시 만듭니다. (팁: 명명 세부 정보는 리소스 활동 로그를 참조하세요).
- 원하는 키 자격 증명 모음 리소스로 이동하고 액세스 정책을 설정하여 이 새 관리 ID에 필요한 권한을 부여합니다. UserAssignedIdentityDoesNotHaveGetPermissionOnKeyVault에 설명된 것과 동일한 단계를 수행할 수 있습니다.
오류 코드: KeyVaultHasRestrictedAccess
설명: Key Vault 대한 제한된 네트워크 설정이 있습니다.
해결 방법: 제한된 액세스에 Key Vault 방화벽을 사용하도록 설정하면 이 오류가 발생합니다. Key Vault의 제한된 네트워크에서 Application Gateway를 구성하려면 다음 단계를 따르면 됩니다.
- Key Vault에서 네트워킹 창을 엽니다.
- 방화벽 및 가상 네트워크 탭을 선택하고 프라이빗 엔드포인트 및 선택한 네트워크를 선택합니다.
- 가상 네트워크를 사용하여 Application Gateway의 가상 네트워크 및 서브넷을 추가합니다. 이 프로세스 동안 해당 확인란을 선택하여 'Microsoft.KeyVault' 서비스 엔드포인트도 구성합니다.
- 마지막으로 예를 선택하여 신뢰할 수 있는 서비스가 Key Vault 방화벽을 우회하도록 허용합니다.
오류 코드: KeyVaultSoftDeleted
설명: 연관된 키 자격 증명 모음이 일시 삭제 상태에 있습니다.
해결 방법: Azure Portal에서 키 자격 증명 모음을 검색합니다. 서비스에서 키 자격 증명 모음을 선택합니다.
관리되는 삭제된 자격 증명 모음을 선택합니다. 여기에서 삭제된 Key Vault 리소스를 찾고 이를 복구할 수 있습니다.
오류 코드: CustomerKeyVaultSubscriptionDisabled
설명: Key Vault의 구독이 사용되지 않습니다.
해결 방법: 여러 이유로 인해 Azure 구독이 사용되지 않습니다. 해결하는 데 필요한 작업을 수행하려면 비활성화된 Azure 구독 다시 활성화를 참조하세요.
Application Gateway 오류 코드
오류 코드: ApplicationGatewayCertificateDataOrKeyVaultSecretIdMustBeSpecified / ApplicationGatewaySslCertificateDataMustBeSpecified
설명: 수신기 인증서를 업데이트하려고 할 때 이 오류가 발생할 수 있습니다. 이 오류가 발생하면 인증서 업데이트 변경 내용이 삭제되고 수신기는 이전에 정의된 구성으로 트래픽을 계속 처리합니다.
해결 방법: 이 문제를 해결하려면 인증서를 다시 업로드해 보세요. 예를 들어 다음 PowerShell 명령을 사용하여 Azure Key Vault 통해 Application Gateway에 업로드하거나 참조하는 인증서를 업데이트할 수 있습니다.
Application Gateway에 직접 업로드된 인증서를 업데이트합니다.
$appgw = Get-AzApplicationGateway -ResourceGroupName "<ResourceGroup>" -Name "<AppGatewayName>"
$password = ConvertTo-SecureString -String "<password>" -Force -AsPlainText
Set-AzApplicationGatewaySSLCertificate -Name "<oldcertname>" -ApplicationGateway $appgw -CertificateFile "<newcertPath>" -Password $password
Set-AzApplicationGateway -ApplicationGateway $appgw
Azure Key Vault에서 참조된 인증서를 업데이트합니다.
$appgw = Get-AzApplicationGateway -ResourceGroupName "<ResourceGroup>" -Name "<AppGatewayName>"
$secret = Get-AzKeyVaultSecret -VaultName "<KeyVaultName>" -Name "<CertificateName>"
$secretId = $secret.Id.Replace($secret.Version, "")
$cert = Set-AzApplicationGatewaySslCertificate -ApplicationGateway $AppGW -Name "<CertificateName>" -KeyVaultSecretId $secretId
Set-AzApplicationGateway -ApplicationGateway $appgw
다음 단계
이러한 문제 해결 문서는 Application Gateway를 계속 사용할 때 유용할 수 있습니다.