Azure-docs: 应用程序网关:与Key Vault集成不起作用

创建于 2019-06-12  ·  82评论  ·  资料来源: MicrosoftDocs/azure-docs

根据本文的介绍,我们应该能够将Application Gateway与Key Vault集成在一起,但是它似乎并没有像宣传的那样工作。 任何尝试添加Key Vault证书的尝试都会导致AppGW以失败状态结束,并显示以下消息:

Long running operation failed with status 'Failed'. Additional Info:'Problem occured while accessing and validating KeyVault Secrets associated with Application Gateway

托管身份有权访问密钥保管库-我从Azure VM对此进行了验证。

任何想法是什么导致此问题?


文件详细资料

请勿编辑此部分。

Pri2 application-gatewasvc assigned-to-author awaiting-product-team-response product-bug triaged

最有用的评论

我将把它推向各自的团队。

所有82条评论

@DanijelMalik ,感谢您的反馈。 我们正在调查此查询,并将尽快为您更新。

@DanijelMalik ,请为我们提供此错误的
注意:请确保掩盖机密区域,例如订阅ID或机密。
{
“ status”:“失败”,
“错误”:{
“ code”:“ ApplicationGatewayKeyVaultSecretException”,
“ message”:“访问和验证与Application Gateway'/subscriptions/XXXXXXXXXXXXXXXX/resourceGroups/XXXXXXXXXXXX/providers/Microsoft.Network/applicationGateways/applicationGatewayV2'相关的KeyVault机密时发生问题。
“细节”: [
{
“ code”:“ ApplicationGatewayKeyVaultSecretAccessDenied”,
“消息”:“拒绝对应用程序网关'/subscriptions/XXXXXXXXXXX/resourceGroups/XXXXXXXXXXXXX/providers/Microsoft.Network/applicationGateways/applicationGatewayV2的KeyVault秘密'XXXXXXXXXXXXXXXXX'的访问。确保分配给Application Gateway的身份可以访问KeyVault与秘密有关。”
}
]
}
}

@DanijelMalik ,只需检查您是否有时间查看先前的回复。

@DanijelMalik ,由于我们没有收到您的

这里同样的问题。

对我来说,这可以通过在密钥库上启用软删除来解决。

有关此要求的现有问题尚未记录:#34382

嗨,我遇到了同样的问题。 问题似乎是,尽管密钥库允许从appGw子网访问(通过密钥库配置中的“防火墙和虚拟网络设置”刀片); 并且通过-GatewayIpConfigurations参数将appGw子网输入到New-AzApplicationGateway中,appGw似乎无法访问密钥库(身份也具有密钥库访问策略中的访问权限)。

当我允许从“所有网络”访问密钥库时,它似乎可以正常工作。

也许在appGw的创建过程中,在配置了子网的appGw之前正在访问密钥库,然后密钥库从子网以外的其他位置看到此访问权限?

我在本地运行powershell脚本,但是我的IP也可以访问密钥库,因此这不是问题。

我看到相同的问题

@ SubhashVasarapu-MSFT

我有同样的问题。 我正在使用Azure CLI 2.0.76。 我的应用程序网关和密钥库位于同一预订的不同资源组中。 密钥库启用了软删除,可以从所有网络进行访问,并且具有针对具有获取机密权限的应用程序网关的分配用户分配的身份的访问策略。

az network application-gateway ssl-cert create -g XXX --gateway-name XXX --name XXX --key-vault-secret-id https://XXX.vault.azure.net/secrets/XXX --debug

结果(缩写)

msrest.http_logger : {
  "status": "Failed",
  "error": {
    "code": "ApplicationGatewayKeyVaultSecretException",
    "message": "Problem occured while accessing and validating KeyVault Secrets associated with Application Gateway '/subscriptions/XXX/resourceGroups/XXX/providers/Microsoft.Network/applicationGateways/XXX'. See details below:",
    "details": [
      {
        "code": "ApplicationGatewayKeyVaultSecretAccessDenied",
        "message": "Access denied for KeyVault Secret 'https://XXX.vault.azure.net/secrets/XXX' for Application Gateway '/subscriptions/XXX/resourceGroups/XXX/providers/Microsoft.Network/applicationGateways/XXX'. Make sure that Identity assigned to Application Gateway has access to the KeyVault associated with secret."
      }
    ]
  }
}
msrest.exceptions : Problem occured while accessing and validating KeyVault Secrets associated with Application Gateway '/subscriptions/XXX/resourceGroups/XXX/providers/Microsoft.Network/applicationGateways/XXX'. See details below:
cli.azure.cli.core.util : Deployment failed. Correlation ID: 623f5539-b652-49fc-9a29-326bcadaa055. Access denied for KeyVault Secret 'https://XXX.vault.azure.net/secrets/XXX' for Application Gateway '/subscriptions/XXX/resourceGroups/XXX/providers/Microsoft.Network/applicationGateways/XXX'. Make sure that Identity assigned to Application Gateway has access to the KeyVault associated with secret.
Deployment failed. Correlation ID: 623f5539-b652-49fc-9a29-326bcadaa055. Access denied for KeyVault Secret 'https://XXX.vault.azure.net/secrets/XXX' for Application Gateway '/subscriptions/XXX/resourceGroups/XXX/providers/Microsoft.Network/applicationGateways/XXX'. Make sure that Identity assigned to Application Gateway has access to the KeyVault associated with secret.

