If you separate your columns not with a certain width between borders, but with a width between origins (centre of nodes), it should look better.
% arara: lualatex
\documentclass{article}
\usepackage{tikz-cd}
\usepackage{lua-visual-debug} % just for proove of symmetry. Without that, you may compile with pdfLaTeX
\begin{document}
\[\begin{tikzcd}[row sep={40,between origins}, column sep={40,between origins}]
& X_1 \times_{S_1} Y_1 \ar{rr}\ar{dd}\ar{dl} & & Y_1\vphantom{\times_{S_1}} \ar{dd}\ar{dl} \\
X_1 \ar[crossing over]{rr} \ar{dd} & & S_1 \\
& X_2 \times_{S_2} Y_2 \ar{rr} \ar{dl} & & Y_2\vphantom{\times_{S_1}} \ar{dl} \\
X_2 \ar{rr} && S_2 \ar[from=uu,crossing over]
\end{tikzcd}\]
\end{document}
If you want to have it really realistic, I would recommend to add some perspective tweaking:
% arara: pdflatex
\documentclass{article}
\usepackage{tikz-cd}
\newlength{\perspective}
\begin{document}
\setlength{\perspective}{2pt}
\[\begin{tikzcd}[row sep={40,between origins}, column sep={40,between origins}]
&[-\perspective] X_1 \times_{S_1} Y_1 \ar{rr}\ar{dd}\ar{dl} &[\perspective] &[-\perspective] Y_1\vphantom{\times_{S_1}} \ar{dd}\ar{dl} \\[-\perspective]
X_1 \ar[crossing over]{rr} \ar{dd} & & S_1 \\[\perspective]
& X_2 \times_{S_2} Y_2 \ar{rr} \ar{dl} & & Y_2\vphantom{\times_{S_1}} \ar{dl} \\[-\perspective]
X_2 \ar{rr} && S_2 \ar[from=uu,crossing over]
\end{tikzcd}\]
\setlength{\perspective}{5pt}
\[\begin{tikzcd}[row sep={40,between origins}, column sep={40,between origins}]
&[-\perspective] X_1 \times_{S_1} Y_1 \ar{rr}\ar{dd}\ar{dl} &[\perspective] &[-\perspective] Y_1\vphantom{\times_{S_1}} \ar{dd}\ar{dl} \\[-\perspective]
X_1 \ar[crossing over]{rr} \ar{dd} & & S_1 \\[\perspective]
& X_2 \times_{S_2} Y_2 \ar{rr} \ar{dl} & & Y_2\vphantom{\times_{S_1}} \ar{dl} \\[-\perspective]
X_2 \ar{rr} && S_2 \ar[from=uu,crossing over]
\end{tikzcd}\]
\setlength{\perspective}{8pt}
\[\begin{tikzcd}[row sep={40,between origins}, column sep={40,between origins}]
&[-\perspective] X_1 \times_{S_1} Y_1 \ar{rr}\ar{dd}\ar{dl} &[\perspective] &[-\perspective] Y_1\vphantom{\times_{S_1}} \ar{dd}\ar{dl} \\[-\perspective]
X_1 \ar[crossing over]{rr} \ar{dd} & & S_1 \\[\perspective]
& X_2 \times_{S_2} Y_2 \ar{rr} \ar{dl} & & Y_2\vphantom{\times_{S_1}} \ar{dl} \\[-\perspective]
X_2 \ar{rr} && S_2 \ar[from=uu,crossing over]
\end{tikzcd}\]
\setlength{\perspective}{11pt}
\[\begin{tikzcd}[row sep={40,between origins}, column sep={40,between origins}]
&[-\perspective] X_1 \times_{S_1} Y_1 \ar{rr}\ar{dd}\ar{dl} &[\perspective] &[-\perspective] Y_1\vphantom{\times_{S_1}} \ar{dd}\ar{dl} \\[-\perspective]
X_1 \ar[crossing over]{rr} \ar{dd} & & S_1 \\[\perspective]
& X_2 \times_{S_2} Y_2 \ar{rr} \ar{dl} & & Y_2\vphantom{\times_{S_1}} \ar{dl} \\[-\perspective]
X_2 \ar{rr} && S_2 \ar[from=uu,crossing over]
\end{tikzcd}\]
\end{document}
Actually, you should even rotate it a bit into isometric view. I guess, there are other solutions for TikZ around. But just to be complete:
% arara: pdflatex
\documentclass[twocolumn]{article}
\usepackage{tikz-cd}
\newlength{\perspective}
\begin{document}
\setlength{\perspective}{12pt}
\def\isofactor{0.5}
\[\begin{tikzcd}[row sep={38,between origins}, column sep={38,between origins}]
&[-\perspective] X_1 \times_{S_1} Y_1 \ar{rrd}\ar{dddd}\ar{ddl} &[\perspective] &[-\perspective] \\[-38+\isofactor\perspective]
& & & Y_1\vphantom{\times_{S_1}} \ar{dddd}\ar{ddl} & \\[-\perspective-\isofactor\perspective]
X_1 \ar[crossing over]{rrd} \ar{dddd} & & & \\[-38+\isofactor\perspective]
& & S_1 \\[\perspective-\isofactor\perspective]
& X_2 \times_{S_2} Y_2 \ar{rrd} \ar{ddl} & & \\[-38+\isofactor\perspective]
& & & Y_2\vphantom{\times_{S_1}} \ar{ddl} \\[-\perspective-\isofactor\perspective]
X_2 \ar{rrd} & & \\[-38+\isofactor\perspective]
& & S_2 \ar[from=uuuu,crossing over] &
\end{tikzcd}\]
\setlength{\perspective}{10pt}
\def\isofactor{1}
\[\begin{tikzcd}[row sep={38,between origins}, column sep={38,between origins}]
&[-\perspective] X_1 \times_{S_1} Y_1 \ar{rrd}\ar{dddd}\ar{ddl} &[\perspective] &[-\perspective] \\[-38+\isofactor\perspective]
& & & Y_1\vphantom{\times_{S_1}} \ar{dddd}\ar{ddl} & \\[-\perspective-\isofactor\perspective]
X_1 \ar[crossing over]{rrd} \ar{dddd} & & & \\[-38+\isofactor\perspective]
& & S_1 \\[\perspective-\isofactor\perspective]
& X_2 \times_{S_2} Y_2 \ar{rrd} \ar{ddl} & & \\[-38+\isofactor\perspective]
& & & Y_2\vphantom{\times_{S_1}} \ar{ddl} \\[-\perspective-\isofactor\perspective]
X_2 \ar{rrd} & & \\[-38+\isofactor\perspective]
& & S_2 \ar[from=uuuu,crossing over] &
\end{tikzcd}\]
\vfill\break
\setlength{\perspective}{8pt}
\def\isofactor{1.5}
\[\begin{tikzcd}[row sep={38,between origins}, column sep={38,between origins}]
&[-\perspective] X_1 \times_{S_1} Y_1 \ar{rrd}\ar{dddd}\ar{ddl} &[\perspective] &[-\perspective] \\[-38+\isofactor\perspective]
& & & Y_1\vphantom{\times_{S_1}} \ar{dddd}\ar{ddl} & \\[-\perspective-\isofactor\perspective]
X_1 \ar[crossing over]{rrd} \ar{dddd} & & & \\[-38+\isofactor\perspective]
& & S_1 \\[\perspective-\isofactor\perspective]
& X_2 \times_{S_2} Y_2 \ar{rrd} \ar{ddl} & & \\[-38+\isofactor\perspective]
& & & Y_2\vphantom{\times_{S_1}} \ar{ddl} \\[-\perspective-\isofactor\perspective]
X_2 \ar{rrd} & & \\[-38+\isofactor\perspective]
& & S_2 \ar[from=uuuu,crossing over] &
\end{tikzcd}\]
\setlength{\perspective}{6pt}
\def\isofactor{2}
\[\begin{tikzcd}[row sep={38,between origins}, column sep={38,between origins}]
&[-\perspective] X_1 \times_{S_1} Y_1 \ar{rrd}\ar{dddd}\ar{ddl} &[\perspective] &[-\perspective] \\[-38+\isofactor\perspective]
& & & Y_1\vphantom{\times_{S_1}} \ar{dddd}\ar{ddl} & \\[-\perspective-\isofactor\perspective]
X_1 \ar[crossing over]{rrd} \ar{dddd} & & & \\[-38+\isofactor\perspective]
& & S_1 \\[\perspective-\isofactor\perspective]
& X_2 \times_{S_2} Y_2 \ar{rrd} \ar{ddl} & & \\[-38+\isofactor\perspective]
& & & Y_2\vphantom{\times_{S_1}} \ar{ddl} \\[-\perspective-\isofactor\perspective]
X_2 \ar{rrd} & & \\[-40+\isofactor\perspective]
& & S_2 \ar[from=uuuu,crossing over] &
\end{tikzcd}\]
\end{document}
\begin{tikzcd}[row sep=25, column sep=25]
It looks nice and symmetric.between origins
approach is the “right“ one for both this question and your previous question about triangles. I suggest that you accept LaRiFaRi's answer.