1

我想确保只有特定的应用程序能够将数据发送到我的应用程序洞察资源。我要避免的情况是,如果某些开发人员或攻击者拥有检测密钥,则来自他们机器的遥测数据不会发送到我的应用程序洞察资源。

更具体:我有一个运行 3 个 IIS ASP.NET Web 应用程序的 Azure VM。每个报告到他们各自的应用程序 Insghts 资源。目前,如果开发人员在本地启动其中一个应用程序并指向相同的应用程序洞察资源,它将接受数据并扭曲指标数据。我想确保这是不可能的。

附加上下文:我正在试验无代码 ApplicationInsights 代理,但主要使用 ASP.NET 的手动 SDK 检测方法。

我已经查看了网络隔离方法,但这似乎是一个巨大的成本增加,因为除了 AppInsights 的数据费用之外,我还将为通过 privatelink 的数据支付额外费用。

目前,公共 Internet 上任何使用我的检测密钥的人都可以将数据发送到 appinsights 资源。我想以某种方式将此限制为特定的 AD 应用程序角色或 VM。

有人可以在这里帮忙吗?提前致谢。

4

2 回答 2

0

我们最近发布了对 Application Insights 的 Azure AD 身份验证的支持 ( https://docs.microsoft.com/en-us/azure/azure-monitor/app/azure-ad-authentication?tabs=net )。

您可以将用户分配或系统分配的托管标识分配给您的 VM,并授予此标识提取遥测数据的权限。

最重要的是,您可以禁用本地身份验证。这将单独阻止基于摄取的检测密钥。

于 2021-09-07T07:46:08.120 回答
0

您可以轻松地使用自定义 API 作为代理。您的浏览器/客户端将能够将数据发送到您可以过滤的 API。显然,该 API 能够将正确的遥测数据发送到您的 Azure Application Insight。

除此之外,您可以使用某种签名来丰富属性,以确定您的数据是否来自您的客户。

于 2021-09-03T17:01:44.183 回答