Pravidlo Linter – použití protectedSettings pro tajné kódy commandToExecute
Toto pravidlo najde možnou expozici tajných kódů ve vlastnosti nastavení vlastního prostředku skriptu.
Kód pravidla Linteru
K přizpůsobení nastavení pravidel použijte v konfiguračním souboru Bicep následující hodnotu:
protect-commandtoexecute-secrets
Řešení
U prostředků vlastních skriptů commandToExecute
by hodnota měla být umístěna pod protectedSettings
objekt vlastnosti místo settings
objektu vlastnosti, pokud obsahuje tajná data, jako je heslo. Například v zabezpečených parametrech, funkcích, list*
jako jsou listKeys, nebo v argumentech vlastních skriptů, se dají najít tajná data.
Nepoužívejte v objektu settings
tajná data, protože používají prostý text. Další informace najdete v tématu Microsoft.Compute virtualMachines/extensions, rozšíření vlastních skriptů pro Windows a použití rozšíření vlastních skriptů Azure verze 2 s virtuálními počítači s Linuxem.
Následující příklad selže, protože commandToExecute
je zadán v části settings
a používá zabezpečený parametr.
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}'
}
}
}
Můžete to opravit přesunutím commandToExecute vlastnost do objektu 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}'
}
}
}
Další kroky
Další informace o linteru naleznete v tématu Použití linter Bicep.