VAULT_CLIENT_TOKEN每24小时保持过期

时间:2018-07-25 12:45:46

标签: concourse hashicorp-vault

环境:

Vault + Consul,所有最新信息。将Concourse(3.14.0)与Vault集成。所有令牌和密钥都是一次性的。这只是一个测试集群。

问题:

无论我做什么,我都会得到768h作为token_duration的值。另外,无论我做什么,我的代币通宵都会持续过期。我必须重新生成令牌并将其传递给Concourse并重新启动服务。我希望此令牌不过期。

[root@k1 etc]#  vault write auth/approle/login role_id="34b73748-7e77-f6ec-c5fd-90c24a5a98f3" secret_id="80cc55f1-bb8b-e96c-78b0-fe61b243832d" duration=0
Key                     Value
---                     -----
token                   9a6900b7-062d-753f-131c-a2ac7eb040f1
token_accessor          171aeb1c-d2ce-0261-e20f-8ed6950d1d2a
token_duration          768h
token_renewable         true
token_policies          ["concourse" "default"]
identity_policies       []
policies                ["concourse" "default"]
token_meta_role_name    concourse
[root@k1 etc]#

因此,我在会议厅中使用令牌-9a6900b7-062d-753f-131c-a2ac7eb040f1来访问秘密,一切都很好,直到24小时之后。它过期了。

我将持续时间设置为0,但这没有帮助。

$ vault write auth/approle/role/concourse secret_id_ttl=0 period=0 policies=concourse secret_id_num_uses=0 token_num_uses=0

我修改过的vaultconfig.hcl看起来像这样:

storage "consul" {
  address = "127.0.0.1:8500"
  path    = "vault/"
  token = "95FBC040-C484-4D16-B489-AA732DB6ADF1"
  #token = "0b4bc7c7-7eb0-4060-4811-5f9a7185aa6f"
}

listener "tcp" {
  address     = "0.0.0.0:8200"
  cluster_address = "0.0.0.0:8201"
  tls_min_version = "tls10"
  tls_disable = 1
}

cluster_addr = "http://192.168.163.132:8201"
api_addr = "http://192.168.163.132:8200"
disable_mlock = true
disable_cache = true
ui = true
default_lease_ttl = 0
cluster_name = "testcluster"
raw_storage_endpoint = true

我的大堂政策是香草:

[root@k1 etc]# vault policy read concourse
path "concourse/*" {
  policy = "read"
  capabilities =  ["read", "list"]
}
[root@k1 etc]#

查找令牌-9a6900b7-062d-753f-131c-a2ac7eb040f1

[root@k1 etc]# vault token lookup 9a6900b7-062d-753f-131c-a2ac7eb040f1
Key                  Value
---                  -----
accessor             171aeb1c-d2ce-0261-e20f-8ed6950d1d2a
creation_time        1532521379
creation_ttl         2764800
display_name         approle
entity_id            11a0d4ac-10aa-0d62-2385-9e8071fc4185
expire_time          2018-08-26T07:22:59.764692652-05:00
explicit_max_ttl     0
id                   9a6900b7-062d-753f-131c-a2ac7eb040f1
issue_time           2018-07-25T07:22:59.238050234-05:00
last_renewal         2018-07-25T07:24:44.764692842-05:00
last_renewal_time    1532521484
meta                 map[role_name:concourse]
num_uses             0
orphan               true
path                 auth/approle/login
policies             [concourse default]
renewable            true
ttl                  2763645
[root@k1 etc]#

任何指针,反馈都非常感谢。

1 个答案:

答案 0 :(得分:1)

在创建新的AppRole时,尝试设置token_ttltoken_max_ttl参数而不是secret_id_ttl

您还应该检查您的保险柜default_lease_ttlmax_lease_ttl,它们可能设置为24h