Skip to content
This repository was archived by the owner on Nov 1, 2023. It is now read-only.

Commit 4a67a48

Browse files
stishkinstas
andauthored
do not expose secrets as part of deployment output during azure deployment (#3578)
* do not expose secrets during deployment * remove commented out code * was passing wrong connection string --------- Co-authored-by: stas <statis@microsoft.com>
1 parent 5cf619e commit 4a67a48

File tree

5 files changed

+48
-39
lines changed

5 files changed

+48
-39
lines changed

src/deployment/azuredeploy.bicep

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,6 @@ module storage 'bicep-templates/storageAccounts.bicep' = {
156156
params: {
157157
location: location
158158
owner: owner
159-
signedExpiry: signedExpiry
160159
}
161160
}
162161

@@ -172,6 +171,7 @@ module autoscaleSettings 'bicep-templates/autoscale-settings.bicep' = {
172171
}
173172
}
174173

174+
175175
module eventGrid 'bicep-templates/event-grid.bicep' = {
176176
name: 'event-grid'
177177
params: {
@@ -227,8 +227,8 @@ module function 'bicep-templates/function.bicep' = {
227227
params: {
228228
name: name
229229
linux_fx_version: 'DOTNET-ISOLATED|7.0'
230-
231-
app_logs_sas_url: storage.outputs.FuncSasUrlBlobAppLogs
230+
signedExpiry: signedExpiry
231+
logs_storage: storage.outputs.FuncName
232232
app_func_audiences: app_func_audiences
233233
app_func_issuer: app_func_issuer
234234
client_id: clientId
@@ -241,6 +241,9 @@ module function 'bicep-templates/function.bicep' = {
241241
use_windows: true
242242
enable_remote_debugging: enable_remote_debugging
243243
}
244+
dependsOn:[
245+
storage
246+
]
244247
}
245248

246249
module functionSettings 'bicep-templates/function-settings.bicep' = {
@@ -254,8 +257,9 @@ module functionSettings 'bicep-templates/function-settings.bicep' = {
254257
app_insights_app_id: operationalInsights.outputs.appInsightsAppId
255258
app_insights_key: operationalInsights.outputs.appInsightsInstrumentationKey
256259
client_secret: clientSecret
257-
signal_r_connection_string: signalR.outputs.connectionString
258-
func_sas_url: storage.outputs.FuncSasUrl
260+
261+
signalRName: signalR.outputs.signalRName
262+
funcStorageName: storage.outputs.FuncName
259263
func_storage_resource_id: storage.outputs.FuncId
260264
fuzz_storage_resource_id: storage.outputs.FuzzId
261265
keyvault_name: keyVaultName
@@ -269,16 +273,18 @@ module functionSettings 'bicep-templates/function-settings.bicep' = {
269273
}
270274
dependsOn: [
271275
function
276+
storage
277+
signalR
272278
]
273279
}
274280

275281
output fuzz_storage string = storage.outputs.FuzzId
276282
output fuzz_name string = storage.outputs.FuzzName
277-
output fuzz_key string = storage.outputs.FuzzKey
283+
278284

279285
output func_storage string = storage.outputs.FuncId
280286
output func_name string = storage.outputs.FuncName
281-
output func_key string = storage.outputs.FuncKey
287+
282288

283289
output scaleset_identity string = scaleset_identity
284290
output tenant_id string = tenantId

src/deployment/bicep-templates/function-settings.bicep

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,11 @@ param app_insights_app_id string
55
@secure()
66
param app_insights_key string
77

8-
@secure()
9-
param func_sas_url string
10-
118
param cli_app_id string
129
param authority string
1310
param tenant_domain string
1411
param multi_tenant_domain string
1512

16-
@secure()
17-
param signal_r_connection_string string
18-
1913
param app_config_endpoint string
2014

2115
param func_storage_resource_id string
@@ -33,8 +27,21 @@ param functions_extension_version string
3327

3428
param enable_profiler bool
3529

30+
param signalRName string
31+
param funcStorageName string
32+
3633
var telemetry = 'd7a73cf4-5a1a-4030-85e1-e5b25867e45a'
3734

35+
36+
resource signal_r 'Microsoft.SignalRService/signalR@2021-10-01' existing = {
37+
name: signalRName
38+
}
39+
40+
41+
resource funcStorage 'Microsoft.Storage/storageAccounts@2021-08-01' existing = {
42+
name: funcStorageName
43+
}
44+
3845
resource function 'Microsoft.Web/sites@2021-02-01' existing = {
3946
name: name
4047
}
@@ -44,6 +51,7 @@ var enable_profilers = enable_profiler ? {
4451
DiagnosticServices_EXTENSION_VERSION: '~3'
4552
} : {}
4653

54+
var func_key = funcStorage.listKeys().keys[0].value
4755
resource functionSettings 'Microsoft.Web/sites/config@2021-03-01' = {
4856
parent: function
4957
name: 'appsettings'
@@ -54,13 +62,13 @@ resource functionSettings 'Microsoft.Web/sites/config@2021-03-01' = {
5462
APPINSIGHTS_INSTRUMENTATIONKEY: app_insights_key
5563
APPINSIGHTS_APPID: app_insights_app_id
5664
ONEFUZZ_TELEMETRY: telemetry
57-
AzureWebJobsStorage: func_sas_url
65+
AzureWebJobsStorage: 'DefaultEndpointsProtocol=https;AccountName=${funcStorage.name};AccountKey=${func_key};EndpointSuffix=core.windows.net'
5866
CLI_APP_ID: cli_app_id
5967
AUTHORITY: authority
6068
TENANT_DOMAIN: tenant_domain
6169
MULTI_TENANT_DOMAIN: multi_tenant_domain
6270
AzureWebJobsDisableHomepage: 'true'
63-
AzureSignalRConnectionString: signal_r_connection_string
71+
AzureSignalRConnectionString: signal_r.listKeys().primaryConnectionString
6472
AzureSignalRServiceTransportType: 'Transient'
6573
APPCONFIGURATION_ENDPOINT: app_config_endpoint
6674
ONEFUZZ_INSTANCE_NAME: instance_name

src/deployment/bicep-templates/function.bicep

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,9 @@ param app_func_audiences array
99
param use_windows bool
1010
param enable_remote_debugging bool
1111

12-
@secure()
13-
param app_logs_sas_url string
12+
param logs_storage string
13+
param signedExpiry string
14+
1415

1516
@description('The degree of severity for diagnostics logs.')
1617
@allowed([
@@ -28,6 +29,14 @@ var siteconfig = (use_windows) ? {
2829
linuxFxVersion: linux_fx_version
2930
}
3031

32+
var storage_account_sas = {
33+
signedExpiry: signedExpiry
34+
signedPermission: 'rwdlacup'
35+
signedResourceTypes: 'sco'
36+
signedServices: 'bfqt'
37+
}
38+
39+
3140
var commonSiteConfig = {
3241
alwaysOn: true
3342
defaultDocuments: []
@@ -45,6 +54,11 @@ var extraProperties = (use_windows && enable_remote_debugging) ? {
4554
remoteDebuggingVersion: 'VS2022'
4655
} : {}
4756

57+
resource funcStorage 'Microsoft.Storage/storageAccounts@2021-08-01' existing = {
58+
name: logs_storage
59+
}
60+
61+
4862
resource function 'Microsoft.Web/sites@2021-03-01' = {
4963
name: name
5064
location: location
@@ -97,14 +111,15 @@ resource funcAuthSettings 'Microsoft.Web/sites/config@2021-03-01' = {
97111
parent: function
98112
}
99113

114+
var sas = funcStorage.listAccountSas('2021-08-01', storage_account_sas)
100115
resource funcLogs 'Microsoft.Web/sites/config@2021-03-01' = {
101116
name: 'logs'
102117
properties: {
103118
applicationLogs: {
104119
azureBlobStorage: {
105120
level: diagnostics_log_level
106121
retentionInDays: log_retention
107-
sasUrl: app_logs_sas_url
122+
sasUrl: '${funcStorage.properties.primaryEndpoints.blob}app-logs?${sas.accountSasToken}'
108123
}
109124
}
110125
}

src/deployment/bicep-templates/signalR.bicep

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,4 @@ resource signalR 'Microsoft.SignalRService/signalR@2021-10-01' = {
3030
}
3131
}
3232

33-
var connectionString = signalR.listKeys().primaryConnectionString
34-
output connectionString string = connectionString
33+
output signalRName string = signalr_name

src/deployment/bicep-templates/storageAccounts.bicep

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,10 @@
11
param owner string
22
param location string
3-
param signedExpiry string
43

54
var suffix = uniqueString(resourceGroup().id)
65
var storageAccountNameFuzz = 'fuzz${suffix}'
76
var storageAccountNameFunc = 'func${suffix}'
87

9-
var storage_account_sas = {
10-
signedExpiry: signedExpiry
11-
signedPermission: 'rwdlacup'
12-
signedResourceTypes: 'sco'
13-
signedServices: 'bfqt'
14-
}
15-
168
var storageAccountFuzzContainersParams = [
179
'events'
1810
]
@@ -119,14 +111,3 @@ output FuzzId string = storageAccountFuzz.id
119111
output FuncId string = storageAccountFunc.id
120112

121113
output FileChangesQueueName string = storageAccountFuncQueuesParams[fileChangesQueueIndex]
122-
123-
var sas = storageAccountFunc.listAccountSas('2021-08-01', storage_account_sas)
124-
output FuncSasUrlBlobAppLogs string = '${storageAccountFunc.properties.primaryEndpoints.blob}app-logs?${sas.accountSasToken}'
125-
126-
var fuzz_key = storageAccountFuzz.listKeys().keys[0].value
127-
output FuzzKey string = fuzz_key
128-
129-
var func_key = storageAccountFunc.listKeys().keys[0].value
130-
output FuncKey string = func_key
131-
132-
output FuncSasUrl string = 'DefaultEndpointsProtocol=https;AccountName=${storageAccountFunc.name};AccountKey=${func_key};EndpointSuffix=core.windows.net'

0 commit comments

Comments
 (0)