Reguła lintera — użyj wartości protectedSettings dla wpisów tajnych commandToExecute
Ta reguła znajduje możliwe ujawnienie wpisów tajnych we właściwości settings zasobu niestandardowego skryptu.
Kod reguły lintera
Użyj następującej wartości w pliku konfiguracji Bicep , aby dostosować ustawienia reguły:
protect-commandtoexecute-secrets
Rozwiązanie
W przypadku zasobów skryptu niestandardowego commandToExecute
wartość powinna zostać umieszczona w protectedSettings
obiekcie właściwości zamiast settings
obiektu właściwości, jeśli zawiera ona tajne dane, takie jak hasło. Na przykład dane tajne można znaleźć w bezpiecznych parametrach, funkcjach, list*
takich jak listKeys lub w argumentach skryptów niestandardowych.
Nie używaj tajnych danych w obiekcie, ponieważ używa on zwykłego settings
tekstu. Aby uzyskać więcej informacji, zobacz Microsoft.Compute virtualMachines/extensions, Custom Script Extension for Windows i Use the Azure Custom Script Extension Version 2 with Linux virtual machines (Używanie rozszerzenia niestandardowego skryptu platformy Azure w wersji 2 z maszynami wirtualnymi z systemem Linux).
Poniższy przykład kończy się niepowodzeniem, ponieważ commandToExecute
jest określony w obszarze settings
i używa bezpiecznego parametru.
param vmName string
param location string
param fileUris string
param storageAccountName string
resource storageAccount 'Microsoft.Storage/storageAccounts@2022-09-01' existing = {
name: storageAccountName
}
resource customScriptExtension 'Microsoft.HybridCompute/machines/extensions@2023-03-15-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}'
}
}
}
Można rozwiązać ten problem, przenosząc właściwość commandToExecute do protectedSettings
obiektu .
param vmName string
param location string
param fileUris string
param storageAccountName string
resource storageAccount 'Microsoft.Storage/storageAccounts@2022-09-01' existing = {
name: storageAccountName
}
resource customScriptExtension 'Microsoft.HybridCompute/machines/extensions@2023-03-15-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}'
}
}
}
Następne kroki
Aby uzyskać więcej informacji na temat linter, zobacz Use Bicep linter (Używanie lintera Bicep).