DevOps에서 API 보안의 역할

게시 됨: 2020-06-04

API(응용 프로그래밍 인터페이스)를 사용하면 웹 앱과 프로그램이 서로 통신하고 상호 작용할 수 있습니다.

앱과 프로그램이 데이터를 공유하고 서로 협력하여 프로세스가 원활하고 원활하게 실행되도록 도와줍니다. 이는 기업이 고객 경험을 풍부하게 하고 결과적으로 가치를 높이는 데 도움이 됩니다.

API가 디지털 전략을 변환하는 데 중추적인 역할을 했으며 웹 기반 상호 작용을 프로그래밍하는 데 필수적인 구성 요소가 되었다는 것은 분명합니다.

API가 대중화되고 사용이 증가함에 따라 API를 사용하는 동안 보안에 대한 우려가 있고 API를 사용하는 조직을 보호하기 위한 조치가 취해지고 있습니다. 오늘 우리는 이 API 보안 문제와 DevOps에서 API 보안이 수행하는 역할을 다룹니다.

보안을 위한 API의 중요성

모든 기업은 다양한 웹 애플리케이션과 프로그램을 사용하여 운영합니다. 이러한 앱과 프로그램은 비즈니스 운영을 최적화하기 위해 서로 상호 작용하는 것이 중요합니다.

현재 조직은 서로 다른 시스템을 병합하는 데 연간 5,900억 달러 이상을 지출합니다. API는 기존 기술을 활용하고 한 앱이나 프로그램의 기능을 다른 앱이나 프로그램에서 사용할 수 있도록 하는 솔루션 역할을 합니다.

이를 통해 기업은 운영을 더 빠르게 확장하는 동시에 비용을 절감할 수 있습니다. 인터넷의 잠재력을 열어준 클라우드와 마찬가지로 API는 공유 관리에 중점을 둔 또 다른 발전을 주도하고 있습니다.

모든 기업의 협회는 API와 비즈니스 형태를 변경하는 API의 기능을 연구하기를 희망합니다. API로 DevOps 환경을 강화하기 위한 몇 가지 고려 사항은 다음과 같습니다.

자동화된 앱 구축

응용 프로그램은 종종 수정 및 업데이트를 위해 분리됩니다. 일반적으로 여러 앱이 동일한 파일 시스템, 커넥터, 데이터베이스 및 테스트를 사용합니다. 내장된 자동화 도구를 통해 개발자는 변경 및 업데이트를 수행하는 동안 여러 앱을 빠르게 재조립할 수 있습니다.

자동화된 보안 테스트

많은 경우 코드가 완료되고 앱이 준비된 후 테스트가 저장됩니다. 그러나 이것은 가장 효율적인 방법이 아닙니다. 개발자는 배포를 더 빠르고 원활하게 만드는 지속적인 테스트를 진행하면서 테스트를 작성해야 합니다.

지속적인 관리

모든 버전 릴리스에서 개발자는 다른 팀과의 원활한 통합을 위해 테스트해야 합니다. 효과적인 버전 제어를 통해 다른 팀은 앱이 자신의 앱과 호환되는지 여부를 즉시 확인할 수 있습니다.

자동화된 배포

애플리케이션을 만들고 배포하는 방법을 기록하는 것이 중요합니다. 이것은 어떤 환경과 구성이 가장 잘 작동하는지, 어떤 배포가 중요한 테스트에 실패하는지 결정하는 데 도움이 됩니다. 이러한 종류의 공식을 생성하면 향후 배포가 더 빠르고 더 나아질 것입니다.

재사용

API 통합 DevOps 접근 방식을 통해 팀은 소프트웨어가 파이프라인을 통해 이동하는 방식을 더 잘 파악할 수 있습니다. 팀은 격차 대신 소프트웨어에 더 안전하게 액세스할 수 있고 소프트웨어를 효율적이고 효과적으로 사용하는 방법도 알게 됩니다. API 주도 연결은 기업이 비용을 절감하면서 쉽게 발전하고 확장하는 데 도움이 되는 것으로 입증되었습니다. 실제 사례를 살펴보겠습니다.

성공적인 API 통합 DevOps 모델의 실제 사례

재사용 가능한 API 사용에 대한 가장 성공적인 사례 중 하나는 DevOps 개척자 Spotify에 속합니다. 이 기술을 활용하여 회사는 60개국에 앱을 배포하여 빠르게 성장할 수 있었습니다. 많은 기업에서 발생하는 것처럼 Spotify는 각 팀과 해당 애플리케이션이 자체 사일로에 존재하는 서로 다른 부서에서 생성되는 애플리케이션의 복제본을 목격했습니다.

