GTM has permissions at two levels: the account and each container. At container level you choose between read, edit, approve and publish. Hand out edit rights generously and publish rights to a few people. That single split means someone reviews a change before it goes live.
GA4 uses the roles viewer, analyst, editor and administrator, and you can set them per property. Invite someone as administrator only when they also need to hand out access.
In BigQuery, grant access per dataset rather than on the whole project. Marketing reads the marts, the data team writes the models, and the raw layer stays closed.
Write down what happens when someone leaves. People who move on often sit in GTM, GA4, your Cloud project and your ad accounts for months afterwards, and sometimes a scheduled export still runs under their personal account. Put service accounts and shared ownership on the organisation, not on a person.