Vault backend storage용 MySQL 구성
Vault backend storage용 MySQL 구성
MySQL storage backend는 Vault의 데이터를 MySQL 서버 또는 클러스터에 영구 저장하는 데 사용됩니다.
출처: 문서
본문
- 고가용성 – MySQL storage backend는 고가용성을 지원합니다. mysql 잠금 함수가 동작하는 방식 때문에 연결이 죽으면 잠금이 손실됩니다. 선출된 리더가 자주 바뀌는 것을 원하지 않는다면 MySQL 구성의
interactive_timeout과wait_timeout을 기본값(8시간)보다 훨씬 높게 늘릴 수 있습니다. - 커뮤니티 지원 – MySQL storage backend는 커뮤니티가 지원합니다. HashiCorp 직원의 검토를 거쳤지만 기술에 대해 그렇게 잘 알지 못할 수 있습니다. 문제가 발생하면 원저자에게 문의하도록 안내받을 수 있습니다.
storage "mysql" {
username = "user1234"
password = "secret123!"
database = "vault"
}
mysql 파라미터
-
address(string: "127.0.0.1:3306")– MySQL 호스트의 주소를 지정합니다. -
database(string: "vault")– 데이터베이스의 이름을 지정합니다. 데이터베이스가 존재하지 않으면 Vault가 만들려 시도합니다. -
table(string: "vault")– 테이블의 이름을 지정합니다. 테이블이 존재하지 않으면 Vault가 만들려 시도합니다. -
tls_ca_file(string: "")– TLS로 연결하기 위한 CA 인증서의 경로를 지정합니다. -
plaintext_connection_allowed(string: "")- 평문으로 자격 증명을 보낼 수 있는 권한을 제공합니다. 값을 제공하지 않고 TLS CA 인증서도 제공하지 않으면 자격 증명이 평문으로 전송되고 있다는 경고가 표시됩니다. 향후에는 이를 인정하지 않거나 TLS를 사용하지 않으면 서버 시작이 방지될 것입니다. 이는 자격 증명이 우연히 유출되지 않도록 보장하기 위한 것입니다. -
max_parallel(string: "128")– MySQL에 대한 최대 동시 요청 수를 지정합니다. -
max_idle_connections(string: "0")– 데이터베이스에 대한 최대 유휴 연결 수를 지정합니다. 0은 값을 기본 유휴 연결 2개로, 음수 값은 유휴 연결을 비활성화합니다.max_parallel보다 크면 같아지도록 줄입니다. -
max_connection_lifetime(string: "0")– 연결이 재사용될 수 있는 최대 시간(초)을 지정합니다. 0초 이하이면 연결이 영원히 재사용됩니다.
또한 Vault는 다음 인증 정보를 요구합니다.
-
username(string: <required>)– 데이터베이스에 연결할 MySQL 사용자 이름을 지정합니다. 이 값은VAULT_MYSQL_USERNAME환경 변수로도 설정할 수 있습니다. -
password(string: <required>)– 데이터베이스에 연결할 MySQL 비밀번호를 지정합니다. 이 값은VAULT_MYSQL_PASSWORD환경 변수로도 설정할 수 있습니다.
고가용성 파라미터
-
ha_enabled(string: "false")- 고가용성 모드가 활성화되었는지 여부를 지정합니다. 부울 값이지만 "true" 또는 "false" 같은 문자열로 지정됩니다. -
lock_table(string: "vault_lock")– 고가용성 정보를 저장하는 데 사용할 테이블의 이름을 지정합니다. 기본적으로table이름 뒤에_lock을 붙인 것입니다. 테이블이 존재하지 않으면 Vault가 만들려 시도합니다.
mysql 예시
사용자 지정 데이터베이스 및 테이블
이 예시는 사용자 지정 데이터베이스와 테이블 이름을 사용하도록 MySQL backend를 구성하는 방법을 보여줍니다.
storage "mysql" {
database = "my-vault"
table = "vault-data"
username = "user1234"
password = "pass5678"
}