Transit seal 구성
Transit seal 구성
Transit seal은 Vault가 Vault의 Transit Secret Engine을 autoseal 메커니즘으로 사용하도록 구성합니다. Transit seal은 다음 중 하나로 활성화됩니다:
출처: 문서
본문
Seal wrap 기능에는 Vault Enterprise가 필요합니다 모든 Vault 버전은 Transit에 대해 auto-unseal을 지원하지만, seal wrapping에는 Vault Enterprise가 필요합니다. Vault Enterprise는 기본적으로 seal wrapping을 활성화하므로 KMS 서비스가 봉인 해제 과정 중뿐만 아니라 런타임에도 사용 가능해야 합니다. 자세한 내용은 Seal wrap overview를 참고하세요.
- Vault 구성 파일에
seal "transit"블록이 있는 경우 - 환경 변수
VAULT_SEAL_TYPE이transit로 설정된 경우
transit 예시
이 예시는 모든 필수 값을 제공해 Vault 구성 파일을 통해 Transit seal을 구성합니다:
seal "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 파라미터
다음 파라미터는 Vault 구성 파일의 seal 스탠자에 적용됩니다:
-
address(string: <required>): Vault 클러스터의 전체 주소입니다.VAULT_ADDR환경 변수로도 지정할 수 있습니다. -
token(string: <required>): 사용할 Vault 토큰입니다.VAULT_TOKEN환경 변수로도 지정할 수 있습니다. -
key_name(string: <required>): 암호화와 복호화에 사용할 transit 키입니다.VAULT_TRANSIT_SEAL_KEY_NAME환경 변수로도 제공할 수 있습니다. -
key_id_prefix(string: ""): 이 transit seal로 래핑된 값의 키 ID에 추가할 선택적 문자열입니다. 두 transit seal을 구분하는 데 도움이 됩니다. -
mount_path(string: <required>): transit secret engine의 마운트 경로입니다.VAULT_TRANSIT_SEAL_MOUNT_PATH환경 변수로도 제공할 수 있습니다. -
namespace(string: ""): transit secret engine의 namespace 경로입니다.VAULT_NAMESPACE환경 변수로도 제공할 수 있습니다. -
disable_renewal(string: "false"): 토큰의 수명 주기가 Vault Agent 같은 Vault 외부의 다른 메커니즘으로 관리되는 경우 토큰의 자동 갱신을 비활성화합니다.VAULT_TRANSIT_SEAL_DISABLE_RENEWAL환경 변수로도 지정할 수 있습니다. -
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환경 변수로도 지정할 수 있습니다. -
disabled(string: ""): Vault가 auto seal 구성에서 마이그레이션 중이라면true로 설정하세요. 그렇지 않으면false로 설정하세요.
token과 tls_client_key는 간접 값 참조(indirect value references)일 수 있습니다.
seal 마이그레이션 과정에 대한 자세한 내용은 Seal Migration 문서를 참고하세요.
인증
인증 관련 값은 환경 변수나 구성 파라미터로 제공해야 합니다.
참고: 구성 파일에서 VAULT_TOKEN을 seal 파라미터로 전달할 수 있지만, 이 값을 환경 변수로 설정하는 것을 강력히 권장합니다.
인증에 사용되는 Vault 토큰은 transit 키에 대해 다음 권한이 필요합니다:
path "<mount path>/encrypt/<key name>" {
capabilities = ["update"]
}
path "<mount path>/decrypt/<key name>" {
capabilities = ["update"]
}
사용하는 토큰에 대한 다른 고려 사항:
- 아마도 고아(orphan) 토큰이어야 합니다. 그렇지 않으면 부모 토큰이 만료되거나 철회될 때 seal이 깨집니다.
- 주기적(periodic) 토큰으로 만들고 명시적 최대 TTL을 설정하지 않는 것을 고려하세요. 그렇지 않으면 언젠가 갱신이 불가능해집니다.
키 회전
이 seal은 Transit Secret Engine의 키 회전 엔드포인트를 사용한 키 회전을 지원합니다. 이전 키는 비활성화하거나 삭제해서는 안 되며 이전 데이터를 복호화하는 데 사용됩니다.
튜토리얼
Auto-unseal using Transit Secrets Engine 튜토리얼을 참고해 transit secrets engine으로 Vault를 자동 봉인 해제하는 방법을 알아보세요.