系统极客一直在努力
专注于操作系统及软件使用教程

如何创建和管理Azure Key Vault密钥保管库

Azure Key Vault

Azure 密钥保管库可协助保护云端应用程序和服务所使用的密码编译密钥和机密数据。 使用密钥保管库后,你可以加密密钥和机密数据(例如验证密钥、存储器帐户密钥、数据加密密钥、. PFX 文档和密码),微软采用方法是使用受硬件安全模块(HSM)保护的密钥。 为了加强安全保证,你可以在 HSM 中导入或产生密钥。 如果这样做,微软将会以 FIPS 140-2 Level 2 验证的 HSM(硬件和固件)方式处理你的密钥。

密钥保管库简化了密钥管理程序,让你控管存取和加密数据的密钥。 开发人员可以在几分钟内建立开发和测试密钥,然后顺利地将他们移转至生产密钥。 安全系统管理员可以视需要授和吊销存取密钥的权限。

本文我们将介绍如何创建和管理 Azure Key Vault 密钥保管库,首先我们会介绍密钥保管库的生命周期,然后再通过 PowerShell 示例的方式向大家演示对 Azure 密钥保管库的创建和管理等操作。

Azure密钥保管库生命周期

在最简单的情况下,你所创建的 Azure 密钥保管库只供个人操作和使用。在其它情况下,对同一密钥保管库可有 4 组任意数量的用户及应用程序可对其执行不同的任务。

Azure Key Vault

1. 在使用密钥保管库服务之前,需要使用 New-AzureRmKeyVault 创建自己的密钥保管库。

2. 创建的 Azure 密钥保管库可被一个或多个应用程序使用,你必需在 Azure Active Directory 中注册这些应用程序并使用 Set-AzureRmKeyVaultAccessPolicy 授权其使用你所创建的密钥保管库。

可选:要允许其它用户添加/删除密钥,同样可以使用 Set-AzureRmKeyVaultAccessPolicy 进行授权。

3. 被授权的用户可分别使用 Set-AzureKeyVaultSecretAdd-AzureKeyVaultKey 向密钥保管库添加机密数据(如密码)和加密密钥。对于添加的每个机密数据或密钥,将获得一个唯一的 URI。

4. 应用程序操作者必须配置应用程序以使用密钥库的 URI(或机密数据、密钥),一般的应用程序会提供在其配置中粘贴你机密数据和密钥的 URI 的地方。

5. 随后你授权的应用程序将可使用密钥保管库REST API或密钥保管库客户端类以编程方式实现:

  • 对密钥保管库执行机密数据读取和写入及授权的操作
  • 可以使用密钥来调用解密和标志等服务,由于密钥保管库服务会代表应用程序执行加密操作,所以应用程序不能读取(提取)密钥。
  • 该应用程序还可以在密钥保管库中执行添加、删除和更新密钥等不常见的特定授权操作。

6. 可对你自己拥有或委派审计的密钥保管库服务通过日志来监控使用和执行的操作。

7. 可在任何时候使用 Add-AzureKeyVaultKeySet-AzureKeyVaultKey 新增或更新机密数据或密钥值。

8. 当不再使用时,可用 Remove-AzureKeyVaultKeyRemove-AzureKeyVaultSecret 删除密钥和机密数据。

9. 任何时候你都可以使用 Remove-AzureRmKeyVaultAccessPolicy 和 Set-AzureRmKeyVaultAccessPolicy 取消授权(吊销)用户或应用程序对密钥库的访问。

10. 最后大家可以使用 Remove-AzureRmKeyvault 删除整个 Azure 密钥保管库。

下面,我们将以示例的方式向大家演示上述操作步骤。

创建和配置密钥保管库

要创建 Azure 密钥保管库必需使用 Azure PowerShell 1.0.1 或更高版本。

1 登录 Azure 管理员账号

Login-AzureRmAccount

2 获取可用 Azure 订阅

Get-AzureRmSubscription

3 选择要创建密钥保管库的订阅

Select-AzureRmSubscription -SubscriptionName "<订阅名称>"

4 创建一个资源组作为存放 Azure 密钥保管库的容器:

New-AzureRmResourceGroup –Name 'SysgeekRG' –Location 'East Asia'

New-AzureRmResourceGroup

5 使用 New-AzureRmKeyVault Cmdlet 來建立密钥保管库。这个 Cmdlet 包含 3 个必要的参数:资源组名称、密钥保管库名称和地理位置。

例如,如果使用要建立的保管库名称为 SysgeekKeyVault、资源组名称为 SysgeekRG 及并确定其建立到东亚数据中心,可以使用:

New-AzureRmKeyVault -VaultName 'SysgeekKeyVault' -ResourceGroupName 'SysgeekRG' -Location 'East Asia'

Azure Key Vault

此时,一个全新的 Azure 密钥保管库就创建完成了。

向Azure AD注册应用程序

首先我们需要确认所创建的 Azure 密钥保管库是供用户还是应用程序使用,如果是为应用程序提供服务,则必需向 Azure AD 注册应用程序之后才能使用。想必这个步骤不难理解,用户在 Azure AD 中是可能有自己账号的,而应用程序没有,所以必需要进行注册。

1 登录旧版 Azure Protal 点击「active directory」进入 Azure AD

2 点击「应用程序」选项卡,在此界面中会列出所有应用程序,请点击「添加」之后选择「添加我的组织正在开发的应用程序」

Azure-Key-Vault-5

3 在输入应用程序名称之后点击向右箭头进入下一步

Azure-Key-Vault-6

4 在此界面中指定应用程序「登录 URL」及「应用程序 ID URI」。如果您的应用程序没有这些值,可以在此步骤中虚构值。这些网站是否存在并没有影响。重要的是目录中每个应用程序的应用程序标识符 URI 都会有所不同。 目录会使用此字符串来识别相应的应用程序。

Azure-Key-Vault-7

5 应用程序注册完成后,找到相关的「客户端 ID」字段,将标识该应用程序的 GUID 复制出来备用。

Azure-Key-Vault-8

6 如果你的应用程序要在 Azure AD 中读写数据(如通过图形 API 提供的数据),将需要用到密钥。你可以创建多个密钥来处理密钥滚动更新方案。也可以删除已过期、已泄露或不再使用的密钥。

Azure-Key-Vault-9

授权应用程序使用密钥或机密数据

要授权应用程序使用 Azure 密钥保管库中的密钥或机密数据,可以使用 Set-AzureRmKeyVaultAccessPolicy Cmdlet。大家可在 -ServicePrincipalName 参数中指定相应应用程序的「客户端 ID」即 GUID 并配置所要授予的相应权限即可。

Set-AzureRmKeyVaultAccessPolicy -VaultName 'SysgeekKeyVault' -ServicePrincipalName 'bd2e224b-5043-4d9f-bc09-f28f83b551fc' -PermissionsToSecrets get -PermissionsToKeys wrapKey,unwrapKey,decrypt,encrypt

Azure-Key-Vault-10

分享到:更多 ()