Hi Im setting up Vault HA using Integrated Storage. Im confused.
What is considered best practice, the following config where each node has its own cert bundle:
storage "raft" {
path = "/Users/foo/raft/"
node_id = "node1"
retry_join {
leader_api_addr = "http://127.0.0.2:8200"
leader_ca_cert_file = "/path/to/ca1"
leader_client_cert_file = "/path/to/client/cert1"
leader_client_key_file = "/path/to/client/key1"
}
retry_join {
leader_api_addr = "http://127.0.0.3:8200"
leader_ca_cert_file = "/path/to/ca2"
leader_client_cert_file = "/path/to/client/cert2"
leader_client_key_file = "/path/to/client/key2"
}
retry_join {
leader_api_addr = "http://127.0.0.4:8200"
leader_ca_cert_file = "/path/to/ca3"
leader_client_cert_file = "/path/to/client/cert3"
leader_client_key_file = "/path/to/client/key3"
}
retry_join {
auto_join = "provider=aws region=eu-west-1 tag_key=vault tag_value=... access_key_id=... secret_access_key=..."
}
}
I also see many examples having it like this:
listener "tcp" {
tls_disable = 0
address = "[::]:8200"
cluster_address = "[::]:8201"
tls_client_ca_file = "/vault/certs/server.ca.pem"
tls_cert_file = "/vault/certs/vault.crt"
tls_key_file = "/vault/certs/vault.key"
tls_require_and_verify_client_cert = true
}
storage "raft" {
path = "/vault/data"
retry_join {
leader_api_addr = "https://vault-0.vault-internal:8200/"
leader_ca_cert_file = "/vault/certs/server.ca.pem"
leader_client_cert_file = "/vault/certs/vault.crt"
leader_client_key_file = "/vault/certs/vault.key"
}
retry_join {
leader_api_addr = "https://vault-1.vault-internal:8200/"
leader_ca_cert_file = "/vault/certs/server.ca.pem"
leader_client_cert_file = "/vault/certs/vault.crt"
leader_client_key_file = "/vault/certs/vault.key"
}
retry_join {
leader_api_addr = "https://vault-2.vault-internal:8200/"
leader_ca_cert_file = "/vault/certs/server.ca.pem"
leader_client_cert_file = "/vault/certs/vault.crt"
leader_client_key_file = "/vault/certs/vault.key"
}
Which option should be preferred?
How exactly does the 2nd example work, do all nodes use the same client cert & key?