为什么 Azure Key Vault 安全?

2024-05-11

Azure Key Vault 为什么或如何安全?我需要在服务器上存储密钥 URI、客户端 ID 和客户端密钥,因此如果任何人授予对托管应用程序的服务器的访问权限,他将能够访问存储在 Key Vault 中的密钥和密钥。这意味着将它们存储在服务器上同样安全,对吗?


这对于 OP 来说已经晚了,但我希望它可以帮助其他人在使用 Azure Key Vault 时解决先有鸡还是先有蛋的问题。

在 Azure VM 上运行应用程序的上下文中,而不是使用client_secret要进行身份验证,您可以使用客户端证书身份验证,如此处所述文档:使用证书而不是客户端密钥进行身份验证 https://learn.microsoft.com/en-us/azure/key-vault/key-vault-use-from-web-application#authenticate-with-a-certificate-instead-of-a-client-secret.

上图中:

  • 应用程序通过证明其具有证书的私钥(基本上存储在如果您使用的是 Windows)。
  • 应用程序取回access_token然后用它来访问 Key Vault。

开发人员不需要知道证书的私钥值即可成功验证其应用程序。相反,他们只需要知道导入的位置pfx(私钥及其证书的容器)位于证书存储区中。

至少在 Windows 上,您作为秘密管理员可以将私钥和证书转换为pfx格式是password受保护,然后将其部署到 Windows 证书存储中。这样一来,除非知道私钥,否则任何人都无法知道私钥password of the pfx file.


Azure 计算的另一种方法细节是使用Azure 托管服务身份 https://learn.microsoft.com/en-us/azure/active-directory/managed-service-identity/overview。使用 Azure MSI,Azure 将自动分配您的资源,例如具有身份/服务主体的 VM,并且您可以在只能由您的资源访问的特定端点处触发请求,以获取access_token。但请注意,Azure MSI 仍处于公共预览阶段,因此请在使用之前查看已知问题。

上图解释了 Azure 资源管理器如何将服务主体身份分配给您的 VM。

  • 在 VM 中启用 MSI 时,Azure 将在 AAD 中创建服务主体。
  • 然后,Azure 会将新的 MSI VM 扩展部署到你的 VM。这提供了一个端点http://localhost:50432/oauth2/token http://localhost:50432/oauth2/token用于获取access_token对于服务主体。
  • 然后您可以使用access_token访问授权服务主体访问的资源,例如 Key Vault。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 Azure Key Vault 安全? 的相关文章