如果我在Azure Portal中编辑应用程序网关HTTP侦听器,并尝试从那里的密钥库获取SSL证书,则会收到此错误:

application-gateway-https-listener

无法将配置更改保存到应用程序网关“ XXX”。 错误:标识“ XXX / providers / Microsoft.ManagedIdentity / userAssignedIdentities / XXX”的值无效。 “ UserAssignedIdentities”属性键只能是空的json对象,null或资源现有属性。

嗨,我遇到了同样的问题。 问题似乎是,尽管密钥库允许从appGw子网访问(通过密钥库配置中的“防火墙和虚拟网络设置”刀片); 并且通过-GatewayIpConfigurations参数将appGw子网输入到New-AzApplicationGateway中,appGw似乎无法访问密钥库(身份也具有密钥库访问策略中的访问权限)。

当我允许从“所有网络”访问密钥库时,它似乎可以正常工作。

也许在appGw的创建过程中,在配置了子网的appGw之前正在访问密钥库,然后密钥库从子网以外的其他位置看到此访问权限?

我在本地运行powershell脚本,但是我的IP也可以访问密钥库,因此这不是问题。

这也对我有用。 从失败到成功的唯一改变就是允许所有网络

如果我在Azure Portal中编辑应用程序网关HTTP侦听器,并尝试从那里的密钥库获取SSL证书,则会收到此错误:

无法将配置更改保存到应用程序网关“ XXX”。 错误:标识“ XXX / providers / Microsoft.ManagedIdentity / userAssignedIdentities / XXX”的值无效。 “ UserAssignedIdentities”属性键只能是空的json对象,null或资源现有属性。

@wolfganggallo我遇到了完全相同的错误。 我的azure门户现在似乎也陷入了错误状态,并且不允许我进行任何更改。 您设法解决此问题了吗?

提示:@ SubhashVasarapu-MSFT-请重新打开。

我遇到了同样的问题:“ _ UserAssignedIdentities属性键只能是空的json对象,null或存在资源的property_”,还有我的-Keyvault位于不同的资源组和vnet中。我认为在vnet中没有对等,因此在运行时APIM实例和keyvault之间没有路由,但是Azure Portal UI仍将列出可用的keyvault,并将其链接到侦听器。我将创建一个临时vnet对等连接,看看是否可以解决问题,以便删除监听器,结果导致我的Appgw损坏:

image

更新是的,这就是问题所在。 Azure门户将向您显示在运行时实际上不可用的关键文件库,并且保存侦听器的设置将破坏您的Appgw。 快速解决方法是转到密钥库,并暂时将其打开到“所有网络/互联网”,然后重新保存您的听众。 然后由您自己决定-将证书复制到本地密钥库,或添加vnet对等项,或添加缺少的子网。 最终,门户应该验证appgw和kyvault之间的网络可访问性。 臭虫

第二次更新只是要清楚:这完全破坏了Portal UI。 无法通过门户网站修复AppGw。 后续保存失败。

我只是在Portal UI中也遇到了此错误。 启用软删除。 允许所有网络变通。

请重新打开,能够使用白名单是安全的。

@ SubhashVasarapu-MSFT请重新打开。 我们正在处理类似的相同问题。 门户网站UI完全损坏。

每个操作都会失败,并显示以下消息:
Set-AzApplicationGateway : Either Data or KeyVaultSecretId must be specified for Certificate '/subscriptions/********-****-****-****-************/resourceGroups/**-***-ApplicationGateway-RG/providers/Microsoft.Network/ applicationGateways/**-***-Shared-WAF/sslCertificates/wildcard2022' in Application Gateway.

