다음을 통해 공유


비밀 보호 모범 사례

이 문서에서는 비밀을 보호하고 무단 액세스 위험을 줄이는 방법에 대한 지침을 제공합니다. 이 지침에 따라 자격 증명, GitHub 리포지토리, 로그, CI/CD(지속적인 통합/지속적인 배포) 파이프라인 등에 자격 증명과 같은 중요한 정보를 저장하지 않도록 합니다. 이 문서의 지침은 개별 서비스의 권장 사항과 MCSB(Microsoft Cloud Security Benchmark)에서 컴파일되었습니다.

일반적인 모범 사례

오늘날의 디지털 환경에서는 애플리케이션 자격 증명 및 비밀과 같은 중요한 정보를 보호하는 것이 가장 중요합니다. 위반은 데이터 손실, 재정적 처벌 및 평판 손상을 포함하여 심각한 결과를 초래할 수 있습니다. 이러한 위험을 완화하려면 포괄적인 비밀 관리 전략을 구현해야 합니다.

감사를 수행하여 비밀 식별

비밀을 보호하기 전에 비밀이 어디에 있는지 알아야 합니다. 시스템 및 애플리케이션에 대한 철저한 감사를 수행하면 보호가 필요한 모든 중요한 정보를 식별할 수 있습니다. 여기에는 암호, API 키, 연결 문자열 및 기타 자격 증명이 포함됩니다. 정기적인 감사를 통해 새 비밀이 고려되고 기존 비밀이 제대로 관리됩니다.

일시적일 수 있는 OAuth 토큰과 같이 동적으로 생성된 비밀조차도 장기 비밀과 동일한 엄격성으로 보호되어야 합니다.

비밀 하드코딩 방지

코드 또는 구성 파일에 직접 비밀을 포함하는 것은 심각한 보안 위험입니다. 코드베이스가 손상된 경우 비밀도 마찬가지입니다. 대신 소스 코드에서 비밀을 유지하는 환경 변수 또는 구성 관리 도구를 사용합니다. 이 방법은 실수로 노출될 위험을 최소화하고 비밀을 업데이트하는 프로세스를 간소화합니다.

또한 비밀 검색을 자동화된 배포 파이프라인에 통합하고 비밀 삽입 패턴을 사용하면 비밀이 로그 또는 버전 제어에 실수로 노출되지 않도록 방지하여 배포 프로세스의 보안을 더욱 강화할 수 있습니다.

애플리케이션 비밀을 보호하기 위한 권장 사항을 참조하세요.

보안 키 저장소 사용

보안 키 저장소를 활용하면 비밀이 암호화된 안전한 위치에 저장됩니다. Azure Key VaultAzure Managed HSM과 같은 서비스는 액세스 제어, 로깅 및 자동 회전을 비롯한 강력한 보안 기능을 제공합니다. 이 방법은 비밀 관리를 중앙 집중화하고 무단 액세스의 위험을 줄입니다.

특히 매우 중요하거나 중요한 비밀의 경우 보안을 강화하기 위해 소프트웨어 기반 비밀 저장소에 비해 향상된 보호를 제공하는 HSM(하드웨어 보안 모델)의 키 저장소를 사용하여 비밀을 암호화하는 것이 좋습니다. Azure의 모든 키 관리 제품에 대한 개요와 선택할 항목에 대한 지침은 Azure의 키 관리올바른 키 관리 솔루션을 선택하는 방법을 참조하세요.

비밀 검사 도구 구현

코드베이스에서 포함된 비밀을 정기적으로 검사하면 실수로 노출되는 것을 방지할 수 있습니다. Azure DevOps 자격 증명 스캐너GitHub 비밀 검사 기능과 같은 도구는 리포지토리에 있는 모든 비밀을 자동으로 검색하고 경고할 수 있습니다. 이러한 도구를 CI/CD 파이프라인에 통합하면 지속적인 모니터링이 보장됩니다. 이러한 검사 도구에서 찾은 비밀을 손상된 것으로 취급하는 것이 중요합니다. 즉, 보안 상태의 무결성을 유지하기 위해 즉시 해지 및 교체해야 합니다.

관리 ID 활용

Azure의 관리 ID는 애플리케이션이 코드에 자격 증명을 저장하지 않고도 Azure 서비스에 인증할 수 있는 안전한 방법을 제공합니다. Azure 리소스에 대한 관리 ID를 사용하도록 설정하면 Azure Key Vault 및 기타 서비스에 안전하게 액세스하여 비밀을 수동으로 처리할 필요가 줄어듭니다. 이 방법은 비밀 생성을 최소화할 뿐만 아니라 자격 증명 관리에 대한 책임이 플랫폼에 위임되므로 잠재적 위반에 대한 노출 영역을 줄입니다.

세부적인 액세스 제어 적용

비밀에 세분화된 액세스 제어를 적용하여 최소 권한 원칙을 따릅니다. Azure RBAC(역할 기반 액세스 제어)를 사용하여 권한 있는 엔터티만 특정 비밀에 액세스할 수 있도록 합니다. 무단 액세스를 방지하기 위해 액세스 권한을 정기적으로 검토하고 업데이트합니다. 또한 사용자, 관리자 및 감사자와 같은 고유한 역할을 구현하여 비밀에 대한 액세스를 관리하여 신뢰할 수 있는 ID만 적절한 수준의 권한을 갖도록 하는 것이 좋습니다.

