A better answer is "refuse to do it without resigning". To begin with it gives you a better chance of preventing it, because maybe they back down, whereas if you do it or leave, someone does it. Then if they fire you, well, that's not really that much worse for you than resigning, but it's worse for them because now they're retaliating against someone for having ethical objections. How does that look in the media or in front of a jury? Which is all the more incentive for them to back down.
The problem with "well just do it a little bit" is that you can travel arbitrarily far in the wrong direction by taking one step at a time.