Skip to content

Commit 8029c18

Browse files
authored
PYTHON-3942 Use MongoDB managed Azure KMS credentials (#1381)
1 parent 0590ce4 commit 8029c18

File tree

2 files changed

+21
-23
lines changed

2 files changed

+21
-23
lines changed

.evergreen/config.yml

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1098,24 +1098,14 @@ task_groups:
10981098
- func: make files executable
10991099
- command: shell.exec
11001100
params:
1101-
silent: true
11021101
shell: bash
11031102
script: |-
1104-
set -o errexit
11051103
${PREPARE_SHELL}
1106-
echo '${testazurekms_publickey}' > /tmp/testazurekms_publickey
1107-
echo '${testazurekms_privatekey}' > /tmp/testazurekms_privatekey
1108-
# Set 600 permissions on private key file. Otherwise ssh / scp may error with permissions "are too open".
1109-
chmod 600 /tmp/testazurekms_privatekey
1110-
export AZUREKMS_CLIENTID="${testazurekms_clientid}"
1111-
export AZUREKMS_TENANTID="${testazurekms_tenantid}"
1112-
export AZUREKMS_SECRET="${testazurekms_secret}"
1113-
export AZUREKMS_DRIVERS_TOOLS="$DRIVERS_TOOLS"
1114-
export AZUREKMS_RESOURCEGROUP="${testazurekms_resourcegroup}"
1115-
export AZUREKMS_PUBLICKEYPATH="/tmp/testazurekms_publickey"
1116-
export AZUREKMS_PRIVATEKEYPATH="/tmp/testazurekms_privatekey"
1117-
export AZUREKMS_SCOPE="${testazurekms_scope}"
1104+
# Get azurekms credentials from the vault.
1105+
bash $DRIVERS_TOOLS/.evergreen/auth_aws/setup_secrets.sh drivers/azurekms
1106+
source ./secrets-export.sh
11181107
export AZUREKMS_VMNAME_PREFIX="PYTHON_DRIVER"
1108+
export AZUREKMS_DRIVERS_TOOLS="$DRIVERS_TOOLS"
11191109
$DRIVERS_TOOLS/.evergreen/csfle/azurekms/create-and-setup-vm.sh
11201110
- command: expansions.update
11211111
params:
@@ -1130,11 +1120,14 @@ task_groups:
11301120
shell: bash
11311121
script: |-
11321122
${PREPARE_SHELL}
1123+
set -x
11331124
export AZUREKMS_VMNAME=${AZUREKMS_VMNAME}
1134-
export AZUREKMS_RESOURCEGROUP=${testazurekms_resourcegroup}
1125+
export AZUREKMS_RESOURCEGROUP=${AZUREKMS_RESOURCEGROUP}
1126+
export AZUREKMS_SCOPE=${AZUREKMS_SCOPE}
11351127
$DRIVERS_TOOLS/.evergreen/csfle/azurekms/delete-vm.sh
11361128
- func: "upload test results"
11371129
setup_group_can_fail_task: true
1130+
teardown_group_can_fail_task: true
11381131
setup_group_timeout_secs: 1800
11391132
tasks:
11401133
- testazurekms-task
@@ -2200,9 +2193,10 @@ tasks:
22002193
script: |-
22012194
set -o errexit
22022195
${PREPARE_SHELL}
2196+
source ./secrets-export.sh
22032197
cd src
22042198
echo "Copying files ... begin"
2205-
export AZUREKMS_RESOURCEGROUP=${testazurekms_resourcegroup}
2199+
export AZUREKMS_RESOURCEGROUP=${AZUREKMS_RESOURCEGROUP}
22062200
export AZUREKMS_VMNAME=${AZUREKMS_VMNAME}
22072201
export AZUREKMS_PRIVATEKEYPATH=/tmp/testazurekms_privatekey
22082202
tar czf /tmp/mongo-python-driver.tgz .
@@ -2221,10 +2215,11 @@ tasks:
22212215
script: |-
22222216
set -o errexit
22232217
${PREPARE_SHELL}
2224-
export AZUREKMS_RESOURCEGROUP=${testazurekms_resourcegroup}
2218+
source ./secrets-export.sh
2219+
export AZUREKMS_RESOURCEGROUP=${AZUREKMS_RESOURCEGROUP}
22252220
export AZUREKMS_VMNAME=${AZUREKMS_VMNAME}
22262221
export AZUREKMS_PRIVATEKEYPATH=/tmp/testazurekms_privatekey
2227-
AZUREKMS_CMD="KEY_NAME='${testazurekms_keyname}' KEY_VAULT_ENDPOINT='${testazurekms_keyvaultendpoint}' LIBMONGOCRYPT_URL=https://s3.amazonaws.com/mciuploads/libmongocrypt/debian10/master/latest/libmongocrypt.tar.gz SUCCESS=true TEST_FLE_AZURE_AUTO=1 ./.evergreen/tox.sh -m test-eg" \
2222+
AZUREKMS_CMD="KEY_NAME=\"$AZUREKMS_KEYNAME\" KEY_VAULT_ENDPOINT=\"$AZUREKMS_KEYVAULTENDPOINT\" LIBMONGOCRYPT_URL=https://s3.amazonaws.com/mciuploads/libmongocrypt/debian10/master/latest/libmongocrypt.tar.gz SUCCESS=true TEST_FLE_AZURE_AUTO=1 ./.evergreen/tox.sh -m test-eg" \
22282223
$DRIVERS_TOOLS/.evergreen/csfle/azurekms/run-command.sh
22292224
22302225
- name: testazurekms-fail-task
@@ -2242,10 +2237,13 @@ tasks:
22422237
script: |-
22432238
set -o errexit
22442239
${PREPARE_SHELL}
2240+
# Get azurekms credentials from the vault.
2241+
bash $DRIVERS_TOOLS/.evergreen/auth_aws/setup_secrets.sh drivers/azurekms
2242+
source ./secrets-export.sh
22452243
cd src
22462244
PYTHON_BINARY=/opt/mongodbtoolchain/v4/bin/python3 \
2247-
KEY_NAME='${testazurekms_keyname}' \
2248-
KEY_VAULT_ENDPOINT='${testazurekms_keyvaultendpoint}' \
2245+
KEY_NAME="${AZUREKMS_KEYNAME}" \
2246+
KEY_VAULT_ENDPOINT="${AZUREKMS_KEYVAULTENDPOINT}" \
22492247
LIBMONGOCRYPT_URL=https://s3.amazonaws.com/mciuploads/libmongocrypt/debian10/master/latest/libmongocrypt.tar.gz \
22502248
SUCCESS=false TEST_FLE_AZURE_AUTO=1 \
22512249
./.evergreen/tox.sh -m test-eg
@@ -3213,7 +3211,7 @@ buildvariants:
32133211

32143212
- name: testazurekms-variant
32153213
display_name: "Azure KMS"
3216-
run_on: debian10-small
3214+
run_on: rhel87-small
32173215
tasks:
32183216
- name: testazurekms_task_group
32193217
batchtime: 20160 # Use a batchtime of 14 days as suggested by the CSFLE test README

test/test_on_demand_csfle.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,8 @@ def setUpClass(cls):
7777
def setUp(self):
7878
super().setUp()
7979
self.master_key = {
80-
"keyVaultEndpoint": "https://keyvault-drivers-2411.vault.azure.net/keys/",
81-
"keyName": "KEY-NAME",
80+
"keyVaultEndpoint": os.environ["KEY_VAULT_ENDPOINT"],
81+
"keyName": os.environ["KEY_NAME"],
8282
}
8383

8484
@unittest.skipIf(not os.getenv("TEST_FLE_AZURE_AUTO"), "Not testing FLE Azure auto")

0 commit comments

Comments
 (0)