Linter-Regel - verwenden Sie protectedSettings for commandToExecute secrets
Diese Regel findet mögliche Belichtung von Geheimnissen in der Einstellungseigenschaft einer benutzerdefinierten Skriptressource.
Linter-Regelcode
Verwenden Sie den folgenden Wert in der Bicep-Konfigurationsdatei, um die Regeleinstellungen anzupassen:
protect-commandtoexecute-secrets
Lösung
Bei benutzerdefinierten Skriptressourcen sollte der Wert commandToExecute
unter dem protectedSettings
Eigenschaftsobjekt und nicht unter dem Eigenschaftsobjekt settings
platziert werden, wenn es geheime Daten wie ein Kennwort enthält. Geheime Daten können z. B. in sicheren Parametern, list*
-Funktionen wie listKeys oder in benutzerdefinierten Skriptargumenten gefunden werden.
Verwenden Sie keine Geheimnisdaten im settings
-Objekt, da dieses Klartext verwendet. Weitere Informationen finden Sie unter Microsoft.Compute virtualMachines/extensions, Custom Script Extension für Windows und Verwenden der Azure Custom Script Extension Version 2 mit Linux-Virtual-Machines.
Das folgende Beispiel schlägt fehl, weil commandToExecute
unter settings
angegeben ist und einen sicheren Parameter verwendet.
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}'
}
}
}
Sie können das Problem beheben, indem Sie die commandToExecute-Eigenschaft in das Objekt protectedSettings
verschieben.
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}'
}
}
}
Nächste Schritte
Weitere Informationen über den Linter finden Sie unter Verwendung des Bicep-Linters.