Perfect filtering of high frequencies in 2D FFT (Multidimensional 2/3 Rule)

Let $u_n$ be an array containing discrete values of the function $u(x,y)$. Performing a 2D FFT to this array we obtain $\hat{u_n}$ representing the values of $\hat{u}(k_x,k_y)$. I would like to perform something like the 2/3 rule often used in pseudospectral methods for fluid dynamics:

$$\hat{u}(k)=0\qquad if \quad k>(2/3)k_{max}$$

I know how to do this in 1D, but I am having trouble implementing it in 2D. I have tried setting to zero all $\hat{u}(k_x,k_y)$ for which $k=\sqrt{k_x^2+k_y^2}>(2/3)k_{max}$ but this method is affecting the energy of my lower frequencies, which I would like to be preserved without numerical dissipation. I would like to obtain something like this:

Which I have only been able to obtain setting a filter in terms of the dependent magnitude (Normalized Energy), and not regarding the wavenumber $k=\sqrt{k_x^2+k_y^2}$ as I would want.

I would appreciate if someone pointed me in the right direction to tackle my problem.