23.06.15
DEVOTEE를 활성화 시키면
지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.
버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.
| 컨텐츠 유형 | 제목 | 저장일 | 삭제 |
|---|
본인인증 로그인에 실패하였습니다.
회원이 아니시거나 본인인증 등록이
완료되지 않은 사용자입니다.
이프랜드스튜디오 서비스(https://studio.ifland.io) 에 대해 AKS를 기반으로 상용기까지 모두 기존 VM기반 인프라에서 k8s인프라로 이전을 완료했다.
VM환경에서 클라우드 네이티브 환경으로 전환이 되어 CI/CD의 효율성과 함께 운영의 효율성은 크게 높아졌다. 아울러 챙겨봐서 할 것이 보안이다.
클라우드 서비스 사용이 늘고, 쿠버네티스 환경 도입도 빠르게 늘고 있어 공격 노출의 대상으로 AKS 인프라 보안에 대한 관심이 필요하다.
AKS 구축 과정과 회사 내부에서 운영하는 감시툴 측면에서 보안 대책 적용이 요구되었다.
참고로 이프랜드스튜디오는 메타버스에서 활동하는 아바타를 위한 의상과 신발 등을 손쉽게 제작할 수 있도록 저작툴을 제공하는 서비스이다.
보안에 대한 이해를 위해 정보보호 관리체계인 ISMS에 대한 이해 부터 시작하면 좋을 것 같다.
ISMS(정보보호 관리체계)는 정보시스템의 보안성을 확보하고 유지하기 위한 일련의 프로세스와 절차이다.
조직의 정보자산 보호와 보안 수준 향상을 위해 반드시 필요한 관리 체계이다.
(조직의 정보자산을 보호) 기업의 core 정보자산을 보호하고, 정보유출 방지
(법규 및 규제 준수) 개인정보보호법, 정보통신망법 등 관련 법규 준수
(보안 수준 향상) 취약점 발굴과 개선조치로 정보보호 수준 향상
(보안 관리 체계화) 보안 업무의 명확성, 일관성, 통제성 확보
(보안 경영 실현) 보안을 경영활동 전반에 통합적으로 적용
정보시스템의 보안성 확보를 위해 정보보호 정책 수립, 조직/인력/물리/개발과 유지보수 보안/재해 대비 보안으로 구성된다.
(정보보호 정책) 정보보호 목적과 방향을 제시하는 정보보호 정책 수립
(조직보안) 정보보호 책임자 지정, 보안 역할 및 조직 정의
(인력보안) 보안 교육, 보안 서약, 접근 통제 등 인력 보안 관리
(물리보안) 보안 구역 설정, 출입 통제, 보안 장비 운영 등 물리적 보안 수립
(시스템 개발 및 유지보수 보안) 시스템 개발 보안 요구사항 정의, 취약점 점검, 패치 관리 등
(재해 대비 보안) 재해 복구 계획 수립, 데이터 백업, 이중화 등 재해 대책 마련
국제적 수준의 ISMS를 구축하는 데 필요한 주요 국제표준 및 지침으로 ISO 27001, 27002, NIST 800-53, COBIT 등이 있습니다
- ISO/IEC 27001 : ISMS 요구사항 표준
- ISO/IEC 27002 : ISMS 컨트롤과 가이드라인 표준
- ISO/IEC 27017 : 클라우드 서비스를 위한 ISMS 통제 기준
- ISO/IEC 27701 : 프라이버시 정보 관리 체계 표준
- NIST SP 800-53 : 미국 NIST의 보안 및 개인정보보호 통제 프레임워크
- COBIT 2019 : IS 거버넌스와 관리를 위한 프레임워크
국제 표준 기준으로 정보분류, 액세스 제어, 암호화, 네트워크 보안, 보안 모니터링, 취약점 관리, 백업 관리, 개인정보 보호으로 구분으로 기술적 보안을 고려할 수 있다.
- 정보분류 : AKS에서 처리되는 정보의 중요도 및 보안등급을 분류
- 액세스 제어 : RBAC, 네임스페이스별 접근통제 정책 수립
- 암호화 : 민감 데이터 및 시크릿 암호화
- 네트워크 보안 : NSG, 보안 그룹을 이용한 네트워크 접근통제 정책
- 보안 모니터링 : 로그 및 이벤트 모니터링 시스템 구축
- 취약점 관리 : 정기적 취약점 스캐닝 및 패치 관리
- 백업 관리 : 백업 정책 및 절차 수립
- 개인정보 보호 : 개인정보 처리 방침 수립
AKS 기본 리소스를 생성하고 나면 일반적을 로컬PC에서 k8s 명령어를 이용하여 구축 작업을 대부분 진행하였다.
기존 VM환경에서는 azure portal을 이용하는 빈도가 많았지만, AKS의 경우에는 azure를 사용하는 느낌이 없을 정도로 azure portal을 진입할 상황이 별로 없었다.
.kube/config 크리덴셜 정보만 가지고 있으면 퍼블릭 네트워크에서 AKS로 접속하여 kubectl 명령을 수행할 수 있었다.
kubectl 명령을 수행할 수 있는 접근 가능한 IP 범위를 아래의 방법으로 제한할 수 있다.
argocd를 사용하는 사용자라면 argocd 가 해당 클러스터로 배포할 수 있도록 argocd가 설치된 클러스터 IP를 허용IP에 등록하여야 한다.
AKS에서 public LoadBalancer를 사용하는 방식으로 서비스를 구성하고 나면 MC(Managed Cluster)리소스 그룹의 NSG에 아래와 같이 500번대에 access list가 생성이 된다.
처음 생성될 때는 Source가 Internet으로 해서 누구나 접근 가능하도록 NSG 정책이 구성되어 제공된다.
argocd를 서비스로 구성한 상태라 내부 담당자만 접속이 필요하여 NSG에 소스IP를 기준으로 아래와 같이 접근통제 정책을 적용하였다.
몇 일 후에 500번대에 적용한 정책이 모두 사라졌다.
이유를 확인해 보니 500번대는 azure가 자동으로 생성하는 정책이니 사용자가 변경하더라도 반영이 되지 않는 것을 알게 되었다.
* 소스와 목적지는 마스킹 처리
500번대 보다 우선 순위가 높은 번호로 사용자가 정책을 정의하여 적용하면 된다.
이제 지정한 사용자만 내부 용도의 서비스에 접속 가능하다.
초기 구축에는 Access keys 방식으로 사용했으나, 구축 마무리 시점에 repo scope별 토큰을 적용하는 방식으로 변경했다.
push만 필요한 상황이라 push 범위로만 한정하여 운영하도록 변경하여 적용했다.
기존의 접속방식은 보안 취약성이 있어 disabled 처리를 했다.
구축 당시 부터 mgmt/dev/stg/prd로 구분하여 네트워크를 구성하고, 리소스그룹도 달리 배치를 해 두었다.
베스핀글로벌에서 개발한 OpsNow360을 통해 모니터링에 포함이 되어 관리되고 있다.
아래의 내용은 ACR이 public에 공개 되어 있다는 내용이다. 위에서 설명한 대로 public access 비활성화가 대책으로 적용되어야 한다.
azure에 AKS 백업에 대한 기능이 있지만 아직 적용할 수 있는 단계가 아니라 사용할 수는 없다.
상용기 론칭 전까지 안정성이 확인된 최신 AKS버전으로 업그레이드까지 완료를 하였다.
AKS로 쿠버네티스를 시작하여 상용기까지 인프라 전환을 마치고 보안 요소도 대응을 하고 있다.
현재까지 클러스터 접근제어(허용IP 범위), public LoadBalancer서비스 접근제어(NSG), ACR리소스 보호(토큰), 워크로드별 네트워크 세그멘테이션, 버전 업그레이드, 클라우드 보안 모니터링(OpsNow)이 진행되었다.
백업 관리는 추가로 오픈소스를 찾아 보려고 한다.
DEVOTEE를 활성화 시키면
지금 작성한 댓글에 AI가 댓글을 달아줍니다.