随机推荐

  • 从 azure pipeline.yml 将变量组参数传递到模板时出现问题

    我已经声明了一个变量组Agile Connections 如下所示 该组对任何管道没有任何限制 我正在使用另一个名为 vars yml 的模板来存储一些其他变量 variables group Agile Connections name
  • 正则表达式或用单个空格替换多个空格的方法

    你能告诉我有没有办法在java或spring中用单个空格替换多个空格 有相同的 stringUtils 函数吗 like 1 test test test test 2 test test test test 3 test test tes
  • WCF 和数据契约上的接口

    使用 svcutil 创建 WCF 代理时 是否还可以包含数据协定继承的接口 例如 public class SomeType ISometype public string Name get set public interface IS
  • 在 Android 上使用 Fluidsynth 从 SoundFonts 播放音符

    有没有办法让android通过使用FluidSynth使用SoundFont文件播放声音 我一直在看jOrgan http sourceforge net apps mediawiki jorgan index php title Deve
  • 设置 MetaspaceSize 的指南 - java 8

    64 位服务器的 MetaspaceSize 默认值是多少 我在官方文档中没有找到它 我观察到 在服务器 JVM 进程中 GC 频率有时会变高并持续增长 如果我重新启动服务几次 它就会恢复稳定 我认为这是由于 JRE 升级造成的 JVM 堆
  • ember js 子视图和 didinsertelement 事件

    我正在写一个Ember View 它将树结构变成菜单 我需要递归 所以我在视图模板中使用的是 view helper 它递归地调用自身来构建嵌套 ul li 结构 我需要的是一个钩子来调用一些 jQuery 插件来将此结构转换为菜单 当我从
  • 如何使用 phpunit 测试内部数组

    我必须测试带有内部数组的数组 我的数组如下所示 testdata Array 0 gt Array label gt Ammy idr gt user7 rel gt 7 1 gt Array label gt sidh idr gt us
  • SQL DML:日期值不正确 (MySQL)

    我在数据库中创建了一个表 CREATE TABLE official receipt student no INT UNSIGNED academic year CHAR 8 trimester ENUM 1 2 3 or no MEDIU
  • webpack 加载器并包含

    我是 webpack 的新手 我正在尝试了解加载器及其属性 例如测试 加载器 包含等 这是我在 google 中找到的 webpack config js 的示例片段 module loaders test js loader babel
  • 错误:找不到模块 \node_modules\sqlite3\lib\binding\electron-v8.0-win32-x64\node_sqlite3.node'

    我在 Electron 8 1 中安装 sqlite3 时遇到问题 我收到以下错误 Error Cannot find module D TASK 2020 1 1 AMS node modules sqlite3 lib binding
  • 将 Angular 项目从 StackBlitz 导出到本地

    我想导出在 StackBlitz 中完成的 Angular 项目 并使用以下命令从 Angular CLI 执行它ng serve就像我们对在本地计算机中创建的 Angular 项目所做的那样 去做就对了 这是您需要点击的地方
  • 清理 IntelliJ 中构建的 Play 框架

    我有一个拼写错误conf routes文件导致 Play Framework 生成错误命名的类 重建项目并运行Invalidate Caches并没有解决 IntelliJ 中的问题 当我手动运行时重新生成了不正确的类文件play clea
  • 字符串排序真的是 O(n^2logn) 吗? [复制]

    这个问题在这里已经有答案了 我读了以下内容 排序需要 O NlogN 那么它怎么是 O N 2logN 我们在这里想念的是 两个字符串的比较不是 O 1 在最坏的情况下 需要 在 所以最终的复杂度是O N 2logN 它是否正确 我一直认为
  • CSS 列数导致项目拆分列

    尝试不使用 jQuery 脚本来实现砖石效果 因此寻找 CSS 替代方案 我正在尝试使用列计数 这似乎有效 但不符合预期 因此 列就在那里 但有时容器中的项目会被拆分为多个列 正如您应该在此示例中看到的那样 http jsfiddle ne
  • AWS 从实例元数据检索安全凭证

    这不是问题的重复使用 API 调用获取我的 AWS 凭证 https stackoverflow com q 34810642 850848 因为我具体询问亚马逊在他们给出的示例中的含义 我正在看这里 http docs aws amazo
  • WiX - 安装 Windows 服务以在 x64 模式下运行

    我正在使用 WiX 3 5 及其 ServiceInstall 标签安装 Windows 服务
  • 警告:格式“%d”需要类型“int *”,但参数 2 的类型为“int”

    所以我是 C 的新手 并且对这个警告发生的情况遇到了麻烦 该警告是什么意思以及我该如何解决它 我写的代码在这里 void main void char name int age 0 printf input your name n scan
  • Java SWT 用户输入验证

    在 SWT 中进行用户输入验证时 Java 约定是什么 我读到有 FieldEditors 它们是非常方便的字段 但遗憾的是仅适用于首选项和对话框 我还了解到有一个 IValidator 接口 但它经常与数据绑定一起使用 就我而言 我的大多
  • Android - 在通知栏中使用外部个人资料图像,如 Facebook

    我知道您可以在推送通知参数中发送信息 例如消息 标题 图像 URL 等 Facebook 如何在通知区域中显示您的个人资料图片和消息 我想在通知区域中使用外部图像 因此当您将其下拉时 您会看到带有消息的个人资料图像 现在 我的仅显示可绘制文
  • 为什么 Azure Key Vault 安全?

    Azure Key Vault 为什么或如何安全 我需要在服务器上存储密钥 URI 客户端 ID 和客户端密钥 因此如果任何人授予对托管应用程序的服务器的访问权限 他将能够访问存储在 Key Vault 中的密钥和密钥 这意味着将它们存储在