Linter-regel – använd protectedSettings för commandToExecute-hemligheter
Den här regeln hittar eventuell exponering av hemligheter i egenskap för inställningar för en anpassad skriptresurs.
Linterregelkod
Använd följande värde i Bicep-konfigurationsfilen för att anpassa regelinställningar:
protect-commandtoexecute-secrets
Lösning
För anpassade skriptresurser commandToExecute
bör värdet placeras under protectedSettings
egenskapsobjektet i stället för egenskapsobjektet settings
om det innehåller hemliga data, till exempel ett lösenord. Till exempel kan hemliga data hittas i säkra parametrar, list*
funktioner som listKeys eller i anpassade skriptargument.
Använd inte hemliga data i settings
objektet eftersom det använder klartext. Mer information finns i Microsoft.Compute virtualMachines/extensions, Custom Script Extension for Windows och Use the Azure Custom Script Extension Version 2 with Linux virtual machines (Använda Azure Custom Script Extension Version 2 med virtuella Linux-datorer).
Följande exempel misslyckas eftersom commandToExecute
anges under settings
och använder en säker parameter.
param vmName string
param location string
param fileUris string
param storageAccountName string
resource storageAccount 'Microsoft.Storage/storageAccounts@2023-04-01' existing = {
name: storageAccountName
}
resource customScriptExtension 'Microsoft.HybridCompute/machines/extensions@2023-10-03-preview' = {
name: '${vmName}/CustomScriptExtension'
location: location
properties: {
publisher: 'Microsoft.Compute'
type: 'CustomScriptExtension'
autoUpgradeMinorVersion: true
settings: {
fileUris: split(fileUris, ' ')
commandToExecute: 'mycommand ${storageAccount.listKeys().keys[0].value}'
}
}
}
Du kan åtgärda det genom att flytta egenskapen commandToExecute till objektet protectedSettings
.
param vmName string
param location string
param fileUris string
param storageAccountName string
resource storageAccount 'Microsoft.Storage/storageAccounts@2023-04-01' existing = {
name: storageAccountName
}
resource customScriptExtension 'Microsoft.HybridCompute/machines/extensions@2023-10-03-preview' = {
name: '${vmName}/CustomScriptExtension'
location: location
properties: {
publisher: 'Microsoft.Compute'
type: 'CustomScriptExtension'
autoUpgradeMinorVersion: true
settings: {
fileUris: split(fileUris, ' ')
}
protectedSettings: {
commandToExecute: 'mycommand ${storageAccount.listKeys().keys[0].value}'
}
}
}
Nästa steg
Mer information om linter finns i Använda Bicep-linter.