Terraform 为什么我需要“我需要”这个词;更新;在「;auth/token/create";读取AWS机密引擎生成的机密的路径?

Terraform 为什么我需要“我需要”这个词;更新;在「;auth/token/create";读取AWS机密引擎生成的机密的路径?,terraform,hashicorp-vault,Terraform,Hashicorp Vault,我跟着导游走 这很好,但当我使用Terraform从Vault中获取动态创建的AWS凭据时,会出现403错误 我已经解决了这个问题,但我不太明白为什么我需要添加额外的功能(特别是因为它不在指南中),以及它可能有什么问题的副作用 非工作政策: path "aws/creds/dev-role" { capabilities=["read"] } path "aws/creds/dev-role" { capabilities=["read"] } path "auth/token/cr

我跟着导游走

这很好,但当我使用Terraform从Vault中获取动态创建的AWS凭据时,会出现403错误

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

非工作政策:

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

path "auth/token/create" {
  capabilities=["update"]
}
工作政策:

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

path "auth/token/create" {
  capabilities=["update"]
}
预期的结果是,当我运行“terraform plan”时,它会给我一个它将要做的事情的列表

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

provider.vault:未能创建有限的子令牌:生成API时出错 请求

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

  • 发生1个错误:

  • 拒绝许可


我的理解是,Vault提供程序不只是尝试使用从AWS auth结果返回的Vault令牌,而是尝试从返回的令牌生成临时子令牌,以便Vault提供程序可以指定希望子令牌存活的时间

如果您愿意,这也使得以后更容易杀死一些子令牌,同时让AWS凭据生成的其他令牌保持活动状态