Skip to content

Commit 03a0e45

Browse files
fix: only redact api key if it was passed as an environment variable
1 parent 1e77723 commit 03a0e45

File tree

3 files changed

+33
-20
lines changed

3 files changed

+33
-20
lines changed

solutions/standard-openshift/ansible/main.tf

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -172,10 +172,12 @@ resource "terraform_data" "execute_playbooks" {
172172
# Again replace the API Key in any logs where it may have been included in plain text
173173
provisioner "remote-exec" {
174174
inline = [
175-
"APIKEY=\"${local.ibmcloud_api_key}\"",
176-
"grep -RIl -- \"$APIKEY\" \"/root\" | while IFS= read -r file; do",
177-
"sed -i 's/'\"$APIKEY\"'/***redacted***/g' \"$file\"",
178-
"done"
175+
"if [ ! -z $IBMCLOUD_API_KEY ]; then",
176+
" IBMCLOUD_API_KEY=\"${local.ibmcloud_api_key}\"",
177+
" grep -RIl --devices=skip --exclude-dir='.ansible/' -- \"$IBMCLOUD_API_KEY\" \"/root\" | while IFS= read -r file; do",
178+
" sed -i 's/'\"$IBMCLOUD_API_KEY\"'/***redacted***/g' \"$file\"",
179+
" done",
180+
"fi"
179181
]
180182
}
181183

@@ -286,10 +288,12 @@ resource "terraform_data" "execute_playbooks_with_vault" {
286288
# Again replace the API Key in any logs where it may have been included in plain text
287289
provisioner "remote-exec" {
288290
inline = [
289-
"APIKEY=\"${local.ibmcloud_api_key}\"",
290-
"grep -RIl -- \"$APIKEY\" \"/root\" | while IFS= read -r file; do",
291-
"sed -i 's/'\"$APIKEY\"'/***redacted***/g' \"$file\"",
292-
"done"
291+
"if [ ! -z $IBMCLOUD_API_KEY ]; then",
292+
" IBMCLOUD_API_KEY=\"${local.ibmcloud_api_key}\"",
293+
" grep -RIl --devices=skip --exclude-dir='.ansible/' -- \"$IBMCLOUD_API_KEY\" \"/root\" | while IFS= read -r file; do",
294+
" sed -i 's/'\"$IBMCLOUD_API_KEY\"'/***redacted***/g' \"$file\"",
295+
" done",
296+
"fi"
293297
]
294298
}
295299

solutions/standard-openshift/ansible/templates-ansible/deploy-openshift-cluster/ansible_exec.sh.tftpl

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,20 @@ if [ $? -ne 0 ]; then
2828
rm -f password_file
2929
rm -rf $${ansible_private_key_file}
3030
# remove API Key from any logs where it may have been included in plain text
31-
grep -RIl -- "$IBMCLOUD_API_KEY" "/root" | while IFS= read -r file; do
32-
sed -i 's/'"$IBMCLOUD_API_KEY"'/***redacted***/g' "$file"
33-
done
31+
if [ ! -z $IBMCLOUD_API_KEY ]; then
32+
grep -RIl --devices=skip --exclude-dir='.ansible/' -- "$IBMCLOUD_API_KEY" "/root" | while IFS= read -r file; do
33+
sed -i 's/'"$IBMCLOUD_API_KEY"'/***redacted***/g' "$file"
34+
done
35+
fi
3436
exit 1
3537
fi
3638
echo \"Playbook command successful\"
3739
rm -rf $${ansible_private_key_file}
3840
if [ -f /root/.powervs/config.json ]; then ansible-vault encrypt /root/.powervs/config.json --vault-password-file password_file; fi
3941
rm -f password_file
4042
# remove API Key from any logs where it may have been included in plain text
41-
grep -RIl -- "$IBMCLOUD_API_KEY" "/root" | while IFS= read -r file; do
42-
sed -i 's/'"$IBMCLOUD_API_KEY"'/***redacted***/g' "$file"
43-
done
43+
if [ ! -z $IBMCLOUD_API_KEY ]; then
44+
grep -RIl --devices=skip --exclude-dir='.ansible/' -- "$IBMCLOUD_API_KEY" "/root" | while IFS= read -r file; do
45+
sed -i 's/'"$IBMCLOUD_API_KEY"'/***redacted***/g' "$file"
46+
done
47+
fi

solutions/standard-openshift/ansible/templates-ansible/deploy-openshift-cluster/ansible_exec_vault.sh.tftpl

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,11 @@ if [ $? -ne 0 ]; then
2828
rm -f password_file
2929
rm -rf $${ansible_private_key_file}
3030
# remove API Key from any logs where it may have been included in plain text
31-
grep -RIl -- "$IBMCLOUD_API_KEY" "/root" | while IFS= read -r file; do
32-
sed -i 's/'"$IBMCLOUD_API_KEY"'/***redacted***/g' "$file"
33-
done
31+
if [ ! -z $IBMCLOUD_API_KEY ]; then
32+
grep -RIl --devices=skip --exclude-dir='.ansible/' -- "$IBMCLOUD_API_KEY" "/root" | while IFS= read -r file; do
33+
sed -i 's/'"$IBMCLOUD_API_KEY"'/***redacted***/g' "$file"
34+
done
35+
fi
3436
exit 1
3537
fi
3638
echo \"Playbook command successful\"
@@ -39,6 +41,9 @@ if [ -f /root/.powervs/config.json ]; then ansible-vault encrypt /root/.powervs/
3941
rm -f password_file
4042

4143
# remove API Key from any logs where it may have been included in plain text
42-
grep -RIl -- "$IBMCLOUD_API_KEY" "/root" | while IFS= read -r file; do
43-
sed -i 's/'"$IBMCLOUD_API_KEY"'/***redacted***/g' "$file"
44-
done
44+
if [ ! -z $IBMCLOUD_API_KEY ]; then
45+
grep -RIl --devices=skip --exclude-dir='.ansible/' -- "$IBMCLOUD_API_KEY" "/root" | while IFS= read -r file; do
46+
echo Replacing \"$IBMCLOUD_API_KEY\" in file \"$file\"
47+
sed -i 's/'"$IBMCLOUD_API_KEY"'/***redacted***/g' "$file"
48+
done
49+
fi

0 commit comments

Comments
 (0)