Skip to content

Commit a870e76

Browse files
author
Oleksandr Poliakov
committed
CSHARP-4953: dot-net-driver Evergreen Configuration May Be Leaking Secrets
1 parent 647d465 commit a870e76

File tree

1 file changed

+86
-49
lines changed

1 file changed

+86
-49
lines changed

evergreen/evergreen.yml

Lines changed: 86 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -91,22 +91,6 @@ functions:
9191
# See what we've done
9292
cat expansion.yml
9393
94-
# Do not output expansion.yml contents after this point
95-
96-
# Add CSFLE variables that shouldn't be output to the logs
97-
cat <<EOT >> expansion.yml
98-
PREPARE_CSFLE: |
99-
set +o xtrace # Disable tracing.
100-
export FLE_AWS_ACCESS_KEY_ID=${FLE_AWS_ACCESS_KEY_ID}
101-
export FLE_AWS_SECRET_ACCESS_KEY=${FLE_AWS_SECRET_ACCESS_KEY}
102-
export FLE_AZURE_TENANT_ID=${FLE_AZURE_TENANT_ID}
103-
export FLE_AZURE_CLIENT_ID=${FLE_AZURE_CLIENT_ID}
104-
export FLE_AZURE_CLIENT_SECRET=${FLE_AZURE_CLIENT_SECRET}
105-
export FLE_GCP_EMAIL=${FLE_GCP_EMAIL}
106-
export FLE_GCP_PRIVATE_KEY=${FLE_GCP_PRIVATE_KEY}
107-
set -o xtrace # Enable tracing.
108-
EOT
109-
11094
# Load the expansion file to make an evergreen variable with the current unique version
11195
- command: expansions.update
11296
params:
@@ -312,9 +296,15 @@ functions:
312296
type: test
313297
params:
314298
working_dir: mongo-csharp-driver
299+
include_expansions_in_env:
300+
- "FLE_AWS_ACCESS_KEY_ID"
301+
- "FLE_AWS_SECRET_ACCESS_KEY"
302+
- "FLE_AZURE_TENANT_ID"
303+
- "FLE_AZURE_CLIENT_ID"
304+
- "FLE_AZURE_CLIENT_SECRET"
305+
- "FLE_GCP_EMAIL"
306+
- "FLE_GCP_PRIVATE_KEY"
315307
script: |
316-
set +x
317-
${PREPARE_CSFLE}
318308
. ./evergreen/set-virtualenv.sh
319309
. ./evergreen/set-temp-fle-aws-creds.sh
320310
${PREPARE_SHELL}
@@ -340,14 +330,19 @@ functions:
340330
type: test
341331
params:
342332
working_dir: "mongo-csharp-driver"
333+
include_expansions_in_env:
334+
- "FLE_AWS_ACCESS_KEY_ID"
335+
- "FLE_AWS_SECRET_ACCESS_KEY"
336+
- "FLE_AZURE_TENANT_ID"
337+
- "FLE_AZURE_CLIENT_ID"
338+
- "FLE_AZURE_CLIENT_SECRET"
339+
- "FLE_GCP_EMAIL"
340+
- "FLE_GCP_PRIVATE_KEY"
343341
script: |
344-
set +x
345-
${PREPARE_CSFLE}
346342
export KMS_MOCK_SERVERS_ENABLED=true
347343
export GCE_METADATA_HOST="localhost:5000"
348344
export AZURE_IMDS_MOCK_ENDPOINT="localhost:8080"
349345
${PREPARE_SHELL}
350-
set +o xtrace
351346
OS=${OS} \
352347
evergreen/add-ca-certs.sh
353348
AUTH=${AUTH} \
@@ -368,9 +363,15 @@ functions:
368363
type: test
369364
params:
370365
working_dir: mongo-csharp-driver
366+
include_expansions_in_env:
367+
- "FLE_AWS_ACCESS_KEY_ID"
368+
- "FLE_AWS_SECRET_ACCESS_KEY"
369+
- "FLE_AZURE_TENANT_ID"
370+
- "FLE_AZURE_CLIENT_ID"
371+
- "FLE_AZURE_CLIENT_SECRET"
372+
- "FLE_GCP_EMAIL"
373+
- "FLE_GCP_PRIVATE_KEY"
371374
script: |
372-
set +x
373-
${PREPARE_CSFLE}
374375
. ./evergreen/set-virtualenv.sh
375376
. ./evergreen/set-temp-fle-aws-creds.sh
376377
${PREPARE_SHELL}
@@ -398,19 +399,32 @@ functions:
398399
params:
399400
silent: true
400401
working_dir: mongo-csharp-driver
401-
script: |
402-
# DO NOT ECHO WITH XTRACE (which PREPARE_SHELL does)
403-
ATLAS_FREE="${ATLAS_FREE}" ATLAS_FREE_SRV="${ATLAS_FREE_SRV}" ATLAS_REPLICA="${ATLAS_REPLICA}" ATLAS_REPLICA_SRV="${ATLAS_REPLICA_SRV}" ATLAS_SHARDED="${ATLAS_SHARDED}" ATLAS_SHARDED_SRV="${ATLAS_SHARDED_SRV}" ATLAS_TLS11="${ATLAS_TLS11}" ATLAS_TLS11_SRV="${ATLAS_TLS11_SRV}" ATLAS_TLS12="${ATLAS_TLS12}" ATLAS_TLS12_SRV="${ATLAS_TLS12_SRV}" ATLAS_SERVERLESS="${ATLAS_SERVERLESS}" ATLAS_SERVERLESS_SRV="${ATLAS_SERVERLESS_SRV}" evergreen/run-atlas-connectivity-tests.sh
402+
include_expansions_in_env:
403+
- "ATLAS_FREE"
404+
- "ATLAS_FREE_SRV"
405+
- "ATLAS_REPLICA"
406+
- "ATLAS_REPLICA_SRV"
407+
- "ATLAS_SHARDED"
408+
- "ATLAS_SHARDED_SRV"
409+
- "ATLAS_TLS11"
410+
- "ATLAS_TLS11_SRV"
411+
- "ATLAS_TLS12"
412+
- "ATLAS_TLS12_SRV"
413+
- "ATLAS_SERVERLESS"
414+
- "ATLAS_SERVERLESS_SRV"
415+
script: |
416+
. evergreen/run-atlas-connectivity-tests.sh
404417
405418
run-gssapi-auth-tests:
406419
- command: shell.exec
407420
type: test
408421
params:
409422
working_dir: mongo-csharp-driver
423+
include_expansions_in_env:
424+
- "AUTH_GSSAPI"
425+
- "AUTH_HOST"
410426
script: |
411427
PROJECT_DIRECTORY=${PROJECT_DIRECTORY} \
412-
AUTH_HOST="${AUTH_HOST}" \
413-
AUTH_GSSAPI="${AUTH_GSSAPI}" \
414428
FRAMEWORK=${FRAMEWORK} \
415429
evergreen/run-gssapi-auth-tests.sh
416430
@@ -419,9 +433,11 @@ functions:
419433
type: test
420434
params:
421435
working_dir: mongo-csharp-driver
436+
env:
437+
MONGODB_URI: ${plain_auth_mongodb_uri}
422438
script: |
423439
${PREPARE_SHELL}
424-
MONGODB_URI="${plain_auth_mongodb_uri}" evergreen/run-plain-auth-tests.sh
440+
. evergreen/run-plain-auth-tests.sh
425441
426442
run-performance-tests:
427443
- command: shell.exec
@@ -444,7 +460,10 @@ functions:
444460
params:
445461
shell: "bash"
446462
working_dir: mongo-csharp-driver
447-
include_expansions_in_env: ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_SESSION_TOKEN"]
463+
include_expansions_in_env:
464+
- "AWS_ACCESS_KEY_ID"
465+
- "AWS_SECRET_ACCESS_KEY"
466+
- "AWS_SESSION_TOKEN"
448467
script: |
449468
${PREPARE_SHELL}
450469
cd $DRIVERS_TOOLS/.evergreen/auth_aws
@@ -565,9 +584,11 @@ functions:
565584
type: test
566585
params:
567586
working_dir: mongo-csharp-driver
587+
include_expansions_in_env:
588+
- "ATLAS_SEARCH"
568589
script: |
569590
${PREPARE_SHELL}
570-
ATLAS_SEARCH="${ATLAS_SEARCH}" evergreen/run-atlas-search-test.sh
591+
evergreen/run-atlas-search-test.sh
571592
572593
run-atlas-search-index-helpers-test:
573594
- command: shell.exec
@@ -690,14 +711,21 @@ functions:
690711
type: test
691712
params:
692713
working_dir: mongo-csharp-driver
714+
include_expansions_in_env:
715+
- "FLE_AWS_ACCESS_KEY_ID"
716+
- "FLE_AWS_SECRET_ACCESS_KEY"
717+
- "FLE_AZURE_TENANT_ID"
718+
- "FLE_AZURE_CLIENT_ID"
719+
- "FLE_AZURE_CLIENT_SECRET"
720+
- "FLE_GCP_EMAIL"
721+
- "FLE_GCP_PRIVATE_KEY"
722+
- "SERVERLESS_ATLAS_USER"
723+
- "SERVERLESS_ATLAS_PASSWORD"
724+
- "SERVERLESS_URI"
693725
script: |
694726
${PREPARE_SHELL}
695-
${PREPARE_CSFLE}
696727
AUTH=${AUTH} \
697728
FRAMEWORK=${FRAMEWORK} \
698-
SERVERLESS_ATLAS_USER="${SERVERLESS_ATLAS_USER}" \
699-
SERVERLESS_ATLAS_PASSWORD="${SERVERLESS_ATLAS_PASSWORD}" \
700-
SERVERLESS_URI="${SERVERLESS_URI}" \
701729
SSL=${SSL} \
702730
CRYPT_SHARED_LIB_PATH=${CRYPT_SHARED_LIB_PATH} \
703731
evergreen/run-serverless-tests.sh
@@ -727,17 +755,17 @@ functions:
727755
- command: shell.exec
728756
params:
729757
shell: bash
758+
include_expansions_in_env:
759+
- "SERVERLESS_API_PUBLIC_KEY"
760+
- "SERVERLESS_API_PRIVATE_KEY"
730761
script: |
731762
${PREPARE_SHELL}
732-
set +o xtrace # Disable tracing
733763
if [ "Terminating" = "${SERVERLESS_PROXY_TYPE}" ]; then
734764
SERVERLESS_GROUP="${TERMINATING_PROXY_SERVERLESS_DRIVERS_GROUP}"
735765
else
736766
SERVERLESS_GROUP="${SERVERLESS_DRIVERS_GROUP}"
737767
fi
738768
SERVERLESS_DRIVERS_GROUP="$SERVERLESS_GROUP" \
739-
SERVERLESS_API_PUBLIC_KEY=${SERVERLESS_API_PUBLIC_KEY} \
740-
SERVERLESS_API_PRIVATE_KEY=${SERVERLESS_API_PRIVATE_KEY} \
741769
LOADBALANCED=ON \
742770
bash ${DRIVERS_TOOLS}/.evergreen/serverless/create-instance.sh
743771
- command: expansions.update
@@ -748,18 +776,18 @@ functions:
748776
- command: shell.exec
749777
params:
750778
shell: bash
779+
include_expansions_in_env:
780+
- "SERVERLESS_API_PUBLIC_KEY"
781+
- "SERVERLESS_API_PRIVATE_KEY"
751782
script: |
752783
if [ "" != "${SERVERLESS}" ]; then
753784
${PREPARE_SHELL}
754-
set +o xtrace # Disable tracing
755785
if [ "Terminating" = "${SERVERLESS_PROXY_TYPE}" ]; then
756786
SERVERLESS_GROUP="${TERMINATING_PROXY_SERVERLESS_DRIVERS_GROUP}"
757787
else
758788
SERVERLESS_GROUP="${SERVERLESS_DRIVERS_GROUP}"
759789
fi
760790
SERVERLESS_DRIVERS_GROUP="$SERVERLESS_GROUP" \
761-
SERVERLESS_API_PUBLIC_KEY=${SERVERLESS_API_PUBLIC_KEY} \
762-
SERVERLESS_API_PRIVATE_KEY=${SERVERLESS_API_PRIVATE_KEY} \
763791
SERVERLESS_INSTANCE_NAME=${SERVERLESS_INSTANCE_NAME} \
764792
bash ${DRIVERS_TOOLS}/.evergreen/serverless/delete-instance.sh
765793
fi
@@ -1896,37 +1924,42 @@ task_groups:
18961924
- command: shell.exec
18971925
params:
18981926
shell: "bash"
1927+
silent: true
1928+
env:
1929+
AZUREKMS_CLIENTID : ${testazurekms_clientid}
1930+
AZUREKMS_TENANTID : ${testazurekms_tenantid}
1931+
AZUREKMS_SECRET= : ${testazurekms_secret}
1932+
AZUREKMS_RESOURCEGROUP: ${testazurekms_resourcegroup}
1933+
AZUREKMS_SCOPE : ${testazurekms_scope}
18991934
script: |
19001935
${PREPARE_SHELL}
19011936
echo '${testazurekms_publickey}' > /tmp/testazurekms_publickey
19021937
echo '${testazurekms_privatekey}' > /tmp/testazurekms_privatekey
19031938
# Set 600 permissions on private key file. Otherwise ssh / scp may error with permissions "are too open".
19041939
chmod 600 /tmp/testazurekms_privatekey
1905-
export AZUREKMS_CLIENTID=${testazurekms_clientid}
1906-
export AZUREKMS_TENANTID=${testazurekms_tenantid}
1907-
export AZUREKMS_SECRET=${testazurekms_secret}
1940+
19081941
export AZUREKMS_DRIVERS_TOOLS=$DRIVERS_TOOLS
1909-
export AZUREKMS_RESOURCEGROUP=${testazurekms_resourcegroup}
19101942
export AZUREKMS_PUBLICKEYPATH=/tmp/testazurekms_publickey
19111943
export AZUREKMS_PRIVATEKEYPATH=/tmp/testazurekms_privatekey
1912-
export AZUREKMS_SCOPE=${testazurekms_scope}
19131944
export AZUREKMS_VMNAME_PREFIX=CSHARPDRIVER
19141945
$DRIVERS_TOOLS/.evergreen/csfle/azurekms/create-and-setup-vm.sh
19151946
- command: expansions.update
19161947
params:
19171948
file: testazurekms-expansions.yml
19181949
teardown_group:
1950+
- func: upload-test-results
19191951
# Load expansions again. The setup task may have failed before running `expansions.update`.
19201952
- command: expansions.update
19211953
params:
19221954
file: testazurekms-expansions.yml
19231955
- command: shell.exec
19241956
params:
19251957
shell: "bash"
1958+
env:
1959+
AZUREKMS_VMNAME : ${AZUREKMS_VMNAME}
1960+
AZUREKMS_RESOURCEGROUP : ${testazurekms_resourcegroup}
19261961
script: |
19271962
${PREPARE_SHELL}
1928-
export AZUREKMS_VMNAME=${AZUREKMS_VMNAME}
1929-
export AZUREKMS_RESOURCEGROUP=${testazurekms_resourcegroup}
19301963
$DRIVERS_TOOLS/.evergreen/csfle/azurekms/delete-vm.sh
19311964
tasks:
19321965
- test-csfle-with-azure-kms
@@ -1944,19 +1977,22 @@ task_groups:
19441977
- command: shell.exec
19451978
params:
19461979
shell: "bash"
1980+
silent: true
1981+
include_expansions_in_env:
1982+
- "GCPKMS_SERVICEACCOUNT"
19471983
script: |
19481984
${PREPARE_SHELL}
19491985
echo '${GOOGLE_APPLICATION_CREDENTIALS_CONTENT}' > /tmp/testgcpkms_key_file.json
19501986
export GCPKMS_KEYFILE=/tmp/testgcpkms_key_file.json
19511987
export GCPKMS_DRIVERS_TOOLS=$DRIVERS_TOOLS
1952-
export GCPKMS_SERVICEACCOUNT="${GCPKMS_SERVICEACCOUNT}"
19531988
export GCPKMS_MACHINETYPE="e2-standard-4"
19541989
$DRIVERS_TOOLS/.evergreen/csfle/gcpkms/create-and-setup-instance.sh
19551990
# Load the GCPKMS_GCLOUD, GCPKMS_INSTANCE, GCPKMS_REGION, and GCPKMS_ZONE expansions.
19561991
- command: expansions.update
19571992
params:
19581993
file: testgcpkms-expansions.yml
19591994
teardown_group:
1995+
- func: upload-test-results
19601996
- command: shell.exec
19611997
params:
19621998
shell: "bash"
@@ -1997,6 +2033,7 @@ task_groups:
19972033
params:
19982034
file: atlas-expansion.yml
19992035
teardown_group:
2036+
- func: upload-test-results
20002037
- command: shell.exec
20012038
params:
20022039
env:

0 commit comments

Comments
 (0)