在策略路径中使用令牌的用户名

May*_*ain 5 hashicorp-vault

Userpass我有一个 Vault 服务器,用户将使用身份验证方法并使用秘密引擎登录kv。结构如下 -

  -- user-kv
         -- u1
              -- u1-secret1
              -- u1-secret2
         -- u2
              -- u2-secret1
              -- u2-secret2
         -- u3
              -- u3-secret1
Run Code Online (Sandbox Code Playgroud)

其中 、u1u2u3使用 auth 登录的用户的用户名Userpass

现在,对于每个用户,我只想允许访问他的路径。他的路径指的是这个结构user-kv/<username>/例如 -

u1 --> user-kv/u1/*
u2 --> user-kv/u2/*
u3 --> user-kv/u3/* 
and so on....
Run Code Online (Sandbox Code Playgroud)

我目前正在通过为每个用户创建单独的策略并将其分配给他来执行此操作。我认为这不是正确的方式,因为当用户数量增加时,维护将变得困难。

有没有办法在策略的路径中指定登录用户的用户名。就像是 -

path user-kv/{{username}}/* {
     capabilities = ["read", "update", "create" ]
}
Run Code Online (Sandbox Code Playgroud)

我尝试过使用模板化策略,但它不起作用。

  • 路径 user-kv/{{identity.entity.metadata.username}}/*
  • 路径 user-kv/{{identity.entity.name}}/*

我可以做类似的事情user-kv/+/*,但这意味着每个用户都可以访问其他用户的路径。

谁能指出一种更优雅的方式或提供进一步研究的链接?

lxo*_*xop 0

抱歉,我目前没有运行保险柜来检查这一点,但我相信您尝试的模板化策略应该有效。关键是创建一个与 userpass 用户关联(通过别名)的身份。我已经有一段时间没有这样做了,所以我不记得细节了,但请查看文档: https: //www.vaultproject.io/docs/secrets/identity