快速入門:使用 PowerShell 從 Azure Key Vault 設定及擷取祕密
Azure Key Vault 是一項雲端服務,可作為安全的祕密存放區。 您也可以安全地儲存金鑰、密碼、憑證和其他祕密。 如需 Key Vault 的詳細資訊,您可以檢閱概觀。 在此快速入門中,您將會使用 Azure PowerShell 建立金鑰保存庫。 然後,將祕密存放在新建立的保存庫中。
如尚未擁有 Azure 訂用帳戶,請在開始之前先建立免費帳戶。
Azure Cloud Shell
Azure Cloud Shell 是裝載於 Azure 中的互動式殼層環境,可在瀏覽器中使用。 您可以使用 Bash 或 PowerShell 搭配 Cloud Shell,與 Azure 服務共同使用。 您可以使用 Cloud Shell 預先安裝的命令,執行本文提到的程式碼,而不必在本機環境上安裝任何工具。
要啟動 Azure Cloud Shell:
選項 | 範例/連結 |
---|---|
選取程式碼或命令區塊右上角的 [試試看]。 選取 [試試看] 並不會自動將程式碼或命令複製到 Cloud Shell 中。 | |
請前往 https://shell.azure.com,或選取 [啟動 Cloud Shell] 按鈕,在瀏覽器中開啟 Cloud Shell。 | |
選取 Azure 入口網站右上方功能表列上的 [Cloud Shell] 按鈕。 |
若要使用 Azure Cloud Shell:
啟動 Cloud Shell。
選取程式碼區塊 (或命令區塊) 上的 [複製] 按鈕以複製程式碼或命令。
透過在 Windows 和 Linux 上選取 Ctrl+Shift+V;或在 macOS 上選取 Cmd+Shift+V,將程式碼或命令貼到 Cloud Shell 工作階段中。
選取 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。 您需要提供一些資訊:
金鑰保存庫名稱:由 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 中管理密碼的權限
若要透過角色型存取控制 (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 以及要如何將其與應用程式整合,請繼續閱讀下列文章。
- 閱讀 Azure Key Vault 概觀
- 了解如何在 Key Vault 中儲存多行秘密
- 請參閱 Azure PowerShell Key Vault Cmdlet 的參考
- 請參閱 Key Vault 安全性概觀