Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Esta regra localiza a possível exposição de segredos na propriedade settings de um recurso de script personalizado.
Código da regra de linha
Use o seguinte valor no arquivo de configuração do Bicep para personalizar as configurações da regra:
protect-commandtoexecute-secrets
Solução
Para recursos de script personalizados, o commandToExecute valor deve ser colocado sob o protectedSettings objeto de propriedade em vez do objeto de settings propriedade se incluir dados secretos, como uma senha. Por exemplo, dados secretos podem ser encontrados em parâmetros seguros, list* funções como listKeys, ou em argumentos de scripts personalizados.
Não use dados secretos settings no objeto porque ele usa texto não criptografado. Para obter mais informações, consulte Microsoft.Compute virtualMachines/extensions, Custom Script Extension for Windows e Use the Azure Custom Script Extension Version 2 with Linux virtual machines.
O exemplo a seguir falha porque commandToExecute é especificado em settings e usa um 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}'
}
}
}
Você pode corrigi-lo movendo a propriedade commandToExecute para o protectedSettings objeto.
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}'
}
}
}
Próximos passos
Para obter mais informações sobre o linter, consulte Usar binter linter.