The difference between sender_canonical_map and sender_canonical_maps isn't very clear. At the very least this needs documentation, but we should think hard about the attribute naming.
The use of a not_if in a resource, such as the template here, is preferred to control the idempotency of the resource. If we don't want the resource at all, we should put a conditional around the entire resource so it doesn't end up in the resource collection at all.
Adding a source attribute to the template resource would also help make this more clear, even though the default would work okay as is.
It also seems that if you use this feature as is, you still need to set sender_canonical_maps to /etc/postfix/sender_canonical yourself. If we've told the cookbook to create the file, we shouldn't have to tell it where it is too. This should be a default precedence, so that we could override it if we had super-secret send_canonical files somewhere else.