Linter-regel - beveiligde params in geneste implementatie
Geneste implementatiebronnen binnen het bereik mogen niet worden gebruikt voor beveiligde parameters of lijst*-functies. U kunt de beveiligde waarden beschikbaar maken in de implementatiegeschiedenis.
Linter-regelcode
Gebruik de volgende waarde in het Bicep-configuratiebestand om regelinstellingen aan te passen:
secure-params-in-nested-deploy
Oplossing
Stel het bereik properties.expressionEvaluationOptions.scope inner
van de implementatie in of gebruik in plaats daarvan een Bicep-module.
In het volgende voorbeeld mislukt deze test omdat er naar een beveiligde parameter wordt verwezen in een geneste implementatieresource buiten het bereik.
@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'
}
}
]
}
}
]
}
}
}
U kunt dit oplossen door het bereik properties.expressionEvaluationOptions.scope van de implementatie in te stellen op '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'
}
}
]
}
}
]
}
}
}
Volgende stappen
Zie Bicep linter gebruiken voor meer informatie over de linter.