Delen via


Linter-regel: beveiligde Instellingen gebruiken voor commandToExecute-geheimen

Deze regel vindt mogelijke blootstelling van geheimen in de eigenschap Instellingen van een aangepaste scriptresource.

Linter-regelcode

Gebruik de volgende waarde in het Bicep-configuratiebestand om regelinstellingen aan te passen:

protect-commandtoexecute-secrets

Oplossing

Voor aangepaste scriptresources moet de commandToExecute waarde onder het protectedSettings eigenschapsobject worden geplaatst in plaats van het settings eigenschapsobject als het geheime gegevens zoals een wachtwoord bevat. Geheime gegevens zijn bijvoorbeeld te vinden in beveiligde parameters, list* functies zoals listKeys of in aangepaste scriptsargumenten.

Gebruik geen geheime gegevens in het settings object omdat er duidelijke tekst wordt gebruikt. Zie Microsoft.Compute virtualMachines/extensions, Aangepaste scriptextensie voor Windows en gebruik de aangepaste scriptextensie van Azure versie 2 met virtuele Linux-machines voor meer informatie.

Het volgende voorbeeld mislukt omdat commandToExecute is opgegeven onder settings en een beveiligde parameter gebruikt.

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}'
    }
  }
}

U kunt dit oplossen door de eigenschap commandToExecute naar het protectedSettings object te verplaatsen.

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}'
    }
  }
}

Volgende stappen

Zie Bicep linter gebruiken voor meer informatie over de linter.