A Nomad web UI can reveal jobs, allocations, nodes, and other cluster state. When ACLs are enabled, the UI starts unauthenticated and applies the anonymous policy to requests without a token. That policy can be deny-all or can grant a limited read view. The difference is a configuration decision, not a property of the interface itself.

The anonymous policy is the first question

HashiCorp documentation describes the special anonymous policy as the set of capabilities available to unauthenticated requests. The UI documentation notes that an unauthenticated session may show a 403 when anonymous read access is denied. Bootstrapping guidance also explains that the UI uses the anonymous policy when no ACL token is supplied.

This makes a simple test useful. Request the UI without a token and observe the response. A login prompt is not the only important result. A readable jobs or nodes page under the anonymous policy is a more concrete exposure signal. Then test an ACL token and compare the visible resources. The effective UI difference should match the intended policy.

A bounded ZoomEye observation

On 2026-10-31, a count-only query for app="HashiCorp Nomad" returned 0 matches. A separate title="Nomad" query returned 11211. Both used page 1, page size 1, and sub_type=all. The zero app result is a valid observation for this query scope, not an API failure. The title count is also broad because the word can appear in unrelated pages or products.

The title result is therefore an inventory lead at best. It does not establish that 11211 Nomad deployments are reachable, nor that any of them allow anonymous access. The app query should not be discarded as an error because its count was zero. It simply did not identify matching assets under the selected app fingerprint and scope.

Validate the deployment

For each known Nomad deployment, record whether ACLs are enabled, what the anonymous policy allows, which namespaces are involved, and where the UI is reachable from. Check the API path as well as the browser page. A proxy rule that blocks /ui may leave the API endpoints available.

Review token handling. A browser session or reverse proxy should not inject an administrator token for every visitor. The UI should require a deliberate authentication path when the policy needs identity. If a read-only anonymous policy is intentional, limit it to the resources that a public status page actually needs.

Test namespace boundaries

Nomad ACL policies can select namespaces with exact matches and glob rules. A policy that appears narrow at the top level can grant access across several namespaces through a wildcard. Test a token against a job in an allowed namespace, a job in a denied namespace, and a node or allocation operation outside its role.

Check the anonymous policy after upgrades and ACL migrations. A permissive bootstrap policy may be copied forward as a convenience. It can then remain active after the team believes authentication is required.

Treat discovery and proof separately

ZoomEye provides a count over the selected fingerprint or title. The count is useful for finding candidate interfaces to review. It is not a configuration audit. The stronger workflow pairs the observation with a local ACL inventory and an unauthenticated API test. That combination answers whether the anonymous policy is intentional and whether the exposed view contains more than the team intended.

References