• 검색 결과가 없습니다.

(1) 개요

VO Services Project [28]는 가상조직의 사용자 등록 및 그리드 자원에 대한 권한 위임 서비스를 제공한다. 권한 인증은 각 사용자 별 가상조직에서의 그룹과 역할을 매핑시켜 이루어지며, 동적 가상조직 관리에 유리하도록 설계되어 있다. 이 프로젝트는 US CMS, US ATLAS, Open Science Grid에 지원을 받고 있으며, EGEE, INFN, Globus 등의 그리드 미들웨어 그룹과도 공동연구를 하고 있다.

사용자가 그리드 자원을 사용하기 위해서는 우선 자신의 인증서를 CA로부터 발급을 받는다. 사용자 인증서를 자신이 속한 가상조직에 등록하고 가상조직에서 정의된 그룹과 역할에 대한 멤버쉽을 요청한다. 그리드 자원제공자 사이트에 접속하기 전에 VOMS (Virtual Organization Management Service)에 접속하여 자신의 인증서에 그룹과 역할 필드를 추가한 새로운 인증서를 발급받는다. VOMS로부터 받은 확장된 인증서를 그리드 자원제공자에 제공하여 자원 접근 권한을 인증 받게 된다.

자원제공자 사이트의 게이트웨이는 사용자로부터 받은 확장된 인증서를 검정하기 위해서 사용자의 Attribute를 추출하고 이를 인증하는 Call-out 모듈에게 넘기게 된다.

인증을 담당하는 Call-out 모듈은 계산 노드인 경우에는 PRIMA나 PRIMA-WS를 사용하고, 스토리지 노드인 경우에는 gPLazma를 사용하며, Worker 노드인 경우에는 gLExec를 사용한다. 이렇게 서로 다른 인증 모듈과 자원제공자의 인증 정책 모듈 (PDP: Policy Decision Point)와의 통신을 위해서 정의된 프로토콜을 구현하고 있다.

VO Services Project에서는 현재 두 가지의 PDP를 제공하는데, 각각 GUMS와 SAZ이다.

GUMS는 매핑 서비스로 사용자의 확장된 인증서에서 추출한 Attribute를 해당하는 접근 권한이 있는 로컬 사용자 계정으로 매핑시킨다. SAZ는 폐지 (banning) 서비스로 접근 거부에 해당하는 경우 이를 거부시키는 일을 한다.

- 24 -

그림 15. VO Services Project 권한 인증 시스템 [28]

(2) VOMS

사용자의 가상조직 내 권한을 Attribute 인증서 형식으로 VOMS에서 저장되고 조회 및 인증 확인을 한다. (2.5절 VOMS 설명 참조)

(3) VOMRS

VOMRS [29]는 가상조직의 멤버쉽을 보안적으로 안전하게 관리할 수 있도록 여러 가지 서비스를 제공한다. VOMS 에서 제공하는 모델에서 가상조직 관리자에 해당하는 서비스를 구현한 것이 VOMRS이다.

일반적인 그리드 구성요소 이외에 주요 구성요소로는 다음과 같은 것이 있다.

Ÿ CA : VOMRS는 가상조직에서 신뢰하는 CA 서버들의 리스트를 관리한다.

Ÿ 그룹과 역할 : VOMRS는 가상조직 내에 그룹의 계층구조를 지원하여, 관리자가 그룹 및 그룹 내 역할들을 쉽게 관리하도록 한다.

Ÿ 기관 : 사용자들이 속한 기관들에 정보를 관리한다.

Ÿ 개인정보 데이터 : 개인 사용자 정보를 관리한다.

사용자 등록하기 위해서 우선 가상조직이 신뢰하는 CA 서버 중에 하나로부터 받은

- 25 -

개인 인증서가 있어야 한다. 사용자는 개인 정보를 입력하고 자신이 속한 그룹 및 그룹 역할을 선택한다. 가상조직 관리자가 이 과정을 담당하거나 혹은 승인된 이후에 등록해야 한다. VOMRS는 이러한 여러 관리 기능을 웹 서버 형식으로 제공하며, VOMS 등의 다른 가상조직 정책 관리 서버와 연동하여 사용된다.

(4) GUMS

GUMS는 X.509 인증서나 프록시 인증서 등의 그리드 Identity를 지역 계정으로 매핑시켜주는 프로그램이다. Globus 툴킷에 포함된 gridmap 파일은 하나의 머신 내에서만 유효하게 동작을 하게 되어, 여러 개의 자원 노드가 있으면 모든 노드에 gridmap 파일을 생성해서 일관성을 유지하면서 관리해야 하는 단점이 있다. GUMS는 gridmap 파일이 하는 기능을 좀더 일반화 하여 웹 서비스 형태로 구현하여 어려 개의 자원 노드에 대해서 서비스를 해준다.

