Back to .md Directory

CONFIG

To securely allow your **Dev environment** to access files from **Prod** in your **on-prem Kiteworks Managed File Transfer (MFT)** setup, you need a **segregated, auditable, and policy-controlled** design. Here's a secure and scalable design approach:

May 2, 2026
0 downloads
0 views
ai workflow automation
View source

To securely allow your Dev environment to access files from Prod in your on-prem Kiteworks Managed File Transfer (MFT) setup, you need a segregated, auditable, and policy-controlled design. Here's a secure and scalable design approach:


πŸ”’ 1. Principles to Follow

  • Environment Isolation: Never allow direct Dev access to Prod systems.
  • Controlled Transfer: Pull data from Prod via intermediaries or APIs with limited scope.
  • Auditability: Log all file movement across environments.
  • Least Privilege: Use the minimum access needed for the transfer.

🧱 2. Design Pattern Overview

Prod β†’ Controlled Export Node β†’ Sanitization β†’ Dev

βœ… 3. Steps to Implement

Step 1: Export Node or Drop Zone in Prod

  • Set up a Kiteworks shared folder (or SFTP drop-zone) in Prod for export.
  • Only certain Prod users/applications can write to this folder.
  • Example: /export/dev-dumps/

Step 2: Automation for Export

  • Use a scheduled job or event-triggered workflow in Prod to:

    • Sanitize or redact sensitive info (if needed).
    • Package and push data to the shared folder.
    • Apply retention (e.g., delete after 7 days).

Step 3: Intermediary Secure Account or Gateway

  • Create a β€œTransfer Account” (service account) with read-only access to the Prod export folder.

  • Use a dedicated MFT gateway (or intermediate file mover, such as a secure DMZ jump server) to:

    • Pull files from Prod export location.
    • Log and checksum them.
    • Transfer to a UAT-approved location in Dev.

Step 4: Inbound Folder in Dev

  • In Dev, configure a Kiteworks folder or internal SFTP server that accepts files only from the secure intermediary.

  • Apply:

    • AV scanning.
    • Integrity check (hash validation).
    • Access control (only Dev leads can read).

Step 5: Monitoring & Alerts

  • Enable logging/auditing in Kiteworks for:

    • File access.
    • User activity.
    • File movement across environments.
  • Set up email/SIEM alerts for cross-env file transfers.


βš™οΈ 4. Optional Enhancements

  • Data Tokenization: Replace sensitive values in the data before exporting from Prod.
  • Approval Workflow: Use Kiteworks’ approval mechanism before files go to Dev.
  • Encryption at Rest + In Transit: Ensure TLS + encryption policies are enforced throughout.
  • Immutable Logs: Forward logs to a secure SIEM or log vault.

βœ‹ 5. What Not to Do

  • ❌ Never give Dev users access to Prod folders.
  • ❌ Don’t hardcode credentials for transfer – use vault-managed secrets or SSH keys.
  • ❌ Don’t bypass logging/alerting – everything should be auditable.

πŸ“„ Example Policy in Kiteworks

Policy:
  - Name: Cross-Env Transfer
    Source: /prod/export/dev-dumps/
    Destination: /dev/inbound/prod-data/
    Allowed Users: [svc-transfer]
    Time Window: "2am-4am UTC"
    Notification: On Transfer Success & Failure
    Retention: 7 days

πŸš€ Summary

ElementApproach
Access ControlUse service account, never personal logins
Transfer PathProd Export β†’ Intermediary β†’ Dev Inbound
LogsEnable end-to-end audit in Kiteworks
SecurityEncryption, AV scan, and redaction if needed
AutomationScheduled or triggered jobs, not manual movement

Would you like help drafting a sample architecture diagram or shell script to automate this process?

Great β€” here’s a full solution including a diagram description, a script example, and a high-level architecture you can present or implement.


🧱 1. Architecture Diagram Description

We’ll walk through this verbally first β€” you can visualize or draw this later (or I can generate a diagram for you too).

ENVIRONMENTS

        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
        β”‚   PROD MFT  β”‚                β”‚   DEV MFT  β”‚
        β”‚ (Kiteworks) β”‚                β”‚ (Kiteworks)β”‚
        β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜                β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜
              β”‚                                  β”‚
        β”Œβ”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”                     β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”
        β”‚ Export Dirβ”‚                     β”‚  Import Dir β”‚
        β”‚ /export/devβ”‚<────────┐   β”Œβ”€β”€β”€β”€β”€β”€β”‚/import/prod β”‚
        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β”‚   β”‚      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                               β–Ό   β–Ό
                       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                       β”‚ Intermediary VM β”‚
                       β”‚ (Secure Gateway)β”‚
                       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Roles:

  • Prod MFT: Hosts an export directory. Only app or automation writes here.
  • Intermediary VM: Pulls from Prod, pushes to Dev. No users log in. Keys only.
  • Dev MFT: Only receives β€” cannot push to Prod. Read-only access by dev team.

βš™οΈ 2. Script for Intermediary File Transfer

Assuming:

  • You use scp or sftp with SSH keys.
  • The intermediary has keys to access both environments.
  • You’re transferring files with integrity checks.
