Vault backend storage용 Cassandra 구성

Vault backend storage용 Cassandra 구성

Cassandra storage backend는 Vault의 데이터를 Apache Cassandra 클러스터에 영구 저장하는 데 사용됩니다.

출처: 문서

본문

  • 고가용성 없음 – Cassandra storage backend는 고가용성을 지원하지 않습니다.
  • 커뮤니티 지원 – Cassandra storage backend는 커뮤니티가 지원합니다. HashiCorp 직원의 검토를 거쳤지만 기술에 대해 그렇게 잘 알지 못할 수 있습니다. 문제가 발생하면 원저자에게 문의하도록 안내받을 수 있습니다.
storage "cassandra" {
  hosts            = "localhost"
  consistency      = "LOCAL_QUORUM"
  protocol_version = 3
}

Cassandra storage backend는 keyspace와 table을 자동으로 만들지 않습니다. 이 예시 구성은 가이드로 사용할 수 있지만, keyspace 복제 옵션이 클러스터에 적합한지 확인해야 합니다:

CREATE KEYSPACE "vault" WITH REPLICATION = {
    'class': 'SimpleStrategy',
    'replication_factor': 1
};

CREATE TABLE "vault"."entries" (
    bucket text,
    key text,
    value blob,
    PRIMARY KEY (bucket, key)
) WITH CLUSTERING ORDER BY (key ASC);

cassandra 파라미터

  • hosts (string: "127.0.0.1") – 연결할 Cassandra 호스트의 쉼표로 구분된 목록입니다.

  • keyspace (string: "vault") 사용할 Cassandra keyspace입니다.

  • table (string: "entries") – 데이터를 저장할 keyspace 내의 table입니다.

  • consistency (string: "LOCAL_QUORUM") 데이터를 읽고 쓸 때 사용할 일관성(consistency) 수준입니다. 설정하면 "ANY", "ONE", "TWO", "THREE", "QUORUM", "ALL", "LOCAL_QUORUM", "EACH_QUORUM", 또는 "LOCAL_ONE" 중 하나여야 합니다.

  • protocol_version (int: 2) 사용할 Cassandra 프로토콜 버전입니다.

  • username (string: "") – Cassandra 호스트로 인증할 때 사용할 사용자 이름입니다.

  • password (string: "") – Cassandra 호스트로 인증할 때 사용할 비밀번호입니다.

  • disable_initial_host_lookup (bool: false) - true로 설정하면 Vault는 system.peers 테이블에서 호스트 정보를 얻으려 시도하지 않습니다. 대신 제공된 호스트에 연결하고 호스트 정보를 조회하지 않습니다. 이는 data_centre, rack, token 정보를 사용할 수 없게 되며, 그에 따라 호스트 필터링과 token 인식 쿼리 라우팅을 사용할 수 없게 됩니다.

  • initial_connection_timeout (int: 0) - Cassandra 호스트와의 초기 연결이 수립될 때까지 기다리는 타임아웃(초)입니다. 설정하지 않으면 Cassandra 드라이버(gocql)의 기본값인 600ms가 사용됩니다.

  • connection_timeout (int: 0) - 각 쿼리의 타임아웃(초)입니다. 설정하지 않으면 Cassandra 드라이버(gocql)의 기본값인 600ms가 사용됩니다.

  • simple_retry_policy_retries (int: 0) - 여러 노드가 있는 Cassandra 클러스터에 유용합니다. 현재 마스터 노드가 다운되면 요청은 simple_retry_policy_retries 회 다음 노드에서 재시도되며 클라이언트는 오류를 받지 않습니다.

  • tls (int: 0)1이면 Cassandra 호스트와의 연결이 TLS를 사용해야 함을 나타냅니다.

  • pem_bundle_file (string: "") - 인증서와 개인 키, 인증서·개인 키·발급 CA 인증서, 또는 CA 인증서만 포함하는 파일을 지정합니다.

  • pem_json_file (string: "") - 인증서와 개인 키, 인증서·개인 키·발급 CA 인증서, 또는 CA 인증서만 포함하는 JSON 파일을 지정합니다.

  • tls_skip_verify (int: 0) - 1이면 Cassandra에 대한 TLS 호스트 검증이 비활성화됩니다. 기본값은 0입니다.

  • tls_min_version (string: "tls12") - 사용할 최소 TLS 버전입니다. 허용되는 값은 tls10, tls11, tls12 또는 tls13입니다. 기본값은 tls12입니다.

더 알아보기