Let's go over point by point Aimilos,
Point 2 - If I understand your requirement correctly, you would like to control who can access the data, hence you want to split it to logical units so you can say this team can access this data, and the other team can access that data. This is perfectly valid, yet M3DB AFAIK (I'm not a maintainer), doesn't yet have any access control of any kind, so: no users, no roles/permissions, as opposed to InfluxDB. This is something I believe can be added by the community but someone needs to take it up. Regarding 2nd requirement of having 2 logical data units, and have them aggregated separately - as I mentioned before - it's not currently supported.
I can suggest a work-around:
a) Add a label, like team=A, to distinguish between the logical data units. So all metrics for team A will have additional label team=A. M3DB supports adding this label for you on any query, by specifying the filter on an HTTP header when you query, so it saves you from parsing the query to add it.
b) Add service which sits in front of M3Query, which will be in charge of authentication, and authorization. The action items of this service would be to add the filter on the label you use like "team"
Point 4 - essentially you can run it all in one - I think I read some where it can be done. Alternatively you can run all docker containers on the same machine. I think M3DB should be improved on that front so it will easy to run it a single process, so you can get started easily like you do with InfluxDB. The good thing will be when you want to scale out, then M3DB can support it while InfluxDB doesn't.