Terraform 将数据写入pki/issue/vault服务器时出错:此角色不允许使用公共名称

Terraform 将数据写入pki/issue/vault服务器时出错:此角色不允许使用公共名称,terraform,hashicorp-vault,Terraform,Hashicorp Vault,将vault fqdn从vault.*.abc.com迁移到vault.*.def.com时。点击这个错误。已经在route53中创建了CNAME,并且可以解析域 URL: PUT https://ap-ops-vault.***.com/v1/pki/issue/vault-server Code: 400. Errors: * common name vault.**.**.**.def.com not allowed by this role``` 如果没有看到您的Vault角色配

将vault fqdn从
vault.*.abc.com
迁移到
vault.*.def.com
时。点击这个错误。已经在route53中创建了CNAME,并且可以解析域


URL: PUT https://ap-ops-vault.***.com/v1/pki/issue/vault-server
Code: 400. Errors:

 * common name vault.**.**.**.def.com not allowed by this role```

如果没有看到您的Vault角色配置,我猜您已经设置了
allowed_domains
字段,其中包括
abc.com
,但没有
def.com
。您需要更新角色以允许来自新域的名称

在地形中可能是这样的:

resource "vault_pki_secret_backend_role" "role" {
  backend = "${vault_pki_secret_backend.pki.path}"
  name    = "my_role"
  ...
  allowed_domains = ["abc.com", "def.com"]
  allow_subdomains = true
  ...
}
文件:


看起来像是AWS IAM角色限制-您试图从何处执行此请求?因此部署是从另一个帐户中的服务器进行的。IAM角色作为完全ec2访问、完全vpc访问、完全route 53访问、访问存储vault环境状态的s3存储桶、在其他帐户中担任IAM角色的访问以及对ssmI的访问尝试了以下操作:
vault write pki/issue/vault server enforce\u hostnames=false common\u name=vault.*.def.com
。这给了我同样的错误。更令人困惑的是,使用原始域
abc.com
将完成此写入操作(是将强制设置为true还是false)。旧域名已被删除,CNAME不再有效,我不理解这种行为
enforce\u hostnames
参数不是这样设置的-您需要使用它来配置您正在使用的角色。如果使用
vault.*.*.*.*.abc.com
有效,则可能是您的角色具有
allowed_domains
字段集()-您需要更新该列表以包含新域。我刚刚更新了答案,建议查看
allowed_domains
,感谢您指出这一点。通过将新域添加到allowed_domains字段集中,问题得以解决。很高兴提供帮助。如果这个答案能解决你的问题,请随意投票并接受它