Compartilhar via

快速入门:使用 Azure PowerShell 从Azure Key Vault设置和检索证书

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

先决条件

如果没有Azure订阅,请在开始前创建试用订阅

创建资源组

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

New-AzResourceGroup -Name "myResourceGroup" -Location "ChinaEast"

创建密钥库

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

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

    重要

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

  • 资源组名称:myResourceGroup

  • 位置:ChinaEast

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

此 cmdlet 的输出显示新创建的key vault的属性。 记下以下两个属性:

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

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

授予用户帐户管理Key Vault中的证书的权限

若要通过 Role-Based Access Control(RBAC)获取对key vault的权限,请使用 Azure PowerShell cmdlet New-AzRoleAssignment 为“用户主体名称”(UPN)分配角色。

New-AzRoleAssignment -SignInName "<upn>" -RoleDefinitionName "Key Vault Certificates 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

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

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

$Policy = New-AzKeyVaultCertificatePolicy -SecretContentType "application/x-pkcs12" -SubjectName "CN=contoso.com" -IssuerName "Self" -ValidityInMonths 6 -ReuseKeyOnRenewal

Add-AzKeyVaultCertificate -VaultName "<your-unique-keyvault-name>" -Name "ExampleCertificate" -CertificatePolicy $Policy

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

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

Get-AzKeyVaultCertificate -VaultName "<your-unique-keyvault-name>" -Name "ExampleCertificate"

故障排除

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

如果收到此错误,则访问Azure Key Vault的帐户没有创建证书的适当权限。

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

New-AzRoleAssignment -SignInName <your-email-address> -RoleDefinitionName "Key Vault Certificates Officer" -Scope "/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.KeyVault/vaults/<KeyVaultName>"

清理资源

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

不再需要时,可以使用 Azure PowerShell Remove-AzResourceGroup cmdlet 删除资源组和所有相关资源。

Remove-AzResourceGroup -Name "myResourceGroup"

后续步骤

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