 |  |
|
난이도 : 중급 Arun Chhatpar, Software Architect, OmniViz
2006 년 12 월 05 일 그리드 관리에는 많은 요소들이 개입되어 있습니다. 네트워크와 하드웨어부터, 그리드 전개, 작업 관리, 작업 메트릭스, 그리드 실행 중 모아진 통계 등은 작업을 보다 효과적으로 관리하는데 도움이 됩니다. 본 시리즈에서는, 하드웨어와 네트워크 기초와 이것이 그리드에 미치는 영향, 스케줄링, 예견, 확장 툴 같은 메트릭스 정보를 사용하는 방법 등 그리드 관리의 핵심 요소들을 알아봅니다. Part 2에서는, 그리드 보안과 중요성에 대해 설명합니다.
머리말
그리드 보안 시 고려해야 할 사항을 설명한다. 그리드 내에서 보안은 다양한 레벨로 실행된다. 그리드 보안을 전체적으로 구상해야 하고, 그리드 사용, 접근성, 저장 데이터, 그리드를 구성하는 컴포넌트의 보안 등도 고려해야 한다.
전용 그리드 환경이라면, 엘리먼트에 대한 완벽한 제어력을 갖지만, 비 전용 또는 분산 그리드에서는 다른 엘리먼트들을 보안화 할 방법을 보다 창의적으로 생각해야 한다.
그리드 내에서의 보안 문제
그리드에 누가 액세스 하는가부터, 그리드의 어떤 머신이 어떤 작동을 하는지 등, 그리드의 보안은 시스템의 많은 부분들에 영향을 미친다.
그리드를 구현하고 전개할 때 이러한 많은 사안들이 가장 중요하지만, 장기적인 관리 문제도 고려해야 한다. 그리드가 발전하면서, 환경이 변하고, 필요와 요구 사항들도 변하므로, 보안은 지속적인 리뷰가 필요한 부분이다.
그리드를 설정할 때와 장기적인 그리드 관리 시, 다음과 같은 질문을 해야 한다:
- 그리드 기능에 누가 액세스 하는가?
- 그리드 내에서 노드 역할을 하는 것은 무엇인가?
- 그리드에 저장되거나 그리드에서 제공되는 데이터에 대한 권한은 누구에게 있는가?
- 데이터는 어떻게 저장되고 이동되어야 하는가?
이러한 질문들은 그리드 환경에서 고려해야 할 많은 사항들을 생각하게 한다. 예를 들어, 그리드로의 액세스에 대해 생각할 때, 그리드를 사용할 수 있는 사람과(작업을 제출하고 응답을 볼 수 있는 것까지 포함됨), 그리드 내에서 수행할 사람들(작업을 수락하고 결과를 리턴)에 대해서 생각해야 한다.
액세스 보안
개인과 컴퓨터가 당신의 그리드에 액세스 하여 이를 사용할 수 있는 기능은, 결과를 가져오거나 작업을 제출하든지 간에, 보안의 첫 레벨이 되어야 한다. 로그인과 권한을 통해 액세스를 제한하는 것은 그리드 인프라스트럭처를 보호하는 가장 간단한 방법이다. 여러분의 그리드 유형에 의존해서, 그리드 내의 개별 컴포넌트들에 보안을 실행하고, 다양한 그리드 컴포넌트와 그리드 잡(job)으로 다른 액세스 레벨을 제공해야 한다.
이들은 그리드 소프트웨어 전개의 핵심이기도 하지만, 지속적인 관리 엘리먼트이기도 하다. 보안을 감시 및 업데이트 하여, 개인이 그리드에 액세스 하도록 허용하거나, 보다 복잡한 솔루션의 설정을 변경하여 인증에 따라 특정 리소스와 그리드 노드 유형에 액세스를 제공해야 한다. 예를 들어, 그리드 내에서 액세스 보안은 다음 유형들로 나뉠 수 있다:
-
기본적인 Submission 보안
- 사용자가 작업을 제출하고 응답을 받기 위해서는 간단한 로그인/패스워드 조합이 필요하다. 이러한 지속적인 정보 관리를 통해서 사람들에게 필수적인 상세를 제공하고, 정보를 주기적으로 업데이트 해야 한다. (정기적인 패스워드 변경과 로그인 제거가 더 이상 필요 없다.)
-
배포/할당 보안
- 일부 그리드는 인증 정보에 따른 그리드 사용/성능이라는 아이디어를 채택한다. 이와 같은 상황에서, 보안은 노드의 수, CPU 사이클, 보안 토큰에 따라 사용될 스토리지 공간 등의 관점에서 적용된다. 기존 사용도를 감시하고, 사용자에게 맞추기 위해 설정된 양을 조정해야 하기 때문에 이러한 정보 관리는 훨씬 더 상세화 되어야 한다. 게다가 다른 비율의 사용도로, 무한 리소스를 제공해야 한다. 예를 들어, 더 높은 우선순위를 가진 사용자들은 전산 그리드에서 사용할 수 있는 모든 노드들을 사용할 수 있는 반면, 우선순위가 낮은 사용자들에게는 작은 용량만 할당된다. 따라서 작업은 더욱 빨리 완료될 것이다.
-
노드 그룹 보안
- 그리드 레벨 보안의 가장 복잡한 형태는 인증 정보에 따른 특정 노드 그룹으로 액세스를 제공하는 것이다. 노드의 수 또는 CPU/리소스 사용에 대한 할당량만 제공하는 대신, 이 시스템은 더 세분화된 레벨의 컨트롤을 제공하고, 특정 노드들을 특정 로그인에 할당할 수 있다. 예를 들어, 여러분이 이종의 그리드를 갖고 있다면, AltiVec unit(향상된 퍼포먼스를 보인다.)을 제공하는 Power PC®/POWER5 CPU 같은, 특정 하드웨어 그룹으로 액세스 할 수 있는 로그인을 제공하면서, 다른 사용자들에게는 동등한 우선 순위로 그리드 내의 모든 노드들에 대한 일반 액세스를 제공한다.
그리드 관리자로서, 정보 관리에 있어 여러분의 역할은 다음과 같다:
- 새로운 사용자, 그룹, 기타 보안 크리덴셜을 만든다.
- (에이징 또는 규칙적인 리세팅을 사용하여) 패스워드 보안을 유지해야 한다.
- 사용되지 않거나 시기가 지난 로그인을 제거한다.
- 사용 그룹, 할당, 기타 한계 또는 그룹핑 메커니즘을 관리 및 업데이트 한다.
그리드에서 작업의 모니터링 및 스케줄링 역할에 대해서는 다음 시리즈에서 다루도록 하겠다.
데이터 보안
제출된 정보, 생성 및 리턴 된 정보, 그리드에 저장된 데이터, 기타 데이터 등, 그리드에 있는 정보는 보안화 되어야 한다. 개별적인 레벨로, 데이터들은 액세스로부터 지켜져야 하며, 비슷한 권한 메소드를 사용하여 그리드에 액세스 해야 한다. 지원 데이터의 경우, 데이터베이스, 보안 스토어, 기타 외부 데이터 소스들이 보안화 되고, 데이터가 합당한 권한 없이 그리드 외부로 노출되지 않도록 해야 한다.
비전용 또는 분산 그리드 환경에서, 데이터로의 액세스는 확실하게 제어되어야 하지만, 여러분은 액세스에 대한 직접적인 컨트롤을 가질 수 없다. 대신, 여러분은 공식 통신 채널을 통해 전송되는 정보의 보안에 집중한다. 특정한 암호 형태 없이 데이터가 교환된다면 공개 네트워크를 통해 전송될 때 보안 정보들이 읽힐 수 있다. 따라서, 권한이 없는 사용자나 애플리케이션이 읽을 수 없도록 데이터 저장에 신경을 써야 한다.
그리드에 대한 어떤 액세스 보안도 갖추지 않았다면 데이터가 그리드에 투입되는 방식에 신경을 써야 한다. 정보의 제출을 보안화 하는 것은 중요하지만, 제출된 데이터의 품질을 검사하는 것 역시 중요하다. 오류투성이 데이터 또는 Trojan 또는 바이러스는 말할 것도 없다.
퍼블릭/프라이빗 키를 사용하여 저장된 데이터를 암호화 하고, 운영 체계의 보안을 사용하고, 인증을 통해 악의적인 데이터를 차단하는 것은 그리드 솔루션에 구현되어야 하고, 그리드 매니저가 언제나 감시해야 한다. 암호화 키는 정기적으로 업데이트 해야 하고, 솔루션들을 정기적으로 테스트 및 유효성 검사를 해야 한다. 특히 분산 그리드 환경에서는 더욱 그렇다.
그리드 컴포넌트 권한
그리드의 개별 컴포넌트들은 인증과 권한이 필요하다. 그리드 컴포넌트의 개별 인증을 통해서 그리드를 구성하는 모든 노드들이 제자리를 찾도록 해야 한다.
어떤 컴퓨터든 그리드의 멤버가 되도록 허용한다면, 민감한 정보도 보내질 수 있다는 것을 기억해야 한다. 자유 액세스를 허용하여 그리드의 멤버가 되도록 함으로써, 어떤 형태의 인증 없이 정보를 받을 수 있도록 자동으로 권한도 부여된다. 이는 잘못된 데이터나 악의적인 공격의 원인이 된다.
대부분의 그리드 시스템들은 그리드 매니저 또는 유효 노드의 리스트에 포함되는 등, 일종의 등록이 필요하다. 따라서 그리드 관리 코드에 의해 연결되어야 한다. 그리드 관리의 일환으로, 이러한 파일이나 연결/인증 및 밸리데이션 프로세스를 지속적으로 관리해야 하며, 그리드에 연결하거나 그리드용 리소스로서 작동하는 그리드 노드를 감시해야 한다.
보안 메커니즘으로서 분리(Separation)
Part 1에서, 단순한 네트워크 레벨 보안 메커니즘으로서 방화벽을 사용하는 것에 대해서 살펴보았다. 같은 기본적인 원리가 그리드를 고립화 하고 보안을 제공하는데 적용될 수 있다. 그리드, 그리드의 노드들, 기타 컴포넌트들을 공개적으로 사용할 수 없다면, 그리드에 침입하거나, 데이터를 훔치거나, 승인되지 않은 그리드 노드로서 작동하는 것이 매우 어렵게 된다.
따라서 분리(Separation)는 두 상황에서만 가능하다:
전용 그리드의 관리는 Part 1에서 설명한 네트워크 보안과 구성의 범주에 속한다. 두 번째의 경우 공용 네트워크를 통한 데이터 보안과 가상 환경의 관리에 집중적으로 주의를 기울여야 한다.
전송 보안
비전용 또는 분산 그리드에서는, 그리드 내의 데이터 교환에 사용되는 통신 채널에 대한 컨트롤이 적거나 전혀 없다. 이 같은 상황에서, 교환되는 데이터가 안전하게 교환되지 않는다면, 인증은 별 효과가 없다.
전송 레이어 보안(TSL)을 사용하고 (암호화 된 네트워크 채널을 사용하거나 분산 그리드), 가상 프라이빗 네트워크(VPN)을 사용하여 그리드 관리 엘리먼트들과 인터넷 상의 노드들 간 보안 채널을 제공함으로써, 그리드 컴포넌트들 간 모든 데이터들을 보안화 할 수 있다.
대안으로는, 통신 채널이 아닌, 교환되는 메시지와 데이터를 암호화 하는 메시지 레벨 보안(MLS)을 사용하는 것이 있다. MLS는 더 느리지만, 공용 네트워크를 통해 분산되는 메시지 콘텐트를 암호화 하기 더 쉬운 분산 그리드에서는 더 효과적이다. 그리드 관리와 분산 시스템으로 직접 액세스 할 필요가 없다.
그리드 관리에 무엇을 사용하든지 간에, 암호화 메커니즘은 안전해야 하고, 주기적으로 키와 패스워드를 변경해야 하며, 정보가 효과적으로 전송될 수 있도록 적절한 솔루션을 마련해야 한다.
TLS와 MLS 솔루션의 경우, 퍼블릭/프라이빗 키 시스템을 사용하면 새로운 키들을 사용하여 정보를 교환하고, 나중에 업데이트 하기가 쉬워진다.
다른 그리드 유형 내에서의 보안 관리
여러분이 관리하고 있는 그리드의 유형에 따라 다양한 유형의 보안과 관리 원리들을 적용할 수 있다.
분명한 것은, 여러분이 사용하고 관리하는 정확한 모델은 여러분의 그리드, 전개, 구현, 작업의 보안 요구 사항들에 의존한다. 예를 들어, 중요하지 않은 데이터로 작업할 때, 분산 그리드 내에서 TLS를 지원할 필요가 없다. 반대로, 매우 중요한 데이터의 경우, 전용 그리드라 할지라도 TLS를 사용해야 한다.
다음은 전용, 비전용, 분산 그리드 환경에 필요한 일반적인 보안 환경과 관리 역할, 요구 사항들이다.
전용 그리드의 보안
전용 그리드에서의 보안은 구현과 관리가 가장 쉽다. 일반적으로, 전용 그리드에서는, 고립과 방화벽 방식을 사용하여 그리드 보안을 단순화 하고, 그리드 관리 노드나 또 다른 공용 컴포넌트를 통해 그리드 노드와 컴포넌트들로 제한된 액세스를 제공한다. 결과적으로, 그림 3 같은 단순한 레이아웃이 생긴다.
그림 3. 전용 그리드 보안
핵심 컴포넌트는 그리드와 컴포넌트를 사용하고 액세스 하는데 필요한 액세스/인증 보안이다. 그리드에서 실행되는 정보와 태스크에 대한 보안에 따라, 다음 사항들을 추가해야 한다:
일반적으로, 제어가 되는 환경은 보안 관리의 필요성이 줄어든다.
비전용 그리드의 보안
비전용 그리드에서, 보안은 공용 외부-액세스 보다 단순하다. 프라이빗 네트워크는 방화벽으로 보호되어야 하기 때문이다. 하지만, 그리드 노드와 컴포넌트를 내부적인 액세스, 침입, 비권한 연결로부터 안전하게 지키려면 주의를 기울여야 한다. (그림 4)
그림 4. 비전용 그리드 보안
노드들과 그리드 관리 노드 간 인증을 통해서, 그리드에서 노드로서 작동하도록 권한을 부여 받은 컴퓨터와 리소스들만 기능을 제공 받도록 해야 한다. 이 상황에서는, 전송 보안은 필요하지 않다. 내부 컴포넌트와 노드를 사용하여 그리드 기능을 제공하기 때문이다.
그리드 유형의 관리 오버헤드는 비교적 낮으며, 같은 유형의 액세스와 인증 보안으로 제한되어 있다.
분산 그리드에서의 보안
분산 그리드에서, 그리드의 보안 환경을 제어하기란 훨씬 더 어렵다. 정보의 액세스 포인트와 개입의 변수가 훨씬 더 많기 때문이다.
데이터 보안에 대해서는 더욱더 많이 고려해야 하며, 데이터와 데이터 전송에 암호를 사용한다면 보다 상세한 관리가 필요하다. (그림 5) 더욱이, 그리드 컴포넌트의 인증, 그리고 정보를 사용하고 교환할 수 있는 사람들의 관리가 더욱 중요해진다. 그리드 노드의 인증과 그리드 사용자의 인증에 대해 보다 까다로운 제어가 필요하다.
그림 5. 분산 그리드 보안
요약
그리드 관리의 보안 영역에 대해 살펴보았다. 그리드 보안에는 많은 측면들이 있고, 그리드를 관리할 때 추가 오버헤드를 감안해야 한다. 그리드 사용에 인증을 부여하는 것 같은, 단순한 시스템일지라도, 단순한 패스워드 변경에서부터 인증 그룹과 시스템의 주기적인 개편과 업데이트에 이르기까지, 지속적인 감시와 관리가 필요하다.
다양한 보안 요구 사항들은 다양한 그리드 유형들에 적용되어야 한다. 일반적으로, 전용 그리드는 여타의 그리드 중 가장 간단하다. 인증과 권한에 미치는 영향을 제한한다. 분산 그리드는 대부분의 관리 및 보안 장치들을 필요로 하고, 전체 시스템은 공개된다.
“그리드 관리” 시리즈의 Part 3에서는 그리드에서 만들어진 로그와 정보에 대해 살펴보고, 정보가 사용되는 방식에 대해 자세히 설명할 것이다. 이것은 액세스에 인증 시스템을 지원할 경우, 보안 레벨에도 유용하지만, 그리드에서의 작업 관리의 일부로서 사용된다.
기사의 원문보기
참고자료 교육
토론
필자소개  | |  | Arun Chhatpar는 9년 이상, 자바 프로그래밍과, 클라이언트/서버 아키텍처 분야에서 탁월한 경력을 쌓은 Sun Certified Enterprise Software Architect이다. NBCi의 책임 디자이너 및 개발자이며, 현재는 OmniViz의 소프트웨어 아키텍트 및 소프트웨어 엔지니어로 활동하고 있다. |
기사에 대한 평가
|  |