在 Application Insights 中加密/解密来自遥测的敏感信息

问题描述 投票:0回答:0

我目前面临一个问题,即一些敏感数据(api 密钥、密码、PII 等)作为跟踪通过遥测从 ASP.NET Core API 发送到 Azure Application Insights,并且以明文形式显示。这是一个例子(红线是我在说的):

我对 Azure 还很陌生,所以我不确定最好的方法是什么。

我目前的做法是使用 Initializer 来“拦截”每个遥测数据并在将其发送到 Azure 之前对其进行混淆。

由于我在 Application Insights 中发现的每一次敏感数据都遵循

"property": "value"
property: value
property=value
的格式,我可以使用正则表达式来捕获和混淆它。例如以下内容:

X-API-Key: abcdef0123456789
{
  "username": "MyUsername",
  "password": "qwerty1234"
}

会变成:

X-API-Key: [obfuscated]
{
  "username": "[obfuscated]",
  "password": "[obfuscated]"
}

这适用于我在初步审核后确定的几个关键字(用户名、密码、地址、电话等)这就是我现在所处的位置。

但是随之而来的是另一个问题:出于调试目的,我们可能想知道初始混淆值是什么。例如,调用可能会因为客户端使用无效的 API 密钥而失败,因此我们需要能够以某种方式查看该 API 密钥以确定这是问题的原因。

所以我想我可以加密数据,而不是像上面那样混淆它。但是在我们需要的时候解密数据呢?我们是否需要在复制粘贴值以解密的那一边有一个解密工具?这听起来很麻烦。

所以我的问题是:

  1. 整个正则表达式的处理方式是否正确?
  2. Azure 中没有可以无缝处理加密/解密的东西吗?我在想,也许我们会告诉 Azure 哪些模式要加密,然后原始值将存储在某种安全存储中,比如保险库,并与跟踪 ID 或其他东西相关联?

提前致谢

c# .net azure asp.net-core azure-application-insights
© www.soinside.com 2019 - 2024. All rights reserved.