다음을 통해 공유


Azure 및 GitHub와 함께 DevSecOps 사용

보안 DevOps라고도 하는 DevSecOps는 DevOps 의 원칙을 기반으로 하지만 전체 애플리케이션 수명 주기의 중심에 보안을 배치합니다. 이 개념을 "왼쪽 시프트 보안"이라고 합니다. 즉, 계획 및 개발의 초기 단계를 포괄하도록 프로덕션 전용 관심사에서 보안 업스트림으로 이동합니다. 애플리케이션에서 작업하는 모든 팀과 사용자는 보안을 고려해야 합니다.

Microsoft 및 GitHub는 프로덕션에서 실행하는 코드에 대한 신뢰를 구축하는 솔루션을 제공합니다. 이러한 솔루션은 코드를 검사하고 사용 중인 타사 구성 요소에 대한 작업 항목 및 인사이트까지 추적할 수 있도록 허용합니다.

GitHub를 사용하여 코드 보호

개발자는 GitHub 리포지토리의 코드를 빠르고 자동으로 분석하는 코드 검색 도구를 사용하여 보안 취약성 및 코딩 오류를 찾을 수 있습니다.

코드를 스캔하여 기존 문제에 대한 수정 사항을 찾고, 심사하고, 우선 순위를 지정할 수 있습니다. 또한 코드 검색은 개발자가 새로운 문제를 발생시키는 것을 방지합니다. 특정 날짜 및 시간에 대한 검사를 예약하거나 푸시와 같은 리포지토리에서 특정 이벤트가 발생할 때 검사를 트리거할 수 있습니다. GitHub가 취약한 종속성을 검색할 때 리포지토리의 종속성을 추적하고 보안 경고를 받을 수도 있습니다.

Azure Boards를 사용하여 작업 추적

Teams는 Azure Boards 웹 서비스를 사용하여 소프트웨어 프로젝트를 관리할 수 있습니다. Azure Boards는 스크럼 및 Kanban에 대한 기본 지원, 사용자 지정 가능한 대시보드 및 통합 보고를 비롯한 다양한 기능을 제공합니다.

Azure Pipelines를 사용하여 컨테이너 빌드 및 배포

Azure Pipelines 및 Kubernetes 클러스터를 쉽게 통합합니다. 동일한 YAML 문서를 사용하여 연속 통합 및 지속적인 배달을 위한 다단계 파이프라인을 코드로 빌드할 수 있습니다.

Azure Pipelines는 메타데이터 추적을 커밋 해시 및 Azure Boards의 발급 번호를 포함하여 컨테이너 이미지에 통합하므로 애플리케이션을 자신 있게 검사할 수 있습니다.

YAML 파일을 사용하여 배포 파이프라인을 만들고 소스 제어에 저장하는 기능은 명확하고 읽기 쉬운 문서를 사용하는 개발 팀과 운영 팀 간에 보다 엄격한 피드백 루프를 구동하는 데 도움이 됩니다.

Bridge to Kubernetes를 사용하여 컨테이너 실행 및 디버그

Kubernetes 애플리케이션 개발은 어려울 수 있습니다. Docker 및 Kubernetes 구성 파일이 필요합니다. 애플리케이션을 로컬로 테스트하고 다른 종속 서비스와 상호 작용하는 방법을 알아내야 합니다. 개발자 팀과 함께 한 번에 여러 서비스를 개발하고 테스트해야 할 수도 있습니다.

Bridge to Kubernetes를 사용하면 개발 컴퓨터에서 코드를 실행하고 디버그하는 동시에 나머지 애플리케이션 또는 서비스를 사용하여 Kubernetes 클러스터에 연결할 수 있습니다. 코드를 엔드 투 엔드(end-to-end)로 테스트하고, 클러스터에서 실행되는 코드에서 중단점을 적중하고, 간섭 없이 팀 구성원 간에 개발 클러스터를 공유할 수 있습니다.

컨테이너 및 Azure Policy용 Microsoft Defender를 사용하여 컨테이너 보안 적용

컨테이너용 Microsoft Defender는 컨테이너 보안을 위한 클라우드 네이티브 솔루션입니다.

Microsoft ID 플랫폼을 사용하여 ID 및 액세스 관리

