为什么我需要在“ auth / token / create”路径上具有“更新”功能才能读取AWS Secrets引擎生成的密钥?

时间:2019-06-24 18:35:23

标签: 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"]
}

工作政策:

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

path "auth/token/create" {
  capabilities=["update"]
}

预期结果是,当我运行“地形计划”时,它会列出要执行的操作。

不包含“更新”功能时出现的错误是:

  

provider.vault:无法创建受限子令牌:制作API时出错   请求。

     

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

     
      
  • 发生1个错误:

  •   
  • 权限被拒绝

  •   

1 个答案:

答案 0 :(得分:1)

我的理解是,保险柜提供商不仅尝试使用从AWS auth结果返回的保险柜令牌,而且尝试从返回的令牌中制作一个临时的子令牌,以便保险库提供商可以指定其希望使用多长时间。要生存的子代币。

如果您愿意的话,这也使以后更容易杀死一些子代币,同时还保留了从您的AWS凭证生成的其他代币。