Microsoft Azure Cloud HSM은 클라우드에서 암호화 키를 보호하고 중요한 워크로드를 보호하기 위한 높은 신뢰성의 HSM(하드웨어 보안 모듈) 솔루션을 제공합니다. 무단 액세스를 방지하고, 운영의 무결성을 유지하고, 성능을 최적화하려면 보안 모범 사례를 구현하는 것이 필수적입니다.
이 문서에서는 Cloud HSM 배포를 가장 안전하게 보호하는 방법에 대한 지침을 제공합니다.
보안 및 규정 준수
신뢰의 루트 보호: POTA(애플리케이션 파티션) 프라이빗 키
PO.key()의 파티션 소유자에 대한 액세스를 제한하는 것이 좋습니다. AOTA(애플리케이션 파티션) 및 POTA 프라이빗 키의 관리자는 루트 액세스와 동일합니다. 파티션(파티션 0의 경우 AOTA, 사용자 파티션의 경우 POTA)에서 CO(암호화 책임자) 사용자의 암호를 재설정할 수 있습니다.PO.key는 런타임 동안 HSM 액세스에 필요하지 않습니다. POAC(파티션 소유자 인증 인증서) 및 CO 암호 재설정의 초기 서명에만 필요합니다. 가능하면 오프라인으로 저장하고PO.key오프라인 머신에서 초기 POAC 서명을 수행하는 것이 좋습니다.중요합니다
고객은 POTA 프라이빗 키를 보호할 책임이 있습니다. POTA 프라이빗 키를 분실하면 CO 암호를 복구할 수 없게 됩니다. POTA 프라이빗 키를 안전하게 저장하고 적절한 백업을 유지 관리하는 것이 좋습니다.
네트워크 보안
Azure Cloud HSM을 사용하는 경우 강력한 네트워크 보안을 보장해야 합니다. 네트워크를 올바르게 구성하면 무단 액세스를 방지하고 외부 위협에 대한 노출을 줄이는 데 도움이 됩니다. 자세한 내용은 Azure Cloud HSM에 대한 네트워크 보안을 참조하세요.
- 프라이빗 엔드포인트 사용: 프라이빗 서브넷 및 프라이빗 엔드포인트를 사용하여 Azure Cloud HSM 배포를 보호하여 공용 인터넷에 노출되지 않도록 합니다. 이 작업을 수행하면 트래픽이 Microsoft 백본 네트워크 내에 유지되어 무단 액세스의 위험을 줄일 수 있습니다.
사용자 관리
효과적인 사용자 관리는 Azure Cloud HSM의 보안과 무결성을 유지하는 데 매우 중요합니다. 사용자 ID, 자격 증명 및 권한에 대한 적절한 제어를 구현하면 무단 액세스를 방지하고 운영 연속성을 보장하는 데 도움이 될 수 있습니다. 자세한 내용은 Azure Cloud HSM의 사용자 관리를 참조하세요.
강력한 암호 사용: HSM 사용자를 위한 고유하고 강력한 암호를 만듭니다. 대문자, 소문자, 숫자, 특수 문자를 섞어서 최소 12자를 사용합니다.
HSM 사용자 자격 증명 보호: 손실된 경우 Microsoft에서 복구할 수 없으므로 HSM 사용자 자격 증명을 신중하게 보호합니다.
잠금 방지를 위한 보조 관리자 구현: 암호 하나가 분실된 경우 HSM 잠금을 방지하기 위해 최소 두 명의 관리자를 지정합니다.
제한된 권한으로 여러 CPU(암호화 사용자) 설정: 단일 사용자가 모든 권한을 갖지 못하도록 고유한 책임을 가진 여러 CPU를 만듭니다.
키를 내보내는 CPU의 기능 제한: 적절한 사용자 특성을 설정하여 CPU가 키 자료를 내보내지 못하도록 제한합니다.
CPU에 대한 CO 제어 제한: 명령을 사용하여
disableUserAccessCO 사용자가 특정 CPU를 관리하지 못하도록 합니다. 그러나 CO 사용자는 이전 백업을 사용하여 이 명령을 바이패스할 수 있습니다.
키 관리
효과적인 키 관리란 Azure Cloud HSM의 성능, 보안 및 효율성을 최적화하는 데 매우 중요합니다. 키 스토리지 제한, 키 래핑 보안, 키 특성 및 캐싱 전략을 적절하게 처리하면 보호 및 성능이 향상될 수 있습니다. 자세한 내용은 Azure Cloud HSM의 키 관리를 참조하세요.
키 회전 구현: 보안을 유지하면서 기존 키를 정기적으로 회전하여 스토리지를 확보하고 기존 키를 바꿉니다.
키 계층 구조 사용: 마스터 키를 사용하여 다른 키를 암호화함으로써 HSM에 더 적은 키를 저장합니다.
가능하다면 키 공유 및 다시 사용: 적절한 경우 여러 세션에서 키를 공유하거나 다시 사용하여 스토리지 요구 사항을 줄입니다.
사용하지 않는 키를 안전하게 삭제: 불필요한 스토리지 사용을 방지하기 위해 더 이상 필요한 키를 제거합니다.
가능한 경우 키를 추출할 수 없는 키로 설정합니다. HSM 외부에서 키를 내보낼 수 없도록 하는 데 사용합니다
EXTRACTABLE=0.신뢰할 수 있는 키 래핑 사용: 키 래핑을 신뢰할 수 있는 키로 제한하는 데 사용합니다
WRAP_WITH_TRUSTED=1. 이 작업을 수행하면 권한이 없는 키 내보내기가 방지됩니다.키 특성을 사용하여 사용 권한 제한: 키를 생성할 때 필요한 특성만 할당하여 의도하지 않은 작업을 제한합니다.
인증
인증은 Azure Cloud HSM에 안전하게 액세스하고 운영하는 데 중요한 측면입니다. 적절한 인증 방법은 자격 증명을 보호하고 안전한 액세스 제어를 보장하는 데 도움이 됩니다. 자세한 내용은 Azure Cloud HSM의 인증을 참조하세요.
HSM 자격 증명을 안전하게 저장: 저장된 자격 증명을 보호하고 사용하지 않을 때 노출되지 않도록 합니다. 자격 증명을 자동으로 검색하고 설정하도록 환경을 구성합니다.
JCE(Java Cryptography Extension) 인증에 암시적 로그인 사용: 가능하면 JCE 인증에 암시적 로그인을 사용하여 자동 자격 증명 관리 및 재인증을 허용합니다.
스레드 간에 세션을 공유하지 마세요. 다중 스레드 애플리케이션의 경우 각 스레드에 자체 세션을 할당하여 충돌 및 보안 문제를 방지합니다.
클라이언트 쪽 다시 시도 구현: 잠재적인 유지 관리 이벤트나 HSM 대체를 처리하기 위해 HSM 작업에 대한 다시 시도 논리를 추가합니다.
HSM 클라이언트 세션을 신중하게 관리합니다. 동일한 호스트의 애플리케이션 간에 세션을 공유한다는
azurecloudhsm_client점에 유의하세요. 적절한 세션 관리는 충돌을 방지합니다.
모니터링 및 로깅
감사 및 작업 로그 모니터링: 작업 이벤트 로깅을 구성하는 것이 좋습니다. 작업 이벤트 로깅은 HSM 보안에 매우 중요합니다. 책임, 추적 가능성 및 규정 준수에 대한 액세스 및 운영에 대한 변경할 수 없는 레코드를 제공합니다. 암호화 작업의 무결성과 기밀성을 보장하기 위해 무단 액세스를 감지하고 인시던트 조사 및 변칙을 식별하는 데 도움이 됩니다.
보안 및 개인 정보를 유지하기 위해 로그는 중요한 데이터(예: 키 ID, 키 이름 및 사용자 세부 정보)를 제외합니다. HSM 작업, 타임스탬프 및 메타데이터를 캡처하지만 성공 또는 실패를 확인할 수는 없습니다. 작업이 실행되었다는 사실만 기록할 수 있습니다. 이러한 제한 사항은 HSM 작업이 경계 외부로 노출되지 않는 내부 TLS 채널 내에서 발생하기 때문에 발생합니다.
비즈니스 연속성 및 재해 복구
강력한 백업 및 재해 복구 구현: Azure Cloud HSM은 실패 시 파티션을 자동으로 마이그레이션하면서 키와 정책을 동기화하는 클러스터형 HSM을 통해 고가용성을 제공합니다. 이 서비스는 모든 키, 특성 및 역할 할당을 유지하는 포괄적인 백업 및 복원 작업을 지원합니다. 백업은 Microsoft에서 액세스할 수 없는 HSM 파생 키로 보호됩니다.
BCDR(비즈니스 연속성 및 재해 복구):
- 인증에 관리 ID를 사용합니다.
- 프라이빗 Azure Blob Storage에 백업을 저장합니다.
- 최소한의 RBAC(역할 기반 액세스 제어) 권한을 구현합니다.
- 공유 키 액세스를 사용하지 않도록 설정합니다.
비고
Azure Cloud HSM은 이미 활성화된 HSM으로의 복원을 지원하지 않습니다.
자세한 구현 지침 및 추가 복구 옵션은 Azure Cloud HSM의 백업 및 복원을 참조하세요. 추가 복구 옵션에는
extractMaskedObject을(를) 사용하여 암호화된 Blob으로 키를 추출하고, 이를 안전하게 저장한 후 필요할 경우insertMaskedObject으로(로) 가져오는 기능이 포함됩니다. BCDR 모범 사례는 장애 조치(failover) 기능을 위해 두 지역에 배포하는 것입니다.