One option may be to use a CollisionPolygon2D instead of CollisionShape2D.
After instancing a CollisionPolygon2D node in a scene it is possible (by using a series of left clicks in different positions) to create a polygon that better matches the sprite than a rectangle could.
If the point-and-click creation of a polygon is still not precise enough, then the creation of the polygon can be done in the inspector by using exact (x,y) coordinates: Find in the inspector the "Polygon" property of the CollisionPolygon2D node. Then set the "size" to the number of vertices you expect your polygon to have. Then, directly below "size" you can set the (x,y) coordinates of each individual vertex. This allows precise creation of the collision polygon.