Regla de linter: use protectedSettings para secretos commandToExecute
Esta regla detecta una posible exposición de los secretos en la propiedad de configuración de un recurso de script personalizado.
Código de regla de linter
Use el valor siguiente del archivo de configuración de Bicep para personalizar los valores de regla:
protect-commandtoexecute-secrets
Soluciones
Para los recursos de script personalizados, el valor commandToExecute
debe colocarse debajo del objeto de propiedad protectedSettings
en lugar del objeto de propiedad settings
si incluye datos secretos, como una contraseña. Por ejemplo, los datos secretos se pueden encontrar en parámetros seguros, funciones list*
como listKeys, o bien en argumentos de scripts personalizados.
No use datos secretos en el objeto settings
porque usa texto sin formato. Para más información, vea Microsoft.Compute virtualMachines/extensions, Extensión de la secuencia de comandos personalizada para Windows y Uso de la extensión de script personalizado de Azure versión 2 con máquinas virtuales Linux.
En el ejemplo siguiente se produce un error porque se especifica commandToExecute
en settings
y usa un parámetro seguro.
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}'
}
}
}
Puede corregirlo moviendo la propiedad commandToExecute al objeto 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}'
}
}
}
Pasos siguientes
Para obtener más información acerca de linter, consulte Uso de linter de Bicep.