Regola Linter: usare protectedSettings per i segreti commandToExecute
Questa regola rileva la possibile esposizione dei segreti nella proprietà delle impostazioni di una risorsa script personalizzata.
Codice regola Linter
Usa il seguente valore nel file di configurazione Bicep per personalizzare le impostazioni delle regole:
protect-commandtoexecute-secrets
Soluzione
Per le risorse script personalizzate, il valore commandToExecute
deve essere inserito nell'oggetto proprietà protectedSettings
anziché nell'oggetto proprietà settings
se include dati segreti, ad esempio una password. Ad esempio, i dati segreti sono disponibili in parametri sicuri, funzioni list*
come listKeys o argomenti script personalizzati.
Non usare i dati segreti nell'oggetto settings
perché usa testo in chiaro. Per altre informazioni, vedere Microsoft.Compute virtualMachines/extensions, Estensione script personalizzata per Windows e Usare l'estensione script personalizzata di Azure versione 2 con macchine virtuali Linux.
L'esempio seguente ha esito negativo perché commandToExecute
è specificato in settings
e usa un parametro sicuro.
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}'
}
}
}
È possibile correggerlo spostando la proprietà commandToExecute nell'oggetto 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}'
}
}
}
Passaggi successivi
Per ulteriori informazioni su linter, vedere Usare linter di Bicep.