Vault transit 키링
Vault transit 키링 (Vault Transit Keyring)
이 페이지는 Nomad 에이전트 구성의 keyring "transit" 블록에서 Vault transit 시크릿 엔진 키링을 구성하는 방법에 대한 참조 정보를 제공해요. Vault 클러스터 주소, 키 이름, 마운트 경로, 네임스페이스, TLS 인증, 그리고 Vault 토큰 자동 갱신 비활성화 여부를 구성해요. Vault의 transit 시크릿 엔진에 정의된 키의 회전을 Nomad가 어떻게 지원하는지도 알아봐요.
출처: 문서
본문
Vault transit 키링은 Nomad가 자체 키링을 래핑하기 위해 Vault의 transit 시크릿 엔진을 사용하도록 구성해요. 이 예시는 필요한 모든 값을 제공해 Nomad 구성 파일을 통해 Vault transit을 구성하는 방법을 보여줘요.
keyring "transit" {
active = true
name = "example"
# fields specific to transit
address = "https://vault:8200"
token = "s.Qf1s5zigZ4OX6akYjQXJC1jY"
disable_renewal = "false"
# Key configuration
key_name = "transit_key_name"
mount_path = "transit/"
namespace = "ns1/"
# TLS Configuration
tls_ca_cert = "/etc/vault/ca_cert.pem"
tls_client_cert = "/etc/vault/client_cert.pem"
tls_client_key = "/etc/vault/ca_cert.pem"
tls_server_name = "vault"
tls_skip_verify = "false"
}
transit 매개변수 (Parameters)
이 매개변수들은 Nomad 구성 파일의 keyring 스탠자에 적용돼요.
key_name(string: <required>)— 암호화·복호화에 사용할 transit 키예요.key_id_prefix(string: "")— 이 transit 키링으로 래핑된 값의 키 ID에 추가할 선택적 문자열이에요. 두 transit 키링을 구분하는 데 도움을 줄 수 있어요.mount_path(string: <required>)— transit 시크릿 엔진의 마운트 경로예요.disable_renewal(string: "false")— Vault Agent 같은 Vault 외부의 다른 메커니즘으로 토큰의 수명주기를 관리하는 경우 토큰의 자동 갱신을 비활성화해요.
keyring 블록에 다음 매개변수를 설정해요. 여기서 설정하지 않으면 Nomad는 서버의 vault 블록에 설정된 값을 사용해요. 필수 필드는 여기 또는 vault 블록에 설정해야 해요.
address(string: <required>)— Vault 클러스터의 전체 주소예요. VAULT_ADDR 환경 변수로도 지정할 수 있어요.token(string: <required>)— 사용할 Vault 토큰이에요. VAULT_TOKEN 환경 변수로도 지정할 수 있어요.namespace(string: "")— transit 시크릿 엔진의 네임스페이스 경로예요. VAULT_NAMESPACE 환경 변수로도 지정할 수 있어요.tls_ca_cert(string: "")— Vault 서버와의 통신에 사용되는 CA 인증서 파일의 경로를 지정해요. VAULT_CACERT 환경 변수로도 지정할 수 있어요.tls_client_cert(string: "")— Vault 서버와의 통신을 위한 클라이언트 인증서의 경로를 지정해요. VAULT_CLIENT_CERT 환경 변수로도 지정할 수 있어요.tls_client_key(string: "")— Vault 서버와의 통신을 위한 개인 키의 경로를 지정해요. VAULT_CLIENT_KEY 환경 변수로도 지정할 수 있어요.tls_server_name(string: "")— TLS를 통해 Vault 서버에 연결할 때 SNI 호스트로 사용할 이름이에요. VAULT_TLS_SERVER_NAME 환경 변수로도 지정할 수 있어요.tls_skip_verify(bool: "false")— TLS 인증서 검증을 비활성화해요. 이 옵션을 사용하는 것은 매우 권장되지 않으며, Vault 서버와의 데이터 전송 보안을 저하시켜요. VAULT_SKIP_VERIFY 환경 변수로도 지정할 수 있어요.
인증 (Authentication)
인증 관련 값은 환경 변수 또는 구성 매개변수로 제공해야 해요.
참고 — 구성 파일에서 keyring 매개변수로 VAULT_TOKEN을 전달할 수는 있지만, 이 값들은 환경 변수로 설정할 것을 강력히 권장해요.
Vault 인증 토큰은 transit 키에 대해 다음 권한이 필요해요.
path "<mount path>/encrypt/<key name>" {
capabilities = ["update"]
}
path "<mount path>/decrypt/<key name>" {
capabilities = ["update"]
}
사용되는 토큰에 대한 기타 고려사항:
- 부모 토큰이 만료되거나 취소되면 키링이 깨지므로, 가급적 고아(orphan) 토큰이어야 해요.
- 주기적(periodic) 토큰으로 만들고 명시적 최대 TTL을 설정하지 않는 것을 고려해요. 그렇지 않으면 어느 시점에 갱신이 불가능해져요.
키 회전 (Key rotation)
이 키링은 Vault의 transit 시크릿 엔진 키 회전 엔드포인트를 사용한 키 회전을 지원해요. 자세한 내용은 Vault 문서를 참고해요. 이전 키는 비활성화하거나 삭제하면 안 되며, 더 오래된 데이터를 복호화하는 데 사용돼요.