为什么我需要“身份验证/令牌/创建”路径上的“更新”功能来读取 AWS 秘密引擎生成的秘密?

Sir*_*ivi 6 terraform hashicorp-vault

我遵循了https://www.hashicorp.com/resources/best-practices-using-hashicorp-terraform-with-hashicorp-vault 上的指南。

这很好,但是当我使用 Terraform 从 Vault 获取动态创建的 AWS 凭证时,我收到 403 错误。

我已经解决了这个问题,但我不太明白为什么我需要添加额外的功能(特别是因为它不在指南中)以及它可能有哪些有问题的副作用。

非工作政策:

path "aws/creds/dev-role" {
  capabilities=["read"]
}
Run Code Online (Sandbox Code Playgroud)

工作方针:

path "aws/creds/dev-role" {
  capabilities=["read"]
}

path "auth/token/create" {
  capabilities=["update"]
}
Run Code Online (Sandbox Code Playgroud)

预期的结果是,当我运行“terraform plan”时,它会给我一个它将要做的事情的列表。

当我不包含“更新”功能时,我得到的错误是:

provider.vault:无法创建有限的子令牌:发出 API 请求时出错。

RL:POST https://:8200/v1/auth/token/create 代码:403。错误:

  • 发生了 1 个错误:

  • 没有权限

Dav*_*tia 6

我的理解是,Vault 提供商不仅仅尝试使用从 AWS 身份验证结果返回的 Vault 令牌,而是尝试从返回的令牌创建临时子令牌,以便 Vault 提供商可以指定它希望子令牌保留多长时间。居住。

如果您愿意,这还可以让您在以后更轻松地终止某些子令牌,同时保留从 AWS 凭证生成的其他令牌。