Azure Key Vault seal 구성
Azure Key Vault seal 구성
Azure Key Vault seal은 Vault가 Azure Key Vault를 seal wrapping 메커니즘으로 사용하도록 구성합니다. Azure Key Vault seal은 다음 중 하나로 활성화됩니다:
출처: 문서
본문
Seal wrapping에는 Vault Enterprise가 필요합니다 모든 Vault 버전은 Azure Key Vault에 대해 auto-unseal을 지원하지만, seal wrapping에는 Vault Enterprise가 필요합니다. Vault Enterprise는 기본적으로 seal wrapping을 활성화하므로 KMS 서비스가 봉인 해제 과정 중뿐만 아니라 런타임에도 사용 가능해야 합니다. 자세한 내용은 Seal wrap overview를 참고하세요.
- Vault 구성 파일에
seal "azurekeyvault"블록이 있는 경우 - 환경 변수
VAULT_SEAL_TYPE이azurekeyvault로 설정된 경우. 환경 변수로 활성화한다면 Key Vault 고유의 다른 필수 값(즉VAULT_AZUREKEYVAULT_VAULT_NAME등)과 성공적인 인증에 도움이 되는 다른 모든 Azure 관련 환경 변수(즉AZURE_TENANT_ID등)도 제공해야 합니다.
azurekeyvault 예시
이 예시는 모든 필수 값을 제공해 Vault 구성 파일을 통해 Azure Key Vault seal을 구성합니다:
seal "azurekeyvault" {
tenant_id = "46646709-b63e-4747-be42-516edeaf1e14"
client_id = "03dc33fc-16d9-4b77-8152-3ec568f8af6e"
client_secret = "DUJDS3..."
vault_name = "hc-vault"
key_name = "vault_key"
}
azurekeyvault 파라미터
다음 파라미터는 Vault 구성 파일의 seal 스탠자에 적용됩니다:
-
tenant_id(string: <required>): Azure Active Directory 조직의 테넌트 ID입니다.AZURE_TENANT_ID환경 변수로도 지정할 수 있습니다. -
client_id(string: <required or MSI>): Azure API를 조회하기 위한 자격 증명의 클라이언트 ID입니다.AZURE_CLIENT_ID환경 변수로도 지정할 수 있습니다. -
client_secret(string: <required or MSI>): Azure API를 조회하기 위한 자격 증명의 클라이언트 시크릿입니다.AZURE_CLIENT_SECRET환경 변수로도 지정할 수 있습니다. -
environment(string: "AZUREPUBLICCLOUD"): 사용할 Azure Cloud 환경 API 엔드포인트입니다.AZURE_ENVIRONMENT환경 변수로도 지정할 수 있습니다. -
vault_name(string: <required>): 암호화와 복호화에 암호화 키를 사용할 Key Vault입니다.VAULT_AZUREKEYVAULT_VAULT_NAME환경 변수로도 지정할 수 있습니다. -
key_name(string: <required>): 암호화와 복호화에 사용할 Key Vault 키입니다.VAULT_AZUREKEYVAULT_KEY_NAME환경 변수로도 지정할 수 있습니다. -
resource(string: "vault.azure.net"): 연결할 Azure KeyVault 리소스의 DNS 접미사입니다.AZURE_AD_RESOURCE환경 변수로도 지정할 수 있습니다. Azure의 Managed HSM KeyVault 인스턴스 유형에 연결하려면 변경해야 합니다. -
disabled(string: ""): Vault가 auto seal 구성에서 마이그레이션 중이라면true로 설정하세요. 그렇지 않으면false로 설정하세요.
client_id, client_secret, tenant_id는 간접 값 참조(indirect value references)일 수 있습니다.
seal 마이그레이션 과정에 대한 자세한 내용은 Seal Migration 문서를 참고하세요.
인증
인증 관련 값은 환경 변수나 구성 파라미터로 제공해야 합니다.
Azure 인증 값:
AZURE_TENANT_IDAZURE_CLIENT_IDAZURE_CLIENT_SECRETAZURE_ENVIRONMENTAZURE_AD_RESOURCE
참고: Vault가 Azure에 호스팅되어 있다면 Vault는 환경과 공유 클라이언트 ID·시크릿 대신 Managed Service Identities(MSI)를 사용해 Azure에 접근할 수 있습니다. MSI는 Vault를 호스팅하는 VM에서 활성화해야 하며, MSI는 Azure 자격 증명이 평문으로 저장되는 것을 방지하므로 선호되는 구성입니다. 더 많은 모범 사례는 Production Hardening 튜토리얼을 참고하세요.
참고: Managed HSM KeyVault를 사용한다면 AZURE_AD_RESOURCE 또는 resource 구성 파라미터를 지정해야 합니다. 보통 managedhsm.azure.net을 가리켜야 하지만, Azure 환경에 따라 다른 접미사를 가리킬 수도 있습니다.
azurekeyvault 환경 변수
또는 다음 환경 변수를 제공해 Azure Key Vault seal을 활성화할 수 있습니다:
VAULT_AZUREKEYVAULT_VAULT_NAMEVAULT_AZUREKEYVAULT_KEY_NAME
키 회전
이 seal은 Azure Key Vault에 정의된 키 회전을 지원합니다. 키 메타데이터는 암호화된 데이터와 함께 저장되어 복호화 작업 중 올바른 키가 사용되도록 보장합니다. Azure Automation Account로 Azure Key Vault에 키 회전을 설정하기만 하면 Vault가 새로 회전된 키를 인식합니다.
튜토리얼
Auto-unseal using Azure Key Vault 튜토리얼을 참고해 Azure Key Vault로 Vault 서버를 auto-unseal하는 방법을 알아보세요.