Hi,
My company has a bunch of teams and I need to give each team its own "master" token, such that a token can create new policies and new child tokens (with the policies). The plan is that each team manages its own secret/teamX/* secret space and doesn't have access to other team's secret spaces. The complication is that each team can has multiple services and each service should be able to read only its own secret/teamX/serviceY/* subspace. The team's "master" token will be used to write all the services configurations, create a new policy for each service and then a new token with the policy.
The configuration I tried (below) doesn't work:
teamA_master_policy.hcl:
path "secret/teamA/*" {
capabilities = ["create", "read", "update", "delete", "list"]
}
path "auth/token/*" {
capabilities = ["create", "read", "update", "delete", "list"]
}
path "sys/policy/*" {
capabilities = ["create"]
}
The problem is when I create a new teamA_service1_policy and use it to create new token for service1, the token cannot be created because policy teamA_service1_policy is new and not in "master" token.
I've read carefully Vault documentation and google groups and have not found a solution which would not break security requirement that teams are not allowed to read each others subspaces. Is it possible to create such "master" keys in Vault?