ACLs are userID based.
I typically put “dangerous” services in a folder called useWithCaution, so that it shows up as part of the namespace. Doesn’t actually stop anyone from calling the service, but does tend to make other developers think before using in their service.
If you were willing to do some coding… If dangerousService was a Java service, you could use Service.getCallingService to verify it was being called by an “authorized” parent (perhaps from a list of authorized parents). If it was a Flow, you could use use the PSUtilities equivalent (misc:getServiceName, I think).
However, this does require coding. I am not aware of any configuration mechanism for achieving what you want.
#Integration-Server-and-ESB#Flow-and-Java-services#webMethods