Hey <@U0AAHQ19Z8C> quick question for you on migra...
# infisical-help
w
Hey @Saif Rahman quick question for you on migrating to managed agent vault from self-hosted. We use passthrough services pretty heavily for things like dependency registries. I'm not seeing the equivalent in the "Add proxied service" path in the web app
s
So you have certain hosts that you don’t have credentials for (and don’t need) but you want to allow them through the proxy, right?
w
Yup
s
By default, Agent Proxy does this. If you haven’t configured a proxied service for a host, it is allowed.
Having this default means you don’t have anything to block certain hosts - for which we’ll add support on the proxied services soon.
w
ok yeah sorry we also use the config to deny unmatched hosts
Which is a toggle in the open source AV and I think would be
--unmatched-host block
in the cli?
s
But it would block all requests for which you don’t have a configured proxied service
So is your setup blacklist heavy or allowlist heavy?
Because the thought process that went into this was that if the agents don’t have creds for certain hosts the external service would anyway deny them
And if they don’t that means it’s a public endpoint
w
I guess for our use-case (coding agents) we sort of need to have both. we basically need • restricted network access to avoid data exfiltration • credential injection so agents can access sensitive resources • access to some trusted public endpoints, like package registries, so agents can install deps
s
You can try the
--unmatched-host block
and add the services you wanna allow. If some of them don’t require a credential, just choose a substitution that will never be possible.
Some of the things we’ll add soon to proxied services: • Allow certain HTTP methods • Deny all (so you can use the
--unmatched-host allow
but still deny certain hosts instead of all hosts) • Ability to create proxied services without the limitation of adding any header/substitution (so you can use
--unmatched-host block
but still allow certain hosts that don’t require any credentials)
For your three requirements above, it is already possible today: 1. use
--unmatched-host block
2. create proxied services with headers/substitution 3. create proxied services with impossible substitutions
w
cool, ok yeah that makes sense as a work around, thank you!
could I actually ask you two more questions? Would either of these two use cases fit into the mental model of how you think about agent proxy? 1. We have individual developers talking to coding agents that today share a single vault on the self-hosted agent vault. In reality, different developers have different access to tooling. Ideally, we could configure this so that most of the services are shared, but some services are tied to an individual's credentials. It feels related to importing folders in Infisical? 2. We have a service we use for agents to talk to a shared resource where they can spin up their own little resources. There is one credential that is injected for all agents, but agents are supposed to only talk to their workspace on the service. We could enforce this with header replacement in the agent proxy, but it would need to be configured separately for every single agent/sandbox, of which there could be many running at one time. I can't really map this kind of agent-instance-specific service to the data model, but just wanted to check if I'm thinking about it correctly!
s
1. This is a common use-case that we will support in the future, and it will mostly be done via Personal overrides. Even though both Agent Proxy and Personal Overrides are part of Infisical Secrets Management now, supporting it is currently not possible as the Proxy uses its own identity to fetch the secrets and that’s why personal overrides of the agents don’t work. 2. Is this service that the agents talk to to access shared resources/create their own resources something you can configure? Like how the auth works etc.? What is a workspace, is it scoped with the credentials used to login to it?
w
Ah ok, that's great on personal overrides. That's exactly what I'm imagining. Yeah this one is less crucial but basically the idea is that each sandbox has some concept of an identity and the service could be parameterized by the identity. I guess a super simple version of this is like all agents are logging to one datadog account (shared cred) but the proxy appends to the payload body some kind of agent identifier that the agents can't spoof.
s
Hmm, for this can we use personal overrides as well?
Like configure the proxied service to inject a secret in the body, and make each agent have their own override for that secret?
Also, until the personal overrides are supported, there is a workaround, similar to how you do it in Agent Vault, which is by adding redundancy: You can folders per agent and create duplicate proxied services for each. Currently, imports and references are supported for secrets but not proxied services.