Skip to content

Commit 6dfff27

Browse files
[NDR-71] Add masking for sensitive information in Terraform plan output
1 parent 0682043 commit 6dfff27

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

.github/workflows/terraform-dev-to-main-ci.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,29 @@ jobs:
8787
${{ steps.plan.outputs.stderr }}
8888
EOF
8989
)
90+
91+
# Mask AWS account IDs (12-digit numbers)
92+
echo "$PLAN_FULL" | grep -oE '[0-9]{12}' | while read -r account_id; do
93+
echo "::add-mask::$account_id"
94+
done
95+
96+
# Mask Lambda invocation URLs
97+
echo "$PLAN_FULL" | grep -oE 'https://[a-zA-Z0-9.-]+\.lambda\.amazonaws\.com/[a-zA-Z0-9/._-]+' | while read -r lambda_url; do
98+
echo "::add-mask::$lambda_url"
99+
done
100+
101+
# Mask GitHub secrets
102+
echo "::add-mask::${{ secrets.AWS_ASSUME_ROLE }}"
103+
echo "::add-mask::${{ secrets.GITHUB_TOKEN }}"
104+
105+
# Mask Terraform variables
106+
echo "::add-mask::${{ vars.TF_VARS_FILE }}"
107+
108+
# Optionally redact sensitive strings in the PLAN_FULL variable
109+
PLAN_FULL=$(echo "$PLAN_FULL" | sed -E 's/[0-9]{12}/[REDACTED_AWS_ACCOUNT_ID]/g')
110+
PLAN_FULL=$(echo "$PLAN_FULL" | sed -E 's#https://[a-zA-Z0-9.-]+\.lambda\.amazonaws\.com/[a-zA-Z0-9/._-]+#[REDACTED_LAMBDA_URL]#g')
111+
PLAN_FULL=$(echo "$PLAN_FULL" | sed -E 's#arn:aws:iam::[0-9]{12}:role/[a-zA-Z0-9_-]+#[REDACTED_IAM_ROLE_ARN]#g')
112+
90113
echo "PLAN<<EOF" >> $GITHUB_ENV
91114
echo "${PLAN_FULL::$LENGTH}" >> $GITHUB_ENV
92115
[ ${#PLAN_FULL} -gt $LENGTH ] && echo "(truncated - see workflow logs for full output)" >> $GITHUB_ENV

0 commit comments

Comments
 (0)