@PgInsight @oising您是否只需要设置“允许所有网络”以使AppGw重新工作? 我们遇到的症状相同,但是我们的KeyVault位于同一子网中,可能是根本原因不同。

我无法使用UI,PowerShell,CLI或资源浏览器执行任何操作。

@PgInsight @oising您是否只需要设置“允许所有网络”以使AppGw重新工作? 我们遇到的症状相同,但是我们的KeyVault位于同一子网中,可能是根本原因不同。

我无法使用UI,PowerShell,CLI或资源浏览器执行任何操作。

设置所有网络在KeyVault上允许,我们还需要使用PowerShell cmd在Key Vault上设置“软删除”标志。

($resource = Get-AzureRmResource -ResourceId (Get-AzureRmKeyVault -VaultName "YOUR-VAULT-NAME").ResourceId).Properties | Add-Member -MemberType "NoteProperty" -Name "enableSoftDelete" -Value "true"

Set-AzureRmResource -resourceid $resource.ResourceId -Properties $resource.Properties

我遇到过同样的问题。 但是,我可以通过使用PowerShell删除Key Vault证书来解决问题,而不能使用资源管理器删除资源管理器显示以下错误:
{
“错误”:{
“ code”:“ MissingIdentityIds”,
“ message”:“对于'UserAssigned'身份类型,身份ID不能为null或为空。
}

}

使用以下示例脚本删除证书和侦听器,并且应用程序网关返回到工作状态

从应用程序gw删除侦听器和证书

$ AppGw = Get-AzApplicationGateway-名称“ app-gw-ssl-key” -ResourceGroupName“实验室”
Remove-AzApplicationGatewayHttpListener -ApplicationGateway $ AppGw-名称“ https”
Remove-AzApplicationGatewaySslCertificate -ApplicationGateway $ AppGW-名称“ victor-cer”

保存更改

set-azapplicationgateway -ApplicationGateway $ AppGW

当应用程序网关处于故障状态时,我检查了密钥库的访问策略,发现应用程序gw的身份属于另一个类别,该类别不是“ APPLICATION”。 我想这就是问题的原因。
再次将身份从密钥库设置添加到访问策略中,并且可以显示为“ APPLICATION”。 这为我解决了这个问题,我能够从密钥库中添加带有cert的侦听器,而没有任何问题。

image

@ SubhashVasarapu-MSFT这需要重新打开。 App Gateway永远不会像这样处于禁用/中断状态-我再次遇到相同的问题。 如何将其升级? 这不是文档问题。 这是产品质量问题。

总结一下:

在将侦听器配置为在远程密钥库中使用SSL证书时,门户网站UI将允许您为侦听器配置一个密钥库,该密钥库由于网络限制(在Internet上不开放,仅适用于选定的子网)在运行时对应用程序不可用。 完成此操作后,所有侦听器的App Gateway门户界面都会被破坏。

我将把它推向各自的团队。

这是什么状态?

我们发现PG出现此错误的原因之一。 如果您将KeyVault的保留期设置为不同于默认的90天,则即使您启用了软删除并将全网络设置为可访问性,AppGW也会抛出此错误消息。 该更新当前正在推出,以解决此错误。

什么时候推出? 我也遇到过这个问题,一旦遇到Portal,就无法配置或进行任何更改确实是一个很大的问题。

今天就打这个。 将软删除保留时间设置为30天后发现您无法更改它,从而找到了此线程。 希望此修复程序能够推出。

即使默认保留期为90天,我也有完全相同的问题。
在运行Azure CLI,Powershell,TerraForm或Portal的过程中,我总是遇到相同的错误:“在访问和验证与Application Gateway相关的KeyVault机密时出现问题...”。

三重检查了身份和访问策略,所有资源位于“西欧”位置的同一资源组中

@ CMS-seglo,所以您告诉您,您具有:

  • [x]启用软删除
  • [x]保留期限设为默认的90天
  • [x]网络设置为全网络
  • [x]和appgw身份正确配置

并且您仍然收到此错误?

@ mark-szabo我已选中所有复选框。 而且ARM模板向我抛出一个错误:

"Invalid value for the identities '/subscriptions/<sub-id>/resourceGroups/wb-all-rg-commons/providers/Microsoft.ManagedIdentity/userAssignedIdentities/wb-application-gateway-identity'. The 'UserAssignedIdentities' property keys should only be empty json objects, null or the resource exisiting property."

