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

快速入门:使用 Azure PowerShell 在 Azure 密钥保管库 中设置和检索证书

在本快速入门中,你将使用 Azure PowerShell 在 Azure 密钥保管库 中创建一个密钥保管库。 Azure 密钥保管库 是一项云服务,用作安全的机密存储。 可以安全地存储密钥、密码、证书和其他机密。 有关 密钥保管库 的详细信息,请参阅概述。 Azure PowerShell 用于通过命令或脚本创建和管理 Azure 资源。 之后,存储证书。

Prerequisites

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

创建资源组

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

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

创建密钥保管库

使用 Azure PowerShell New-AzKeyVault cmdlet 在上一步骤的资源组中创建 密钥保管库。 你需要提供某些信息:

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

    重要

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

  • 资源组名称: myResourceGroup

  • 位置: EastUS

New-AzKeyVault -Name "<vault-name>" -ResourceGroupName "myResourceGroup" -Location "EastUS" -EnableRbacAuthorization $true -EnablePurgeProtection

注释

清除保护是密钥保管库安全最佳做法

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

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

目前,只有你的 Azure 帐户才有权对这个新保管库执行任何操作。

授予你的用户帐户管理密钥保管库中证书的权限

要通过基于角色的访问控制 (RBAC) 授予对密钥保管库的权限,请使用 Azure PowerShell cmdlet New-AzRoleAssignment 将角色分配给你的“用户主体名称”(UPN)。

New-AzRoleAssignment -SignInName "<upn>" -RoleDefinitionName "Key Vault Certificates Officer" -Scope "/subscriptions/<subscription-id>/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/<vault-name>"

替换<upn><subscription-id><vault-name>为实际值。 如果使用了其他资源组名称,请替换“myResourceGroup”。 你的 UPN 通常采用电子邮件地址格式(例如 username@domain.com)。

将证书添加到 密钥保管库

现在你可以向保管库添加证书。 此证书可供应用程序使用。

使用以下命令,以通过名为 ExampleCertificate 的策略创建自签名证书:

注释

本快速入门指南会创建一个自签名证书,用于演示。 对于生产工作负荷,将密钥保管库与受信任的证书颁发机构集成。 请参阅 Secure Azure 密钥保管库 证书

$Policy = New-AzKeyVaultCertificatePolicy -SecretContentType "application/x-pkcs12" -SubjectName "CN=<domain-name>" -IssuerName "Self" -ValidityInMonths 6 -ReuseKeyOnRenewal

Add-AzKeyVaultCertificate -VaultName "<vault-name>" -Name "ExampleCertificate" -CertificatePolicy $Policy

现在,可以通过 URI 来引用已添加到 Azure 密钥保管库 的此证书。 使用 https://<vault-name>.vault.azure.net/certificates/ExampleCertificate 获取当前版本。

要查看以前存储的证书,请使用以下命令:

Get-AzKeyVaultCertificate -VaultName "<vault-name>" -Name "ExampleCertificate"

故障排除

操作返回了无效的状态代码“禁止”

如果你收到此错误,则表明访问 Azure 密钥保管库 的帐户没有创建证书的适当权限。

运行以下 Azure PowerShell 命令以分配正确的 RBAC 角色:

New-AzRoleAssignment -SignInName <user-principal-name> -RoleDefinitionName "Key Vault Certificates Officer" -Scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.KeyVault/vaults/<vault-name>"

清理资源

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

如果不再需要资源组及所有相关资源,可使用 Azure PowerShell Remove-AzResourceGroup cmdlet 将其删除。

Remove-AzResourceGroup -Name "myResourceGroup"

后续步骤

在本快速入门中,你创建了一个密钥保管库并在其中存储了一个证书。 要详细了解 密钥保管库 以及如何将其与应用程序集成,请继续阅读以下文章。