이 회사는 API-DevOps 모델을 사용하여 애플리케이션 네트워크를 구축하여 전반적으로 데이터 공유를 개선했습니다. 각 앱을 처음부터 다시 만드는 대신 더 빠르게 앱을 만들고 배포하고, 더 많은 시장에 진출하여 범위를 확장하고, 고객을 신속하게 확보할 수 있는 비즈니스를 시작했습니다.

Netflix 는 API 주도 DevOps가 성공에 중요한 역할을 한 또 다른 좋은 예입니다. 회사가 처음 DVD 배송에서 온라인 스트리밍으로 진화했을 때 미지의 영역에 도전했습니다. 그러나 자동화에 대한 헌신과 DevOps 접근 방식으로 인해 다른 사람들을 위한 새로운 표준을 설정하는 시장의 리더가 되었습니다.

API-DevOps 모델로 전환한 다른 회사로는 Amazon, Adobe, Sony Pictures, Etsy, Nordstrom, Facebook, Walmart 및 Target이 있습니다. 이러한 기업은 DevOps를 시도하고 테스트했으며 성공의 증거를 가지고 있습니다. 그들은 DevOps를 사용하여 연간 수백만 개의 롤아웃을 수행합니다. Amazon은 명시적으로 하루에 136,000개의 기술 롤아웃을 수행하라는 지시를 받았습니다.

그러나 이 기술을 수용하는 것은 대기업과 유명 브랜드에만 해당되는 것은 아닙니다. 크고 작은 회사, 신규 및 기존 회사는 API 및 DevOps를 활용하여 비즈니스 모델을 구축할 수 있습니다. 이 모델이 귀하의 비즈니스에 적합한지 의심이 가는 경우 유사한 문제를 다음에 다루도록 하겠습니다.

API-DevOps 모델 구현을 위한 실제 고려 사항

앞서 언급했듯이 DevOps는 대기업을 위해 설계된 것처럼 보입니다. 그러나 진실은 DevOps가 모든 규모와 모든 부문의 회사에서 채택할 수 있다는 것입니다. 여기에는 은행, 인슈어테크 스타트업 및 소매업체가 포함됩니다.

이제 우리는 기업이 하루에 수백만 건의 롤아웃을 한다는 것을 알고 있지만 이를 위해서는 지속적인 배포도 필요하다는 점을 명심해야 합니다. 여기에는 릴리스 후보가 생성되면 자동으로 프로덕션에 배포되도록 자동화를 확장하는 프로세스가 수반됩니다. 이것은 여러 비즈니스 및 프로젝트에서 작동하지만 전부는 아닙니다.

오늘날의 개발 속도와 규모로 인해 품질, 보안 및 향후 애플리케이션도 고려해야 합니다. DevOps와 같은 새로운 아키텍처로의 전환은 시간이 걸리며 항상 순조로운 것은 아닙니다. 관련된 모든 팀이 전통적인 방식을 뿌리 뽑고 새로운 방식으로 전환하는 것은 어려운 일입니다.

전환은 개발 프로세스에서 병목 현상을 일으킬 수 있으며 초기에는 잠재적인 출시 시간에 영향을 미칠 수 있습니다. 이러한 상황을 피하려면 DevOps를 쉽고 원활하게 통합하도록 설계된 솔루션이 필요합니다. 이를 위해서는 주변의 상황이 변화함에 따라 모든 플레이어가 원활하게 기능할 수 있도록 다양한 역할과 서로의 관계를 강화해야 합니다.

API를 제공하는 조직의 역할

역할은 조직마다 다릅니다. 그러나 이상적인 DevOps 환경을 설명하기 위한 예로 사용할 수 있는 몇 가지 주요 역할이 있습니다. API DevOps를 제공하는 데 있어 가장 중요한 네 가지 역할은 다음과 같습니다.

  • 스크럼 리더: 스크럼 팀을 이끌고 다른 팀원의 상황을 차단할 계획을 세우고 관리합니다. 그들은 모든 백로그를 처리하고 반복을 위한 입력/사용자 스토리를 구성할 때 고객과 ​​협력합니다.
  • 개발자: API 로직을 고려하면서 입력/사용자 스토리를 기술적 기능으로 변환 및 개발합니다.
  • 설계자: 기술 직원에게 지침과 지원을 제공합니다. 모범 사례와 비즈니스 요구 사항에서 기술 전략을 구축하는 방법에 대해 작업합니다.
  • DevOps: 소프트웨어 솔루션을 통합하여 애플리케이션과 인프라를 구축, 패키징, 배포 및 테스트합니다. 적절한 모니터링 및 유지 관리를 통해 원활하게 다양한 환경을 통해 기능을 향상하고 전환합니다. 이러한 역할은 지속적인 통합, 전달 및 배포를 가능하게 하는 데 크게 도움이 될 수 있습니다.

