Linter kuralı - commandToExecute gizli dizileri için protectedSettings kullanma
Bu kural, özel betik kaynağının settings özelliğinde gizli dizilerin olası kullanıma açık olduğunu bulur.
Linter kural kodu
Kural ayarlarını özelleştirmek için Bicep yapılandırma dosyasında aşağıdaki değeri kullanın:
protect-commandtoexecute-secrets
Çözüm
Özel betik kaynakları için, commandToExecute
parola gibi gizli veriler içeriyorsa, değer özellik nesnesi yerine özellik nesnesinin settings
altına protectedSettings
yerleştirilmelidir. Örneğin, gizli veriler güvenli parametrelerde, list*
listKeys gibi işlevlerde veya özel betik bağımsız değişkenlerinde bulunabilir.
Nesnede settings
gizli veri kullanmayın çünkü düz metin kullanır. Daha fazla bilgi için bkz . Microsoft.Compute virtualMachines/extensions, Windows için Özel Betik Uzantısı ve Linux sanal makineleriyle Azure Özel Betik Uzantısı Sürüm 2'yi kullanma.
Aşağıdaki örnek, altında settings
belirtildiğinden ve güvenli bir parametre kullandığından commandToExecute
başarısız olur.
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}'
}
}
}
commandToExecute özelliğini nesnesine protectedSettings
taşıyarak sorunu düzeltebilirsiniz.
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}'
}
}
}
Sonraki adımlar
Lint hakkında daha fazla bilgi için bkz . Bicep linter'i kullanma.