transit KMS
transit KMS
Transit KMS는 키 관리를 위해 Boundary가 Vault의 Transit Secret Engine을 사용하도록 구성해요. Transit KMS는 Boundary 구성 파일에 kms "transit" 블록이 있으면 활성화돼요.
본문
Transit KMS는 키 관리를 위해 Boundary가 Vault의 Transit Secret Engine을 사용하도록 구성해요.
Transit KMS는 Boundary 구성 파일에 kms "transit" 블록이 있으면 활성화돼요.
transit 예시
이 예시는 필요한 모든 값을 제공해 Boundary 구성 파일을 통해 Transit KMS를 구성하는 방법을 보여줘요.
kms "transit" {
purpose = "root"
address = "https://vault:8200"
token = "s.Qf1s5zigZ4OX6akYjQXJC1jY"
disable_renewal = "false"
key_id = "global_worker-auth"
// 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 파라미터
이 파라미터들은 Boundary 구성 파일의 kms 스탠자에 적용돼요.
purpose— 이 KMS의 목적이에요. 허용되는 값은bsr,config,downstream-worker-auth,previous-root,recovery,root,worker-auth,worker-auth-storage예요. 세션 녹화를 활성화하려면purpose에bsr값을 구성해야 해요. 지원되는 KMS purpose에 대한 자세한 내용은 Data encryption in Boundary를 참고하세요.address(string: <required>) — Vault 클러스터의 전체 주소예요.VAULT_ADDR환경 변수로도 지정할 수 있어요.token(string: <required>) — 사용할 Vault 토큰이에요.VAULT_TOKEN환경 변수로도 지정할 수 있어요.key_name(string: <required>) — 암호화와 복호화에 사용할 transit 키예요.TRANSIT_WRAPPER_KEY_NAME환경 변수로도 제공할 수 있어요.mount_path(string: <required>) — transit 시크릿 엔진의 마운트 경로예요.TRANSIT_WRAPPER_MOUNT_PATH환경 변수로도 제공할 수 있어요.namespace(string: "") — transit 시크릿 엔진의 네임스페이스 경로예요.VAULT_NAMESPACE환경 변수로도 제공할 수 있어요.disable_renewal(string: "false") — 토큰의 수명 주기가 Vault 밖의 다른 메커니즘(예: Vault Agent)으로 관리되는 경우 토큰의 자동 갱신을 비활성화해요.TRANSIT_WRAPPER_DISABLE_RENEWAL환경 변수로도 지정할 수 있어요.tls_ca_cert(string: "") — Vault 서버와 통신하는 데 사용하는 CA 인증서 파일의 경로를 지정해요.VAULT_CA_CERT환경 변수로도 지정할 수 있어요.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환경 변수로도 지정할 수 있어요.key_id— 이 키의 고유한 이름이에요. 루트 키 마이그레이션을 수행할 때 키를 식별하는 데 사용돼요.key_id필드는 모든 KMS 스탠자에서 사용할 수 있어요.
인증
인증 관련 값은 환경 변수나 구성 파라미터로 제공해야 해요.
Note: 구성 파일에서 KMS 스탠자의 파라미터로
token을 전달할 수는 있지만, 구성 파일에서token파라미터를 생략하고VAULT_TOKEN환경 변수로 Vault에 인증하는 데 사용할 토큰을 설정하는 것을 강력히 권장해요.
인증에 사용하는 Vault 토큰은 transit 키에 대해 다음 권한이 필요해요.
path "<mount path>/encrypt/<key name>" {
capabilities = ["update"]
}
path "<mount path>/decrypt/<key name>" {
capabilities = ["update"]
}