현재까지 구현된 GUMS Call-out 인터페이스는 OSGA OpenSAML 1.1 AuthZ와 OSGA OpenSAML-XACML 2.1 AuthZ 형식이다. 그리고 이전 버전인 GT2/Prima, GT4, gLExec 클라이언트도 구현되어 있다.

GUMS는 여러 모듈과 연동이 되어 다양한 형태로 사용될 수 있다. 예를 들어, 그림 16처럼GUMS가 VOMS와 Gatekeeper 사이에 존재하여 단순히 gridmap 파일의 일관성을 유지하는 역할로 사용될 수 있다. Gatekeeper가 직접적으로 GUMS를 호출하지는 않고, GUMS가 VOMS 서버에 주기적으로 연결하여 사용자의 정보를 갱신하여, grid-map 파일을 계속 일관성 있게 유지시켜 준다.

그림 16. GUMS의 단순 Identity 매핑 기능 모델

또는 그림 15처럼 VOMS

Ÿ DN: user_name, enabled, trusted, changedAt Ÿ VO: vo_name, enabled, trusted, changedAt Ÿ Role: role_name, enabled, trusted, changedAt Ÿ CA: ca_name, enabled, trusted, changedAt SAZ 서버는 사용자 프록시

SAZ (Site AuthoriZation)는 Fermilab의 Globus Gatekeeper와 연동하여 사용자가 제시한 프록시 인증서에서 DN, VO, Role, CA

인증 결정을 한다. SAZ 데이터베이스의 각

DN: user_name, enabled, trusted, changedAt VO: vo_name, enabled, trusted, changedAt Role: role_name, enabled, trusted, changedAt CA: ca_name, enabled, trusted, changedAt

프록시 인증서에서 DN, VO, Role, CA 정보를

- 27 -

서버와 GridFTP 서버와 연동할 수 있는 모듈을 제공한다.

사용자가 SRM 서버나 GridFTP 서버를 통해 데이터 전송을 원하면, gPLAZMA 모듈을 호출하면서 필요한 인증서를 같이 넘겨 준다. gPLAZMA는 사용자의 인증서로부터 ID, 및 권한 관련 정보를 추출하여 해당하는 모듈의 플러그인 (Plug-In)을 사용해서 검증한다.

현재 구현되어 있는 위임 관련 플러그인은 dCache/SRM 자체 일대일 매핑 인증 모듈, Globus gridmap-file을 이용한 인증 모듈, 역할 기반 매핑을 하는 grid-vorolemapfile 기반 인증 모듈, GUMS와 통신해서 인증을 하는 SAS 웹 서비스 모듈이 있다.

GUMS와 연동하여 SAS 웹 서비스 모듈에 의한 인증 절차는 그림 18과 같다. GUMS의 SRS 서비스를 통해서 gPLAZMA는 권한 인증을 받고 그 결과인 데이터 접근을 위한 UID, GID, 사용자 홈 정보, 데이터 접근 권한 (Read-only, Read-write 등)을 넘겨 받게 된다.

이를 SRM 서버나 GridFTP 서버에 넘겨 주어 사용자가 요청한 데이터 전송 요구를 처리하게 된다.

그림 18. gPLAZMA 권한 인증 절차 [31]

(7) gLExec

사용자 프로그램 혹은 작업이 그리드 자원제공자에서 수행될 때 또 다른 여러 개의 작업을 생성해서 수행할 수 있다. 여러 개의 Worker 노드를 생성하는 첫 번째 작업을 Pilot 작업 혹은 프로그램이라고 한다. Pilot 작업은 여느 사용자 인증과 동일한 과정을 통해서 사용자의 권한 인증을 받게 된다. 하지만, 일단 권한 위임을 마친 Pilot 작업은 지역 ID 등의 기타 프로그램과 동일한 지위를 가지게 되어 그 이후 여러 개의 Worker 작업을 생성할 수 있다. 이 경우 Pilot 작업에 의해서 생성되는 Worker 작업은 아무런 권한 인증 과정 없이 수행되는 보안적 문제점이 있다.

- 28 -

gLExec는 그리드 Identity를 Unix/Linux Identity로 매핑시켜 Job의 uid와 gid를 설정하는 프로그램으로, Pilot 작업의 이러한 보안적 문제점을 해결하기 위해서 VO Services Project에서 Worker 노드에 대한 권한 위임 모듈로 구현하였다. 그림 19처럼 Pilot 작업이 작업을 생성할 때 중간에 gLExec를 거쳐서 생성함으로써 Pilot 작업에 의해 동적으로 생성되는 Worker 작업의 권한 위임 및 인증을 제어할 수 있다. [32]

그림 19. Pilot 작업에 의한 사용자 작업 인증 [32]

관련 문서