Správa tajných kódů v šablonách
Při předávání zabezpečené hodnoty (například hesla) jako parametru během nasazování můžete načíst hodnotu ze služby Azure Key Vault.
Odkazujte na key Vault a tajný klíč v souboru parametrů.
Hodnota se nikdy neodhaluje, protože odkazujete pouze na příslušné ID služby Key Vault.
Key Vault může existovat v jiném předplatném, než je skupina prostředků, do které ji nasazujete.
Nasazení služby Key Vault a tajného kódu
K vytvoření služby Key Vault a tajného kódu použijte Azure CLI nebo PowerShell.
Pokud chcete získat přístup k tajným kódům v tomto trezoru klíčů z nasazení Resource Manageru, musí být vlastnost Key Vault enabledForTemplateDeployment pravdivá.
Použití Azure CLI
Následující fragment kódu je příkladem nasazení služby Key Vault a tajného kódu pomocí Azure CLI:
keyVaultName='{your-unique-vault-name}'
resourceGroupName='{your-resource-group-name}'
location='centralus'
userPrincipalName='{your-email-address-associated-with-your-subscription}'
# Create a resource group
az group create --name $resourceGroupName --location $location
# Create a Key Vault
az keyvault create \
--name $keyVaultName \
--resource-group $resourceGroupName \
--location $location \
--enabled-for-template-deployment true
az keyvault set-policy --upn $userPrincipalName --name $keyVaultName --secret-permissions set delete get list
# Create a secret with the name, vmAdminPassword
password=$(openssl rand -base64 32)
echo $password
az keyvault secret set --vault-name $keyVaultName --name 'vmAdminPassword' --value $password
Povolení přístupu k tajnému kódu
Kromě nastavení vlastnosti Služby Key Vault, která je povolenaforTemplateDeployment na hodnotu true, musí mít Microsoft.KeyVault/vaults/deploy/action
uživatel, který šablonu nasazuje, oprávnění pro obor služby Key Vault.
Včetně skupiny prostředků a služby Key Vault. Role Vlastník i Přispěvatel udělí tento přístup.
Pokud vytváříte službu Key Vault, jste vlastníkem, takže máte ze své podstaty oprávnění.
Pokud je ale služba Key Vault pod jiným předplatným, musí vlastník služby Key Vault udělit přístup.
Odkaz na tajný klíč se statickým ID
Na službu Key Vault se odkazuje v souboru parametrů, nikoli na šablonu.
Následující obrázek ukazuje, jak soubor parametrů odkazuje na tajný klíč a předá danou hodnotu šabloně.
Následující šablona nasadí databázi SQL, která obsahuje heslo správce.
Parametr hesla je nastavený na zabezpečený řetězec. Šablona ale neurčí, odkud tato hodnota pochází:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"adminLogin": {
"type": "string"
},
"adminPassword": {
"type": "securestring"
},
"sqlServerName": {
"type": "string"
}
},
"resources": [
{
"name": "[parameters('sqlServerName')]",
"type": "Microsoft.Sql/servers",
"apiVersion": "2015-05-01-preview",
"location": "[resourceGroup().location]",
"tags": {},
"properties": {
"administratorLogin": "[parameters('adminLogin')]",
"administratorLoginPassword": "[parameters('adminPassword')]",
"version": "12.0"
}
}
],
"outputs": {
}
}
Teď můžete vytvořit soubor parametrů pro předchozí šablonu. V souboru parametrů zadejte parametr, který odpovídá názvu parametru v šabloně.
Pro hodnotu parametru odkazujte na tajný klíč ze služby Key Vault. Na tajný kód odkazujete předáním identifikátoru prostředku služby Key Vault a názvu tajného kódu.
Tajný klíč služby Key Vault už musí existovat v následujícím souboru parametrů a pro jeho ID prostředku zadáte statickou hodnotu.
Zkopírujte tento soubor místně a nastavte ID předplatného, název trezoru a název sql serveru:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"adminLogin": {
"value": "exampleadmin"
},
"adminPassword": {
"reference": {
"keyVault": {
"id": "/subscriptions/<subscription-id>/resourceGroups/examplegroup/providers/Microsoft.KeyVault/vaults/<vault-name>"
},
"secretName": "examplesecret"
}
},
"sqlServerName": {
"value": "<your-server-name>"
}
}
}
Šablonu byste museli nasadit a předat do šablony soubor parametrů.
Další informace najdete v Azure Key Vaultu k předání hodnot zabezpečených parametrů během nasazování .
Na této webové stránce jsou také podrobnosti o odkazu na tajný kód s dynamickým ID.