API를 사용하여 애플리케이션 보안을 배포하는 방법

DevOps를 사용하는 회사의 주요 과제는 출시 시간에 영향을 미치지 않고 생산을 지연시키지 않는 적절한 보안 관행을 수립하는 것입니다. 많은 개발자가 조직에서 구현한 API 보안 수준에 매우 만족합니다. 그러나 클라이언트 중 하나만 취약해지기 위해서는 잘못된 코드 반복이 한 번 필요합니다.

Imperva의 연구에 따르면 기업은 평균 363개의 API를 관리합니다. 또한 3분의 2 이상이 파트너와 개발자가 소프트웨어 플랫폼과 웹 앱을 활용할 수 있도록 애플리케이션 API를 공개하는 것으로 나타났습니다. 이점이 있지만 보안 위험도 수반합니다.

API 게이트웨이 및 도구는 API를 사용하는 기업의 보안을 보장하기 위해 적절한 보안 조치를 취하도록 적절하게 구성할 수 있습니다. 보안 전술을 배포하는 동안 이를 염두에 두어야 합니다.

다음은 사용할 수 있는 몇 가지 보안 전략입니다.

지속적인 자동화 보안 유지

DevOps에 대해 들어보면 조만간 CI/CD(지속적 구현-지속적 배포)에 대해 듣게 될 것입니다. 이 프로세스는 개발 및 실행 프로세스를 더 잘 통합하여 품질 저하 없이 새로운 기능과 응용 프로그램을 더 빠르게 실행할 수 있도록 도와줍니다.

일반적으로 보안은 개발 후 앱을 테스트하기 위해 마지막에 옵니다. 그러나 CI/CD가 시작되면서 지속적인 보안에 대한 필요성도 커졌습니다. 개발의 모든 단계에 적용되는 보안 솔루션 및 테스트를 자동화하면 결함과 허점을 즉시 감지하는 데 도움이 됩니다. 이것은 개발의 어느 단계에서 무엇이 잘못되었는지 알아내려고 시도하는 끝에 보안에 소모되는 시간을 단축합니다.

또한 자동화된 보안 솔루션은 확장을 가능하게 하고 비즈니스 성장에 따라 신속한 배포를 지원합니다.

API를 사용하여 환경에 웹 애플리케이션 방화벽(WAF) 배포

API 보안을 보장하기 위해 다른 웹 애플리케이션과 마찬가지로 발신 및 수신 HTTPS/HTTP를 검사하는 WAF(웹 애플리케이션 방화벽) 솔루션이 필요합니다. 방화벽은 공격 차단, 프로파일링, 봇, DDoS 보호, 탈취 방지 등의 기능을 제공합니다. WAF는 API 게이트웨이를 보완하는 특수 보안 기능을 제공하여 최신 애플리케이션 환경에 중요합니다.

진화하는 보안 솔루션 수용

응용 프로그램 환경과 사용 가능한 도구는 빠른 속도로 발전하고 있습니다. 보안 솔루션이 경직성으로 구축되면 이전 전략에서 탈피하고 새로운 발전을 따라가기가 어려울 것입니다.

보안 솔루션은 오늘날의 요구 사항에 맞게 진화해야 합니다. 예를 들어, 현재 애플리케이션 접근 방식(DevOps, API, CI/CD, 클라우드 및 컨테이너)의 보안에는 다음이 필요합니다.

  • 자동화된 개발 체인에 쉽게 통합되고 다른 도구와 함께 사용되는 솔루션입니다.
  • 안정적인 개발 연속성을 보장하기 위한 보안 도구 및 조치의 고가용성. 또한 과도한 IT 오버헤드를 유발하거나 합법적인 웹 트래픽을 차단하지 않으면서 민감한 데이터와 애플리케이션을 보호해야 합니다.
  • 공용 또는 사설 클라우드, 컨테이너 또는 온프레미스 전용인지 여부에 관계없이 편향되지 않은 애플리케이션입니다. 이를 통해 보안 지연 없이 기존 접근 방식에서 민첩한 DevOps로 원활하게 전환할 수 있습니다.
  • 클라우드 및 온프레미스 게이트웨이를 관리하기 위한 중앙 집중식 콘솔. 이는 모든 배포에서 보안을 통합하고 단순화하는 데 도움이 됩니다.

