Aturan linter - gunakan protectedSettings untuk rahasia commandToExecute
Aturan ini menemukan kemungkinan paparan rahasia dalam properti pengaturan sumber daya skrip kustom.
Kode aturan Linter
Gunakan nilai berikut pada file konfigurasi Bicep untuk menyesuaikan pengaturan aturan:
protect-commandtoexecute-secrets
Solusi
Untuk sumber daya skrip kustom, nilai commandToExecute
harus diletakkan pada objek properti protectedSettings
alih-alih objek properti settings
apabila mencakup data rahasia seperti kata sandi. Misalnya, data rahasia dapat ditemukan pada parameter aman, fungsi list*
seperti listKeys, atau dalam argumen skrip kustom.
Jangan gunakan data rahasia dalam objek settings
karena menggunakan teks yang jelas. Untuk informasi selengkapnya, lihat Microsoft.Compute virtualMachines/extensions, Ekstensi Skrip Kustom untuk Windows, dan Menggunakan Ekstensi Skrip Kustom Azure Versi 2 dengan mesin virtual Linux.
Contoh berikut gagal karena commandToExecute
ditentukan pada settings
dan menggunakan parameter aman.
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}'
}
}
}
Anda dapat memperbaikinya dengan memindahkan properti commandToExecute ke objek protectedSettings
.
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}'
}
}
}
Langkah berikutnya
Untuk informasi selengkapnya tentang linter, lihat Menggunakan linter Bicep.