linter 规则——参数文件中的安全参数

该规则在文件中查找非安全参数获得引用.bicepparam参数值的文件参数赋值@secure()。 为不安全参数赋予安全值会暴露部署历史中的秘密。

Linter 规则代码

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

secure-params-in-parameters-file

解决方案

不要把参数的值 @secure() 分配给一个没有装饰 @secure() 者的参数。 这样做会将部署历史中的秘密值以明文形式存储。

要纠正违规,可以:

  • 在引用的 Bicep 模板中标记目标@secure()参数。
  • 完全避免将安全值传递给不安全的参数。

该规则仅 .bicepparam 适用于文件,并检查直接引用、字符串插值引用以及通过变量进行传递引用。

示例

不符合

以下示例未通过此测试。 不安全参数 connectionString 被赋予安全参数 dbPassword的值,这可能会在部署历史中暴露其存在。

main.bicep

@secure()
param dbPassword string

param connectionString string

main.bicepparam

using 'main.bicep'

param dbPassword = 'MyP@ssw0rd'
param connectionString = dbPassword

合规的

你可以通过在 Bicep 模板的目标参数中添加@secure()装饰器来解决这个问题:

main.bicep

@secure()
param dbPassword string

@secure()
param connectionString string

main.bicepparam

using 'main.bicep'

param dbPassword = 'MyP@ssw0rd'
param connectionString = dbPassword

后续步骤

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