모든 데이터 보호

기업이 DevOps, API 및 CI/CD로 초점을 전환할 때 데이터 보안에서 벗어나는 경향이 있습니다. 애플리케이션과 인프라가 DevOps에서 더욱 통합되고 분산됨에 따라 데이터 보안을 유지하는 것이 더욱 중요해졌습니다. 시간이 지남에 따라 복잡한 상호 종속성이 표면화되고 잠재적으로 클라우드, 컨테이너, API 및 서비스에 걸쳐 있을 수 있습니다.

이 복잡한 생태계를 처리하는 좋은 방법은 DCAP(데이터 중심 감사 및 보호) 솔루션을 구현하는 것입니다. 파일, 데이터베이스 및 저장소에 저장된 데이터를 보호하는 데 도움이 됩니다. 또한 감사, 보안 및 권한, 실시간 모니터링에 액세스할 수 있습니다.

오래된 관행을 버리지 마십시오

기술이 발전함에 따라 과거의 취약점과 보안 위협을 잊어버리는 것은 현명하지 않습니다. 많은 위협이 수십 년이 지났지만 여전히 주변에 숨어 DevOps 환경을 위협하고 있습니다. 새로운 전략을 구현하는 동안 이전 전략이 함께 통합되거나 배포되었는지 확인하십시오.

DevOps를 사용하면 API가 노출되고, 코드를 더 자주 배포하고, 스택에 타사 소프트웨어와 서비스가 있는 경우 공격 기반이 더 커질 수 있습니다. 회사는 다음 사항을 고려해야 합니다.

  • 세분화된 액세스 제어 시행
  • 정기적으로 앱 액세스 및 이벤트 감사
  • 저장 데이터 및 통신 데이터 암호화
  • 공격을 방지하기 위한 행동 및 활동 모니터링
  • 악성 트래픽 차단 및 멀웨어 필터링
  • 공격 표면을 줄이기 위해 서비스 및 인프라 강화

개발 프로세스 초기에 보안 조치를 통합함으로써 생산 코드의 품질을 개선하고 향후 적용을 위해 일종의 규정된 공식을 개발할 수 있습니다.

API의 미래

조직은 독립적인 앱과 프로그램 간의 격차를 해소하고 대신 적절하고 일관된 통신을 촉진하면서 API로 빠르게 전환하고 있습니다. API는 모든 애플리케이션의 중요한 부분이 되었으며 많은 회사에서 API 및 DevOps를 사용하여 앱을 개발하는 이유를 쉽게 이해할 수 있습니다.

관리 도구를 사용하여 API를 보다 안전하고 안정적으로 만들 수 있습니다. 조직은 개발을 개선하기 위해 일상적인 API 감사를 실행해야 합니다. 이는 해킹 공격 및 악성 봇이 성공적으로 침입하는 것을 방지하는 데 크게 도움이 됩니다.

API는 품질 저하 없이 개발 속도를 높이고 출시 시간을 단축하며 고객 도달 범위와 비즈니스 가치를 높일 수 있습니다. API 주도 접근 방식이 더 많은 조직에서 이를 수용함에 따라 기하급수적으로 성장할 것이라는 점을 아껴두는 것이 안전합니다.

결론

오늘날 조직은 IT 전략을 계획하면서 DevOps에 일차적인 관심을 기울이고 있습니다. API를 스마트하게 구현하면 DevOps 기반 비즈니스의 효율성이 훨씬 더 높아집니다. 그러나 언급했듯이 단일 API 취약점은 전체 DevOps 환경을 노출시키고 전체 이벤트 체인을 방해할 수 있습니다.

반면에 API에 대한 보안 우선 접근 방식을 따르면 이러한 우려가 무효화될 수 있습니다. API 스캔을 자주 수행하고 취약점을 찾는 것은 조직이 API의 기능과 안정성을 유지하는 데 도움이 될 뿐만 아니라 전체 DevOps 파이프라인의 안전과 보안을 보장하는 데 도움이 됩니다.