#!/bin/bash

# CONFIG
PROD_HOST="prod-kiteworks.example.com"
DEV_HOST="dev-kiteworks.example.com"
PROD_USER="svc_transfer"
DEV_USER="svc_transfer"
EXPORT_DIR="/export/dev-dumps/"
IMPORT_DIR="/import/prod-files/"
TMP_DIR="/tmp/kiteworks-transfer"
SSH_KEY="/opt/keys/kiteworks_transfer.key"

# STEP 1: Create working dir
mkdir -p "$TMP_DIR"
cd "$TMP_DIR" || exit 1

# STEP 2: Pull files from PROD
scp -i "$SSH_KEY" "${PROD_USER}@${PROD_HOST}:${EXPORT_DIR}*" .

# STEP 3: Verify integrity (basic check β€” improve with hash if needed)
for file in *; do
  if [[ -f "$file" ]]; then
    echo "Transferring: $file"
    
    # STEP 4: Push to DEV
    scp -i "$SSH_KEY" "$file" "${DEV_USER}@${DEV_HOST}:${IMPORT_DIR}"
    
    if [[ $? -eq 0 ]]; then
      echo "Success: $file"
    else
      echo "FAILED: $file"
    fi
  fi
done

# STEP 5: Clean up
rm -rf "$TMP_DIR"

You can make this script run on a cron schedule or triggered by an API/event.


πŸ” 3. Security Controls to Enforce

AreaControl
AuthenticationUse SSH keys (rotate every 90 days)
Transfer HostHardened Linux VM with no user login
LogsSend to centralized SIEM (Splunk, etc.)
File RetentionAuto-delete after X days
PermissionsRO on source, RW on dest, no bidirectional
SanitizationUse a pre-transfer job in Prod if needed

πŸ“„ 4. Optional Audit Logging Script

Add this to the script to log each event to a file or syslog:

LOG_FILE="/var/log/kiteworks-transfer.log"
echo "$(date): Transferred $file from $PROD_HOST to $DEV_HOST" >> "$LOG_FILE"

🧩 Want a Diagram?

I can generate a visual architecture diagram now β€” would you like it:

  • Simple (overview)
  • Detailed (with ports, protocols, IP zones)
  • Or stylized for presentation?

Let me know your preferred style or format (PNG, SVG, PDF).

You're absolutely right β€” and great catch.

In the original diagram I described, the sanitization step was implied, but not clearly shown as an explicit component. Let me fix that for you with a clean, security-aware architecture that explicitly shows where and how sanitization happens in a Prod-to-Dev file transfer pipeline using Kiteworks.


βœ… Updated Secure MFT Architecture with Explicit Sanitization

πŸ”„ Data Flow with Sanitization Step:

    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚     PROD SYSTEMS     β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
             β”‚
             β–Ό
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚ Prod Export Job or   β”‚
    β”‚ App Dump Generator   β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
             β”‚
             β–Ό
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚  SANITIZATION SCRIPT β”‚   ←── (Bash, Python, ETL, or DLP Preprocessor)
    β”‚  (Redacts PII/PHI)   β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
             β”‚
             β–Ό
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚  PROD KITEWORKS EXPORT DIR β”‚
    β”‚   (e.g. /export/dev)       β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
             β”‚ (SFTP/SCP)
             β–Ό
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚  INTERMEDIARY HOST   β”‚   ← Secure VM in Transfer Zone
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
             β”‚
             β–Ό
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚  DEV KITEWORKS IMPORT DIR  β”‚
    β”‚   (e.g. /import/prod-data) β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ›‘οΈ Where Sanitization Happens

βœ… Before the file reaches Kiteworks:

  • This is the ideal and recommended place.
  • Ensures sensitive data never leaves Prod in raw form.
  • You have full control (e.g., masking emails, redacting PII, filtering logs).

πŸ’‘ Why Not Inside Kiteworks?

  • Kiteworks is designed as a secure file transfer and compliance platform, not a content transformation system.
  • Sanitizing inside Kiteworks would mean the sensitive data already left Prod β€” violating most compliance standards (e.g., GDPR, HIPAA, ISO 27001 segregation of environments).

πŸ”§ Example Sanitization Point

If your team exports CSV, JSON, logs, or XML, you can add this job in the export process:

# sanitize.sh
sed -E 's/[0-9]{3}-[0-9]{2}-[0-9]{4}/[REDACTED_SSN]/g' "$1" \
  | sed -E 's/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+/\[REDACTED_EMAIL]/g' \
  > /kiteworks/export/dev/$(basename "$1")

Then schedule:

crontab -e
*/15 * * * * /opt/scripts/sanitize.sh /prod/data/dump.csv

βœ… Summary: Fix in the Diagram

LayerSanitization?Notes
App β†’ File Export❌ Raw
Sanitizerβœ… Yes β€” must be explicit
Kiteworks Prod Export Dirβœ… Only sanitized files
Intermediary VMβœ… Trusted channel only
Dev Kiteworksβœ… No raw sensitive data arrives

Would you like me to generate a diagram image of this architecture showing all key steps?

Related Documents