이 글은 비밀을 보호하고 무단 접근 위험을 줄이는 데 도움을 줍니다. 이 지침을 따라 자격 증명과 같은 민감한 정보가 코드, GitHub 저장소, 로그, 지속적 통합/지속적 배포(CI/CD) 파이프라인에 저장되지 않도록 하세요. 이 글의 지침은 개별 서비스 권고와 Microsoft Cloud Security Benchmark(MCSB)에서 나옵니다.
이 문서는 명시적 확인, 최소 권한 액세스 및 위반 가정이 필요한 Microsoft 제로 트러스트 보안 모델과 일치합니다. Azure Policy 집행을 포함하는 처방적 보안 통제에 대해서는 Microsoft Cloud Security Benchmark v2: 특권 접근과 MCSB v2: 데이터 보호를 참조하세요.
비밀 검색 및 방지
비밀을 지키기 전에 그 비밀이 어디에 있는지 가시성이 필요합니다. 또한 노출이 발생하기 전에 예방하는 통제 장치도 필요합니다.
비밀 식별을 위한 감사 실시: 비밀번호, API 키, 연결 문자열 및 기타 자격 증명 등 보호가 필요한 민감한 정보를 식별하기 위해 시스템과 애플리케이션을 감사하세요. 정기적인 감사는 재고에 새로운 비밀이 있는지 확인하고 기존 비밀을 적절히 관리하도록 돕습니다. Safeguard는 임시 OAuth 토큰과 같은 비밀을 장기 비밀과 동일한 엄격함으로 동적으로 생성했습니다.
비밀 하드코딩 피하기: 비밀을 코드나 구성 파일에 직접 삽입하면 상당한 보안 위험이 발생합니다. 공격자가 코드베이스를 침해하면 비밀도 함께 노출됩니다. 대신 소스 코드에 비밀이 드러나지 않도록 환경 변수나 구성 관리 도구를 사용하세요. 이 방법은 우발적 노출 위험을 최소화하고 비밀 업데이트를 간소화합니다. 비밀 검색을 자동화된 배포 파이프라인에 통합하고, 비밀 주입 패턴을 사용해 로그나 버전 관리에서 우발적인 노출을 방지하세요. 자세한 내용은 애플리케이션 비밀을 보호하기 위한 권장 사항을 참조 하세요.
비밀 스캔 도구 도입: 우발적인 노출을 방지하기 위해 코드베이스를 정기적으로 검사해 내장된 비밀을 확인하세요. Azure DevOps 자격 증명 스캐너와 GitHub 비밀 스캔과 같은 도구는 저장소 내 비밀을 자동으로 감지하고 경고할 수 있습니다. 이 도구들을 CI/CD 파이프라인에 통합하여 지속적인 모니터링을 하세요. 스캔 도구로 발견된 비밀은 모두 노출된 것으로 간주하세요. 즉시 취소하고 교체하여 보안 태세의 신뢰성을 유지하세요.
스토리지 및 암호화 보호
비밀을 보호하려면 모든 단계에서 보안 스토리지 메커니즘과 적절한 암호화가 필요합니다.
안전한 키 저장소 사용: Azure Key Vault와 Azure Key Vault Managed HSM과 같은 서비스는 접근 제어, 기록, 자동 회전 등 보안 기능을 제공합니다. 이 접근법은 비밀 관리를 중앙집중화하고 무단 접근 위험을 줄여줍니다. 매우 민감하거나 중요한 비밀 저장소의 경우, 소프트웨어 기반 비밀 저장소보다 향상된 보호 기능을 위해 하드웨어 보안 모듈(HSM) 지원 키 저장소를 사용합니다. 고객이 관리하는 키 시나리오에서는 최소한 HSM 지원 Azure Key Vault Premium 티어를 사용하세요. 키 주권 요구 사항의 경우 Azure Key Vault Managed HSM을 사용하세요. Azure 키 관리 제공 상품에 대한 개요와 선택에 대한 지침은 'Azure에서의 키 관리'와 '올바른 키 관리 솔루션 선택법'을 참고하세요.
휴지 상태와 전송 중인 비밀 암호화: Azure Key Vault는 봉투 암호화를 통해 비밀을 안전하게 저장하며, 키 암호화 키가 데이터 암호화 키를 암호화하여 또 다른 보안 계층을 제공합니다. HTTPS와 같은 안전한 통신 프로토콜을 사용하여 애플리케이션과 키 볼트 간 전송 중인 데이터를 암호화하세요. Azure에서는 다양한 서비스가 AES 256 암호화를 사용하여 정지 시 암호화를 구현합니다. TLS와 MACsec는 전송 중인 데이터를 안전하게 보호합니다. 자세한 내용은 저장 시 및 전송 중 암호화를 참조하세요.
네트워크 격리 구현: 키 자격 증명 모음에 대한 액세스를 제한하도록 방화벽 및 네트워크 보안 그룹을 구성합니다. 신뢰할 수 있는 애플리케이션과 서비스만 비밀에 접근할 수 있도록 허용하세요. 이 방법은 공격 표면을 최소화하고 무단 접근을 방지하는 데 도움을 줍니다. 여러 키 볼트를 사용해 서로 다른 구성 요소에 대한 격리 경계를 만드는 것을 고려해 보세요. 공격자가 한 구성 요소를 침해하면, 그 구성 요소는 다른 비밀이나 전체 작업 부하를 제어할 수 없습니다.
액세스 제어 및 ID
비밀에 액세스할 수 있는 사용자와 대상을 관리하는 것은 보안을 유지하는 데 중요합니다.
관리 신원 사용: Azure의 관리 신원은 애플리케이션이 Azure 서비스에 인증할 수 있도록 코드를 저장하지 않고도 안전하게 인증할 수 있는 방법을 제공합니다. Azure 리소스에 관리 가능한 신원을 활성화하여 Azure Key Vault 및 기타 서비스에 안전하게 접근할 수 있게 하여 비밀을 수동으로 처리할 필요가 줄어듭니다. 이 방법은 비밀 생성을 최소화하고 플랫폼이 자격 증명을 관리하기 때문에 잠재적 유출 가능성을 줄여줍니다.
세분화된 액세스 제어 적용: 비밀에 세분화된 액세스 제어를 적용하여 최소 권한 원칙을 따릅니다. Azure 역할 기반 접근 제어(Azure RBAC)를 사용하여 권한 있는 기관만이 특정 비밀에 접근할 수 있도록 하세요. 무단 액세스를 방지하기 위해 액세스 권한을 정기적으로 검토하고 업데이트합니다. 사용자, 관리자, 감사자 등 별도의 역할을 구현하여 비밀 접근 권한을 관리하세요. 이 방법은 신뢰할 수 있는 신원만이 적절한 권한 수준을 갖도록 돕습니다. 자세한 내용은 Azure Key Vault RBAC 가이드를 참조하세요.
비밀 수명 주기 관리
비밀은 생성부터 사용 중지까지 수명 주기 내내 지속적인 관리가 필요합니다.
비밀을 정기적으로 갱신: 비밀은 시간이 지남에 따라 유출되거나 노출될 위험이 있습니다. 비밀을 정기적으로 순환하여 무단 접근 위험을 줄이세요. Azure Key Vault에서 특정 비밀에 대해 비밀을 순환시킬 수 있습니다. 자동 회전이 불가능한 비밀은 수동 회전 프로세스를 마련하고 더 이상 사용하지 않을 때 삭제하세요. 비밀 순환을 자동화하고 비밀 관리에 중복성을 도입하여 순환이 서비스 가용성에 지장을 주지 않도록 하세요. 코드 내에 재시도 논리와 동시 접근 패턴을 구현하여 회전 창 중 문제를 최소화하세요.
비밀을 안전하게 배포하세요: 비밀을 배포할 때는 조직 내외부에서 안전하게 공유하세요. 안전한 공유를 위해 설계된 도구를 사용하고, 재해 복구 계획에 비밀 복구 절차를 포함하세요. 공격자가 키를 탈취하거나 유출한 경우 즉시 재생성하세요. 비슷한 접근 패턴을 가진 소비자라도 키를 공유하기보다는 각 소비자별로 별도의 키를 사용하세요. 이 방법은 키 관리와 취소를 단순화하여 다른 소비자에게 영향을 주지 않고 침해된 키를 철회할 수 있게 합니다.
모니터링 및 로깅
지속적인 모니터링은 의심스러운 활동을 감지하고 준수 요건을 지원합니다.
- 액세스 모니터링 및 로그: 비밀 관리 시스템에 대한 로깅 및 모니터링을 사용하도록 설정하여 액세스 및 사용량을 추적합니다. Key Vault 로깅, Azure Monitor 또는 Azure Event Grid를 사용하여 비밀 정보와 관련된 모든 활동을 모니터링하세요. 모니터링은 누가 당신의 비밀에 접근했는지 가시화하고, 의심스러운 행동이나 잠재적 보안 사고를 감지하는 데 도움을 줍니다. 비밀 접근 권한을 검사하고 검증하기 위한 상세한 감사 추적을 유지하여 신원 도용을 방지하고, 거부를 방지하며, 불필요한 노출을 줄이는 데 도움이 됩니다.
비밀 처리에 대한 서비스별 지침
개별 서비스는 비밀 보호에 대한 모범 사례와 지침을 더 많이 제공할 수 있습니다. 예는 다음과 같습니다.
- API 관리: Azure API Management 정책에서 Key Vault 통합과 함께 이름 있는 값을 사용하세요
- App Service: App Service 및 Azure Functions에 대한 Key Vault 참조를 사용하기
- Application Gateway: Azure 포털을 사용하여 Application Gateway의 TLS 종료를 설정하세요
- 자동화: Azure Automation에서 자격 증명 관리
- Azure AI Foundry: Azure Key Vault로 Foundry Tools 애플리케이션을 개발하기
- Azure App Configuration: ASP.NET Core 앱에서 Key Vault 참조 사용
- Azure Bot Service: 미사용 데이터에 대한 Azure Bot Service 암호화
- Azure Center for SAP 솔루션: Azure Center for SAP 솔루션 배포를 위해 네트워크를 준비합니다
- Azure Communication Services: 액세스 토큰 생성 및 관리
- Azure Communications Gateway: 비밀 만들기 및 저장
- Azure Container Apps: Azure Container Apps에서 비밀 관리하기
- Azure Cosmos DB: Azure Cosmos DB에 대한 고객 관리형 키 구성
- Azure Database for PostgreSQL - Flexible Server: 고객 관리형 키를 사용한 데이터 암호화
- Azure Databricks: Azure Databricks의 Key Vault 통합
- Azure DevTest Labs: Azure DevTest Labs의 랩 가상 머신에서 사용자 할당 관리 ID를 활성화하기
- Azure Event Hubs: 미사용 Azure Event Hubs 데이터를 암호화하기 위한 고객 관리형 키 구성
- Azure Front Door: Azure Front Door secrets
- AKS의 Azure HDInsight: Azure Key Vault 리소스 필수 구성 요소 만들기
- Azure Information Protection: Azure Information Protection에 대한 Key Vault 지원
- AKS(Azure Kubernetes Service): CSI 비밀 저장소
- Azure Machine Learning: Azure Machine Learning 작업에서 인증 자격 증명 비밀 사용
- Azure Managed Applications: Azure Managed Applications를 배포할 때 Key Vault 비밀에 액세스
- Azure Pipelines: Azure Pipelines에서 비밀 보호
- Azure Service Bus: Service Connector를 사용하여 Service Bus 통합
- Azure SignalR Service: URL 템플릿 설정의 Key Vault 비밀 참조 링크
- Azure Spring Apps: Service Connector를 사용하여 Azure Key Vault 통합
- Azure Stack Edge: Azure Key Vault를 사용하여 Azure Stack Edge 비밀을 관리
- Azure Stack Hub: 비밀 교체
- Azure Web PubSub: 사용자 지정 인증서 추가
- 백업: 고객이 관리하는 키를 사용해 볼트를 암호화하도록 설정하세요
- Data Factory: Azure Key Vault에 자격 증명 저장
- ExpressRoute: ExpressRoute Direct에 MACsec 암호화를 설정하세요
- 함수: App Service 및 Azure Functions에 대한 Key Vault 참조 사용
- Key Vault: Azure Key Vault 비밀에 대하여
- Logic Apps: Logic Apps 표준 앱 설정
- Microsoft Purview: Microsoft Purview에서 소스 인증을 위한 자격 증명
- Service Fabric: Service Fabric 애플리케이션에 대한 KeyVaultReference 지원
- Azure VM의 SQL Server: Azure VM의 SQL Server에 대한 Azure Key Vault 통합 구성
- 스토리지:
Azure Storage
다음 단계
보안 위험을 최소화하는 것은 공동의 책임입니다. 업무 부하를 미리 안전하게 보호하는 조치를 취하세요. 자세한 내용은 클라우드의 공유 책임을 참조하세요.
- Azure 보안 모범 사례 및 패턴에서 Azure를 사용하여 클라우드 솔루션을 디자인하고, 배포하고, 관리할 때 사용할 수 있는 더 많은 보안 모범 사례를 참조하세요.
- 포괄적인 비밀과 특권 접근 지침, Azure Policy 매핑을 위해 Microsoft Cloud Security Benchmark v2: Privileged Access Control을 검토하세요.
- ID 및 비밀 보호를 위한 Microsoft의 내부 보안 모범 사례이자 Microsoft가 조직에도 권장하는 Microsoft Secure Future Initiative에 대해 알아보세요.
- 아이덴티티를 위한 제로 트러스트 배포를 탐색하여 ID 및 액세스 관리에 제로 트러스트 원칙을 구현하기 위한 지침을 얻으세요.