问题标签 [azure-keyvault]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - 创建 Azure ALM 友好的开发和部署环境的首选实践是什么?
我终于加入了 Azure 开发派对,我有一个关于创建开发和部署环境的首选实践的问题。
首先,我正在学习Azure Key Vault,它为我的核心问题提供了完美的示例场景。
在我的开发(和 ALM)过程中,我通常有:
- 本地开发环境
- 部署的开发环境 (CI/CD)
- 测试环境
- 分期
- 生产
对于每个环境,我通常都有一个带有XDT 环境转换的 App.config 或 Web.config,它们为每个环境运行,并为我的应用程序使用的外部资源放置在每个环境的环境设置中。
现在,我确实看到了这个问题,但它已经有几年的历史了,所以我想重新审视它,因为似乎已经做了很多工作,特别是新的 Azure 资源管理器和似乎有的 Azure 管理 API替换了 Azure 服务管理模型。
对于 Azure Key Vault,我正在考虑创建 4 个资源组(开发、测试、暂存、生产)并在每个组中创建一个 Azure Key Vault 实例。
我的问题是:
- 这是查看 Azure 资源组的正确方法吗?
- 从我的本地开发环境中,我应该连接到存储在我创建的 Development Azure Resource Group 中的资源,还是有另一种用于本地开发的首选机制?(例如,我应该考虑使用其他模拟器,例如Azure 存储模拟器吗?)
- 有没有比我介绍的更受欢迎的方法来处理我的环境?
提前感谢您的任何帮助和澄清!
azure - Azure Key Vault 访问策略不适用于组
通过 Azure Key Vault 上的组访问策略似乎不起作用。
如果我创建一个新的密钥保管库
并检查钥匙(目前没有)
这样可行。
如果我添加对当前用户所属的组的访问权限
并删除直接访问
列表操作现在失败
我怎样才能按组许可?
adfs - Azure Key Vault 用于管理生产和开发中的机密
Azure Key Vault 似乎不支持分配给组的访问策略;只有分配给用户或服务主体的。它还支持每个密钥保管库最多 10 个访问策略,这意味着我无法单独分配我想要访问的所有人员。
我不想将客户机密传递给所有开发人员。对于已部署的应用程序,传递单个客户端密钥以便代码可以作为服务主体进行身份验证,然后获取密钥就可以了。
开发人员通过 NTLM/Kerberos(通过 ADFS)向 AAD 进行身份验证以获取访问令牌(而不是通过客户端密钥)。通过获取此访问令牌,他们应该能够访问运行我们的应用程序所需的所有其他机密的安全存储形式(就像作为服务主体进行身份验证时生产代码所做的那样)。
我怎样才能做到这一点?
azure - 如何为 Azure Key Vault 创建生产客户端身份验证证书?
我正在学习Azure Key Vault,它支持的场景之一是证书身份验证,您可以在此处阅读。
这些示例很好地解释了如何为本地测试制作自签名证书,我已经开始工作而没有遇到任何问题。我现在的问题是,如何为生产部署制作证书?我是从某处的服务中购买的吗?如果是这样,我到底需要什么类型的证书?
不幸的是,我在 Azure Key Vault 中找不到任何文档,其中概述了如何在生产级证书中制作(或预期/假设的内容)。
到目前为止,根据我的研究/调查,我基本上有一些要求/期望:
- 我想使用受信任的外部服务 (CA?) 来购买证书。
- 证书越便宜越好。:)
- 我希望能够创建带有自定义数据扩展的证书。
除了我的要求之外,我还有一个关于证书的具体问题:我需要什么类型的证书? 这是服务器身份验证证书吗?还是客户端认证证书?或者... ?
在过去的一个小时里,我已经浏览了几个 SSL 证书提供商,但是他们都没有真正可以为我正在寻找的证书类型提供一个很好的答案(当我向他们提供上面的 Azure 证书的链接时)。所以,我决定做我一开始就应该做的事情,并将我的问题提交给受人尊敬的社区。:)
提前感谢您的任何帮助。
azure - 使用 Azure PowerShell 证书身份验证在 Azure AD 中创建应用程序
我试图使用 Azure PowerShell 证书身份验证在 Azure AD 中创建应用程序,下面是 Powershell 片段:
Azure AD 应用程序已成功创建,但是对于具有证书身份验证的 Azure AD 应用程序,创建后的customKeyIdentifier
和值为keyCredentials
null,这是我从 Azure 门户下载的应用程序清单的一部分:
仅供参考,证书是我使用本地生成的 makecert 命令的自签名证书。
任何建议,非常感谢。
詹姆士
sql-server - 使用 Key Vault 和证书的 SQL Azure IaaS 加密
我正在尝试创建一个 ARM 模板,该模板可以使用 Key Vault 作为 EKM 在 Azure 中使用透明数据加密 (TDE) 部署 SQL Enterprise VM。
我找到了如何通过 Key Vault 启用 TDE 的示例,包括101 SQL KeyVault 模板和SQL ARM Provision,但在这两种情况下,它们只需要 Key Vault URL 和访问凭据(AppID 和 Secret)。
由于没有提供现有的秘密 URL,这似乎意味着驻留在 EKM (Key Vault) 中的非对称密钥将由部署过程创建,根据 Microsoft 的安全说明,将生产工作负载作为密钥是不好的做法永远不能出口。
鉴于上述情况,我试图将 SQL 指向我已作为 pfx 文件导入 Key Vault 的现有非对称密钥,但在创建 VM 时我似乎找不到任何关于如何引用它的文档通过 ARM 模板。如果有人知道这是否可行,我将不胜感激,而不必在创建 VM 后通过 PowerShell 和/或 T-SQL 执行许多手动步骤。
c# - Azure RsaKey 持久化
我正在为我的 Azure 项目使用加密技术,但我遇到了 RsaKey 问题。当用户注册应用程序时,会创建一个 RsaKey 并将其关联到用户。这是代码:
在此之后,我必须使 RsaKey 持久化,然后将其存储在用户容器中的专用 blob 中。由于 RsaKey 不可序列化,因此我对 Json 字符串使用了一点“技巧”。这里的代码:
注册后,我当然需要使用 RsaKey 来执行一些操作,比如访问一些隐藏字段,访问其他 blob 中的一些特殊文件等。我在这种情况下所做的代码如下所示:
Resolver 是一个实现 IKeyResolver 的类,它必须定义ResolveKeyAsync
方法来执行检索操作。这是这个类的代码:
实际上我的问题是反序列化的 RsaKey 与前一个不同。尽管jsonString
属性设置正确,但“Kid”字段result
不同,可能是反序列化操作中隐式实例化的原因(并且可能创建了一个新的 Kid)。因此,我尝试使用我存储的同一个 Kid 创建一个新的 RsaKey ( RsaKey key = new RsaKey(partitionKey)
),但检索操作失败 (TableResult result
仍然null
)。你有什么建议?也许我必须改变持久性机制?
编辑
当我尝试table.Execute(operation, retrieveOptions, null);
在 try/catch 块中执行时(使用 RsaKey 实例化RsaKey key = new RsaKey(partitionKey)
),这是抛出的异常:
c# - 如何将 Azure Webjob 连接到 Azure Keyvault?
我似乎无法弄清楚如何将我的 webjob 连接到 keyvault 以使用客户端加密功能......问题更多在于设置 keyvault,理论上我知道连接后在 webjob 中使用哪些功能到密钥库。我似乎需要某种连接或标识字符串,将我的网络作业标识为允许访问我的密钥库的程序,但我无法在任何地方找到该字符串,所以我现在真的不知道该怎么做.. .
如果我在 .NET/C# 中工作并且我正在尝试将加密添加到访问表和队列的工作 Web 作业中,则表将被加密,但队列无关紧要。
任何帮助表示赞赏。
sql-server - SQL TD EKM Azure Key Vault - 无法还原加密的数据库
使用这篇 MS 文章中详述的步骤,我已经成功地启用了使用 Azure 作为 EKM 的 SQL TDE。为了确保在发生 DR 场景时能够解密另一台服务器上的数据,我首先按照本文中的步骤将我自己的非对称密钥(以受密码保护的 pfx 文件的形式)上传到 Key Vault女士文章。
我现在正在尝试测试 DR,我必须将加密数据库的备份还原到另一个 SQL 服务器上,无论我尝试什么,我都无法让它工作。我敢肯定,对于那些熟悉 SQL 加密的人来说,这是一件非常明显的事情,但这让我很困惑!
我已经阅读了各种文章,例如这篇文章,解释了如何使用 PVKConverter.exe 转换然后导入 pfx 证书。最初,尝试导入转换后的 pfx 时抛出错误Msg 15581, Level 16, State 1, Line 1。请在执行此操作之前在数据库中创建主密钥或在会话中打开主密钥。所以我在主数据库中创建了一个使用
这并没有让我更进一步,因为备份仍然无法恢复。
比较两台服务器,明显的区别是主数据库在加密的服务器 A ( SELECT * FROM sys.asymmetric_keys
) 中保存我的 Key Vault 链接的非对称密钥,在服务器 B ( ) 中保存一个证书SELECT * FROM sys.certificates
。我知道我无法从 SQL 导出非对称密钥(因此我在 Key Vault 中使用了现有的 pfx),但我只是不知道如何在服务器 B 中使用/导入该 pfx 以允许我恢复加密的数据库从服务器 A 备份。每当我尝试使用以下命令从我的 pfx 文件在主数据库中创建非对称密钥时:
我收到错误消息:Msg 15208, Level 16, State 43, Line 18 证书、非对称密钥或私钥文件无效或不存在;或者您没有权限。
下面是用于在服务器 A 上启用 TDE 的完整 SQL,希望这将提供发现问题所需的洞察力: