Linter 規則 - 巢狀部署中的安全參數
外部範圍的巢狀部署資源不應用於安全參數或 list* 函式。 您可以在部署歷程記錄中公開安全值。
Linter 規則程式碼
使用 Bicep 設定檔中的下列值來自訂規則設定:
secure-params-in-nested-deploy
解決方案
請將部署的 properties.expressionEvaluationOptions.scope 設定為 inner
,或改為使用 Bicep 模組。
下列範例並無法通過此測試,因為外部範圍的巢狀部署資源中參考了安全參數。
@secure()
param secureValue string
resource nested 'Microsoft.Resources/deployments@2024-03-01' = {
name: 'nested'
properties: {
mode: 'Incremental'
template: {
'$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#'
contentVersion: '1.0.0.0'
variables: {}
resources: [
{
name: 'outerImplicit'
type: 'Microsoft.Network/networkSecurityGroups'
apiVersion: '2023-11-01'
location: '[resourceGroup().location]'
properties: {
securityRules: [
{
name: 'outerImplicit'
properties: {
description: format('{0}', secureValue)
protocol: 'Tcp'
}
}
]
}
}
]
}
}
}
您可以將部署的 properties.expressionEvaluationOptions.scope 設定為 'inner' 來修正此問題:
@secure()
param secureValue string
resource nested 'Microsoft.Resources/deployments@2024-03-01' = {
name: 'nested'
properties: {
mode: 'Incremental'
expressionEvaluationOptions: {
scope: 'Inner' // Set to inner scope
}
template: {
'$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#'
contentVersion: '1.0.0.0'
variables: {}
resources: [
{
name: 'outerImplicit'
type: 'Microsoft.Network/networkSecurityGroups'
apiVersion: '2023-11-01'
location: '[resourceGroup().location]'
properties: {
securityRules: [
{
name: 'outerImplicit'
properties: {
description: format('{0}', secureValue)
protocol: 'Tcp'
}
}
]
}
}
]
}
}
}
下一步
如需 Linter 的詳細資訊,請參閱使用 Bicep Linter。