Microsoft ID 플랫폼은 Azure AD(Azure Active Directory) 개발자 플랫폼의 진화입니다. 개발자는 모든 Microsoft ID에 로그인하고 Microsoft Graph 또는 개발자가 빌드한 API와 같은 Microsoft API를 호출하는 토큰을 가져오는 애플리케이션을 빌드할 수 있습니다.

Microsoft Entra 외부 ID는 비즈니스-고객 ID를 서비스로 제공합니다. 고객은 선호하는 소셜, 엔터프라이즈 또는 로컬 계정 ID를 사용하여 애플리케이션 및 API에 대한 Single Sign-On 액세스를 얻습니다.

클라우드 리소스에 대한 액세스 관리는 클라우드를 사용하는 모든 조직에 중요한 기능입니다. Azure RBAC(Azure 역할 기반 액세스 제어)를 사용하면 Azure 리소스에 대한 액세스 권한이 있는 사용자, 해당 리소스로 수행할 수 있는 작업 및 액세스할 수 있는 영역을 관리할 수 있습니다.

Microsoft ID 플랫폼을 사용하여 Azure DevOps 내의 네이티브 지원 및 GitHub Enterprise와의 통합을 포함하여 나머지 DevOps 도구로 인증할 수 있습니다.

현재 AKS(Azure Kubernetes Service) 클러스터(특히 Kubernetes 클라우드 공급자)에는 Azure에서 부하 분산 장치 및 관리 디스크와 같은 추가 리소스를 만드는 ID가 필요합니다. 이 ID는 관리 ID 또는 서비스 주체 ID일 수 있습니다. 서비스 주체를 사용하는 경우 서비스 주체를 제공하거나 AKS에서 사용자를 대신하여 서비스 주체를 만들어야 합니다. 관리 ID를 사용하는 경우 AKS에서 자동으로 생성됩니다. 서비스 주체를 사용하는 클러스터의 경우 클러스터를 계속 작동하려면 결국 서비스 주체를 갱신해야 합니다. 서비스 주체를 관리하면 복잡성이 더해지기 때문에 관리 ID를 대신 사용하기가 더 쉽습니다. 서비스 주체와 관리 ID 모두에 동일한 권한 요구 사항이 적용됩니다.

관리 ID는 기본적으로 서비스 주체에 대한 래퍼이며 관리를 더 간단하게 만듭니다.

Azure Key Vault를 사용하여 키 및 비밀 관리

Azure Key Vault를 사용하여 토큰, 암호, 인증서, API 키 및 기타 비밀에 대한 액세스를 안전하게 저장하고 제어할 수 있습니다. Key Vault에서 애플리케이션 비밀의 스토리지를 중앙 집중화하면 해당 배포를 제어할 수 있습니다. Key Vault는 비밀이 실수로 유출될 가능성을 크게 줄입니다. Key Vault를 사용하는 경우 애플리케이션 개발자는 더 이상 애플리케이션에 보안 정보를 저장할 필요가 없으므로 이 정보를 코드의 일부로 만들 필요가 없습니다. 예를 들어 애플리케이션은 데이터베이스에 연결해야 할 수 있습니다. 연결 문자열을 앱 코드에 저장하는 대신 Key Vault에 안전하게 저장할 수 있습니다.

애플리케이션 모니터링

Azure Monitor를 사용하면 애플리케이션과 인프라를 실시간으로 모니터링하여 코드와 관련된 문제 및 잠재적인 의심스러운 활동 및 변칙을 식별할 수 있습니다. Azure Monitor는 Azure Pipelines의 릴리스 파이프라인과 통합되어 모니터링 데이터에 따라 품질 게이트 또는 릴리스 롤백을 자동으로 승인할 수 있습니다.

Azure Application Insights 및 Azure Monitor를 사용하여 애플리케이션 및 인프라를 모니터링하는 방법을 알아봅니다.

올바른 아키텍처 빌드

보안은 아키텍처에서 가장 중요한 요소입니다. 보안은 고의적인 공격 및 중요한 데이터 및 시스템의 남용에 대한 기밀성, 무결성 및 가용성 보증을 제공합니다. 이러한 보증을 잃으면 비즈니스 운영 및 수익뿐만 아니라 마켓플레이스에서 조직의 평판에 부정적인 영향을 미칠 수 있습니다.