首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hashicorp Vault Database Secret Engine -跟踪Vault生成的动态用户

Hashicorp Vault Database Secret Engine -跟踪Vault生成的动态用户
EN

Stack Overflow用户
提问于 2020-05-15 05:53:14
回答 1查看 133关注 0票数 0

我已使用MySQL配置了Vault数据库密码引擎。每次我们请求临时凭据时,Vault都会生成一个唯一的用户。有时我们想知道哪个用户在数据库中执行了查询。

找到用户后,如何将Vault生成的用户名与从Vault查询凭证的用户名进行映射?例如,如果John使用令牌在以下位置查询:

代码语言:javascript
复制
database/creds/vault-mysql-role 

vault为John生成用户名:

代码语言:javascript
复制
v-token-vault-mysq-2OSTesyjNuCk9

我如何匹配用户v-token-vault-mysq-2OSTesyjNuCk9和John,并发现执行查询的是John!我已经检查了审计日志,但似乎不包含任何这样的信息。

EN

回答 1

Stack Overflow用户

发布于 2020-05-20 16:55:33

审计日志确实包含此信息,但不是直接包含。

审核日志包括发送到客户端的响应,但所有值都经过哈希处理。您可以使用sys/audit-hash endpoint计算要查找的用户名的哈希,然后在审计日志中搜索response.data.username字段设置为此哈希的记录:

代码语言:javascript
复制
$ vault write sys/audit-hash/file input=v-token-vault-mysq-2OSTesyjNuCk9
Key     Value
---     -----
hash    hmac-sha256:c78424ed34000ffdde18d51bc950507129a2fece391d12fcd1095336204ed460

$ grep hmac-sha256:c78424ed34000ffdde18d51bc950507129a2fece391d12fcd1095336204ed460 audit.log | jq .
{
  "auth": {
    "token_type": "service",
    "client_token": "hmac-sha256:5a134faa99fd944a8be6d58fff9aa0e2794241ca25972e5cd8b65feb4bec9713",
    "accessor": "NkBx2TO4h10cN2iqKboDweFE",
    "policies": [
      "default",
      "database"
    ],
    "display_name": "token-bd6b709e-99d6-bd29-fedd-fd5c97ef6564-my-app",
    "token_policies": [
      "default",
      "database"
    ]
  },
  "request": {
    "operation": "read",
    "id": "40198a5b-2796-e4f9-51b4-1094db130468",
    "client_token_accessor": "NkBx2TO4h10cN2iqKboDweFE",
    "client_token": "hmac-sha256:5a134faa99fd944a8be6d58fff9aa0e2794241ca25972e5cd8b65feb4bec9713",
    "path": "database/creds/vault-mysql-role",
    "namespace": {
      "id": "root"
    },
    "remote_address": "192.0.2.1"
  },
  "response": {
    "data": {
      "username": "hmac-sha256:f746cf79101e8aa1f5f225af1a5bcc43d34040ccb00739551aa8be6455951a25",
      "password": "hmac-sha256:c78424ed34000ffdde18d51bc950507129a2fece391d12fcd1095336204ed460"
    },
    "secret": {
      "lease_id": "database/creds/my-app/ISAf9HmK4REjTBhVnKbzJ3sw"
    }
  },
  "type": "response"
}

当然,这些值是我虚构的,但是您可以看到auth字段包含大量关于客户机的信息。

如果身份验证字段不够,您可以将auth.accessor字段与auth/token/lookup-accessor endpoint一起使用以获取更多信息,例如entity_id,它可以映射到角色(请参见Identity: Entities and Groupsidentity/lookup/entity)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61808071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档