Any country has the right to grant asylum if it believes in the cause of the one seeking it. The Russians obviously saw that this man needed protection. Actually, there is still debate over whether he did something wrong to the United States or helped our civilians, so this is perfectly proper.
Edward Snowden is wanted by the US Department of Justice. He is clearly guilty, and he should pay for his crimes. Russia has caused an international incident by harboring this criminal. China would not grant him assylum because they knew he was a criminal. Russia is trying to instigate a conflict with America by protecting Snowden.