属性设置如下:

"identity": {
    "type": "UserAssigned",
    "userAssignedIdentities": {
           "[parameters('gatewayIdentityId')]": {
                 "principalId": "[parameters('identityObjectId')]",
                 "clientId": "[parameters('identityClientId')]"
            }
     }
}

参数为:

New-AzResourceGroupDeployment -Name "Gateway" `
        -ResourceGroupName "wb-devtest-core" `
        -TemplateFile './arm_templates/appgateway.azrm.json' `
        -TemplateParameterObject @{ `
            certificateSecretUrl    = "https://my-key-vault.vault.azure.net/secrets/some-name/some-id"; `
            certificateName         = "certNamel"; `
            gatewayIdentityId       = "/subscriptions/sub-id/resourceGroups/wb-all-rg-commons/providers/Microsoft.ManagedIdentity/userAssignedIdentities/wb-application-gateway-identity"; `
            identityClientId        = "id-here"; `
            identityObjectId        = "objIdHere";

编辑:

即使当我将ARM更改为带有原始数据的自己的ssl证书。 身份属性仍然引发相同的错误。

有什么解决办法吗?

@ mark-szabo感谢您的答复,我重新审视了整个设置,发现了一点,我的配置有所不同:KeyVault防火墙设置为“专用端点和选定的网络”,但是带有“允许受信任的Microsoft服务绕过此防火墙吗?” 设置为启用。
当我允许“所有网络”时,我可以使用KeyVault的SSL证书在门户中成功创建一个https侦听器。 因此,看来网络限制仍然存在问题。

@ CMS-seglo yup,这是一个已知问题,在这里进行了跟踪: https :

@kszymanski您为“ certificateSecretUrl”设置了什么? 网址中的“ some-id”必须是KeyVault中证书对象的“版本”。 不幸的是,这既不会由“ az keyvault证书列表--vault-name ...”返回,也不会由Powershell中的“ Get-AzKeyVaultSecret”或“ Get-AzKeyVaultCertificate”返回,但是当您在KeyVault中查看证书时会显示在门户中。

我遇到了与上述相同的误导性错误,因为创建了“破损”证书。 一旦找出正确的ID,它就可以工作。

@kszymanski您为“ certificateSecretUrl”设置了什么? 网址中的“ some-id”必须是KeyVault中证书对象的“版本”。 不幸的是,这既不会由“ az keyvault证书列表--vault-name ...”返回,也不会由Powershell中的“ Get-AzKeyVaultSecret”或“ Get-AzKeyVaultCertificate”返回,但是当您在KeyVault中查看证书时会显示在门户中。

我遇到了与上述相同的误导性错误,因为创建了“破损”证书。 一旦找出正确的ID,它就可以工作。

它在这里被混淆了。 我正在从门户网站设置ID,在两种情况下我都尝试过证书标识符和秘密标识符。 同样如前所述,即使使用原始数据和密码设置证书(完全删除了Key Vault参考)也无法更改任何相同的错误。 因此,我认为可能是身份分配问题,而不是密钥库证书URL问题。

最终我不得不手动上传证书和密码,而不是使用KeyVault,因为我无法使KeyVault正常工作。 但是,如果您在收到此错误后从门户网站进行操作,则需要创建一个新的Application Gateway,就像其他人提到的那样。 由于某种原因,您将无法调整错误的网关。

如您所见,我是通过ARM模板不断创建它的。 并在创建之后手动进行更改。 然后在门户中,我可以毫无问题地分配此身份和证书。

@kylehayes不太正确。 是的,您目前无法从门户网站将其从失败状态中删除,但是可以从PowerShell或CLI进行操作。

例如。 删除失败的侦听器,规则和证书并更新GW。

$AppGw = Get-AzApplicationGateway -Name "<name>" -ResourceGroupName "<rg_name>"
Remove-AzApplicationGatewayHttpListener -ApplicationGateway $AppGw -Name "<listener_name>"
Remove-AzApplicationGatewayRequestRoutingRule -ApplicationGateway $AppGW -Name "<rule_name>"
Remove-AzApplicationGatewaySslCertificate -ApplicationGateway $AppGW -Name "<cert_name>"
Set-AzApplicationGateway -ApplicationGateway $AppGW

我在配置了网络防火墙的新KV上也遇到了同样的问题。 作为关闭防火墙后的一项测试,它在ARM部署中引发了错误。 我也同意这需要工作,因为我的客户想锁定KV。

  1. 非90天的软删除(保留)期限仍然存在问题。 在这种情况下,误差是“_The‘UserAssignedIdentities’属性密钥只应空JSON对象,无效或资源exisiting property._”(顺便说一句,存在此错误消息无误。)解决方法是设置KV对象属性“ softDeleteRetentionInDays”到90。您可以为此使用https://resources.azure.com/

  2. App GW管理平面使用Azure DC中的一些随机IP访问KV。 参见https://github.com/MicrosoftDocs/azure-docs/issues/48866。 解决方法是,您可以从KV审核日志(OMS或存储帐户)中找到IP,并将其添加到允许列表中,而不是允许所有网络。 不幸的是,没有保证IP将保持不变。 另外,您必须始终将此IP保留在列表中,因为App GW配置中的任何更改都会重建整个配置对象。

因此,要从门户网站修复“损坏的” App GW,您必须:

  1. 确保KV软删除期限为90天
  2. KV防火墙已禁用
  3. 在门户中执行任何将触发App GW配置对象更新的管理操作

不幸的是,由于证书对象未显示在门户网站的用户界面中,因此您仍将不得不使用PS从KV中的证书链接中清除配置对象。

整个KV / AppGW集成故事必须在发布之前进行更好的测试。

我们遇到了相同的症状(“ UserAssignedIdentities属性键只能是空的json对象,null或资源存在的属性。”),我们的软删除期为90天,并且防火墙已打开。 我们将KV放在一个“持久”资源组中,并将应用程序堆栈放在一个瞬态组中。 一周前撕毁DEV堆栈,并试图将其备份(通过ARM),并且在Application Gateway上处理失败,这意味着我们无法进行任何开发,除非它再次起作用。

从ARM模板进行部署时,我也遇到了相同的问题,我将软删除设置为90天,并为所有网络打开了防火墙,但是仍然面临相同的问题。它在门户网站上有效,但在ARM模板上无效。
。 “ UserAssignedIdentities”属性键只能是空的json对象,null或资源现有属性。

这是该门户网站第三次进入拉拉土地。 无法停止和/或更新:
{
“错误”:{
“ code”:“ MissingIdentityIds”,
“ message”:“对于'UserAssigned'身份类型,身份ID不能为null或为空。
}
}

老实说。 由于它不稳定,我放弃了它。

2020年4月23日星期四,下午3:46 pererap01 [email protected]写道:

这是该门户网站第三次进入拉拉土地。 不能停止并
或更新:
{
“错误”:{
“ code”:“ MissingIdentityIds”,
“ message”:“对于'UserAssigned',身份ID不能为null或为空
身份类型。”
}
}

-
您收到此消息是因为您已订阅此线程。
直接回复此电子邮件,在GitHub上查看
https://github.com/MicrosoftDocs/azure-docs/issues/33157#issuecomment-618624144
或退订
https://github.com/notifications/unsubscribe-auth/ABD32Z2KPUY7KBFNPTCVMA3ROCLJ3ANCNFSM4HXFRP4A

我们必须站起来再用另一个,因为原始的是片状的! 我有一张有关此问题的MS票……让我们看看是否这次能解决?

@ SubhashVasarapu-MSFT是否有办法列出潜在的阻止者,为什么会如此不一致? 可能是根本原因/局限性。

如果我们获得此修复程序的当前状态,那就更好了。

像该线程中的其他线程一样,我也遇到了一个错误:

Failed to save configuration changes to application gateway <REDACTED>. Error: Either Data or KeyVaultSecretId must be specified for Certificate <REDACTED>...

在密钥库的访问策略中,我为Azure网关使用的托管身份启用了所有密钥,机密和证书权限。 我敢肯定这是矫over过正,但是在尝试混合其他权限后,我感到沮丧,并且仅启用了所有功能。 之后错误消失了。

使用云预配置证书时的PS e2e TLS是一种超常见的情况。 作为Azure的新手,我对这还不是一次完美的体验感到非常失望。

我一直在尝试通过Application Gateway将KeyVault中的机密和证书提取到我的集群中,这使我的应用程序失败,因为它无法通过KV身份验证,并导致Bad Gateway错误。

连接ID“ 0HM0BI3H5TUJP”,请求ID“ 0HM0BI3H5 TUJP:00000001 ”:应用程序引发了未处理的异常。
连接ID“ 0HM0BI3H5TUNQ”,请求ID“ 0HM0BI3H5 TUNQ:00000002 ”:应用程序引发了未处理的异常。

我在尝试获取机密的Pod日志中收到这些错误。

