Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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@2025-06-01' existing = {
name: storageAccountName
}
resource customScriptExtension 'Microsoft.HybridCompute/machines/extensions@2025-02-19-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@2025-06-01' existing = {
name: storageAccountName
}
resource customScriptExtension 'Microsoft.HybridCompute/machines/extensions@2025-02-19-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.