微软云密钥保管库(Azure key vault),听名字就知道可以帮助企业保管Key, Secret, Credential。使用AKV可以大大加强企业的应用安全性。
- Key Vault 可以大大减少机密意外泄露的可能性 。
- 访问密钥保管库需要适当的身份验证和授权,否则调用方(用户或应用程序)无法进行访问。
- 可以通过 Azure Key Vault 来隔离应用程序机密。
托管服务标识:虽然 Azure Key Vault 可用于安全存储凭据以及其他密钥和机密,但代码需要通过 Key Vault 的身份验证才能检索它们。使用托管标识可为 Azure 服务提供 Azure AD 中的自动托管标识,更巧妙地解决了这个问题。可以使用此标识向支持 Azure AD 身份验证的任何服务(包括 Key Vault)证明身份,无需在代码中放入任何凭据。
- 系统分配托管标识直接在 Azure 服务实例上启用。 启用标识后,Azure 将在实例的订阅信任的 Azure AD 租户中创建实例的标识。 创建标识后,系统会将凭据预配到实例。 系统分配标识的生命周期直接绑定到启用它的 Azure 服务实例。 如果实例遭删除,Azure 会自动清理 Azure AD 中的凭据和标识。
- 用户分配托管标识是作为独立的 Azure 资源创建的。 在创建过程中,Azure 会在由所用订阅信任的 Azure AD 租户中创建一个标识。 在创建标识后,可以将标识分配到一个或多个 Azure 服务实例。 用户分配标识的生命周期与它所分配到的 Azure 服务实例的生命周期是分开管理的。
- 创建Azure Key Vault,创建过程比较简单,并且可以创建完成后进行修改。
- 创建机密(Secret)
- 创建2台虚拟机,1台创建托管标识,1台五托管标识,步骤略。
- 为这台虚拟机创建托管服务标识。
az vm identity assign --name xxxxx --resource-group xxxxx
{
"systemAssignedIdentity": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userAssignedIdentities": {}
}
az keyvault set-policy --name xxxxx --object-id xxxxx --secret-permissions get list
- 验证,加入托管标识的可以访问,没有加入的无法验证通过。最差情况,即使密码泄露,也无法获得访问相应资源。