我的KeyVault启用了软删除功能,默认设置为90天作为保留期,所有网络均设置为联网。 我的App Gateway身份也已正确配置到Vault。 有人知道我要去哪里吗?

我一直在与MS的工程师一起工作
这是我发现的总结

  1. 删除与Appgateway侦听器关联的所有证书。 基本上删除所有appgateway安装的证书
    检查:PS
    az网络应用程序网关ssl证书列表-g(资源组)-网关名称(网关名称)
    如果出现以下内容
    “ keyVaultSecretId”:null,
    证书已安装在appgateway上,大多数已取消关联
  2. 一旦证书从Appgateway中丢失,请关联密钥库中的证书,它应该可以工作

我一直在与MS的工程师一起工作
这是我发现的总结

  1. 删除与Appgateway侦听器关联的所有证书。 基本上删除所有appgateway安装的证书
    检查:PS
    az网络应用程序网关ssl证书列表-g(资源组)-网关名称(网关名称)
    如果出现以下内容
    “ keyVaultSecretId”:null,
    证书已安装在appgateway上,大多数已取消关联
  2. 一旦证书从Appgateway中丢失,请关联密钥库中的证书,它应该可以工作

在我的方案中情况并非如此,因为整个资源组(包括应用程序网关)已被破坏并重新创建,但是此问题仍然存在。

那么我的假设是密钥库及其与网关的通信方式存在问题...
您是否看过资源管理器并运行get请求-您可能会获得更好的错误处理和/或以调试模式运行

目前,我还没有触及Key Vault本身,因此MS支持人员可以看到它处于当前状态。

错误消息是从哪里产生的? 是否启用了WAF的版本2?

是的,V2 WAF。 错误来自ARM。 使用AZ CLI从ADO托管的Windows代理执行

az group deployment create --debug --mode Complete

注意:ARM模板包括整个堆栈,VNET,VM,APG等。KeyVault和其他模板保留在单独的资源组中。

@ pererap01
您正在使用“ --mode Complete”-这可能会删除模板中未定义的“隐藏”资源。
同样,如果此MSI不是部署的一部分,则运行部署的用户/服务主体必须具有读取将被WAF用来访问KV的MSI的能力。

@gaikovoi ,我认为该参考对我

@cdaf今天有ARM问题
已解决:RCA -Azure资源管理器-创建或删除资源失败

无论如何,有时,ARM部署会在没有有意义的原因的情况下失败。 它通常由重新运行的AzDO管道修复。

@gaikovoi ,是的,ARM可能会很气质(特别是如果您尝试通过ARM部署APIM的话),但是事实并非如此,它已经被重试了近30次(由尝试对其进行诊断的其他人)

大家好。 我创建一个帐户只是为了对此做出回应,因为它是如此令人沮丧。 对于喜欢我的人,不能或不想将KeyVault设置为“所有网络” ...我找到了一种解决方法。 如果您转到资源资源管理器并删除以下内容,则应该会使您的App Gateway再次满意。

  1. 删除身份对象
  2. 删除导致sslCertificates下失败的证书
  3. 删除所有失败的侦听器
  4. 输入您的更改

这立即导致了我的App Gateway的更新,并使其处于正常的配置状态。 诚然,我对尝试进行KeyVault集成的过程感到非常疲倦/沮丧,所以我只是将证书直接上传到App Gateway,并且工作正常。 KeyVault集成确实需要由Microsoft修复。

任何人,希望能对某人有所帮助。

干杯。

只是为了回应以上所有内容。 这个问题肯定在Azure中仍然存在,并且老实说让我震惊。

在添加受管身份以管理通配符证书从AZURE购买的权限之后,然后按照所有记录的步骤将此证书添加到网关,仍然发生错误,表明该身份无权访问该保管库。 同时检查保管库和证书,以确保它确实具有访问权限(确实具有访问权限)。 决定将权限从简单的只读权限提升为所有者,以查看是否可以解决此问题,并遇到有关通配符证书锁定的错误。

因此,不仅不能通过Key Vault方法添加证书,而且现在尝试尝试多种配置后尝试清理项目或更改标识的权限,我什至不能在不删除“ Delete”锁定的情况下从Azure删除标识。客户端购买的通配符证书。 老实说,我在这里找到的最简单的方法是导出证书,将密码添加到.pfx文件,最后在创建网关期间重新上传它。 所有这些都是通过GUI完成的,希望产生一个正确的ARM模板,以便在通过Terraform进行配置时使用。 还是坏了。

