Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Outer-scope-Ressourcen für geschachtelte Bereitstellungen sollten nicht für sichere Parameter oder list*-Funktionen verwendet werden. Dadurch können die sicheren Werte im Bereitstellungsverlauf verfügbar gemacht werden.
Linter-Regelcode
Verwenden Sie den folgenden Wert in der Bicep-Konfigurationsdatei, um die Regeleinstellungen anzupassen:
secure-params-in-nested-deploy
Lösung
Legen Sie properties.expressionEvaluationOptions.scope der Bereitstellung auf inner fest, oder verwenden Sie stattdessen ein Bicep-Modul.
Im folgenden Beispiel schlägt dieser Test fehl, da in einer Outer-scope-Ressource für eine geschachtelte Bereitstellung auf einen sicheren Parameter verwiesen wird.
@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'
}
}
]
}
}
]
}
}
}
Sie können dies korrigieren, indem Sie „properties.expressionEvaluationOptions.scope“ der Bereitstellung auf „inner“ festlegen:
@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'
}
}
]
}
}
]
}
}
}
Nächste Schritte
Weitere Informationen über den Linter finden Sie unter Verwendung des Bicep-Linters.