Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это правило находит возможное раскрытие секретов в свойстве параметров ресурса пользовательского скрипта.
Код правила анализатора кода
Для настройки параметров правил укажите в файле конфигурации Bicep следующее значение:
protect-commandtoexecute-secrets
Решение
Для пользовательских ресурсов скрипта значение commandToExecute должно быть помещено под объектом свойства protectedSettings, а не объектом свойства settings, если оно включает секретные данные, такие как пароль. Например, секретные данные можно найти в параметрах безопасности, таких функциях, как list*, или аргументах пользовательских скриптов.
Не используйте секретные данные в объекте settings, так как он использует открытый текст. Дополнительные сведения см. в статьях Microsoft.Compute virtualMachines/extensions, Расширение пользовательских скриптов для Windows и Использование расширения пользовательских скриптов Azure версии 2 с виртуальными машинами Linux.
Следующий пример завершается сбоем, так как commandToExecute указывается в разделе settings и использует безопасный параметр.
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}'
}
}
}
Это можно исправить, перемещая свойство commandToExecute в объект 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}'
}
}
}
Следующие шаги
Дополнительные сведения об анализаторе кода Bicep см. в разделе Использование анализатора кода Bicep.