The only sure way to prevent destroying by any means is to set a policy in an external system which can prevent destruction of the resource (many services even have options on individual resources to do this). The prevent_destroy feature within Terraform still needs a way to allow overriding or changing the configuration, which means the policy must always be verified outside of Terraform to be enforceable.