你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

快速入门:使用 PowerShell 设置和检索 Azure Key Vault 中的机密

Azure Key Vault 是一项云服务,用作安全的机密存储。 可以安全地存储密钥、密码、证书和其他机密。 有关 Key Vault 的详细信息,可以查看 概述。 在本快速入门中,你将使用 Azure PowerShell 创建密钥保管库。 然后将机密存储在新创建的保管库中。

如果没有 Azure 订阅,请在开始之前创建一个免费帐户

Azure Cloud Shell

Azure 托管 Azure Cloud Shell,这是一个可以通过浏览器使用的交互式 shell 环境。 可以将 Bash 或 PowerShell 与 Cloud Shell 配合使用,以使用 Azure 服务。 可以使用 Cloud Shell 预安装命令运行本文中的代码,而无需在本地环境中安装任何内容。

若要启动 Azure Cloud Shell,请执行以下操作:

选项 示例/链接
在代码或命令块的右上角选择“试用”。 选择“试用”不会自动将代码或命令复制到 Cloud Shell。 显示适用于 Azure Cloud Shell 的 Try It 示例的屏幕截图。
转到 https://shell.azure.com或选择 “启动 Cloud Shell ”按钮,在浏览器中打开 Cloud Shell。 用于启动 Azure Cloud Shell 的按钮。
选择 Azure 门户右上角菜单栏上的 Cloud Shell 按钮。 显示 Azure 门户中的 Cloud Shell 按钮的屏幕截图

若要使用 Azure Cloud Shell,请执行以下操作:

  1. 启动 Cloud Shell。

  2. 选择代码块(或命令块)上的“复制”按钮以复制代码或命令。

  3. 在 Windows 和 Linux 上按下Ctrl+Shift+V,或在 macOS 上按下Cmd+Shift+V,将代码或命令粘贴到 Cloud Shell 会话中。

  4. 选择 Enter 以运行代码或命令。

如果选择在本地安装和使用 PowerShell,本教程需要 Azure PowerShell 模块 5.0.0 或更高版本。 键入 Get-InstalledModule -Name Az 以查找版本。 如果需要升级,请参阅 如何安装 Azure PowerShell。 如果在本地运行 PowerShell,则还需运行 Connect-AzAccount 来创建与 Azure 的连接。

Connect-AzAccount

创建资源组

资源组是在其中部署和管理 Azure 资源的逻辑容器。 使用 Azure PowerShell New-AzResourceGroup cmdlet 在 eastus 位置创建名为 myResourceGroup 的资源组。

New-AzResourceGroup -Name "myResourceGroup" -Location "EastUS"

创建密钥保管库

使用 Azure PowerShell New-AzKeyVault cmdlet 在上一步骤中的资源组中创建 Key Vault。 需要提供一些信息:

  • Key Vault 名称:由 3 到 24 个字符构成的字符串,只能包含数字 (0-9)、字母(a-z、A-Z)和连字符 (-)

    重要

    每个密钥保管库必须具有唯一的名称。 在以下示例中,将 <your-unique-keyvault-name> 替换为密钥保管库的名称。

  • 资源组名称:myResourceGroup

  • 位置:EastUS。

New-AzKeyVault -Name "<your-unique-keyvault-name>" -ResourceGroupName "myResourceGroup" -Location "EastUS"

此 cmdlet 的输出显示新创建的密钥保管库的属性。 记下以下两个属性:

  • 保管库名称:提供给 -Name 参数的名称。
  • 保管库 URI:在此示例中,此 URI 为 https://<your-unique-keyvault-name>.vault.azure.net/。 通过其 REST API 使用保管库的应用程序必须使用此 URI。

此时,您的 Azure 帐户是唯一被授权对此新保管库执行任何操作的帐户。

向用户帐户授予管理 Key Vault 中的机密的权限

若要通过 Role-Based 访问控制(RBAC)获取密钥保管库的权限,请使用 Azure PowerShell cmdlet New-AzRoleAssignment 为“用户主体名称”(UPN)分配角色。

New-AzRoleAssignment -SignInName "<upn>" -RoleDefinitionName "Key Vault Secrets Officer" -Scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.KeyVault/vaults/<your-unique-keyvault-name>"

将 <upn>、<subscription-id>、<resource-group-name> 和 <your-unique-keyvault-name> 替换为你的实际值。 你的 UPN 通常采用电子邮件地址格式(例如 username@domain.com)。

将机密添加到 Key Vault

只需执行几个步骤即可向保管库添加机密。 在这种情况下,请添加可由应用程序使用的密码。 密码称为 ExamplePassword ,并将 hVFkk965BuUv 的值存储在其中。

首先,运行以下命令,并在系统提示将其转换为安全字符串时输入值 hVFkk965BuUv

$secretvalue = Read-Host -Prompt 'Enter the example password' -AsSecureString

然后,使用 Azure PowerShell Set-AzKeyVaultSecret cmdlet 在名为 ExamplePassword 的 Key Vault 中创建机密,其值 为 hVFkk965BuUv

$secret = Set-AzKeyVaultSecret -VaultName "<your-unique-keyvault-name>" -Name "ExamplePassword" -SecretValue $secretvalue

从 Key Vault 检索机密

若要以纯文本形式查看机密中包含的值,请使用 Azure PowerShell Get-AzKeyVaultSecret cmdlet:

$secret = Get-AzKeyVaultSecret -VaultName "<your-unique-keyvault-name>" -Name "ExamplePassword" -AsPlainText

现在,你已创建 Key Vault 并存储和检索了机密。

清理资源

本系列中的其他快速入门和教程是在本快速入门的基础上制作的。 如果打算继续使用其他快速入门和教程,可能需要保留这些资源。

不再需要时,可以使用 Remove-AzResourceGroup 命令删除资源组、Key Vault 和所有相关资源。

Remove-AzResourceGroup -Name myResourceGroup

后续步骤

在本快速入门中,你创建了 Key Vault 并存储了机密。 若要详细了解 Key Vault 以及如何将其与应用程序集成,请继续阅读以下文章。