Description of problem:
This is an internal JIRA representation of the upstream issue kubectl issue that was opened at: https://github.com/kubernetes/kubectl/issues/1568.
TL;DR - You can block a "cordon" event via RBAC but the drain will proceed anyway. There is no way to block a drain event since it's handled entirely within the CLI.
I'm sorry if this doesn't fit with this component - I wasn't sure where to add it.
If there's also a better way to track upstream issues internally I'm also more than willing to update whatever I need to in order to follow that process.
Thanks!