Как ограничить то, что/кто может отправлять данные в Azure Application Insights

#azure #azure-application-insights

Вопрос:

Я хотел бы убедиться, что только определенные приложения могут отправлять данные на мой ресурс Application insights. Ситуация, которую я пытаюсь избежать, заключается в том, что, если у какого-либо разработчика или злоумышленника есть ключ инструментария, данные телеметрии с их компьютеров не отправляются на мой ресурс Application insights.

Более конкретно: у меня есть виртуальная машина Azure под управлением 3 IIS ASP.NET веб-приложения. Каждый отчитывается перед своим собственным соответствующим ресурсом приложений Inisights. В настоящее время, если разработчик развернет одно из этих приложений локально и укажет на тот же ресурс app insights, он примет данные и исказит данные метрики. Я хочу убедиться, что это невозможно.

Дополнительный контекст: я экспериментирую с агентом ApplicationInsights без кода, но в основном использую метод инструментария SDK вручную для ASP.NET.

Я рассмотрел метод изоляции сети, но это кажется огромным увеличением затрат, потому что с меня будет взиматься дополнительная плата за данные, проходящие через privatelink, в дополнение к сборам за данные от AppInsights.

В настоящее время любой пользователь общедоступного Интернета с ключом my instrumentation может отправлять данные на ресурс appinsights. Я хотел бы каким-то образом ограничить это определенной ролью приложения AD или виртуальной машиной.

Кто-нибудь может здесь помочь? Заранее спасибо.

Ответ №1:

Вы можете легко использовать пользовательский API в качестве прокси-сервера. Ваш браузер/клиент сможет отправлять данные в этот API, где вы сможете их фильтровать. Очевидно, что этот API сможет отправлять соответствующие данные телеметрии в ваше приложение Azure Insight.

Кроме того, вы можете обогатить свойства какой-либо подписью, чтобы определить, поступают ли ваши данные от ваших клиентов или нет.

Ответ №2:

Недавно мы выпустили поддержку проверки подлинности Azure AD для анализа приложений (https://docs.microsoft.com/en-us/azure/azure-monitor/app/azure-ad-authentication?tabs=net).

Вы можете назначить виртуальной машине либо назначенное пользователем, либо назначенное системой управляемое удостоверение и предоставить этому удостоверению права на прием телеметрии.

Кроме того, вы можете отключить локальную аутентификацию. Это заблокирует проглатывание только на основе ключа инструментария.