这似乎是Azure很高兴忽略的一个非常基础的事情。

真是一场噩梦-我不敢相信,一年多的反馈和问题仍然没有解决。 我们的密钥库对所有网络都是开放的,启用了软删除并将其设置为90天,并且将两者链接在一起的首次尝试使网关瘫痪了。

这确实是一个严重损坏的产品。 😠

同样在这里。 这怎么可能是一年以上的未解决问题。 使用App Gateway WAF v2太可怕了。
什么时候可以解决?

还是一件事! 就我而言,这似乎是密钥库网络集成。 门户网站绝对不会进行检查,并且会失败并显示随机属性键错误(这不是您所期望的禁止错误)。 谁能确认在网关子网上启用Microsoft.Keyvault的VNET服务终结点是否可以使此集成在启用KeyVault FW的情况下工作?

尝试“更新或编辑”上传到GW的现有证书+使用启用了FW的PAAS KV +启用了IPWhitelist

Invalid value for the identities '/subscriptions/{sub-id}/resourcegroups/{rg-name}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{uami-name}'. The 'UserAssignedIdentities' property keys should only be empty json objects, null or the resource exisiting property.

(在上面的同一听众上)尝试“更新或编辑”上传到GW的现有证书+在禁用FW的情况下使用PAAS KV

  • 成功

_在其他监听器上_
尝试“更新或编辑”上传到GW的现有证书+在禁用FW的情况下使用PAAS KV

  • 成功

大家好。 我创建一个帐户只是为了对此做出回应,因为它是如此令人沮丧。 对于喜欢我的人,不能或不想将KeyVault设置为“所有网络” ...我找到了一种解决方法。 如果您转到资源资源管理器并删除以下内容,则应该会使您的App Gateway再次满意。

  1. 删除身份对象
  2. 删除导致sslCertificates下失败的证书
  3. 删除所有失败的侦听器
  4. 输入您的更改

这立即导致了我的App Gateway的更新,并使其处于正常的配置状态。 诚然,我对尝试进行KeyVault集成的过程感到非常疲倦/沮丧,所以我只是将证书直接上传到App Gateway,并且工作正常。 KeyVault集成确实需要由Microsoft修复。

任何人,希望能对某人有所帮助。

干杯。

在相同的情况下! 我将直接添加证书,并且不使用KeyVault,因为我还必须将Key Vault限制为子网
干杯

磕碰! 使用Terraform仍然是一个问题。 如果在KV上打开了防火墙,则AppGW设置失败。

已经尝试了很多东西:

  • 在KV上打开

    • 用于模板部署的Azure资源管理器

    • 允许受信任的Microsoft服务绕过此防火墙吗?

  • AppGW子网中的服务端点,并在KV FW上添加网络
  • 将AppGW的publicIP添加到KV FW

...它们都不起作用。 唯一的解决方案是禁用密钥库上的防火墙。

也有这个问题。 请调查!

还是一件事! 就我而言,这似乎是密钥库网络集成。 门户网站绝对不会进行检查,并且会失败并显示随机属性键错误(这不是您所期望的禁止错误)。 谁能确认在网关子网上启用Microsoft.Keyvault的VNET服务终结点是否可以使此集成在启用KeyVault FW的情况下工作?

尝试“更新或编辑”上传到GW的现有证书+使用启用了FW的PAAS KV +启用了IPWhitelist

Invalid value for the identities '/subscriptions/{sub-id}/resourcegroups/{rg-name}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{uami-name}'. The 'UserAssignedIdentities' property keys should only be empty json objects, null or the resource exisiting property.

(在上面的同一听众上)尝试“更新或编辑”上传到GW的现有证书+在禁用FW的情况下使用PAAS KV

* SUCCESS

_在其他监听器上_
尝试“更新或编辑”上传到GW的现有证书+在禁用FW的情况下使用PAAS KV

* SUCCESS

似乎不适合我。 我也尝试了很多组合。 唯一的解决方案是完全禁用我的KV防火墙。

这对我来说也是如此。 仅完全禁用keyvault防火墙才能完成此工作。

我也遇到同样的问题...这还不能解决吗?

我不明白-我们也碰到了这一点。 这里的正确配置是什么?

在Azure支持下打开票证后,我收到了他们的正式答复:
“正如我们在谈话中所解释的,如果Key Vault未配置为允许“公共端点(所有网络)”访问,则Application Gateway当前不支持与Key Vault集成。
我们目前正在与必要的团队内部合作,以支持Key Vault上与Application Gateway集成有关的所有网络配置。

