Azure 마이크로서비스 보안
마이크로서비스는 속도를 제공하지만, 동시에 새로운 위험을 초래합니다. 각 서비스는 공격자에게 새로운 진입점이 됩니다. 이로 인해 분산 시스템은 모놀리스(monolith)보다 보호하기가 더 까다롭습니다.
Azure 마이크로서비스를 보안하기 위해 다음 단계를 따르십시오.
인젝션 공격 방지 공격자는 API 엔드포인트를 표적으로 삼습니다.
- 모든 입력을 검증하십시오.
- API gateway를 사용하십시오.
- SQL 인젝션을 방지하기 위해 매개변수화된 쿼리(parameterized queries)를 사용하십시오.
- OWASP ZAP과 같은 도구로 엔드포인트를 스캔하여 취약점을 조기에 발견하십시오.
액세스 제어 개선 취약한 액세스 제어는 데이터 유출로 이어집니다.
- 각 서비스에 고유한 ID를 부여하십시오.
- 액세스 제어에 OAuth 2.0을 사용하십시오.
- 최소 권한 원칙(principle of least privilege)을 준수하십시오.
- Azure Active Directory를 사용하여 역할을 관리하십시오.
- Azure Policy를 사용하여 보안 규칙을 적용하십시오.
전송 중인 데이터 보호 서비스 간에 이동하는 데이터는 위험에 노출될 수 있습니다.
- 서비스 간의 모든 통신에 TLS를 적용하십시오.
- 암호화 키를 Azure Key Vault에 저장하십시오.
트래픽 및 DDoS 공격 관리 급격한 트래픽 증가는 시스템을 다운시킬 수 있습니다.
- 속도 제한(rate limiting) 및 트래픽 셰이핑(traffic shaping)을 사용하십시오.
- Azure DDoS Protection을 활성화하십시오.
- 트래픽 급증을 처리하기 위해 Azure Autoscale을 사용하십시오.
- Azure Monitor로 트래픽 패턴을 모니터링하여 이상 징후를 발견하십시오.
적절한 Azure 도구 활용 Azure에는 컨테이너화된 앱을 위한 전용 도구가 있습니다.
- AKS 네트워크 정책 및 RBAC를 사용하십시오.
- 인증 및 속도 제한을 중앙 집중화하기 위해 Azure API Management을 사용하십시오.
- SQL 인젝션 및 XSS를 차단하기 위해 Application Gateway WAF를 사용하십시오.
- Azure Security Center를 사용하여 취약점을 찾고 수정하십시오.
개발 프로세스 개선 보안은 개발 단계부터 시작됩니다.
- 배포 전에 Azure Container Registry의 이미지를 스캔하십시오.
- 컨테이너를 최소 권한으로 실행하십시오.
- CI/CD 파이프라인에 보안 검사를 포함하기 위해 DevSecOps를 사용하십시오.
- 인프라를 코드로서 정의(Infrastructure as Code)하십시오.
Source: https://dev.to/lavkeshdwivedi/securing-azure-microservices-2ggo
선택 사항 학습 커뮤니티: https://t.me/GyaanSetuAi