Azure Key Vault RBAC 가이드를 참조하세요.

정기적으로 비밀 회전

비밀은 시간이 지남에 따라 누출 또는 노출에 취약합니다. 비밀을 정기적으로 회전하면 무단 액세스의 위험이 줄어듭니다. 특정 비밀에 대해 Azure Key Vault에서 비밀을 회전할 수 있습니다. 자동으로 회전할 수 없는 경우 수동 회전 프로세스를 설정하고 더 이상 사용하지 않을 때 제거되도록 합니다.

비밀 회전 프로세스를 자동화하고 비밀 관리에 중복성을 구축하면 순환이 서비스 가용성을 방해하지 않도록 할 수 있습니다. 코드에서 재시도 논리 및 동시 액세스 패턴을 구현하면 회전 기간 동안 문제를 최소화하는 데 도움이 될 수 있습니다.

액세스 모니터링 및 로그

비밀 관리 시스템에 대한 로깅 및 모니터링을 사용하도록 설정하여 액세스 및 사용량을 추적합니다. Key Vault 로깅 및/또는 Azure MonitorAzure Event Grid와 같은 서비스를 사용하여 비밀과 관련된 모든 활동을 모니터링합니다. 이렇게 하면 비밀에 액세스한 사용자를 파악할 수 있으며 의심스러운 동작 또는 잠재적인 보안 인시던트 감지에 도움이 됩니다. 세부 감사 내역을 유지 관리하는 것은 비밀에 대한 액세스를 검사하고 유효성을 검사하는 데 중요하며, 이는 ID 도용을 방지하고 거부를 방지하며 불필요한 노출을 줄이는 데 도움이 될 수 있습니다.

네트워크 격리 구현

네트워크 격리를 구현하여 비밀 노출을 줄입니다. 방화벽 및 네트워크 보안 그룹을 구성하여 키 자격 증명 모음에 대한 액세스를 제한합니다. 신뢰할 수 있는 애플리케이션 및 서비스만 비밀에 액세스하도록 허용하여 공격 노출 영역을 최소화하고 무단 액세스를 방지합니다. 또한 여러 키 자격 증명 모음을 사용하여 여러 구성 요소에 대한 격리 경계를 만드는 것이 좋습니다. 한 구성 요소가 손상된 경우 다른 비밀 또는 전체 워크로드를 제어할 수 없도록 합니다.

미사용 및 전송 중인 비밀 암호화

비밀이 미사용 및 전송 중 암호화되었는지 확인합니다. Azure Key Vault는 DEK(데이터 암호화 키)가 KEK(키 암호화 키)로 암호화되는 봉투 암호화를 사용하여 비밀을 안전하게 저장하여 추가 보안 계층을 제공합니다. 이 방법은 무단 액세스에 대한 보호를 향상시킵니다. 또한 HTTPS와 같은 보안 통신 프로토콜을 사용하여 애플리케이션과 키 자격 증명 모음 간에 전송 중인 데이터를 암호화하여 스토리지와 전송 중에 비밀이 보호되도록 합니다.

Azure에서 미사용 데이터 암호화는 AES 256 암호화를 사용하여 다양한 서비스에서 구현되며 전송 중인 데이터는 전송 중에 무단 액세스를 방지하기 위해 TLS 및 MACsec을 통해 보호됩니다. 이러한 암호화 방법은 시스템 간에 저장되거나 전송되는지 여부에 관계없이 데이터에 대한 포괄적인 보호를 제공합니다. 자세한 내용은 저장 및 전송 중 암호화를 참조하세요.

비밀의 안전한 배포

비밀을 배포할 때 조직 내부 및 외부에서 안전하게 공유되는지 확인합니다. 보안 공유를 위해 설계된 도구를 사용하고 재해 복구 계획에 비밀 복구 절차를 포함합니다. 키가 손상되거나 유출된 경우 즉시 다시 생성해야 합니다. 보안을 강화하려면 비슷한 액세스 패턴이 있더라도 키를 공유하는 대신 각 소비자에 대해 고유 키를 사용합니다. 이 방법은 키 관리 및 해지를 간소화하여 다른 소비자에게 영향을 주지 않고 손상된 키를 해지할 수 있도록 합니다.

서비스별 모범 사례

개별 서비스에는 비밀을 보호하기 위한 추가 모범 사례 및 지침이 있을 수 있습니다. 다음 몇 가지 예를 참조하세요.

다음 단계

보안 위험을 최소화하는 것은 공동의 책임입니다. 워크로드를 보호하기 위한 조치를 적극적으로 취해야 합니다. 클라우드에서의 책임 공유에 대해 자세히 알아봅니다.

Azure 보안 모범 사례 및 패턴에서 Azure를 사용하여 클라우드 솔루션을 디자인하고, 배포하고, 관리할 때 사용할 수 있는 더 많은 보안 모범 사례를 참조하세요.