有关这方面的正式文件即将发布。”

@lonevvolf您可以打开所有网络的密钥库,将具有托管身份的SSL Cert绑定到侦听器,然后对密钥库进行防火墙保护(或将其锁定到vnet。)Appgw将继续使用_cached_ ssl证书,但是当您在证书保险库中过期之前替换了证书,则appgw将无法过渡到更新的证书。 因此,您必须注意这一点。 但是,是的,它坏了。

@Microsoft,我们可以获取有关此问题的更新吗? 它仍然没有解决,并迫使您的企业Azure客户使Key Vault暴露给所有网络。 自从报告以来已经一年多了,有足够的时间将其列入路线图。

如我们在对话中所述,如果Key Vault未配置为允许“公共端点(所有网络)”访问,则Application Gateway当前不支持与Key Vault集成。
我们目前正在与必要的团队内部合作,以支持Key Vault上与Application Gateway集成有关的所有网络配置。

另外,此限制需要在某处记录。 我们可以将此声明放入MSFT文档中吗?

例如,此文档应具有以下声明: https :

@oising,就像您提到的那样:您可以将密钥库打开到所有网络,将具有托管身份的SSL证书绑定到侦听器,然后对密钥库进行防火墙保护(或将其锁定到vnet。)Appgw将继续使用缓存的ssl证书。”

az cli是否支持此功能? 我们可以使用az cli在ssl证书(将其从关键文件库证书中拉出)中在App Gateway中创建http侦听器吗? 如果可以,请提供az cli命令。 提前致谢。

@lonevvolf您可以打开所有网络的密钥库,将具有托管身份的SSL Cert绑定到侦听器,然后对密钥库进行防火墙保护(或将其锁定到vnet。)Appgw将继续使用_cached_ ssl证书,但是当您在证书保险库中过期之前替换了证书,则appgw将无法过渡到更新的证书。 因此,您必须注意这一点。 但是,是的,它坏了。

嗯如果您在安装更新的证书之前关闭了Key Vault防火墙,然后又将其重新打开,该怎么办? AGW是否会看到更改,并在防火墙关闭时足够快地获取新证书? 我当前正在使用一个带有计时器的Azure功能来处理使用certbot / Let的Encrypt在Key Vault中更新证书。 我应该能够编写一些az命令,以在Key Vault中更新证书时禁用和重新启用Key Vault防火墙。

可笑的是,这一切都是必要的。 :/

有谁知道是否有计划在密钥库->“专用端点和选定的网络”上支持FW?

添加另一条评论以呼应他人的观点。 这个问题非常令人沮丧,因为对于许多组织来说,为Key Vault公开所有网络通常不是解决方案。 我正在使用Terraform遇到这个问题,目前不得不解决它。 来自@microsoft的修复将很棒。

对我来说一样,我们无法开放互联网kv或appgw,也无法充分使用我们想要的功能。 :/

今天有同样的问题。 :(

对于因与appgw斗争而烦恼的人来说,另一个可行的选择是使用Azure Frontdoor(基本上是精简的appgw),但它仅适用于公共网络(无vnet)-它可以自动生成面向公众的SSL证书。

我们正在积极致力于允许AppGW与KeyVaults一起使用,KeyVaults设置为仅允许专用端点并选择网络访问。 根据@jmcshane的建议,我们更新了文档,在有关此限制的“集成工作原理”部分中添加了重要说明。 一旦AppGW能够支持所有KeyVault配置,我们将更新此线程以及文档。

可以工作的@skinlayers-直到您尝试才知道!

我可以按照以下步骤解决此问题:

  • 使用z网络应用程序删除现有的ssl-cert配置文件
  • 暂时禁用防火墙,并允许从所有网络进行访问
  • 从天蓝色的密钥保管库再次绑定证书(我检查了两次所有服务标识权限是否正常)。
  • 再次禁用来自所有网络的访问

一切正常

注意:建议上述解决方法。 Microsoft已警告我们,由于使用了此方法,并且再次启用了防火墙,因此将来在Application Gateway上进行自动缩放操作将失败! 这确实需要Microsoft的完整修复。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

JeffLoo-ong picture JeffLoo-ong  ·  3评论

JamesDLD picture JamesDLD  ·  3评论

Favna picture Favna  ·  3评论

jamesgallagher-ie picture jamesgallagher-ie  ·  3评论

behnam89 picture behnam89  ·  3评论