由于网络设置中的VNET,备份AzApiManagement无法访问blob存储



运行PowerShell将Azure API管理实例从子网a内的Azure VM备份到Blob存储中。

  • 当blob存储设置为"网络-所有网络"时,它可以工作。

  • 但是,当blob存储设置为"网络-选定的子网A"时,PowerShell将开始出错。

消息显示Operation returned an invalid status code 'BadRequest'

我还将Azure APIM管理公共IP添加到Blob存储防火墙中,但它仍然不起作用。

使用调试模式,它有一些更多的信息

{ "error": { "code": "InvalidParameters", "message": "Invalid parameter: This request is not authorized to perform this operation.rnParameter name: backupContainerName (value: [apim-backup])", "details": null, "innerError": null } }

经过搜索,显然这意味着Blob存储不允许使用IP。只有Backup AzApiManagement命令失败。PowerShell中的其他存储操作将在该Azure VM中工作。此外,虚拟机中的Storage Explorer UI也可以访问blob并从中上载blob。

这是否意味着,对blob存储的访问请求是由Microsoft基础设施内部服务器在幕后发出的,而不是从我运行的Azure VM发出的?

如果您已获得Blob存储帐户的安全保护,请查看网络要求https://learn.microsoft.com/en-us/azure/api-management/api-management-howto-disaster-recovery-backup-restore#access-使用-storage-access-key-2

TL;博士

  1. 如果您的服务在美国东部,并且您的存储帐户在美国东部的话,添加APIM IP地址将没有帮助。在美国东部创建存储帐户2并从美国东部添加APIM IP地址。同一地区的存储帐户和APIM服务将不起作用,因为只有跨地区的存储请求才会SNAT到公共IP地址。

  2. 我们已经发布了使用托管身份的备份支持,您无需提供访问密钥。https://learn.microsoft.com/en-us/azure/api-management/api-management-howto-disaster-recovery-backup-restore#access-使用管理标识-2使用托管身份,您不需要添加IP地址。您可以启用";允许可信服务";存储帐户上。在这种情况下,存储帐户可以与APIM服务位于同一区域。

E.g for Backup-https://learn.microsoft.com/en-us/rest/api/apimanagement/current-ga/api-management-service/backup#apimanagementbackupwithsystemmanagedidentity

最新更新