Encryption 설정¶
실무 운영 가이드에서 Truthound을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다.
빠른 시작¶
from truthound.infrastructure.encryption import (
configure_encryption,
get_encryptor,
)
# Configure with AWS KMS
configure_encryption(
provider="aws_kms",
key_id="alias/truthound-data-key",
aws_region="us-east-1",
)
# Encrypt/decrypt data
encryptor = get_encryptor()
encrypted = encryptor.encrypt(b"sensitive data")
decrypted = encryptor.decrypt(encrypted)
EnterpriseEncryptionConfig¶
from truthound.infrastructure.encryption import EnterpriseEncryptionConfig
config = EnterpriseEncryptionConfig(
enabled=True,
provider="local",
# Options: local, vault, aws_kms, gcp_kms, azure_keyvault
key_id="", # Key identifier
# HashiCorp Vault
vault_url="",
vault_token="",
vault_mount_point="transit",
# AWS KMS
aws_region="",
# GCP KMS
gcp_project_id="",
gcp_location="global",
gcp_key_ring="truthound",
# Azure Key Vault
azure_vault_url="",
# Local (development only)
local_key_file=".truthound_keys",
local_master_password="", # or TRUTHOUND_MASTER_KEY env var
# Field-level encryption policies
field_policies={},
)
Key Providers¶
LocalKeyProvider¶
실무 운영 가이드에서 관련 설정과 실행 흐름을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다.
from truthound.infrastructure.encryption import LocalKeyProvider
provider = LocalKeyProvider(
key_file=".truthound_keys",
master_password="${TRUTHOUND_MASTER_KEY}",
)
configure_encryption(provider=provider)
VaultKeyProvider¶
HashiCorp Vault Transit 엔진.
from truthound.infrastructure.encryption import VaultKeyProvider
provider = VaultKeyProvider(
url="https://vault.example.com",
token="${VAULT_TOKEN}",
mount_point="transit",
cache_ttl=300.0, # Key cache TTL in seconds
)
configure_encryption(provider=provider)
| 실무 운영 가이드에서 Parameter을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. | 실무 운영 가이드에서 Type을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. | 실무 운영 가이드에서 Default을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. | 실무 운영 가이드에서 Description을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
|---|---|---|---|
실무 운영 가이드에서 url을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 str을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 Required을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. | 실무 운영 가이드에서 Vault, URL을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 token을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 관련 설정과 실행 흐름을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. | 실무 운영 가이드에서 None을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. | 실무 운영 가이드에서 None, None을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 mount_point을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 str을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 "transit"을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
Transit 엔진 mount point |
실무 운영 가이드에서 cache_ttl을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 float을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 300.0을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
Key 캐시 TTL in seconds |
AwsKmsProvider¶
실무 운영 가이드에서 AWS, Key, Management, Service을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다.
from truthound.infrastructure.encryption import AwsKmsProvider
provider = AwsKmsProvider(
key_id="alias/truthound-data-key",
region="us-east-1",
)
configure_encryption(provider=provider)
실무 운영 가이드에서 AWS을(를) 다루는 항목입니다:
1. 실무 운영 가이드에서 AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, Environment, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다.
2. Shared credential 파일 (~/.aws/credentials)
3. 실무 운영 가이드에서 IAM, EC2/ECS/Lambda을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다.
GcpKmsProvider¶
실무 운영 가이드에서 Google, Cloud, KMS을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다.
from truthound.infrastructure.encryption import GcpKmsProvider
provider = GcpKmsProvider(
key_name="data-key",
project_id="my-project",
location="us-central1",
key_ring="truthound-keyring",
)
configure_encryption(provider=provider)
| 실무 운영 가이드에서 Parameter을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. | 실무 운영 가이드에서 Type을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. | 실무 운영 가이드에서 Default을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. | 실무 운영 가이드에서 Description을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
|---|---|---|---|
실무 운영 가이드에서 key_name을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 str을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 Required을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. | 실무 운영 가이드에서 KMS을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 project_id을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 관련 설정과 실행 흐름을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. | 실무 운영 가이드에서 None을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. | 실무 운영 가이드에서 None, None을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 location을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 str을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 "global"을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 KMS을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 key_ring을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 str을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 "truthound"을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 Key을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 Application, Default, Credentials을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다.
AzureKeyVaultProvider¶
실무 운영 가이드에서 Azure, Key, Vault을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다.
from truthound.infrastructure.encryption import AzureKeyVaultProvider
provider = AzureKeyVaultProvider(
vault_url="https://my-vault.vault.azure.net",
key_name="truthound-key",
)
configure_encryption(provider=provider)
실무 운영 가이드에서 DefaultAzureCredential을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다.
At-Rest Encryption¶
from truthound.infrastructure.encryption import (
AtRestEncryption,
configure_encryption,
get_encryptor,
)
# Local encryption (development)
encryptor = AtRestEncryption(
algorithm="AES-256-GCM",
key_file="/secure/encryption.key",
)
configure_encryption(encryptor)
# Encrypt sensitive data
encrypted = get_encryptor().encrypt(b"sensitive data")
decrypted = get_encryptor().decrypt(encrypted)
With Cloud KMS¶
from truthound.infrastructure.encryption import AtRestEncryption, AwsKmsProvider
provider = AwsKmsProvider(key_id="alias/my-key")
encryptor = AtRestEncryption(key_provider=provider)
configure_encryption(encryptor)
Field-Level Encryption¶
실무 운영 가이드에서 Encrypt을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다.
from truthound.infrastructure.encryption import (
FieldLevelEncryption,
FieldEncryptionPolicy,
AwsKmsProvider,
)
provider = AwsKmsProvider("alias/my-key")
fle = FieldLevelEncryption(
provider=provider,
policies={
"ssn": FieldEncryptionPolicy(
format_preserving=True, # Preserve format (XXX-XX-XXXX)
),
"email": FieldEncryptionPolicy(
algorithm="aes_gcm",
),
"credit_card": FieldEncryptionPolicy(
format_preserving=True,
mask_pattern="****-****-****-{last4}",
),
},
)
# Encrypt specific fields
encrypted_record = fle.encrypt_record({
"name": "John Doe",
"ssn": "123-45-6789",
"email": "john@example.com",
})
# Decrypt fields
decrypted_record = fle.decrypt_record(encrypted_record)
Field Encryption Policies¶
from truthound.infrastructure.encryption import FieldEncryptionPolicy
policy = FieldEncryptionPolicy(
algorithm="aes_gcm", # Encryption algorithm
format_preserving=False, # Preserve original format
deterministic=False, # Same input = same output
mask_pattern=None, # Masking pattern for display
)
| 실무 운영 가이드에서 Option을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. | 실무 운영 가이드에서 Description을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
|---|---|
실무 운영 가이드에서 algorithm을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 aes_gcm, aes_cbc을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 format_preserving을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 Preserve, SSN을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 deterministic을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 Enable을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 mask_pattern을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 Pattern을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
환경 변수¶
| 실무 운영 가이드에서 Variable을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. | 실무 운영 가이드에서 Description을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
|---|---|
실무 운영 가이드에서 TRUTHOUND_MASTER_KEY, TRUTHOUND_MASTER_KEY을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 Local을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 AWS_REGION, AWS_REGION을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 AWS, KMS을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 GCP_PROJECT_ID, GCP_PROJECT_ID을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 GCP을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 VAULT_TOKEN, VAULT_TOKEN을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 HashiCorp, Vault을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 AZURE_TENANT_ID, AZURE_TENANT_ID을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 Azure을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 CLI, AZURE_CLIENT_ID, AZURE_CLIENT_ID을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 Azure을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
실무 운영 가이드에서 CLI, AZURE_CLIENT_SECRET, AZURE_CLIENT_SECRET을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. |
Azure client 시크릿 |
권장 방식¶
1. Use Cloud KMS in Production¶
# Development
configure_encryption(
provider="local",
local_master_password="${TRUTHOUND_MASTER_KEY}",
)
# Production
configure_encryption(
provider="aws_kms",
key_id="alias/truthound-prod-key",
)
2. Rotate Keys Regularly¶
실무 운영 가이드에서 Cloud, KMS을(를) 다루는 항목입니다:
- 실무 운영 가이드에서 AWS, KMS, Enable을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다.
- 실무 운영 가이드에서 GCP, KMS, Configure을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다.
- 실무 운영 가이드에서 Azure, Key, Vault, Set을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다.
실무 운영 가이드 개요¶
# Development
key_id = "alias/truthound-dev-key"
# Staging
key_id = "alias/truthound-staging-key"
# Production
key_id = "alias/truthound-prod-key"
실무 운영 가이드 개요¶
fle = FieldLevelEncryption(
provider=provider,
policies={
"ssn": FieldEncryptionPolicy(format_preserving=True),
"email": FieldEncryptionPolicy(),
"phone": FieldEncryptionPolicy(),
"credit_card": FieldEncryptionPolicy(format_preserving=True),
"address": FieldEncryptionPolicy(),
},
)
실무 운영 가이드 개요¶
# Enable searching on encrypted email
policies = {
"email": FieldEncryptionPolicy(
deterministic=True, # Same email always encrypts to same value
),
}
# Now you can search:
# SELECT * FROM users WHERE encrypted_email = encrypt('user@example.com')
보안 Considerations¶
- 실무 운영 가이드에서 Never을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다.
- 실무 운영 가이드에서 Dev을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다.
- 실무 운영 가이드에서 Enable, Track을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다.
- 실무 운영 가이드에서 Rotate, KMS을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다.
- 실무 운영 가이드에서 Less을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다.
- 실무 운영 가이드에서 Avoid, Enables을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다.