练习 - 创建 Key Vault 并存储机密

已完成

为应用程序创建 Key Vault

最佳做法是为每个应用程序的每个部署环境(例如开发、测试和生产环境)创建单独的保管库。 可使用单个保管库存储多个应用和环境的机密,但随着保管库中机密数量的增加,攻击者获取保管库的读取访问权限带来的影响也会变大。

提示

如果为针对不同环境的应用程序机密使用相同的名称,则唯一需要在应用中更改的环境特定配置是保管库 URL。

无需任何初始配置,即可创建保管库。 你的用户标识自动具备一整套机密管理权限。 你可立即开始添加机密。 具备保管库后,可通过任何 Azure 管理接口(例如 Azure 门户、Azure CLI 和 Azure PowerShell)添加和管理机密。 如果将应用程序设置为使用保管库,则需要向其分配适当的权限,如下一单元所述。

创建 Key Vault 并在其中存储机密

公司当前在应用程序机密方面面临种种问题,管理部门要求你创建一个小型入门应用,以帮助其他开发人员步入正轨。 此应用需要展示尽量安全、简单地管理机密的最佳做法。

首先,创建保管库,并在其中存储一个机密。

创建 Key Vault

密钥保管库名称必须全局唯一,因此请选择一个唯一名称。 保管库名称长度必须介于 3 和 24 字符之间,只能包含字母数字字符和短划线。 记录所选的保管库名称,因为本练习全程都要用到它。

若要创建保管库,请在 Azure Cloud Shell 中运行以下命令。 请确保在 --name 参数中输入唯一的保管库名称。

az keyvault create \
    --resource-group "<rgn>[sandbox resource group name]</rgn>" \
    --location centralus \
    --name <your-unique-vault-name>

完成后,便会看到描述新保管库的 JSON 输出。

提示

命令使用了名为 [沙盒资源组] 的预先创建的资源组。 如果使用的是自己的订阅,则可创建新的资源组或使用之前创建的现有资源组。

添加密钥

现在,添加机密。 我们的机密命名为 SecretPassword,其值为 reindeer_flotilla。 确保将 <your-unique-vault-name> 替换为在 --vault-name 参数中创建的保管库名称。

az keyvault secret set \
    --name SecretPassword \
    --value reindeer_flotilla \
    --vault-name <your-unique-vault-name>

你很快就会编写应用的代码,但首先需要简要了解一下应用将如何向保管库进行身份验证。