Vault backend storage용 Zookeeper 구성

Vault backend storage용 Zookeeper 구성

Zookeeper storage backend는 Vault의 데이터를 Zookeeper에 영구 저장하는 데 사용됩니다.

출처: 문서

본문

  • 고가용성 – Zookeeper storage backend는 고가용성을 지원합니다.
  • 커뮤니티 지원 – Zookeeper storage backend는 커뮤니티가 지원합니다. HashiCorp 직원의 검토를 거쳤지만 기술에 대해 그렇게 잘 알지 못할 수 있습니다. 문제가 발생하면 원저자에게 문의하도록 안내받을 수 있습니다.
storage "zookeeper" {
  address = "localhost:2181"
  path    = "vault/"
}

zookeeper 파라미터

  • address (string: "localhost:2181") – Zookeeper 인스턴스의 주소를 쉼표로 구분된 목록으로 지정합니다.

  • path (string: "vault/") – 데이터가 저장될 Zookeeper의 경로를 지정합니다.

다음 선택적 설정을 사용해 zNode ACL을 구성할 수 있습니다:

경고! auth_infoznode_owner가 모두 설정되지 않으면 backend는 Zookeeper로 인증하지 않고 모든 노드에 OPEN_ACL_UNSAFE ACL을 설정합니다. 이 시나리오에서 Zookeeper에 연결된 누구나 Vault의 znodes를 변경할 수 있고, 잠재적으로 Vault를 서비스 불능 상태로 만들 수 있습니다.

  • auth_info (string: "") – Zookeeper AddAuth 형식의 인증 문자열을 지정합니다. 예를 들어 digest:UserName:Password를 사용해 digest 메커니즘으로 사용자 UserName, 비밀번호 Password로 인증할 수 있습니다.

  • znode_owner (string: "") – 지정하면 Vault는 Zookeeper ACL 형식의 Schema 및 User 부분을 통해 여기 식별된 ACL에 항상 모든 권한(CRWDA)을 설정합니다. 예상 형식은 schema:user-ACL-match입니다. 예를 들어:

    # Access for user "UserName" with corresponding digest "HIDfRvTv623G=="
    digest:UserName:HIDfRvTv623G==
    
    # Access from localhost only
    ip:127.0.0.1
    
    # Access from any host on the 70.95.0.0 network (Zookeeper 3.5+)
    ip:70.95.0.0/16
    
  • tls_enabled (bool: false) – Zookeeper backend와의 TLS 통신을 활성화해야 하는지 여부를 지정합니다.

  • tls_ca_file (string: "") – Zookeeper 통신에 사용되는 CA 인증서 파일의 경로를 지정합니다. 같은 파일에 여러 CA 인증서를 제공할 수 있습니다.

  • tls_cert_file (string: "") (선택 사항) – Zookeeper 통신용 클라이언트 인증서의 경로를 지정합니다.

  • tls_key_file (string: "") – Zookeeper 통신용 개인 키의 경로를 지정합니다.

  • tls_min_version (string: "tls12") – 사용할 최소 TLS 버전을 지정합니다. 허용되는 값은 "tls10", "tls11", "tls12" 또는 "tls13"입니다.

  • tls_skip_verify (bool: false) – TLS 인증서 검증을 비활성화합니다. 이 옵션 사용은 권장되지 않습니다.

  • tls_verify_ip (bool: false) - 이 속성은 'tls_skip_verify'가 false로 설정된 경우에만 작동합니다. 'tls_verify_ip'가 'true'로 설정되면 zookeeper 서버의 IP가 제시된 인증서의 CN/SAN 항목에서 검증됩니다. 'false'로 설정되면 서버의 DNS 이름이 인증서의 CN/SAN 항목에서 검증됩니다.

zookeeper 예시

사용자 지정 주소 및 경로

이 예시는 사용자 지정 포트에서 실행되는 Zookeeper 설치와 통신하고 사용자 지정 경로에 데이터를 저장하도록 Vault를 구성하는 방법을 보여줍니다.

storage "zookeeper" {
  address = "localhost:3253"
  path    = "my-vault-data/"
}

zNode Vault 사용자 전용

이 예시는 "vaultUser" 사용자에게만 접근을 허용하는 ACL을 모든 zNode에 설정하도록 Vault에 지시합니다. Zookeeper의 ACL 모델에 따라 znode_owner의 digest 값은 znode_owner의 사용자와 일치해야 합니다.

storage "zookeeper" {
  address = "localhost:2181"
  path    = "vault/"

  auth_info    = "digest:vaultUser:a4MvW0ybME4="
  znode_owner  = "digest:vaultUser:a4MvW0ybME4="
}

더 알아보기