该规则在文件中查找非安全参数获得引用.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。