我遵循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发生错误:
权限被拒绝
我的理解是,保管库提供程序不仅尝试使用从AWS auth结果返回的保管库令牌,而且尝试从返回的令牌中制作临时子令牌,以便保管库提供程序可以指定希望该子代保留多长时间生存令牌。
[这也使以后更容易杀死一些子令牌,同时保留从您的AWS凭证生成的其他令牌。