Linter 규칙 - use protectedSettings for commandToExecute secrets
이 규칙은 사용자 지정 스크립트 리소스의 설정 속성에서 비밀의 노출 가능성을 확인합니다.
Linter 규칙 코드
Bicep 구성 파일의 다음 값을 사용하여 규칙 설정을 사용자 지정합니다.
protect-commandtoexecute-secrets
솔루션
사용자 지정 스크립트 리소스의 경우 암호와 같은 비밀 데이터가 포함된 경우 settings
속성 개체 대신 protectedSettings
속성 개체 아래에 commandToExecute
값을 배치해야 합니다. 예를 들어 비밀 데이터는 보안 매개 변수, listKeys와 같은 list*
함수 또는 사용자 지정 스크립트 인수에서 찾을 수 있습니다.
일반 텍스트를 사용하므로 settings
개체에서 비밀 데이터를 사용하지 마세요. 자세한 내용은 Microsoft.Compute virtualMachines/extensions, Windows용 사용자 지정 스크립트 확장 및 Linux 가상 머신에서 Azure 사용자 지정 스크립트 확장 버전 2 사용을 참조하세요.
다음 예제는 commandToExecute
가 settings
에 지정되어 있고, 보안 매개 변수를 사용하므로 실패합니다.
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 속성을 protectedSettings
개체로 이동하여 수정할 수 있습니다.
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}'
}
}
}
다음 단계
Linter에 관한 자세한 내용은 Bicep Linter 사용을 참조하세요.