Linter 规则 - 安全参数默认值

此规则查找安全参数的硬编码默认值。

Linter 规则代码

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

secure-parameter-default

解决方案

不要为 Bicep 文件中的安全参数提供硬编码默认值,除非该参数为空字符串或调用 newGuid() 函数的表达式。

对包含敏感值(如密码)的参数使用 @secure() 修饰器。 在参数使用安全修饰器时,部署历史记录中不会记录或存储参数的值。 此操作可防止恶意用户发现敏感值。

但是,在为受保护参数提供默认值时,可以访问模板或部署历史记录的任何人都可以发现该值。

下面的示例未通过此测试,因为该参数具有硬编码的默认值。

@secure()
param adminPassword string = 'HardcodedPassword'

可以通过删除默认值来修复此问题。

@secure()
param adminPassword string

(可选)可以使用“快速修复”删除不安全的默认值:

The screenshot of Secured default value linter rule quick fix.

或者,通过为默认值提供一个空字符串。

@secure()
param adminPassword string = ''

或者,通过使用 newGuid() 生成默认值。

@secure()
param adminPassword string = newGuid()

后续步骤

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