Linter 规则 - 应为 adminPassword 分配一个安全值。

此规则在 Microsoft.Compute/virtualMachinesMicrosoft.Compute/virtualMachineScaleSets 类型资源的属性路径 properties.osProfile.adminPassword 中查找没有安全值的值。

Linter 规则代码

请在 Bicep 配置文件中使用以下值自定义规则设置:

use-secure-value-for-secure-inputs

解决方案

对于 Microsoft.Compute/virtualMachinesMicrosoft.Compute/virtualMachineScaleSets 类型的资源,请为具有属性路径 properties.osProfile.adminPassword 的属性分配一个安全值。 不要使用文本值。 请改为为密码创建具有 @secure() 修饰器的参数,并将其分配给 adminPassword

以下示例未通过此测试,因为 adminPassword 不是安全值。

resource ubuntuVM 'Microsoft.Compute/virtualMachineScaleSets@2024-03-01' = {
  name: 'name'
  location: 'China North 2'
  properties: {
    virtualMachineProfile: {
      osProfile: {
        adminUsername: 'adminUsername'
        adminPassword: 'adminPassword'
      }
    }
  }
}
resource ubuntuVM 'Microsoft.Compute/virtualMachines@2024-03-01' = {
  name: 'name'
  location: 'China North 2'
  properties: {
    osProfile: {
      computerName: 'computerName'
      adminUsername: 'adminUsername'
      adminPassword: 'adminPassword'
    }
  }
}
param adminPassword string

resource ubuntuVM 'Microsoft.Compute/virtualMachines@2024-03-01' = {
  name: 'name'
  location: 'China North 2'
  properties: {
    osProfile: {
      computerName: 'computerName'
      adminUsername: 'adminUsername'
      adminPassword: adminPassword
    }
  }
}

下面的示例通过了此测试。

@secure()
param adminPassword string
@secure()
param adminUsername string
param location string = resourceGroup().location

resource ubuntuVM 'Microsoft.Compute/virtualMachines@2024-03-01' = {
  name: 'name'
  location: location
  properties: {
    osProfile: {
      computerName: 'computerName'
      adminUsername: adminUsername
      adminPassword: adminPassword
    }
  }
}

后续步骤

有关 Linter 的详细信息,请参阅使用 Bicep Linter