Defining a Service Splitter causes ACLS to be ignored - Consul 1.8.0
- Dominant language
- Go
- Stars
- 30.1k
- Forks
- 4.6k
- Avg merge
- 2d 6h
- Merged PRs (30d)
- 43
Description
#### Overview of the Issue
When defining a service splitter, acls are no longer respected.
#### Reproduction Steps
1. Make sure that Consul is set up with ACLS and Default Deny
2. Set up ACL Intentions to allow services that are about to be deployed
[intentions.txt](https://github.com/hashicorp/consul/files/4866145/intentions.txt)
3. Run the nomad job attached against a cluster with ACLS enabled and default deny.
[fake-service.nomad.txt](https://github.com/hashicorp/consul/files/4866135/fake-service.nomad.txt)
4. Service Should function as expected when you hit the endpoint and the call chain should show.
5. Change any of the ACLS to "deny" that were configured above
6. Verify the URL now has an error in the call chain on the component you set to deny. Set the ACL to allow and the component should function
7. Add Splitters and resolvers
[resolvers.txt](https://github.com/hashicorp/consul/files/4866188/resolvers.txt)
[splitters.txt](https://github.com/hashicorp/consul/files/4866170/splitters.txt)
8. Verify URL still shows full chain (it should)
9. Change the ACL back to deny (that was tested in step 5).
10. Hit the URL (note that the ACL is not being applied and the step that failed in 5, that should fail here, is still succeeding)
11. Remove the splitter via the CLI, for example:
./consul config delete -kind service-splitter -name fake-service-database
12. Verify the url again - ACLs are now being respected again.
I am unsure why or what it is about splitters that cause this behavior but we only see it when adding splitting to our services.
Contributor guide
Assessment
This issue has not been assessed yet.