KR20170051486A - 멀티-테넌트 환경에서 보안 네트워크 통신을 위해 통합된 방화벽을 제공하는 시스템 및 방법 - Google Patents

멀티-테넌트 환경에서 보안 네트워크 통신을 위해 통합된 방화벽을 제공하는 시스템 및 방법 Download PDF

Info

Publication number
KR20170051486A
KR20170051486A KR1020177009087A KR20177009087A KR20170051486A KR 20170051486 A KR20170051486 A KR 20170051486A KR 1020177009087 A KR1020177009087 A KR 1020177009087A KR 20177009087 A KR20177009087 A KR 20177009087A KR 20170051486 A KR20170051486 A KR 20170051486A
Authority
KR
South Korea
Prior art keywords
database
database service
access
access control
consumer
Prior art date
Application number
KR1020177009087A
Other languages
English (en)
Other versions
KR102318338B1 (ko
Inventor
바딤 마커바크스
리차드 피. 무소
비요른 다그 욘센
수만타 채터지
아비니쉬 팬트
라바르네 쟝 드
칸트 씨. 파텔
바스카 마투르
페로즈 알람 칸
수딥 바트사나스 레구나
Original Assignee
오라클 인터내셔날 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 오라클 인터내셔날 코포레이션 filed Critical 오라클 인터내셔날 코포레이션
Publication of KR20170051486A publication Critical patent/KR20170051486A/ko
Application granted granted Critical
Publication of KR102318338B1 publication Critical patent/KR102318338B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0236Filtering by address, protocol, port number or service, e.g. IP-address or URL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0254Stateful filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1458Denial of Service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

통합된 방화벽은 복수의 데이터베이스 서비스들을 제공하는 데이터베이스 서버들과 각각이 서로 다른 데이터베이스 서비스 소비자 신원을 갖는 데이터베이스 서비스 소비자들을 호스팅하는 어플리케이션 서버들을 직접 연결하는 연결-기반 스위칭 패브릭을 갖는 멀티-테넌트 환경에서 보안을 제공한다. 각각의 데이터베이스 서버에 통합된 방화벽 기능은 데이터베이스 서비스 소비자 신원을 포함하지 않는 통신 패킷들을 폐기하고 데이터베이스 서비스 소비자들에서 데이터베이스 서비스들로의 액세스를 제어하기 위해 액세스 제어 리스트와 결합하여 데이터베이스 서비스 소비자 신원을 사용함으로써, 액세스 제어를 제공한다. 액세스 제어는 상기 액세스 제어 리스트에 기초한 어드레스 결정 액세스 제어, 연결 구축 액세스 제어 및 데이터 교환 액세스 제어를 포함한다. 통합된 방화벽은 별도의 중간 방화벽 어플라이언스 또는 보안 노드를 요구함이 없이, 인피니밴드 네트워크를 통해 데이터베이스 서버들과 어플리케이션 서버들의 직접 연결을 가능하게 한다.

Description

멀티-테넌트 환경에서 보안 네트워크 통신을 위해 통합된 방화벽을 제공하는 시스템 및 방법{SYSTEM AND METHOD FOR PROVIDING AN INTEGRATED FIREWALL FOR SECURE NETWORK COMMUNICATION IN A MULTI-TENANT ENVIRONMENT}
[저작권 공지]
이 특허 문서의 개시 부분에는 저작권 보호 대상인 자료가 포함되어 있다. 저작권 소유자는 특허청 및 상표국의 특허 파일 또는 기록에 나타나있는 특허 문서 또는 특허 개시 내용에 대한 사본 재생에 대해서는 이의를 제기하지 않지만, 이외에 다른 행위에 대해서는 모든 저작권 권리를 보유한다.
[기술분야]
본 발명은 일반적으로 컴퓨터 시스템들에 관한 것으로, 특히 네트워크 환경에서 보안 통신을 제공하는 것에 관한 것이다.
상호 연결 네트워크는 차세대 슈퍼 컴퓨터들, 클러스터들 및 데이터 센터들에서 유익한 역할을 한다. 대규모 클라우드 컴퓨팅 아키텍처들이 도입됨에 따라, 전통적인 네트워크 및 저장소와 관련된 성능 및 관리상의 병목 현상들(bottlenecks)이 상당한 문제가 되었다. 차세대 데이터 센터는 어플리케이션들을 호스팅하는 복수의 컴퓨트 노드들을 갖는 미들웨어 머신 시스템(middleware machine system)을 포함할 수 있다. 이러한 미들웨어 머신 시스템의 일 예시는 Oracle® Exalogic 컴퓨터 어플라이언스(computer appliance)이다. 또한, 차세대 데이터 센터는 데이터베이스 서버 시스템을 포함할 수 있다. 데이터베이스 서버 시스템의 일 예시는 Oracle® Exadata Database Machine이다. 미들웨어 머신 시스템은 데이터베이스 서버 시스템과 협력하여 작동한다. 데이터베이스 서버 시스템에 저장된 데이터는 컴퓨터 동작들을 위해 미들웨어 머신 시스템에서 사용 및 검색되고, 미들웨어 머신 시스템에서 생성되거나 수정된 데이터는 데이터베이스 서버 시스템에 저장된다. 따라서, 미들웨어 머신 시스템과 데이터베이스 서버 시스템 사이의 연결은 낮은 프로토콜 오버 헤드와 함께, 신뢰성 있고, 고속이며, 지연이 적고, 대역폭이 높다는 것이 중요하다. 예를 들면, 인피니밴드(IB: InfiniBand) 기술은 클라우드 컴퓨팅 패브릭을 위한 기반으로서 배치(deployment)의 증가를 보여왔다. 인피니밴드는, 다른 여러 가지 것들 중에서도 특히, 미들웨어 머신 시스템과 데이터베이스 서버 시스템 사이의 원격 직접 메모리 액세스(RDMA) 동작들을 지원할 수 있는 스위칭 패브릭 토폴로지(switched fabric topology)를 사용하는 연결-기반 통신 프로토콜이다.
그러나, 데이터 센터들은 종종 다수의 테넌트들에 의해 공유된다. 예를 들면, 다수의 테넌트들은 클라우드 컴퓨팅 환경들에 있는 서로 다른 협력 엔티티들일 수 있다. 심지어 데이터 센터가 하나의 협력 엔티티에 전용인 경우에도, 다수의 테넌트들이 서로 다른 부서들의 형태(예컨데, 재무, 인사, 엔지니어링 및 다른 부서들과는 별도로 보관해야하는 데이터를 소유한 부서 등)로 있을 수 있다. 데이터가 보안되고, 허가된 테넌트들 및 관련된 사용자들에게 액세스할 수 있고, 허가되지 않은 테넌트들 및 관련되지 않은 사용자들에게 액세스할 수 없는 것은 다중 테넌트 환경에서 중요하거나 필요하다. 마찬가지로, 미들웨어 머신 시스템에서 어플리케이션들은 특정 테넌트와 관련되어 있고, 따라서 데이터베이스 서버 시스템의 데이터는 다른 어플리케이션들이 아닌 특정 어플리케이션으로 액세스할 수 있어야 한다.
허가되지 않은 액세스로부터 데이터를 보호하는 종래의 방식은 방화벽 어플라이언스를 사용하는 것이다. 방화벽 어플라이언스(예컨데, 이더넷 방화벽 어플라이언스)는 미들웨어 머신 시스템 시스템과 공유된 이더넷 매체에 있는 데이터베이스 서버 시스템 사이에 위치할 수 있다. 방화벽 어플라이언스는 데이터베이스 서비스들로의 액세스를 제어하여, 허가되지 않은 테넌트들 및 이들과 관련된 어플리케이션들이 아닌, 허가된 테넌트들 및 상기 허가된 테넌트들과 관련된 어플리케이션에게 이러한 서비스가 이용가능 하도록 포트를 구성한다. 그러나, 이러한 방화벽 어플라이언스의 사용은 미들웨어 머신 시스템과 데이터베이스 서버 시스템 사이의 직접적인 연결을 막고, 간접 연결 상에서 병목 현상을 일으킨다. 현재, 인피니밴드 방화벽 어플라이언스는 이용가능하지 않다. 따라서, 방화벽이 요구/특정된다면, 종래의 이더넷 방화벽 어플라이언스(또는 이와 유사한 것)가 사용되어야 한다. 그러나, 종래의 이더넷 방화벽 어플라이언스는 추가적인 네트워킹 오버 헤드를 필연적으로 발생시키고, 시스템의 확장성(scalability)을 제한하는 병목 현상을 만든다. 종래의 이더넷 방화벽 어플라이언스의 사용은 인피니밴드와 같은 고속 연결-기반 스위칭 패브릭뿐만 아니라 이러한 연결-기반 스위칭 패브릭이 미들웨어 머신 시스템과 데이터베이스 서버 시스템 사이에서 수행된 동작들에 제공하는 최적화들을 방해한다.
보안성을 제공하기 위해 중간 노드들을 사용하는 미들웨어 및 어플리케이션 실행 시스템을 위한 엔지니어링된 시스템에서 데이터 흐름을 제공하고 제어하는 종래의 시스템 및 방법은 2014년 8월 25일자로 출원된 출원 번호 14/467859, "미들웨어 및 어플리케이션 실행을 위한 엔지니어링된 시스템에서 데이터 서비스를 제공하는 시스템 및 방법"이라는 제목의 미국 특허 출원; 2014년 8월 25일자로 출원된 출원 번호 14/467860, "미들웨어 및 어플리케이션 실행을 위한 엔지니어링된 시스템에서 데이터 흐름을 제어하는 시스템 및 방법"이라는 명칭의 미국 특허 출원; 2014년 8월 25일자로 출원된 출원 번호 14/467868, "미들웨어 및 어플리케이션 실행을 위한 엔지니어링된 시스템에서 데이터 서비스 어드레싱을 지원하는 시스템 및 방법"이라는 제목의 미국 특허 출원; 및 2014년 8월 25일자로 출원된 출원 번호 14/467896, "미들웨어 및 어플리케이션 실행을 위한 엔지니어링된 시스템에서 호스트 채널 어댑터(HCA) 필터링을 지원하는 시스템 및 방법"이라는 명칭의 미국 특허 출원;에 기재되어 있으며, 상기 출원들은 본원에 참조로서 포함된다. 그러나, 중간 노드들의 사용은 통신 채널에 대한 대기 시간 및 오버 헤드를 필연적으로 증가시킨다. 이러한 어플리케이션들은 일반적인 적용가능성을 갖는 방화벽 어플라이언스를 기술한다. 그러나, 중간 노드들은 두 종점 사이에서 이동하는 각각의 패킷을 수신하고 프로세싱하기 때문에, 상기 솔루션은 추가 네트워킹 오버 헤드를 요구하여 대기 시간 및 확장성 문제에 영향을 준다. 추가적으로, 각각의 패킷에 대해 요구된 프로세싱의 관점에서, 시스템은 오버 헤드, 대기 시간 및 확장성 영향들과 관련하여 얼마나 많은 패킷 처리가 수행되는지 사이에서 트레이드-오프(trade-off)한다.
표준 방화벽 어플라이언스를 사용하여 본 발명 개시 내용에서 기술된 것과 유사한 솔루션을 제공하기 위해, 본 발명 개시 내용에서 기술한 바와 같이, 각각의 연결의 상태 및 특정 어플리케이션 레이어 구성(예를 들어, 데이터베이스 서비스)과의 상기 연결의 관련을 추적할 필요가 있을 것이다.
따라서, 멀티 테넌트 환경에서 데이터의 보안을 보장하는 보안성 솔루션을 제공하면서, 중간 방화벽 어플라이언스 및/또는 중간 노드들의 종래의 사용에 의해 나타나는 단점들을 극복하는 것이 바람직할 것이다.
멀티 테넌트 환경에서 데이터의 보안을 보장하는 보안 솔루션을 제공하면서 중간 방화벽 어플라이언스의 종래의 사용에 의해 나타나는 단점들을 극복하는 시스템들 및 방법들이 본 명세서에서 기술된다. 본 명세서에 기술된 보안 솔루션은 중간 방화벽 어플라이언스의 사용을 필연적으로 피하고, 미들웨어 머신 시스템과 데이터베이스 서버 시스템 사이에서 병목 현상 없는 직접 연결을 허용한다. 보안 솔루션은 미들웨어 머신 시스템과 데이터베이스 서버 시스템을 연결하는 인피니밴드와 같은 고속 연결-기반 스위칭 패브릭의 사용뿐만 아니라 이러한 연결-기반 패브릭이 미들웨어 머신 시스템과 데이터베이스 서버 시스템 사이에 수행되는 동작들을 제공할 수 있는 최적화를 가능하게 한다. 미들웨어 머신 시스템의 노드들과 데이터베이스 서버 시스템의 노드들은 임의의 중간 방화벽 어플라이언스 또는 컴퓨트 노드를 통함이 없이, 스위칭 패브릭 내 하나 이상의 스위치들을 통해 직접 연결될 수 있다. 보안 솔루션은 SR-IOV 기술에 의해 제공되는 것들을 포함하여, 시스템으로 하여금 이러한 직접 연결에 의해 가능해진 모든 범위의 최적화의 이점을 취하도록 하는 방식으로 동작한다.
일부 실시예들에서, 본 개시 내용은 복수의 데이터베이스 서비스들을 제공하는 데이터베이스 서버들과 각각이 서로 다른 데이터베이스 서비스 소비자 신원을 갖는 데이터베이스 서비스 소비자들을 호스팅하는 어플리케이션 서버들을 직접 연결하는 연결-기반 스위칭 패브릭을 갖는 멀티-테넌트 환경에서 보안을 제공하는 통합된 방화벽을 설명한다. 각각의 데이터베이스 서버에 통합된 방화벽 기능은 데이터베이스 서비스 소비자 신원을 포함하지 않는 통신 패킷들을 폐기하고 데이터베이스 서비스 소비자들에서 데이터베이스 서비스들로의 액세스를 제어하기 위해 액세스 제어 리스트와 결합하여 데이터베이스 서비스 소비자 신원을 사용함으로써, 액세스 제어를 제공한다. 액세스 제어는 상기 액세스 제어 리스트에 기초한 어드레스 결정 액세스 제어, 연결 구축 액세스 제어 및 데이터 교환 액세스 제어를 포함한다. 통합된 방화벽은 별도의 중간 방화벽 어플라이언스 또는 보안 노드를 요구함이 없이, 인피니밴드 네트워크를 통해 데이터베이스 서버들과 어플리케이션 서버들의 직접 연결을 가능하게 한다. (허가된 경우) 통합된 방화벽은 시스템으로 하여금 소비자들에서 데이터베이스 서비스들로의 직접 네트워킹 하드웨어 액세스를 제공하는 SR-IOV 기법의 이점을 취하도록 할 수 있다.
일부 실시예들에서, 본 개시 내용은 연결-기반 패브릭, 복수의 서로 다른 테넌트들과 관련된 데이터를 보유하는 저장 셀들, 상기 데이터를 사용하여 복수의 데이터베이스 서비스들을 제공하는 데이터베이스 서버들 및 데이터베이스 서비스 소비자들을 보유하는 어플리케이션 서버들을 포함하는 멀티-테넌트 환경에서 보안 통신을 제공하는 완전한 보안 솔루션을 설명한다. 패브릭은 저장 셀들을 데이터베이스 서비스 소비자들로부터 고립시키는 다수의 파티션들 내에 구성될 수 있다. 고유한 데이터베이스 서비스 소비자 신원들은 각각의 데이터베이스 서비스 소비자와 보안적으로 관련된다. 보안 솔루션은 소비자 식별자들이 데이터베이스 서비스 소비자들과 데이터베이스 서버들 사이의 모든 통신들에 포함되도록 구성된다. 데이터베이스 서버들은 신원을 포함하지 않은 데이터베이스 서비스 소비자들로부터의 모든 통신들을 거부한다. 데이터베이스 서버들은 어드레스 결정 액세스 제어, 연결 구축 액세스 제어 및 데이터 교환 액세스 제어 중 하나 이상을 사용하여 데이터베이스 서비스 소비자들로부터 데이터베이스 서비스들로의 액세스를 제어하기 위해 통신 패킷들에서 제공된 신원들과 결합하여, 액세스 제어 리스트를 사용한다. 또한, 서비스 거부(DoS: Denial of service) 공격은 패킷들에 포함된 소비자 신원들에 기초하여 수행될 수 있다. 보안 솔루션은 별도의 중간 방화벽 어플라이언스 또는 보안 노드를 요구함이 없이, 방화벽 기능을 제공하는 인피니밴드 네트워크를 통해 데이터베이스 서버들과 어플리케이션 서버들의 직접 연결을 가능하게 한다.
일부 실시예들에서, 본 개시 내용은 네트워크 환경에서 보안 통신을 제공할 수 있는 시스템들 및 방법들을 설명한다. 네트워크를 통한 멀티-테넌트 환경과 같은 네트워크 환경은 하나 이상의 서비스 제공자 노드들, 하나 이상의 서비스 소비자 노드들 및 하나 이상의 저장 셀들을 포함할 수 있다. 상기 하나 이상의 서비스 제공자 노드들은 상기 하나 이상의 서비스 제공자 노드들과 상기 하나 이상의 서비스 소비자 노드들 사이의 보안 통신을 보장할 수 있다. 나아가, 네트워크 환경은 상기 하나 이상의 서비스 제공자 노드들과 관련된 하나 이상의 저장 셀들을 상기 하나 이상의 서비스 소비자 노드들로부터 고립시킬 수 있다. 추가적으로, 네트워크 환경은 상기 하나 이상의 서비스 소비자 노드들 상의 하나 이상의 가상 머신들(VMs)에 대해, 상기 하나 이상의 서비스 제공자 노드들 상에서 실행되는 하나 이상의 서비스 제공자 인스턴스들에 보안 액세스를 제공할 수 있다.
일부 실시예들에서, 본 개시 내용은 네트워크 환경에서 보안 통신을 제공하는 방법을 설명하고, 상기 방법은: 네트워크 환경의 하나 이상의 서비스 제공자 노드들을 통해, 상기 하나 이상의 서비스 제공자 노드들과 하나 이상의 서비스 소비자 노드들 사이의 보안 통신을 보장하는 단계; 상기 하나 이상의 서비스 제공자 노드들과 관련된 하나 이상의 저장 셀들을 상기 하나 이상의 서비스 소비자 노드들로부터 고립시키는 단계; 및 상기 하나 이상의 서비스 소비자 노드들 상의 하나 이상의 가상 머신들(VMs)에 대해, 상기 하나 이상의 서비스 제공자 노드들 상에서 실행되는 하나 이상의 서비스 제공자 인스턴스들에 보안 액세스를 제공하는 단계를 포함한다.
본 발명의 이들 및 다른 목적들과 이점들은 첨부 도면들에 비추어 읽을 때, 다양한 실시예들에 대한 다음의 설명으로부터 당해 기술분야에서 통상의 지식을 가진자에게 명백해질 것이다.
본 발명의 다양한 실시예들이 다음의 도면들에 기초하여 상세히 설명된다.
도 1은 본 발명의 실시예에 따른, 네트워크 환경에서 보안 통신을 제공하는 예시를 도시한다.
도 2는 본 발명의 실시예에 따른, 스위칭 네트워킹 패브릭에 의해 미들웨어 머신 시스템에 연결된 데이터베이스 서버 시스템을 갖는 통합된 시스템에서의 액세스 제어를 도시한다.
도 3은 본 발명의 실시예에 따른, 스위칭 네트워킹 패브릭에 의해 미들웨어 머신 시스템의 컴퓨트 노드에 연결된 데이터베이스 서버 시스템의 데이터베이스 노드에서의 액세스 제어를 도시한다.
도 4A 내지 도 4C는 본 발명의 실시예에 따른, 미들웨어 머신 시스템의 컴퓨트 노드 상의 가상 머신으로부터의 통신 패킷들 내 소스 식별자들을 보안적으로 임베딩(embedding)하는 시스템 및 방법의 양태들을 도시한다.
도 5A는 본 발명의 실시예에 따른, 액세스 제어 리스트를 도시한다.
도 5B 및 5C는 본 발명의 실시예에 따른, 도 5A의 액세스 제어 리스트를 생성, 업데이트 및 분배하는 시스템 및 방법을 도시한다.
도 6은 본 발명의 실시예에 따른, 도 5A의 액세스 제어 리스트에 기초하여 데이터베이스 노드들에서 수행된 연결 구축 액세스 제어 및 데이터 교환 제어의 양태들을 도시한다.
네트워크 환경에서 보안 통신을 제공할 수 있는 시스템들 및 방법들이 본 명세서에서 설명된다. 네트워크를 통한 멀티-테넌트 환경과 같은 네트워크 환경은 하나 이상의 서비스 제공자 노드들, 하나 이상의 서비스 소비자 노드들, 및 하나 이상의 저장 셀들을 포함할 수 있다. 상기 하나 이상의 서비스 제공자 노드들은 상기 하나 이상의 서비스 제공자 노드들과 상기 하나 이상의 서비스 소비자 노드들 사이의 보안 통신을 보장할 수 있다. 나아가, 네트워크 환경은 상기 하나 이상의 서비스 제공자 노드들과 관련된 하나 이상의 저장 셀들을 상기 하나 이상의 서비스 소비자 노드들로부터 고립시킬 수 있다. 추가적으로, 네트워크 환경은 상기 하나 이상의 서비스 소비자 노드들 상의 하나 이상의 가상 머신들(VMs)에 대해, 상기 하나 이상의 서비스 제공자 노드들 상에서 실행되는 하나 이상의 서비스 제공자 인스턴스들에 보안 액세스를 제공할 수 있다.
다음의 설명에서, 본 발명은 첨부 도면들의 도면들에 한정되는 것이 아닌 예시로서 도시될 것이다. 본 개시 내용의 다양한 실시예에 대한 언급들은 반드시 동일한 실시예일 필요는 없으며, 이러한 참조 문헌들은 적어도 하나를 의미한다. 특정 구현예들이 논의되지만, 이는 단지 예시적인 목적들을 위해 제공되는 것으로 이해된다. 당해 기술분야에서 통상의 지식을 가진자는 본 발명의 범위 및 사상을 벗어남이 없이 다른 컴포넌트들 및 구성들이 사용될 수 있음을 인식할 것이다.
나아가, 특정 경우들에서, 본 발명의 완전한 설명을 제공하기 위해 다수의 특정 세부 사항들이 설명될 것이다. 그러나, 당해 기술분야에서 통상의 지식을 가진자는 본 발명이 이러한 특정 세부 사항들 없이 실시될 수 있음을 명백히 인식할 것이다. 다른 경우들에서, 잘 알려진 구성들은 본 발명을 모호하게 하지 않도록 상세하게 기술되지 않았다.
본 발명은 특정 기능들의 실행 및 그 관계들을 도시하는 기능적인 빌딩 블록들의 지원(aid)으로 설명된다. 이러한 기능적인 빌딩 블록의 경계들은 설명의 편의를 위해 본 명세서에서 종종 임의로 정의되었다. 따라서, 동일한 요소들에 의해 수행되도록 도시된 기능들은 대안적인 실시예들에서 서로 다른 요소들에 의해 수행 될 수 있다. 또한, 개별 요소들에서 수행되는 것으로 도시된 기능들은 대신에 하나의 요소로 결합 될 수 있다. 특정된 기능들 및 그 관계들이 적절하게 수행되는 한, 대안적인 경계들을 정의할 수 있다. 따라서, 이러한 임의의 다른 경계는 본 발명의 범위 및 사상 내에 있다.
공통 참조 번호들은 도면들 및 상세한 설명 전반에 걸쳐 동일한 요소들을 나타내기 위해 사용된다. 따라서, 도면에서 사용된 참조 번호들은 상기 요소가 다른 곳에서 설명되는 경우 이러한 도면에 특정 상세한 설명에서 참조되거나 참조되지 않을 수 있다. 세 자리 참조 번호에서 첫 번째 숫자는 상기 요소가 처음으로 나타나는 도면의 번호를 나타낸다.
다음의 설명에서, 일부 실시예들은 인피니밴드 패브릭(InfiniBand fabric)에 의해 Oracle® Exadata 데이터베이스 서버 시스템에 연결된 Oracle® Exalogic 미들웨어 머신을 갖는 시스템을 설명한다. 그러나, 당해 기술분야에서 통상의 지식을 가진자는 본 발명이 본 발명의 범위를 벗어남이 없이 많은 고성능 컴퓨팅 환경에 적용될 수 있음을 이해할 것이다. 더욱이, 비록 인피니밴드 패브릭에 의해 Oracle® Exadata 데이터베이스 서버 시스템에 연결된 Oracle® Exalogic 미들웨어 머신의 수많은 특정 세부 사항들이 본 발명의 완전한 설명을 제공하기 위해 기술되었지만, 당해 기술분야에서 통상의 지식을 가진자는 본 발명이 이러한 특정 세부 사항들 없이도 실행될 수 있음을 인식할 것이다. 따라서, 본 발명을 실시하는 멀티-테넌트 컴퓨팅 환경의 특정 구현예는, 일부 실시예들에서, 본 발명의 범위를 벗어남이 없이, 아래에 설명된 미들웨어 머신, 데이터베이스 서버 시스템 및 인피니밴드 패브릭과는 서로 다른 구성들 또는 수정된 구성들을 제외할 수 있다.
도 1은 본 발명의 실시예에 따른, 네트워크 환경에서 보안 통신을 제공하는 시스템 및 방법의 개요를 도시한다. 도 1에 도시된 바와 같이, 멀티-테넌트 환경(100)은 인피니밴드(IB) 서브넷(110)에 기초할 수 있다. IB 서브넷(110)은 하나 이상의 서비스 제공자들(예를 들어, 데이터베이스 노드(102)), 하나 이상의 서비스 소비자들(예를 들어, 컴퓨트 노트(101) 상의 가상 머신) 및 하나 이상의 저장 셀들(103)을 포함한다. 일반적인 시스템은 인피니밴드 서브넷(101)에 의해 연결된 많은 수의 유사한 데이터베이스 노드들(102), 컴퓨트 노드들(101) 및 저장 셀들(103)을 포함할 것이다.
도 1에 도시된 바와 같이, 멀티-테넌트 환경(100)은 방화벽 기능을 수행하고 컴퓨트 노드들(101) 상의 가상 머신들(111 및 112)과 데이터베이스 노드들(102) 상의 데이터베이스 인스턴스(113) 사이의 보안 통신을 제공하는 데이터베이스 노드들(102)에 의존할 수 있다. 신뢰된 보안 도메인으로서 고려되는 데이터베이스 노드들(102)은 컴퓨트 노드들(101) 상의 가상 머신들보다 더 안전한 경향이 있다. 추가적으로, 멀티-테넌트 환경(100)은 컴퓨트 노드들(101)상의 가상 머신으로부터 저장 셀들(103)을 고립시킬 수 있다. 즉, 저장 셀들(103)은 데이터베이스 노드들(102)에 의해서만 액세스할 수 있고 컴퓨트 노드들(101)상의 가상 머신에 의해서는 액세스할 수 없을 수 있다.
본 발명의 실시예에 따라, 멀티-테넌트 환경(100)을 지원하는 IB 서브넷(110)은 서로 다른 파티션들을 사용하여 구성될 수 있다. 예를 들면, 저장 셀들(103)로의 액세스는 전용 IB 파티션을 사용하는 것을 통해 고립될 수 있는바, 저장 셀들(103)은 컴퓨트 노드들(101)에 대해 보이지(visible) 않게 될 수 있다. 추가적으로, 비록 데이터베이스 노드들(102)은 컴퓨터 노드들(101) 상에서 실행되는 모든 테넌트들에 의해 공유될 수 있으나, 데이터베이스 노드들(102)로의 액세스는 다른 전용 파티션을 통해 고립될 수 있다. 반면에, 데이터베이스 노드들(102)은 서로 다른 네트워킹 인터페이스들을 사용하여 파티션 모두에 액세스 할 수 있다.
도 1에 도시된 바와 같이, 컴퓨트 노드(101)는 하나 이상의 가상 머신들(VM들)(예를 들어, VM들(111 및 112))을 지원할 수 있으며, 상기 가상 머신들 각각은 VM 식별자를 할당받을 수 있다. VM 배치시 할당된 VM 식별자는 하드웨어를 사용하여 시행될 수 있다. VM 식별자는 VM들(111 및 112)에 의해 전송된 각각의 패킷에 나타날 수 있다. 나아가, 데이터베이스에 대한 VM의 액세스를 제어하는데 사용될 수 있는 VM 식별자는 VM 자체에 의해 조작될 수 없다. 추가적으로, VM 식별자는 VM 라이프 사이클(life cycle) 동안 변경될 수 있다(즉, VM 식별자는 영구적이지 않다).
도 1에 도시된 바와 같이, 멀티-테넌트 환경(100)은 VM들(111 및 112)에 의해 데이터베이스 인스턴스(113)로의 보안 액세스를 보장할 수 있다. 예를 들면, 시스템은 VM들(111 및 112)에 의해 데이터베이스 노드들(112)로 전송된 각각의 패킷에 나타나는 VM 식별자들을 사용하여, 네트워킹 레이어에서 액세스 제어 메카니즘에 기초하고 데이터베이스 노드들(101)의 어플리케이션 레이어에서 작업부하 검사(workload inspection) 메카니즘에 기초할 수 있다. 도 1에 도시된 바와 같이, 액세스 제어(114)는 컴퓨트 노드들(101) 상의 VM들(111 및 112)에게 명백하고(transparent), 데이터베이스 노드들(102) 상에서 시행될 수 있다. 시스템은 VM들(111 및 112)에 의해 특정 데이터베이스 서비스(예를 들어, 데이터테이스 인스턴스(113)에 의해 제공된 특정 데이터베이스 서비스)로의 액세스를 제한할 수 있다. 예를 들면, VM(111)은 데이터베이스 인스턴스(113)에 의해 제공된 데이터베이스 서비스에 액세스하는 것이 허용되는 반면, VM(112)은 데이터베이스 인스턴스(113)에 의해 제공된 데이터베이스 서비스에 액세스하는 것이 금지된다.
도 1에 도시된 바와 같이, 시스템은 어드레스 및 라우트 결정(route resolution)을 특정 데이터베이스 노드들(102)로 제한하기 위해 데이터 패킷들을 전송하는 제어 경로를 구성할 수 있다. 또한, 제어 경로는 연결 구축을 특정 데이터베이스 서비스로 제한하도록 구성될 수 있다. 추가적으로, 시스템은 하드웨어(예를 들어, 데이터베이스 노드들(102)의 호스트 채널 어댑터(HCA))에서 데이터 교환 액세스 제어를 시행하고 상당한 성능 영향을 피하기 위해, 데이터 패킷들을 전송하는 데이터 경로를 구성할 수 있다.
도 1에 도시된 바와 같이, 시스템은 보안 통신 채널(120)을 통과하기 위해, 컴퓨트 노드들(101)과 데이터베이스 노드들(102) 사이의 통신을 제한할 수 있다. 본 명세서에서, 상세한 설명이 데이터베이스 노드들과 컴퓨트 노드들 사이의 통신을 지칭할 때마다, 이는 컴퓨트 노드들 자체보다는 데이터베이스 노드들과 컴퓨트 노드들 상에서 실행되는 VM들 사이의 통신을 지칭한다. 보안 통신 채널(120)은 강화된 액세스 제어를 갖는 IB 신뢰할 수 있는 연결(RC: reliable connection) 프로토콜에 기초할 수 있고, 상기 네트워킹 인터페이스를 통해 데이터베이스로의 TCP/UDP/SDP 액세스를 금지시킬 수 있다. 예를 들면, 일 실시예에서, Oracle Exadirect Secure는 IB 네트워크를 통해 Exalogic 컴퓨트 노드들과 Exadata 데이터베이스 노드들 사이의 고속 보안 통신을 제공할 수 있다. Oracle® Exadirect Secure는 Java Database Connectivity(JDBC) 및 Oracle® Call Interface(OCI) 클라이언트들에 의해서만 사용될 수 있다(즉, SQLNET으로 효과적으로 제한됨).
도 1에 도시된 바와 같이, 시스템은 IB 서브넷(110)의 외부에 위치하는 보안 어플라이언스(104)를 통해, VM(111)과 데이터베이스 인스턴스(113)에 의해 제공되는 특정 데이터베이스 서비스들 사이의 보안 통신을 추가적으로 구축할 수 있다. 예를 들면, 만일 Exalogic 컴퓨트 노드들 상의 어플리케이션이 Exadata 데이터베이스와 인터페이스하기 위해 JDBC 또는 OCI 클라이언트들을 사용하지 않는다면, Exalogic 컴퓨트 노드들은 대신 보안 어플라이언스(104)를 통해 별도의 이더넷-기반 통신을 사용할 수 있다.
도 2는 본 발명의 실시예에 따른, 스위칭 네트워킹 패브릭(206)에 의해 미들웨어 머신 시스템(220)에 연결된 데이터베이스 서버 시스템(240)을 갖는 통합된 시스템에서의 액세스 제어를 도시한다. 통합된 시스템(200)은 멀티 테넌트 환경에서 데이터의 보안을 보장하는 보안 솔루션을 제공하면서 중간 방화벽 어플라이언스의 종래의 사용에 의해 나타나는 단점들을 극복하는 액세스 제어 기능성을 제공한다. 상기 보안 솔루션은 인피니밴드 패브릭(206)과 같은 고속 연결-기반 네트워킹 패브릭의 사용뿐만 아니라, 이러한 연결-기반 스위칭 패브릭이 미들웨어 머신 시스템(220)과 데이터베이스 서버 시스템(240) 사이에서 수행된 동작들에 제공할 수 있는 최적화들을 가능하게 한다.
통합된 시스템(200)은 인피니밴드 패브릭(206)에 의해 미들웨어 머신 시스템(220)에 연결된 데이터베이스 서버 시스템(240)을 포함한다. 실시예에서, 데이터베이스 서버 시스템(240)은 Oracle® Exadata 데이터베이스 서버 시스템이고, 미들웨어 머신 시스템(220)은 Oracle® Exalogic 미들웨어 머신 시스템이다. 데이터베이스 서버 시스템(240)은 데이터베이스 관리자(DBA)(212)에 의해 관리될 수 있고, 통합된 시스템(200)은 관리 스택(210)을 사용하여 시스템 관리자(211)에 의해 관리될 수 있다. 미들웨어 머신 시스템(220)은 가상 머신들의 집합(데이터베이스 서비스 소비자들)을 포함한다. 각각의 가상 컴퓨터는, 배치시, 하드웨어 시행 고유 식별자(VMID)를 할당받는다. 상기 식별자는 서브넷 관리자(214)에 의해 할당되고, 인피니밴드 패브릭(206) 내 스위치(216) 상에서 보안적으로 실행되며, 헤더의 소스 글로벌 식별자(SGID: source global identifier)로서 미들웨어 머신 시스템(220)의 각각의 컴퓨트 노드들 상의 하드웨어에 의하여 가상 머신에 의해 생성된 각각의 패킷의 헤더로 임베디드된다. 상기 시스템은 각각의 VM을 보안적으로 식별하고 해당 VM에서 특정 데이터베이스 서비스(데이터베이스 서비스 공급자)로의 액세스를 제어하기 위해, 각각의 패킷 식별자의 SGID에 제공된 상기 고유한 VMID를 사용한다. 실시예들에서, 데이터베이스 서비스로의 액세스는 데이터베이스 포어그라운드 프로세스(database foreground process)에 의해서뿐만 아니라, 아래에 설명된 바와 같이 데이터베이스 리스너(database listener) 및 HCA에 의해서도 제한된다. 대안적인 실시예들에서, 액세스 제어는 플러거블 데이터베이스(PDB: pluggable database) 또는 데이터베이스 테이블(database table)과 같은 다른 데이터베이스 프리미티브들(database primitives)에 적용될 수 있다.
상기 시스템은 데이터베이스 서버 시스템(240)에 의해 제공되는 특정 데이터베이스 서비스로의 액세스가 관리 스택(210)의 제어 하에서 액세스 제어 리스트(ACL)에서 상기 특정 데이터베이스 서비스로의 액세스를 허용(grant)하였던 미들웨어 머신 시스템(220)의 가상 머신들로 제한되는 액세스 제어 수단들을 포함한다. 액세스는 예를 들어 특정 테넌트와 관련된 가상 머신들에게만 허용될 수 있다. 액세스 제어 목록(ACL)은 각각의 지정된(named) 데이터베이스 서비스를 상기 서비스에 액세스할 수 있는 VM들에 대응하는 VM 식별자들의 세트와 관련시킨다. 액세스 제어 시스템은 상기 지정된 데이터베이스 서비스에 대하여 ACL에서 허가된 VM들만이 상기 지정된 데이터베이스 서비스에 액세스할 것을 보장한다. ACL의 컨텐츠는 관리 스택(210)을 사용하는 통합된 시스템의 관리자의 보안 제어하에 있다.
도 2에 도시된 바와 같이, 데이터베이스 서버 시스템(240)은 다수의 저장 셀들(250)을 포함한다. 4개의 저장 셀들(250a, 250b, 250c 및 250d)이 도시된다. 일반적인 시스템은 많은 수의 유사한 저장 셀들을 포함할 수 있다. 저장 셀들은 멀티 테넌트 환경 내 특정 테넌트와 관련될 수 있는 데이터/데이터베이스 파일들을 저장한다. 도 2에 도시된 바와 같이, 전용 저장 액세스 파티션은 저장 셀들(250)로의 액세스를 제한한다. 저장 액세스 파티션(202)으로의 액세스는 저장 셀들 및 데이터베이스 노드들에만 허용된다. 컴퓨트 노드들(220a, 220b, 220c 및 220d)상의 가상 머신들은 저장 액세스 파티션(202)으로의 액세스가 허용되지 않고, 따라서 저장 셀들(250)에 직접 액세스 할 수 없다.
또한, 데이터베이스 서버 시스템(240)은 복수의 데이터베이스 노드들(260)을 포함한다. 2개의 데이터베이스 노드들(260a 및 260b)이 도시된다. 일반적인 시스템은 많은 수의 유사한 데이터베이스 노드들을 포함할 것이다. 데이터베이스 노드들(260a 및 260b)은 저장 액세스 파티션(202)을 통해 저장 셀들(250a, 250b, 250c 및 250d)에 액세스 할 수 있다. 데이터베이스 노드들(260a, 260b) 각각은 복수의 데이터베이스 프로세스들(예를 들어, PDB(261a, 262a, 261b 및 262b))을 호스트(host)할 수 있고, 이들 각각은 지정된 데이터베이스 서비스(예를 들어, DB SVC(263a, 264a, 263b 및 264b))를 제공할 수 있다. 각각의 지정된 데이터베이스 서비스는 하나 이상의 특정 테넌트들과 관련될 수 있다. 저장 셀들(250a, 250b, 250c 및 250d)은 공유된 저장 매체를 나타낸다. 특정 저장 셀들은 특정 테넌트들과 연관되거나 이에 전용될 필요는 없다. 실시예에서, 저장 셀들(250)은 데이터베이스 노드들(260)에 의해 관리되는 분배된 저장 어레이를 나타낸다. 데이터베이스 파일들은 다수의 저장 셀들에 걸쳐 스트리핑(strip)될 수 있다. 그러나, 저장 셀들 상의 데이터베이스 파일들의 다양한 배열들(arrangements)은 데이터베이스 노드들(260)의 제어 하에서 활용될 수 있다. 저장 셀들이 전용 저장 액세스 파티션(204)을 사용하여 컴퓨트 노드들의 VM들로부터 고립되기 때문에, 저장 셀들(250)에 액세스하기 위해 추가적인 보안 수단들이 필요하지 않다. 저장 액세스 파티션(204)은 데이터베이스 노드들(260a 및 260b) 및 저장 셀들(250a, 250b, 250c 및 250d)에게만 이용가능하다. 따라서, 복수의 저장 셀들(250)은 미들웨어 머신 시스템(220) 및 컴퓨트 노드들(220a, 220b, 220c 및 220d) 상의 가상 머신들으로부터 고립된다.
미들웨어 머신 시스템(220)이 복수의 저장 셀들(250) 상에 저장된 데이터베이스 파일들에 액세스하는 유일한 방식은 간접적으로 복수의 데이터베이스 노드들(260) 상의 하나 이상의 테넌트-특정 지정된 데이터베이스 서비스들을 호출하는 것이다. 하기에 설명되는 바와 같이, 데이터베이스 노드들(260a 및 260b)로의 액세스는 액세스 제어(266a 및 266b)를 사용하여 제어되고 보안된다. 또한, 컴퓨트 노드들 상의 가상 머신들에서 데이터베이스 노드들로의 액세스는 전용 데이터베이스 액세스 파티션(204)으로 제한된다. 상기 파티션은 기본 파티션(default partition)과 다르며, 서로 다른 컴퓨트 노드들 자체에 있는 가상 머신들 사이의 통신에는 사용되지 않는다. 만일 다수의 테넌트들이 배치된 경우, 상기 다수의 테넌트들은 데이터베이스 노드들에 액세스하기 위해 모두 동일한 데이터베이스 액세스 파티션(204)을 공유한다. 모든 VM들은 데이터베이스 액세스 파티션(204)을 사용하는 VM들 사이의 통신을 방지하기 위해 데이터베이스 액세스 파티션(204)의 제한된 멤버로서 구성된다. 모든 데이터베이스 노드들은 데이터베이스 액세스 파티션(204)의 전체 멤버로서 구성된다.
미들웨어 머신 시스템(220)은 복수의 컴퓨트 노드들을 포함하며, 상기 복수의 컴퓨트 노드들 중 4개(220a, 220b, 220c 및 220d)가 도시된다. 일반적인 시스템은 많은 수의 유사한 컴퓨트 노드들을 포함할 것이다. 컴퓨트 노드들은 가상 머신들에서 실행되는 어플리케이션(미도시)을 호스트한다. 가상 머신들 각각은 멀티 테넌트 환경에서 특정 테넌트에 할당될 수 있다. 각각의 컴퓨트 노드들 상에서 실행되는 복수의 가상 머신들(및 어플리케이션들)이 있을 수 있다. 8개의 가상 머신(VM)들(221a, 222a, 221b, 222b, 221c, 222c, 221d 및 222d)이 도시된다. 일반적인 시스템은 각각의 컴퓨트 노드들 및 다수의 추가적인 컴퓨트 노드들 상에서 실행되는 많은 수의 유사한 가상 머신들을 포함할 것이다. 각각의 가상 머신은 서브넷 관리자(214)의 제어하에서 가상 머신을 호스트하는 컴퓨트 노드들의 하드웨어에 의해, 식별자(VMID)(223a, 224a, 223b, 224b, 223c, 224c, 223d 및 224d)와 연관된다. 컴퓨트 노드들(220a, 220b, 220c 및 220d) 상의 VM들은 연결 기반 신뢰할 수 있는 프로토콜을 사용하여 저장 액세스 파티션(202)을 통해 복수의 데이터베이스 노드들(260)과 통신할 수 있다. 바람직한 실시예에서, 컴퓨트 노드들(220a, 220b, 220c 및 220d) 상의 VM들은 인피니밴드 패브릭(206)을 통해 복수의 데이터베이스 노드들(260)과 통신할 수 있다.
컴퓨트 노드들(220a, 220b, 220c 및 220d)의 하드웨어는 가상 머신들 상의 어플리케이션들과 데이터베이스 노드들 사이의 통신 패킷들을 전송한다. 컴퓨트 노드들의 하드웨어는 각각의 패킷의 헤더에 가상 머신 통신과 관련된 VMID을 포함하는 소스 글로벌 식별자(SGID)를 포함한다. VMID들은 하드웨어 내 가상 머신들과 관련되어 있기 때문에, 가상 머신들은, 그들의 식별자들을 스푸프(spoof)할 수 없다. 즉, 가상 머신들은 하드웨어에 의해 상기 가상 머신들이 관련되지 않은 식별자들을 사용할 수 없다. 또한, 컴퓨트 노드들의 하드웨어는 데이터베이스 액세스 파티션(204)를 통해 데이터베이스 노드들과 통신할 때, 가상 머신들로부터의 모든 통신 패킷들이 관련된 가상 머신의 VMID를 포함하는 SGID를 가상 머신들의 헤더에 포함하는 것을 보장한다.
전술한 바와 같이, 미들웨어 머신 시스템(220)의 가상 머신들이 복수의 저장 셀들(250) 상의 데이터에 액세스하는 유일한 방식은 복수의 데이터베이스 노드들(260) 상의 특정 지정된 데이터베이스 서비스들을 호출하는 것이다. 가상 머신들은 저장 액세스 파티션을 통해 통신하도록 허용되지 않고, 따라서 저장 셀들과 직접적으로 통신할 수 없다. 가상 머신들 각각은 임의의 지정된 데이터베이스 서비스들로의 연결을 생성하려고 시도할 수 있다. 그러나, 각각의 데이터베이스 노드는 하드웨어(예를 들면, HCA)에서 구현되는 액세스 제어 기능들(266a 및 266b) 및 데이터베이스 노드의 소프트웨어를 포함한다.
액세스 제어 기능들(266a 및 266b)은 SGID로부터 가상 머신이 지정된 서비스에 연결을 시도하고 있는 수신된 통신 패킷들에서 식별할 수 있다. 액세스 제어 기능들(266a 및 266b)은 액세스 제어 리스트(268a 및 268b)에 응답하여 액세스 제어 기능을 제공하고, 상기 액세스 제어 기능은 어떠한 가상 머신들이 어떠한 지정된 서비스들에 액세스할 수 있는지 식별한다. ACL의 콘텐츠들은 관리 스택(210)의 보안 제어하에 있고, ACL의 사본들은 각각의 데이터베이스 노드로 분배된다. 액세스 제어 기능들(266a 및 266b)은 어드레스 결정 액세스 제어(address resolution access control), 연결 구축 액세스 제어, 데이터 교환 액세스 제어 및 IPolB 액세스 제어 중 하나 이상을 포함할 수 있다.
액세스 제어 기능들(266a 및 266b)은 만일 VM이 특정 데이터베이스 노드에 의해 제공된 임의의 데이터베이스 서비스에 액세스할 권한이 없는 경우, 상기 가상 머신이 상기 특정 데이터베이스 노드와의 연결을 구축하는 것을 방지할 수 있다. 또한, 액세스 제어 기능들(266a 및 266b)은 VM이 특정 데이터베이스 서비스에 액세스 하기 위해 액세스 제어 리스트에서 권한이 부여되지 않는 한, 상기 가상 머신이 상기 특정 데이터베이스 서비스와의 연결 및 통신을 구축하는 것을 방지할 수 있다. 멀티 테넌트 환경의 실시예에서, 액세스 제어 리스트는 특정 데이터베이스 서비스와 같은 동일한 테넌트와 관련된 가상 머신들만이 상기 특정 데이터베이스 서비스와의 연결 및 통신을 구축하도록 구성된다. 허가되지 않은 가상 머신들로부터의 연결 요청들은 모두 거부된다. 후술하는 바와 같이, 액세스 제어는 연결의 라이프 사이클 내 다양한 단계들에서 수행될 수 있다.
도 3은 본 발명의 실시예에 따른, 스위칭 네트워킹 패브릭(예컨데, 인피니밴드 패브릭(206))에 의해 미들웨어 머신 시스템(220)의 컴퓨트 노드에 연결된 데이터베이스 서버 시스템(240)의 데이터베이스 노드에서의 액세스 제어를 도시한다. 도 3은 멀티 테넌트 환경에서 데이터의 보안을 보장하는 보안 솔루션을 제공하면서 중간 방화벽 어플라이언스의 통상적인 사용에 의해 나타나는 단점들을 극복하는 액세스 제어 시스템의 엘리먼트들의 상세도를 도시한다. 간략하게 하기 위해, 도 3은 인피니밴드 패브릭(206)에 의해 연결된 하나의 컴퓨트 노드(320)와 하나의 데이터베이스 노드(360)의 구성을 도시한다. 하나의 가상 머신(331)이 컴퓨트 노드(320) 상에 도시된다. 그러나, 일반적인 시스템은 인피니밴드 패브릭(206)에 의해 연결된 다수의 유사한 컴퓨트 노드들, 가상 머신들 및 데이터베이스 노드들을 포함할 것이다.
도 3에 도시된 바와 같이, 컴퓨트 노드(320)는 호스트 채널 어댑터(HCA), 각각이 하나 이상의 코어들을 갖는 하나 이상의 마이크로프로세서들을 포함할 수 있는 CPU(328) 및 4기가 바이트 이상의 메모드를 포함할 수 있는 메모리 RAM(329)을 포함한다. 컴퓨트 노드(320)는 어플리케이션 레이어(330)에서 하나 이상의 어플리케이션들을 호스트한다. 이러한 어플리케이션들 중 하나 이상의 인스턴스들은 고유한 VMID와 관련된 각각의 가상 머신을 가진 가상 머신들에서 실행될 것이다. 하나의 가상 머신(VM)(331)이 도시되었으나, 다수의 가상 머신들이 하나의 컴퓨트 노드(320) 상에서 동작할 수 있다. 다수의 어플리케이션들은 컴퓨트 노드 상의 동일한 가상 머신 또는 서로 다른 가상 머신들에서 실행될 수 있다. 예를 들면, 어플리케이션들은 하나 이상의 OCI 어플리케이션(332)을 포함할 수 있고, 상기 OCI 어플리케이션(332)은 Oracle® Call Interface를 사용하여 데이터베이스와 통신하기 위해 OCI 클라이언트(333)를 사용한다. 어플리케이션은 하나 이상의 JDBC 어플리케이션(334)을 포함할 수 있고, 상기 JDBC 어플리케이션(334)은 자바 데이터베이스 연결을 사용하여 데이터베이스와 통신하기 위해 JDBC 클라이언트(335)를 사용한다.
OCI 클라이언트(333) 및 JDBC 클라이언트(335)는 어플리케이션 레이어 내 어플리케이션 인스턴스를 호스팅하는 각각의 가상 머신에 장착된 가상 기능(VF: virtual function)를 사용하는데 있어 싱글 루트 I/O 가상화(SR-IOV) 기술을 사용하는 HCA(326) 및 직접 액세스 스택(Direct Access Stack)(340)을 통해 원격 직접 메모리 액세스(RDMA)를 사용하여 데이터를 전송하고 수신할 수 있다. 도 3에 도시된 바와 같이, HCA(326)의 가상 기능(321)은 VM(331)에 장착된다. 데이터는 어플리케이션 레이어의 특정 가상 머신들과 관련된 메모리로 또는 상기 메모리로부터 직접적으로 보내질 수 있다. 오픈 패브릭 엔터프라이즈 분배(OFED: Open Fabric Enterprise Distribution) 스택(342)은 RDMA 스위칭 패브릭(이 경우 인피니밴드 패브릭(206))에 대한 연결 제어를 제공한다.
싱글 및 멀티-루트 IO 가상화 기술들은 PCI-SIG에 의해 게시된 표준 규격들에서 정의된다. 싱글 루트 I/O 가상화(SR-IOV) 기술의 특정 양태들, RDMA 및 가상 머신들에 장착된 가상 기능은 예를 들면, 2013년 3월 15일자로 출원된 출원 번호 13/838121, "가상화 환경에서 가상 머신들의 라이브 마이그레이션을 지원하는 시스템 및 방법"이라는 제목의 미국 특허 출원; 2013년 3월 15일자로 출원된 출원 번호 13/838275, "확장된 호스트 채널 어댑터(HCA) 모델에 기초하여 가상 머신들의 라이브 마이그레이션을 지원하는 시스템 및 방법"이라는 제목의 미국 특허 출원; 및 2013년 3월 15일자로 출원된 출원 번호 13/837922, "인피니밴드 네트워크에서 가상 머신들의 라이브 마이그레이션을 지원하는 시스템 및 방법"이라는 제목의 미국 특허 출원에 기재되어 있으며, 상기 출원들은 본원에 참조로서 포함된다.
SR-IOV 기술의 이점은 가상 머신들이 PCIE 가상 기능(PCIE VF)을 통해 직접적인 하드웨어 액세스를 허용한다는 것이다. 이는 물리적 배치와 같은 동일한 성능을 제공하고, VM들의 수와 함께 선형 성능 확장성을 제공하는 사용자-레벨 네트워킹 및 RDMA를 지원한다. 따라서, SR-IOV는 인피니밴드 패브릭과 같은 고속 상호연결을 최대한 활용하도록 요구된다. 그러나, 반가상화(paravirtualization)와 같은 소프트웨어 I/O 가상화 기술들과 달리, SR-IOV는 VM으로의 액세스를 제어하는 중간 소프트웨어가 없다. 따라서, VM 네트워킹 스택이 신뢰될 수 없는 경우, 네트워킹 트래픽을 인터셉트(intercept)하고 필터링하는 신뢰할 수 있는 소프트웨어 중재가 없다. 따라서, 액세스 제어를 제공하면서 SR-IOV 기술들을 완전히 활용하기 위해, 본 명세서에서 설명된 바와 같이 네트워크상에서 보안 VM 식별자(VMID)가 보이게 되고, 액세스 제어가 외부 엔티티 또는 서비스 제공자(데이터베이스)에 의해 중재된다. 도 3에서 도시된 바와 같이, 데이터베이스 노드(360)는 호스트 채널 어댑터(HCA)(366), 각각이 하나 이상의 코어들을 갖는 하나 이상의 마이크로프로세서들을 포함할 수 있는 CPU(368) 및 4기가 바이트 이상의 메모리를 포함할 수 있는 메모리-RAM(369)을 포함한다. 예를 들면, 데이터베이스 프로세스들은 하나 이상의 OCI 서버 어플리케이션(372)을 포함할 수 있고, 상기 OCI 서버 어플리케이션(372)은 컴퓨트 노드들 상의 가상 머신들과 통신하기 위해 Oracle® Call Interface를 사용한다. 또한, 어플리케이션 레이어(370)는 복수의 데이터베이스 프로세스 인스턴스들(PDB)(374a, 374b 및 374c)(3개가 도시됨)을 호스트할 수 있다. OCI 서버 어플리케이션은 싱글 루트 I/O 가상화(SR-IOV) 기술을 사용하는 직접 액세스 스택(376) 및 HCA(366)을 통해 원격 직접 메모리 액세스(RDMA)를 사용하여 데이터를 전송하고 수신할 수 있다. 데이터는 어플리케이션 레이어의 특정 가상 머신들과 관련된 메모리로 또는 상기 메모리로부터 직접적으로 보내질 수 있다. 오픈 패브릭 엔터프라이즈 분배(OFED: Open Fabric Enterprise Distribution) 스택(377)은 RDMA 스위칭 패브릭(이 경우 인피니밴드 패브릭(206))에 대한 연결 제어를 제공한다. 본 발명의 실시예들에서, 액세스 제어는 액세스 제어 리스트들에 기초하여 예를 들면, OFED 스택(377), HCA(366) 및 OS 스택(378)을 포함하는 데이터베이스 노드들의 다양한 컴포넌트들에서 구현될 수 있다.
인피니밴드 패브릭(206)은 컴퓨트 노드(320)의 HCA(326) 및 데이터베이스 노드(360)의 HCA(366)(복수의 다른 컴퓨트 노드들 및 데이터베이스 노드들의 추가적인 복수의 HCA들은 미도시)가 연결된 복수의 스위치들(하나가 도시됨)을 포함한다. 인피니밴드(약칭 IB)는 고성능 컴퓨팅에서 사용되는 컴퓨터-네트워킹 통신 표준이며, 매우 높은 처리량과 매우 낮은 대기 시간을 특징으로 한다. 인피니밴드는 저장 시스템들 사이뿐만 아니라 서버들 및 저장 시스템들 사이의 직접 또는 스위칭 연결로서 활용된다. 인피니밴드는 이더넷과 같은 공유된 매체 기술과 달리, 스위칭 패브릭 폴로지를 사용한다. 모든 전송들이 HCA에서 시작되거나 종료된다. 도 3의 시스템에서, HCA(366)는 임의의 중간 방화벽 어플라이언스 또는 노드 없이 스위치(216)를 통해 인피니밴드 패브릭(206)에 의해 HCA(326)에 연결된다.
인피니밴드 패브릭(206)은 인피니밴드 패브릭(206)의 구성을 담당하는 하나 이상의 서브넷 관리자(214) 및 IB 연결 구축의 프로세스에서 사용되는 라우트 결정을 구현한다. 또한, 서브넷 관리자(214)는 보안 서브넷 관리 패킷들(SMP)을 통해 서브넷에 장착된 HCA들(366 및 326)을 구성한다. 본 발명의 실시예들에서, 서브넷 관리자(214)는 특정 가상 머신들과 관련된 특정 가상 기능들과 관련된 가상 머신 식별자들(VMIDs)을 통해 서브넷 내 HCA들을 보안적으로 구성하기 위해 사용될 수 있다. 도 3에 도시된 바와 같이, 예를 들면, VMID(322)는 가상 머신(331)에 장착된 HCA(326)의 가상 기능(321)과 관련된다.
또한, 서브넷 관리자(214)는 서브넷 내 HCA들을 보안적으로 구성하기 위해 사용되어, 컴퓨트 노드 상의 가상 머신과 데이터베이스 노드 사이에서 전송된 각각의 통신 패킷이 특정 가상 머신과 관련된 특정 가상 기능과 관련된 가상 머신 식별자(VMID)를 포함하는 소스 글로벌 식별자(SGID)를 포함하는 글로벌 라우팅 헤더(GRH)를 포함하도록 한다. 도 3에서 도시된 바와 같이, 예를 들면, 컴퓨트 노드(320)의 가상 머신(331)과 데이터베이스 노드 사이에서 전송된 각각의 통신 패킷은 가상 머신(331)에 장착된 VF(321)와 관련된 VMID(322)를 포함하는 글로벌 라우팅 헤더(GRH)을 포함한다. 따라서, VMID들과 가상 머신들과의 관련 및 통신 패킷들 내 SGID들의 포함은 서브넷 관리자(214) 및 HCA들의 보안 제어하에 있고, 컴퓨트 노드(320) 또는 컴퓨트 노드 상의 VM들에 의해 스푸프되거나 손상될 수 없다. 따라서, 심지어 컴퓨트 노드로의 루트 액세스를 가진 사용자 또는 어플리케이션도 VMID들을 변경할 수 없을 것이고, SGID들은 허가되지 않은 VMID들/SGID들을 패킷 헤더들에 포함시키거나 상기 VMID들/SGID들을 사용할 것이다.
실시예들에서, OFED 스택(377) 및 각각의 데이터베이스 노드(360)의 HCA(366)은 하나 이상의 액세스 제어 리스트(ACL)(375a 및 375b)에 기초하여, 액세스 제어를 구현한다. 액세스 제어는 패킷들과 관련된 가상 머신을 식별하기 위해, 인피니밴드 패킷들에 임베디드된 SGID들을 사용한다. OFED 스택(377) 및 HCA(366)는 적절한 ACL에 의해 허가되지 않는 한, 컴퓨트 노드들 내 가상 머신들과 데이터베이스 프로세스들 사이의 연결의 구축 및 데이터의 전송을 방지하기 위해, 하나 이상의 액세스 제어 리스트(ACL)(375a 및 375b)에 기초하여 액세스 제어를 구현한다. 그러나, 허가된 가상 머신과 데이터베이스 프로세스 사이에 연결이 이루어지고 통신이 허용되는 경우, 연결은 컴퓨트 노드(320) 상의 OCI 클라이언트(333) 인스턴스, OCI 서버(372) 및 데이터베이스 노드(360) 사이의 중간 방화벽 어플라이언스(예컨데, 이더넷 방화벽(390))의 도움없이 인피니밴드를 통해 완전한 직접 RDMA를 허용한다. 일단 액세스 제어 로직 및 하드웨어에 의해 허가된 VM은 VM들의 수와 함께 선형 성능 확장성을 결과로 하는 VM으로의 액세스를 제어하기 위해 임의의 중간 소프트웨어 없이 사용자-레벨 네트워킹 및 RDMA를 지원하는 연결을 사용하고 데이터베이스 노드의 HCA 하드웨어에 의해 시행되는 데이터 교환 액세스와의 고속 인피니밴드 상호연결의 이점을 최대한 활용하는 물리적인 배치로서, (PCIE VF를 통해) 동일한 성능으로 데이터베이스 서비스로의 직접적인 하드웨어 액세스를 허용한다.
또한, 컴퓨트 노드(320) 상의 어플리케이션들은 JDBC 또는 OCI를 사용하지 않는 하나 이상의 다른 어플리케이션(336)을 포함할 수 있고, 따라서 RDMA에 대해 직접 액세스 스택(340)을 활용하는 것을 배제하고 대신에 이더넷을 통해 데이터베이스와 통신하기 위해 소켓들(337)을 사용한다. 소켓들(337)은 OS 스택(344)을 통하여 인피니밴드(EolB) 어댑터(346)를 통해 이더넷에 연결된다. 이더넷 패킷들은 EoIB를 사용하여 게이트웨이(306)로 보내지고, 상기 게이트웨이(306)는 외부의 이더넷 네트워크를 통해 패킷들을 인피니밴드 패브릭(206)으로 재전송한다. 이더넷 통신들은 데이터베이스 노드(360)에 도달하기 전에 종래의 이더넷 방화벽 어플라이언스(390)를 통과한다. 데이터베이스 노드(360)에서, 이더넷 통신들은 이더넷 방화벽 어플라이언스(390)로부터 네트워크 인터페이스 카드(NIC)(367)로 수신되고, OS 스택(378)을 통해 소켓들(379)로 전송된다. 상기 연결 경로는 읽기/쓰기 소켓들(379) 내 프로세서 오버헤드, OS 스택 오버헤드 및 게이트웨이(306)의 포함을 포함하는 다양한 양태들의 높은 오버헤드를 특징으로 하는 것을 주목하여야 하며, 이더넷 방화벽(390)은 통신 경로이다.
도 4A 내지 도 4C는 본 발명의 실시예에 따른, 미들웨어 머신 시스템의 컴퓨트 노드들 상의 가상 머신에서 데이터베이스 서버 시스템의 데이터베이스 노드들로 보내진 통신 패킷들의 헤더들 내 소스 식별자들(SGIDs)을 보안적으로 임베딩(embedding)하는 시스템 및 방법의 양태들을 도시한다. 도 4A는 보안 서브넷 관리자의 제어하에서 호스트 채널 어댑터 하드웨어를 사용하는 인피니밴드 패킷들의 헤더들의 SGID들 내 가상 머신 식별자들(VMIDs)의 임베딩을 도시한다. 도 4A에 도시된 바와 같이, 스위치(216)는 인피니밴드 패브릭(206)의 구성을 담당하는 서브넷 관리자(214) 및 IB 연결 구축의 프로세스에 사용되는 라우트 결정을 구현한다. 또한, 서브넷 관리자(214)는 대역-내에서 보내질 수 있는 보안 서브넷 관리 패킷들(SMP)을 통해 서브넷에 장착된 모든 HCA들을 구성한다.
본 발명의 실시예들에서, 서브넷 관리자(214)는 특정 가상 머신들과 관련된 특정 가상 기능들과 관련된 가상 머신 식별자들(VMIDs)을 통해 서브넷 내 HCA들을 보안적으로 구성하기 위해 사용될 수 있다. 각각의 서브넷 관리자(214)는 HCA(326)의 보안 메모리에 저장된 포트 글로벌 고유 식별자(GUID) 테이블을 구성하기 위해 서브넷 관리 패킷들을 사용한다. 서로 다른 포트 GUID 테이블은 서브넷에 연결된 각각의 HCA에서 구성된다. 포트 GUID 테이블(400)은 각각의 가상 기능(VF) 및 그에 따른 각각의 가상 머신을 VMID로서 사용하기 위해 서브넷 관리자(214)에 의해 구축된 GUID와 관련시키기 위해 HCA(326)에서 사용된다. 따라서, VMID들과 가상 머신들의 관련은 서브넷 관리자의 보안 제어하에 있고, 가상 머신에 의해 스푸프되거나 손상될 수 없다.
또한, 서브넷 관리자(214)는 데이터베이스 액세스 파티션을 구성하여, HCA(326)가 HCA(326)에 의해 데이터베이스 노드로 전송되는 각각의 인피니밴드 패킷(402a, 402b 및 402c)의 글로벌 라우팅 헤딩(GRH) 내 GUID를 포함하도록 한다. 실시예에서, 서브넷 관리자(214)는 컴퓨트 노드들 상의 가상 머신들과 데이터베이스 노드들 사이의 연결에 대해 GRH를 사용하도록 소프트웨어 스택에 명령한다. GRH가 연결에 대해 특정되면, 하드웨어(예를 들어, HCA(326))는 상기 연결을 통해 보내진 모든 패킷들의 GRH를 포함할 것이다. VMID는 글로벌 라우팅 헤더에 GRH.SGID로서 포함되며, 상기 GRH.SGID는 장착된 VF(VMID)의 GUID의 연결(concatenation) 및 서브넷 접두부(Subnet Preflex)이다. 인피니밴드 패킷들이 하나의 서브넷 내의 엔트포인트들(enpoints) 사이에서 전송될 때, GRH는 일반적으로 인피니밴드 패킷들에서 전송되지 않는다. 서브넷 관리자(214)가 HCA(326)에 의해 데이터베이스 노드로 전송된 각각의 인피니밴드 패킷이 GRH를 포함함을 보장하는 한 방식은 모든 데이터 노드들을 컴퓨팅 노드들과는 별개인 서브넷의 일부로서 식별하는 것이다- 그러면, 인피니밴드를 통해 서로 다른 서브넷들 사이의 통신에 대한 표준 프로토콜을 따라, HCA는 모든 인피니밴드 패킷들에 GRH을 포함할 것이다. 대안적으로, 서브넷 관리자(214)는 심지어 동일한 서브넷에서도 모든 인피니밴드 패킷들에서 GRH의 전송을 요구하는 방침(policy)의 변경을 특정할 수 있다.
일부 실시예에서, 서브넷 관리 파티션 명령은 GRH 플래그를 포함하기 위해 확장된다. GRH 플래그는 파티션 생성시 서브넷 관리자(214)에 의해 구성된다. 연결에 대한 경로 결정이 데이터베이스 액세스 파티션(204)을 특정할 때(도 2 참조), GRH 플래그는 모든 인피니밴드 패킷에서 GRH의 포함을 요구한다. 액세스 제어 기능은 특정 네트워크 인터페이스들(예를 들어, 데이터베이스 액세스 파티션(204))에 적용될 수 있고, 다른 네트워크 인터페이스들(예를 들어, 저장 액세스 파티션(202))에는 적용될 수 없음을 주목하라. 따라서, GRH 포함이 필요하지 않기 때문에, GRH 플래그는 저장 액세스 파티션(202)에 설정될 필요가 없다. 실시예에서, 서브넷 관리자(214)는 GRH 포함을 유발하기 위해, 데이터베이스 액세스 파티션(204)에 대한 경로 결정 관리 데이터그램의 홉 제한 속성(HopLimit attribute)을 1보다 큰 값으로 설정한다. 홉 제한 속성을 1보다 크게 설정함으로써, 서브넷 관리자(214)는 데이터베이스 노드들 및 컴퓨트 노드들이 서로 다른 서브넷들에 속한다는 착각(illusion)을 생성함으로써, 데이터베이스 액세스 파티션을 통해 컴퓨트 노드들의 가상 머신들에서 데이터베이스 노드들로 보내진 모든 인피니밴드 패킷에 GRH의 포함을 트리거링한다.
도 4B는 네트워크 환경에서 데이터 서비스에 액세스하기 위해 인피니밴드 (IB) 어드레싱을 사용하는 인피니밴드 패킷(402)을 도시한다. 도 4B에 도시된 바와 같이, IB 패킷(402)은 페이로드(406) 및 로컬 라우팅 헤더(LRH)(408)와 다른 헤더들(410 및 412)을 포함하는 IB 프로토콜들에 따른 다양한 헤더들을 포함한다. 로컬 라우팅 헤더(LRH)는 스위치들에 의해 서브넷을 통해 패킷을 상기 패킷의 목적지 엔드 노드 네트워크 포트로 움직이기 위해 사용된다. 여기에는 소스 및 목적지 로컬 식별자들(LIDs), 링크 프로토콜 버전 ID, 서비스 레벨, 가상 레인(virtual lane), 패킷 길이 및 선택적인 필드들이 있음을 나타내기 위해 사용되는 "다음 헤더"필드를 포함한다. 추가적으로, IB 패킷(402)은 상기 IB 패킷의 완전성(integrity)을 보장하기 위해 사용되는 불변 ICRC(414) 및 가변 VCRC(416)을 포함할 수 있다. 상기 도시된 바와 같이, 서브넷 관리자(214)는 서브넷 및/또는 HCA를 구성하여, 데이터베이스 액세스에서 전송된 각각의 IB 패킷(402)의 헤더들이 또한 글로벌 라우팅 헤더(GRH)(404)를 포함하도록 한다. GRH(404)는 HCA(326)의 하드웨어에 의해 각각의 IB 패킷으로 임베디드된다. VMID는 글로벌 라우팅 헤더에 GRH.SGID로서 포함되며, 상기 GRH.SGID는 장착된 VF(VMID)의 GUID의 연결 및 서브넷 접두부이다.
도 4C는 글로벌 라우팅 헤더(GRH)(404)의 구성요소들을 도시한다. GRH는 일반적으로 라우터들에 의해 서로 다른 서브넷들 사이에서 패킷들을 이동시키기 위해 사용된다. 본 발명의 실시예들에서, 이는 IB 패킷의 소스의 GUID가 각각의 패킷에 임베디드되도록 하여, 가상 머신들이 식별될 수 있도록 하는 것을 보장한다. 도 4C에 도시된 바와 같이, GRH(404)는 소스 GUID(440) 및 목적지 GUID(442)를 포함한다. 또한, GRH(404)는 라우팅 버전 ID, 페이로드 길이, IP 버전, 트래픽 클래스 및 홉 제한을 포함한다. 도 4C에 도시된 바와 같이, 소스 GUID(440)은 HCA(326)에 저장된 포트 GUID 테이블(400)에 기초하여, HCA(326)의 하드웨어에 의해 IB 패킷(402)의 GRH(404)에 임베디드된다. 이전에 설명된 바와 같이, 포트 GUID 테이블(400)은 서브넷 관리자(214)에 의해 보안적으로 구성된다. 따라서, 각각의 인피니밴드 패킷은 소스 GUID(440)을 포함하고, 상기 소스 GUID(440)는 패킷과 관련된 가상 머신을 고유하게 식별한다. 소스 GUID(440)는 서브넷 관리자(214)의 제어하에서 HCA(326)의 하드웨어에 의해 구현되고, 호스트 하는 가상 머신들의 컴퓨트 노드에 의해 수정될 수 없다. GRH.SGID는 장착된 VF(VMID)의 GUID의 연결 및 서브넷 접두부이므로, VMID는 SGID에 포함된다. 따라서, 컴퓨트 노드 상의 가상 머신은 서브넷 관리자(214)에 의해 할당되지 않은 임의의 소스 GUID를 사용할 수 없다.
관리 스택
관리 스택(210)(도 2 참조)은 가산 머신들의 배치를 조정하고, 액세스 제어 리스트(ACL)을 사용하여 이러한 VM들로부터 데이터베이스 서버 시스템(240)의 특정 데이터베이스 서비스들로의 액세스를 관리한다. ACL 테이블은 임의의 미들웨어 머신 시스템의 각각의 특정 데이터베이스로의 액세스를 제어하기 위해 요구되는 모든 정보를 포함한다. 가상 머신들은 모든 액세스 제어들이 데이터베이스 노드들 상에서 실행되는 소프트웨어 및 하드웨어에 의해 수행되기 때문에 데이터베이스 노드들과의 통신이 액세스 제어되고, 따라서 미들웨어 머신 시스템(220)의 컴퓨트 노드들 상의 가상 머신들에 명백하다는 것을 인식하지 못한다.
도 5A는 액세스 제어 리스트(ACL)(524)를 도시한다. 도 5A에서 도시된 바와 같이, ACL(524)은 각각의 지정된 데이터베이스 서비스에 대한 행(Svcname 1 내지 N)을 갖는다. 각각의 지정된 서비스에 대해, ACL(524)은 어떠한 가상 머신들(VMID에 의해 식별된)이 지정된 서비스에 액세스하도록 허용되는지 표시한다. ACL(524)은 VMID 허가들에 대한 지정된 서비스의 완전한 세분화(complete granularity)를 허용하며, 도 5B에 도시된 바와 같이 채워진다. 실시예들에서, ACL은 특정 테넌트와 관련된 VM들이 멀티 테넌트 환경 내 동일한 테넌트와 관련된 지정된 데이터베이스 서비스들로만 액세스할 수 있도록 구성된다. 그러나, ACL(524)은 VMID 허가들에 대한 지정된 서비스의 완전한 세분화를 허용하는바, ACL은 일부 데이터베이스 서비스들이 공유되고 따라서 하나 이상의 테넌트들과 관련된 VM들에 의해 액세스될 수 있도록 구성된다. 논리적으로, 데이터베이스 ACL 테이블은 다음과 같이 정렬될 수 있다; 현재 할당된 VMID를 가진 개개의 VM들을 나타내는 행; 및 특정 VM들에 의해 액세스되도록 허용된 데이터베이스 서비스들의 이름들을 나타내는 열.
데이터베이스 ACL 테이블은 본 명세서에서 설명된 액세스 제어 시스템을 위해 특별히 생성된 데이터베이스 테이블이다. PL/SQL 패키지는 관리 스택(210)에 실제 테이블 구현의 내부적인 세부 사항들을 노출함이 없이 상기 테이블의 관리를 허용하는 API를 제공한다. 오직 관리 스택(210)만이 데이터베이스 ACL 테이블을 업데이트할 것이다. 전용 데이터베이스 서비스는 데이터베이스 ACL 테이블에 액세스하기 위해 생성될 수 있다. 데이터베이스 ACL에 액세스하기 위해 사용되는 데이터베이스 서비스들의 이름들은 관리 스택(210)에 알려져야 하며, API들 또는 구성 파일들을 통해 수용된 관리 스택 배치 옵션에 기초하여 제공된다. 관리 스택(210)은 데이터베이스 ACL 테이블에 액세스 하기 위해 전용 관리 데이터베이스 액세스 파티션을 사용할 수 있고, 바람직하게는 TCP를 통해 SQL을 사용한다. 관리 데이터베이스 액세스 파티션으로의 액세스는 관리 스택(210)에 의해서만 제한된다.
데이터베이스 리스너(546)(도 5B 참조)는 관리 스택에 대한 액세스를 데이터베이스 서버 시스템 상에 배치된 모든 데이터베이스들 상의 데이터베이스 ACL 테이블들에 제공하기 위해 사용된다. 데이터베이스 리스너들 및 이들 좌표들의 수는 구성 속성들로서 관리 스택(210)에 제공된다. 관리 스택은 데이터베이스 노드들 중 하나에서 실행되는 PL/SQL과 통신한다. 데이터베이스 ACL 테이블 업데이트들을 이러한 노드들 상에서 실행되는 모든 데이터베이스 노드들, 모든 DB 리스너들(546) 및 IPoIB 드라이버들(526)에게 전파하는 것은 데이터베이스 서버 시스템의 역할이다.
시스템 관리자는 하나 이상의 데이터베이스 서비스들로의 액세스로 미들웨어 머신 시스템 컴퓨트 노드들 상에 배치된 VM들을 구성할 수 있다. 데이터베이스 서비스들은 VM이 배치된 동일한 테넌트와 관련되어야 하며, 관리 스택(210)이 이러한 제한을 시행한다. 관리 스택(210)은 로컬 데이터베이스 또는 구성 파일에서 데이터베이스 서비스(들) 관련에 대한 VMID를 유지시킨다. 추가적으로, 관리 스택(210)은 데이터베이스 ACL 테이블을 빌드(build)/재빌드하는 상기 정보를 사용할 수 있다.
ACL에서, 각각의 VM은 VM의 고유한 VMID 및 주어진 데이터베이스 서비스 이름에 기초하여 액세스가 허가된 데이터베이스 서비스들과 관련된다. 관리 스택은 VM 및 VMID의 관련을 추적하고 VM 라이프사이클에 걸쳐 적절하게 데이터베이스 ACL 테이블을 업데이트하는 것을 담당한다. VM 배치에서, VM UUID를 수행하는 새로운 엔트리는 관리 스택에 의해 데이터베이스 ACL 테이블에 추가된다. 상기 엔트리는 결국 VMID 및 하나 이상의 데이터베이스 서비스 이름들로 업데이트될 것이다. 후속적인 VM 라이프 사이클 동작들 동안, 엔트리는 상기 VM에 할당된 새로운 VMID 또는 승인되거나 철회된 액세스를 가진 새로운 데이터베이스 서비스(들)로 업데이트될 수 있다. VF는 부팅 VM에 장착된 핫-플러그(hot-plug)이고, 주어진 VM이 시작되는 때마다 서로 다른 VF가 장착될 수 있는바 상기 주어진 VM에 대해 서로 다른 VMID를 결과로 한다. VMID의 상기 변경은 ACL 내 데이터베이스 서비스 관련에 대한 VMID를 업데이트하기 위해 관리 스택을 요구한다. 상기 VM 엔트리는 VM이 파기될 때까지 데이터베이스 ACL 테이블에 남아있을 것이다. 만일 관리 스택이 데이터베이스 ACL 테이블의 업데이트를 완료하고 상기 업데이트가 모든 데이터베이스 노드들, 리스너들 및 IPoIB 드라이버들에 전파되기 전에 VM이 데이터베이스에 액세스를 시도한다면, 상기 VM은 상기 업데이트가 완료될 때까지 거절될 수 있다.
도 5B는 도 5A의 ACL(524)과 인터렉트하는 데이터베이스 서비스들을 도시한다. 도 5B에 도시된 바와 같이, 단계(530)에서, 데이터베이스 관리자(DBA)(212)는 지정된 데이터베이스 서비스를 구성하기 위해 데이터베이스 관리 시스템 서비스(DBMS)(512)에 액세스한다. 단계(531)에서, DBMS 서비스는 데이터베이스 서비스 테이블(DBST)(522)에 지정된 데이터베이스 서비스를 추가한다. 단계(532)에서, 관리 스택(210)은 DBST(522)로부터 서비스 이름들의 리스트를 검색하기 위해 ACL 서비스(514)를 사용한다. 단계(534)에서, 관리 스택(210)은 ACL(524)에 새로운 지정된 데이터베이스 서비스를 추가한다. 단계(535)에서, 관리 스택(210)은 ACL(524) 내 새로운 지정된 데이터베이스 서비스에 대한 VMID 허가들을 설정한다. 단계(537)에서, 관리 스택(210)은 ACL(524)로 새로운 지정된 데이터베이스 서비스를 추가하는 트랜잭션(transaction)을 커미트(commit)한다. ACL(524)에 대한 수정의 커미트먼트(commitment) 이후에, 단계(538)에서, 상기 수정된 ACL(524)은 리스너 등록(LREG: listener registration) 프로세스(515)를 통해 모든 데이터베이스 인스턴스들로 푸시(push)된다. 따라서, 모든 데이터베이스 인스턴스들에 ACL(524)의 최신 버젼이 제공된다. LREG(515)는 각각의 데이터베이스 인스턴스(506)에서 ACL 테이블을 업데이트 한다. 각각의 데이터베이스 인스턴스는 특정 서비스에 대해 허가된 모든 VMID들을 열거하는 서비스 VMID 리스트(516)를 수신한다. 또한, ACL(524)은 데이터베이스 리스너(546)로 푸시한다. 데이터베이스 리스너(546)에 제공된 ACL(525)은 노드 상의 데이터베이스 서비스들 및 이러한 서비스들에 대해 허가된 VMID들을 식별한다. 또한, LREG(515)는 (VMID에 의해) 특정 노드로 액세스하기 위해 허가된 모든 VM들의 리스트를 포함하는 노드 ACL(536)과 함께 sysfs/ioctl 인터페이스를 사용하여 IPoIB 드라이버(526)를 업데이트한다.
도 5C는 액세스 제어 시스템의 관리를 도시한다. 통합된 시스템(200)은 본 명세서에서 개시된 멀티-테넌트 환경에서 보안 네트워크 통신을 위한 통합된 방화벽을 제공하는 시스템 및 방법을 구현하기 위해, 구성, 조정 및 관리되는 다수의 컴포넌트들을 수반한다. 대안적인 배치 모델들이 있으며, 각각은 상기 배치에 특정 관리 솔루션을 제공한다. 도 5C는 액세스 제어 솔루션의 하이-레벨 관리 모델 및 액세스 제어 솔루션을 구현하기 위해 통합된 시스템(200)의 구성에 수반된 하이-레벨 관리 단계들을 도시한다.
도 5C에 도시된 바와 같이, 단계(561 및 562)에서, 서브넷 관리자 파티션 테이블(555)에 설정된 GRH 플래그로 데이터베이스 액세스 파티션(204)(도 2 참조)이 생성된다. 상기 GRH 플래그는 컴퓨트 노드들 상의 가상 머신들과 데이터베이스 노드들 사이의 모든 경로들이 글로벌 라우팅 헤더들(GRH)로 구성되어야함을 표시하기 위해 서브넷 관리자(214)에 의해 사용된다. 상기 동작은 컴퓨트 노드 상에 배치된 가상 머신들을 데이터베이스 노드들에 연결하는 인피니밴드 패브릭(206)의 설정의 일부로서 수행된다. 단계(563, 564 및 565)에서, 관리 스택(210)은 현재 데이터베이스 구성(데이터베이스들에 대해 구성된 서비스 이름들의 리스트)을 검색하고, 서비스 이름들과 허가된 VM들/테넌트들사이의 관련들을 생성하며, 관리 스택 데이터베이스 내의 보안 관련 맵(555) 내의 상기 관련을 유지시킨다. 데이터베이스 서비스 이름들은 모든 배치된 데이터베이스들에서 유일하여야 하며, 관리 스택(210)은 시스템을 구성하는 상기 단계에서, 임의의 데이터베이스 구성오류 또는 중복된 서비스 이름들을 식별하는 것을 담당한다.
단계(566, 567 및 568)에서, VM 인스턴스화(instantiation)에 따라, 관리 스택(210)은 각각의 VM을 그것의 VMID 및 단계(565)에서 구축된 특정 허가된 테넌트들과 관련된 하나 이상의 서비스 이름들과 관련된 VMID와 관련시키고, VM 배치에 대한 컴퓨트 노드(예를 들어, 320)를 선택하고, 상기 선택된 컴퓨트 노드 상의 VM(예를 들어, VM(221a))을 배치한다. 가상 기능(VF)은 인스턴스화 상에서 VM에 할당되고 장착되며, VM(221a)가 배치된 컴퓨트 노드(320)의 HCA(326)의 포트 GUID 테이블(400)로부터 VM의 식별자(VF GUID)를 획득한다. 단계(569 및 570)에서, 관리 스택(210)은 서비스 이름의 관련 및 단계(569)에서 구축된 VMID들로 데이터베이스 ACL(524)을 업데이트한다. 데이터베이스 ACL 테이블의 업데이트시, 정보는 데이터베이스 노드들(예를 들어, 데이터베이스 노드(360))로 전파되며, 도 5B에서 설명된 바와 같이 각각의 노드 상의 데이터베이스 리스너들 및 IPoIB 드라이버로 전파된다. 데이터베이스 관리자(212)는 일반적인 방식으로 데이터베이스 노드들 상의 데이터베이스 서비스들을 구성할 수 있다.
다수의 VM들에게 각각의 특정 데이터베이스 서비스로의 액세스가 허용될 수 있고, 하나의 VM에게 다수의 데이터베이스 서비스들로의 액세스가 허용될 수 있음을 주목하라. 허용된 액세스는 ACL 테이블에 따라 완전히 세분화되며, 특정 테넌트들과 관련된 VM들을 다른 테넌트들과 관련된 데이터베이스 서비스들로부터 고립시키거나 또는 특정 서비스에 대해 필요하거나 바람직할 때 서로 다른 테넌트들의 VM들 사이에서 특정 데이터베이스 서비스들을 공유하기 위해, 필요에 따라 구성될 수 있다. 시스템 관리자(211)은 데이터베이스 서비스 이름들을 멀티 테넌트 환경 내 서로 다른 테넌트들로 맵핑(map)한다.
보안 시스템의 구성을 담당하는 관리 스택(210)은 미들웨어 머신 시스템(220)의 컴퓨트 노드 상에서 실행될 수 있고, 데이터베이스 서비스 구성 정보를 검색하고 요구되는 데이터베이스 ACL 테이블들을 프로그램하기 위해 데이터베이스 노드들과 통신하는 인피니밴드 패브릭(206)을 사용할 수 있다. 상기 목적을 위해 관리 스택은 전용 데이터베이스 관리 액세스 파티션을 사용할 수 있다. 상기 파티션으로의 액세스는 관리 스택에게만 허용될 것이며, 따라서 데이터 노드들 상의 상기 네트워킹 인터페이스는 본 명세서에서 설명된 보안 수단들에 의해 보호될 필요가 없다. 관리 스택(210)은 데이터베이스 노드들 상에서 실행되고 TCP를 통해 액세스가능한 PL/SQL 프로시저들(procedures)에 의해 제공된 API들을 사용한다. 이러한 프로시저들은 데이터베이스 ACL 테이블의 액세스 및 제어가 데이터베이스 관리 액세스 파티션과 관련된 네트워킹 인터페이스를 통해서만 수행될 수 있도록 향상되었다. 대안적인 실시예들에서, 관리 스택은 데이터베이스 서버 시스템(260) 상에서 배치될 수 있거나 데이터베이스 노드들과 통신하기 위해 이더넷을 사용하며, 표준 이더넷 보안 메카니즘들은 관리 스택(210)과 데이터베이스 노드들 사이의 보안 통신을 보장하기 위해 사용될 것이다.
액세스 제어
전술한 바와 같이, VMID들은 GRH.SGID의 일부로서 데이터베이스 액세스 파티션에서 전송되는 각각의 패킷에 임베디드되며, 패킷들을 발신하는 VM들을 식별한다. 액세스 제어 리스트는 어떠한 VM들이 어떠한 서비스에 액세스 할 수 있는지 특정다. 그 후, 액세스 제어는 각각의 패킷 및 ACL의 GRH.SGID에서 제공된 VMID들을 사용하여 데이터베이스 노드들에서 구현된다. ACL(524) 및 서브-테이블들(예컨데, 서비스 VMID 리스트(516) 및 노드 ACL(536))은 컴퓨트 노드 가상 머신과 데이터베이스 서비스 사이의 연결의 라이프사이클의 여러 서로 다른 단계들에서 액세스 제어를 제공하기 위해 활용될 수 있으며, 어드레스 결정, 경로 결정, 연결 구축 및 데이터 교환을 포함한다. 전술한 시스템에 대해, 하기에 설명되는 액세스 제어 수단들은 데이터 노드들과 컴퓨트 노드들 상의 VM들 사이의 통신에 사용되는 네트워킹 인터페이스(즉, 데이터베이스 액세스 파티션에 대한 네트워크 인터페이스) 상에서만 수행되어야 함을 주목해야한다. 또한, 이러한 액세스 제어 수단들은 컴퓨트 노드들 상의 VM들과 다른 컴퓨트 노드들 상의 VM들 사이의 통신에 사용되는 네트워크 인터페이스에는 적용될 필요가 없다.
액세스 제어의 세분화는 연결 라이프사이클 단계에 따라 변한다. 어드레스 결정 단계 및 경로 결정 단계 동안, 시스템은 노드 ACL(536)에 기초하여 특정 데이터베이스 노드들로의 액세스를 제어할 수 있다. 즉, 가상 머신은 하나 이상의 데이터베이스 서비스를 제공하는 데이터베이스 노드들에 대해서만 어드레스 및 경로 정보를 제공받을 수 있고, 가상 머신은 상기 하나 이상의 데이터베이스 서비스에 액세스하기 위해 허가된다. 연결 구축 단계 및 데이터 교환 단계 동안, 시스템은 ACL(524) 및/또는 서비스 VMID 리스트(516)에 기초하여 VM들과 특정 지정된 데이터베이스 서비스들 사이의 액세스 및 데이터 전송을 제어한다.
어드레스 결정 액세스 제어
가상 머신과 데이터베이스 서비스 사이의 연결의 라이프사이클의 단계에서 액세스 제어를 제공하는 데이터베이스 노드들에서 구현되는 하나의 메카니즘은 어드레스 결정 액세스 제어(Address Resolution Access Control)이다. 액세스 결정 프로토콜(ARP) 통신들은 특정 지정된 데이터베이스를 제공하는 데이터베이스 노드로 연결하는 프로세스의 초기 부분으로서 VM들에 의해 사용된다. ARP는 IP 어드레스를 하드웨어 어드레스(이더넷의 경우 MAC 어드레스, 또는 IPoIB 표준에 의해 정의된 20바이트 IPoIB 하드웨어 어드레스)로 확인하기 위해 사용된다. ARP 통신들은 IPoIB 통신을 사용하여 컴퓨트 노드들 상에 배치된 VM들과 데이터베이스 노드들 사이에서 교환된다. VM들은 컴퓨트 노드들에서 멀티캐스트 ARP 요청들을 보냈으며, (허용되는 경우) 데이터베이스 노드들은 유니캐스트 ARP 응답들을 다시 보낸다. 멀티캐스트 요청들 및 데이터베이스 노드들과 VM들 사이에 교환된 유니캐스트 응답들은 글로벌 라우팅 헤더(GRH)를 전달하도록 요구되며, 따라서 GRH.SGID에 VMID를 제공함으로써 VM을 식별한다.
어드레스 결정 액세스 제어는 수신 어드레스 결정 프로토콜(ARP) 요청들의 GRH.SGID로부터의 VMID를 데이터베이스 노드로의 액세스가 허가된 VM들을 식별하는 특정 데이터베이스 노드에 대해 프로그래밍된 노드 ACL(536)과 매칭시킴으로써 수행된다. 전술한 바와 같이, 노드 ACL(536)은 특정 IPoIB 네트워킹 인터페이스에 대한 sysfs/ioctl 인터페이스를 사용하여 각각의 데이터베이스 노드 상의 IPoIB 드라이버(526)로 제공된다. VMID들은 노드 ACL에 추가되거나 이로부터 삭제된다. 따라서, 각각의 데이터베이스 노드의 IPoIB 드라이버는 특정 네트워킹 인터페이스를 통해 데이터베이스 노드로의 액세스가 허용되는 VM들의 VMID들의 리스트로 구성된다. IPoIB 드라이버(526)는 데이터베이스 노드로의 액세스가 허가되지 않은 VM들에 ARP 응답들을 제공하기 위해 거부함으로써, 액세스 제어를 수행하기 위해 노드 ACL을 사용할 수 있다. 달리 말하면, IPoIB 드라이버(526)는 GRH.SGID가 노드 ACL에 VMID를 포함하지 않는한, ARP 요청들에 응답하지 않는다.
VM으로부터 ARP 요청을 수신하면, 데이터베이스 노드의 IPoIB 드라이버(526)는 GRH가 패킷에 존재하는지 확인하기 위해 요청을 검사한다 - 만일 GRH가 없다면, 요청은 폐기되고 응답이 없다. 다음으로, 데이터베이스 노드의 IPoIB 드라이버(526)는 각각의 인바운드(inbound) ARP 요청/응답의 GRH 내 SGID를 노드 ACL과 매칭시킨다 - 만일 매칭이 없다면, 요청은 폐기되고 응답이 없다. 다음으로, 데이터베이스 노드의 IPoIB 드라이버(526)는 각각의 인바운드 ARP 요청/응답의 GRH 내 SGID를 ARP 요청/응답 바디(body)로부터의 소스 하드웨어 어드레스의 하위 128비트와 매칭시킨다 - 만일 매칭이 없다면, 요청은 폐기되고 응답이 없다. 마지막 검사는 ARP 캐시에 프로그래밍된 하드웨어 어드레스가 대응하는 VM의 유효한 SGID를 전달하고, VM에 의해 생성된 소켓들의 식별에 사용될 수 있음을 확인하는 것이다. GRH가 존재하고 SGID가 노드 ACL(536)과 매칭되는 경우에만, ARP 요청/응답 바디로부터의 소스 하드웨어 어드레스의 하위 128비트는 컴퓨트 노드 상의 가상 머신으로 다시 보내진 ARP 응답이다.
따라서, ACL은 노드 ACL(536)의 SGID에 의해 식별된 이러한 VM들에 대해서만 어드레스 결정 정보로의 액세스를 제어한다. 따라서, VM들은 액세스가 허가되지 않은 데이터베이스 노드들로부터 어드레스 결정 정보를 수신할 수 없다. 결과적으로, 데이터베이스 노드들 (및 상기 데이터베이스 노드들이 제공하는 데이터베이스 서비스들)은 노드 ACL(536)에 따라 상기 데이터베이스 서비스들로의 액세스가 허가되지 않은 VM들에게 효과적으로 "보이지 않게(invisible)"된다.
연결 구축 액세스 제어
가상 머신과 데이터베이스 서비스 사이의 연결의 라이프사이클의 단계에서 액세스 제어를 제공하는 데이터베이스 노드들에서 구현되는 또 다른 메카니즘은 연결 구축 액세스 제어(Connection Establishment Access Control)이다. VM이 연결하려는 데이터베이스 서비스를 찾으면, 연결 구축 액세스 제어는 상기 데이터 베이스 서비스와의 연결을 구축하기 위해 시도할 것이다. 데이터베이스 노드는 RDMA 및 커널 바이패스 어플리케이션들(kernel bypass applications)에 대한 오픈-소스 소프트웨어 스택을 제공하는 오픈 패브릭 엔터프라이즈 분배(OFED)에 의해 제공된 정보를 사용하여, 연결 구축 액세스 제어를 수행한다. 실시예들에서, 시스템은 컴퓨트 노드 상의 가상 머신과 데이터베이스 노드 사이의 모든 통신이, 제어 동작들에 사용되는 ARP 트래픽 및 TCP 소켓들을 제외하고, 인피니밴드를 통해 신뢰할 수 있는 연결 전송과 GRH 헤더들을 포함하는 패킷들과의 통신으로 제한되도록 구성된다. 연결 구축 액세스 제어는 연결 요청들이 GRH 헤더들을 수행하고, GRH.SGID가 액세스 제어 리스트에 의해 표시되는 바와 같이 특정 지정된 데이터베이스 프로세스로의 액세스가 허가된 VM에 대응하는 VMID를 식별하는 것을 확인함으로써 수행된다.
도 6은 연결 구축 액세스 제어의 양태들을 도시한다. 연결 관리자(연결 관리자 에이전트)는 인피니밴드 사양에 의해 정의된 바와 같이 인피니밴드 연결 구축 프로토콜을 구현한다. 연결 구축은 연결 관리 데이터그램들(MADs)을 사용하여 수행되며, 상기 연결 관리 데이터그램들은 연결 구축에 필요한 정보를 전달한다. 전술한 바와 같이, 본 발명의 실시예들에서, 데이터베이스 서버 시스템과 미들웨어 머신 시스템 사이의 경로들 상의 연결 관리 데이터그램들(MADs)은 GRH 헤더들을 전달하도록 요구된다. 데이터베이스 노드(360) 상에서 실행되는 연결 관리 에이전트(CMA)는 연결 구축 동안 다음의 필터링 동작들을 수행한다. CMA(622)가 CMA MAD(626)를 수신할 때, MAD에 GRH가 존재하는지 확인하며, 만일 없는 경우 응답없이 CMA MAD를 폐기한다. 옵션적으로, CMA(622)는 대안적인 경로가 CMA MAD(626)에서 유효하지 않음을 확인할 수 있다 - 대체 경로 관리(APM: Alternate Path Management)는 바람직하게는 금지된다 - 만일 APM이 특정되면, CMA MAD는 옵션적으로 응답없이 폐기될 수 있다. 다음으로, CMA(622)는 CMA MAD의 GRH로부터의 SGID를 CMA MAD(626)의 바디로부터의 프라이머리 경로 SGID(primary path SGID)와 매칭시킨다 - 만일 매칭이 되지 않으면, 응답없이 연결 관리 MAD를 폐기한다. CMA에 의한 이러한 단계들은 상위 레이어(어플리케이션 또는 IPoIB)에 대한 연결 구축 이벤트에서 제공된 원격 어드레스가 상기 원격 VM에 대응하는 유효한 SGID를 포함하는 것을 확인하여, 상기 SGID가 액세스 제어 확인을 위해 상기 상위 레이어에 의해 사용될 수 있도록 한다.
연결 구축 에이전트(CMA)는 ARP들에 대한 IPoIB 드라이버와 유사한 추가적인 노드-레벨 액세스 제어를 수행하도록 향상될 수 있다. 예를 들면, CMA는 MAD와 관련된 GRH.SGID가 데이터베이스 노드로의 액세스가 허가된 VM와 매칭되지 않는한, 이벤트들을 데이터베이스 노드 내 어플리케이션 레벨까지 푸시하지 않도록 향상될 수 있다. 노드-경계 ACL 기능을 CMA에 추가하는 것은 가능한 한 가깝게 노드 경계들까지 공격 방지를 푸시하고 거부를 위해 MAD들을 어플리케이션 레벨로 제공하는 오버헤드를 피함으로써, Dos 공격들을 처리하는데 특히 유용하다.
그러나, 일부 실시예들에서, 연결 관리 에이전트(CMA)(622)는 특정 데이터베이스 서비스로의 특정 VM의 액세스 제어를 확인하지 않고, 상기 검사를 수행하기 위해 어플리케이션 레이어(610)의 데이터베이스 프로세스에 의존한다(예컨데, 도 5B의 DB 인스턴스(506) 및/또는 DB 리스너(546)). CMA는 연결 구축 상태 머신에서 어플리케이션 레이어로의 전환들을 표시하기 위해, 이벤트 알림 메카니즘을 사용한다. 어플리케이션 레이어(610) 내 데이터베이스 프로세스는 (관련 이벤트들을 요청(subscribing)함으로써) 상기 연결에 대해 할당된 cma_id를 통해 원격 피어(peer)에 관한 정보를 획득할 수 있고, 연결을 요청하는 VM의 SGID/VMID를 포함한다. 예를 들면, 상위 레이어 프로토콜(DB 인스턴스(506), DB 리스너(546), IPoIB 또는 다른 어플리케이션)은 세분화된 어플리케이션 레이어 ACL(524)에 기초하여 액세스 제어를 확인하고 그럼으로써 ACL(524)에 기초하여 상기 연결을 수락 또는 거부하기 위해, 연결 구축 이벤트의 원격 어드레스 구조에서 제공된 SGID/VMID를 사용할 수 있다.
어플리케이션 레이어는 OFED 스택으로부터 이벤트들을 소비한다. 어플리케이션 레이어는 IB 연결들을 구축하기 위해 OFED 이벤트 알림 메카니즘을 사용한다. 전술한 바와 같이, 어플리케이션 레이어는 연결 구축 흐름 동안 특정 연결에 대한 VM의 VMID를 획득한다. 그 후, 어플리케이션 레이어 내 데이터베이스 프로세스(610)는 개개의 연결에 대한 액세스 제어를 시행하기 위해, 상기 획득된 VMID를 사용한다. 어플리케이션 레이어는 CMA 레이어에 의해 cma_id에서 제공된 VM 신원이 특정 데이터베이스 서비스로의 액세스를 제어하기 위해 사용되는 시기 및 방법을 결정한다.
어플리케이션 레이어는 특정 컴퓨트 노드 VM이 어떠한 데이터베이스 서비스에 액세스하려고 시도하는지 식별하기 위해, VMID에 추가하여 데이터베이스 서비스 이름을 요구한다. 만일 상기 정보가 연결 구축시 이용가능 하지 않다면, 상기 어플리케이션은 VM 신원(GRH.SGID로부터 획득된 VMID)을 저장하고, 초기 연결을 만들고, 그 후 데이터베이스 서비스 이름이 이용가능하게 되는 즉시 액세스 허가를 확인하기 위해 VM 신원을 사용한다(허가가 거부된 경우 연결을 끊음). OFED 스택과 어플리케이션 레이어 사이의 인터페이스는 어플리케이션 레이어로 하여금 특정 연결의 엔드-포인트를 식별하고, 데이터베이스 서비스 이름을 수신한 이후 액세스 제어 결정에 기초하여 특정 엔드-포인트와의 연결을 종료할 수 있게 한다. 따라서, 어플리케이션은 상기 연결을 처음에는 수락하고, 이후 단계에서 연결을 종료하도록 결정할 수 있다. 이는 상기 어플리케이션 레이어로 하여금 연결 구축 전에 이용가능한 데이터베이스 서비스 이름에 의존하지 않고, 초기 데이터 교환의 일부로서 획득될 수 있도록 한다.
도 6에 도시된 바와 같이, 만일 어플리케이션 레이어 내 데이터베이스 프로세스(610)가 연결을 수락하면, 상기 수락은 인피니밴드 연결 관리/연결 관리 에이전트(IBCM/CMA) 드라이버들(622)로 전달된다. IBCM/CMA 드라이버들(622)은 상기 연결과 관련된 하드웨어 큐 페어(QP: queue pair) 컨텍스트(624)를 생성하는 것을 담당한다. 하드웨어 QP 컨텍스트는 HCA 메모리의 HW QP 컨텍스트 캐시(634)에 캐시된 상대적으로 적은 수의 하드웨어 QP 컨텍스트들을 갖는 시스템 메모리 내에 유지된다. 컴퓨트 노드 VM으로의 연결에 대해, 하드웨어 QP 컨텍스트(624)는 GRH이 특정 연결 상에서 사용되어야 함을 표시하는 플래그 및 상기 연결과 관련된 특정 VM의 VMID/SGID 값을 포함하는 속성들을 포함한다.
VM이 CAM MAD에서 요청된 데이터베이스 서비스에 연결되도록 허가되지 않은 경우, 어플리케이션은 연결 컨텍스트의 생성을 방지 및/또는 임시 연결 컨텍스트를 파기한다. 따라서, ACL을 사용하여, 데이터베이스 노드에 구현된 연결 구축 액세스 제어는 연결들을 방지함으로써 허가되지 않은 VM들에 대한 연결들을 거부할 수 있고, 따라서 VM들과 데이터베이스 서비스들 사이의 통신은 ACL에 따라 액세스가 허가되지 않는다.
데이터 교환 액세스 제어
가상 머신과 데이터베이스 서비스 사이의 연결의 라이프사이클의 단계에서 액세스 제어를 제공하는 데이터베이스 노드들에서 구현되는 추가적인 메카니즘은 데이터 교환 액세스 제어이다. 데이터 교환 액세스 제어는 연결 구축 단계 동안 프로그래밍된 하드웨어 큐 페어(QP) 컨텍스트(624)에 기초한다. 전술된 바와 같이, 도 6에 도시된 대로, 하드웨어 QP 컨텍스트는 HCA 메모리의 HW QP 컨텍스트 캐시(634)에 캐시된 상대적으로 적은 수의 하드웨어 QP 컨텍스트들을 갖는 시스템 메모리 내에 유지된다. 컴퓨트 노드 VM으로의 연결에 대해, 하드웨어 QP 컨텍스트(624)는 GRH이 특정 연결 상에서 사용되어야 함을 표시하는 플래그 및 상기 연결과 관련된 특정 VM의 VMID/SGID 값을 포함하는 속성들을 포함한다. 데이터 교환 액세스 제어는 상기 연결을 통해 수신된 모든 패킷이 특정된 GRH.SGID를 포함하고, 따라서 상기 모든 패킷은 상기 연결을 사용하도록 허가된 VM으로부터 온 것임을 확인한다. 비-호환(non-compliant) 패킷들은 폐기된다. 이는 HCA 하드웨어로 하여금 상기 연결을 통해 전송된 모든 데이터 패킷들에 대해 데이터 교환 액세스 제어를 수행하게 할 수 있다.
인피니밴드 사양과 호환되는 HCA는 상기 연결 상에서 교환되는 모든 단일 패킷이 GRH 헤더를 전달하고, 수신 패킷들의 GRH.SGID와 하드웨어 QP 컨텍스트에서 특정된 원격 피어 GID가 매치함을 확인하여야 한다. 추가적으로, 모든 시퀀스 번호 검사들과 프로토콜 검사들도 하드웨어에 의해 또한 수행될 것이다(TCP 플래그들 및 TCP 소켓에 대한 스퀀스 번호 확인과 유사). 이러한 요구 사항들의 시행은 수행된 인피니밴드 동작들(RMDA 동작들을 포함한다)에 대한 임의의 제약들 없이 그리고 임의의 성능 영향없이, VM과 특정 연결 상의 데이터베이스 서비스 사이의 데이터 전송들의 HCA 하드웨어에 의한 온-더-플라이 액세스 제어 확인(on-the-fly access control validation)을 보장한다.
도 6에 도시된 바와 같이, HCA(366)는 각각의 인피니밴드 패킷(402)을 검사하고, 다른 것들 중에서도, GRH(404) 내 SGID와 연결과 관련된 하드웨어 QP 컨텍스트와 관련된 SGID가 매치함을 보장한다. 모든 비-호환 패킷들은 드롭(drop)된다. 그러나, 호환 패킷들은, 일단 확인되면, 헤더가 스트립(stripp)되고 데이터/페이로드(406)는 상기 연결과 관련된 어플리케이션 버퍼에 직접 배치된다. 따라서, 심지어 연결이 구축된 이후에도, 데이터베이스 노드 상의 HCA의 하드웨어는 특정 연결을 통해 특정 데이터베이스 서비스로의 액세스가 허가된 VM에서 왔음을 확인하기 위해, 모든 패킷에 대해 데이터 교환 액세스 제어를 수행한다.
IPoIB 액세스 제어
가상 머신과 데이터베이스 서비스 사이의 연결의 라이프사이클의 단계에서 액세스 제어를 제공하는 데이터베이스 노드들에서 구현되는 다른 메카니즘은 IPoIB 액세스 제어이다. 데이터베이스 리스너(546)에 의해 사용되는 특정 TCP 포트에 대한 TCP-소켓 트래픽에 대해 제한된 액세스가 가능하게 된다. 그러나, 데이터베이스 노드 내 OS 스택 IP 필터는 허가되지 않은 트래픽을 제외하도록 구성된다. IPoIB는 연결된 또는 데이터그램 모드로 구성될 수 있다. IPoIB 통신 채널의 각 면은 독립적으로 구성된다(즉, 한 면은 연결된 모드로 구성되고 다른 면은 데이터그램 모드로 구성될 수 있다). 본 발명의 실시예들에서, IPoIB을 통핸 모든 통신은 오직 연결된 모드로 제한된다. 이는 원격 피어(예컨데, 컴퓨트 노드 상의 VM)에 의해 연결된 모드의 사용을 시행하도록 데이터베이스 노드의 IPoIB 드라이버를 구성함으로써 달성된다.
IPoIB는 통신이 연결된 모드만을 사용하고 있음을 보장하기 위해, 패킷을 수신할 때 다음의 검사들을 수행한다. 데이터그램 QP를 통한 통신은 오직 ARP 패킷들로 제한되어야 한다 - 다른 모든 패킷들은 폐기된다. IPoIB는 데이터베이스 노드 ACL 테이블에 나열된 VM들과의 연결들만을 구축한다. 연결 관리 에이전트(CAM)는 상기 연결을 구축하는 원격 피어에 대한 어드레스 정보를 VM들에게 제공한다. 다른 어드레스 속성들 중에서도, CAM는 연결 구축 액세스 제어 섹션에서 설명된 바와 같이, 피어(VM)의 SGID를 제공할 것이다. IPoIB 드라이버는 연결 구축 이벤트들을 프로세싱할 때, 다음의 검사들을 수행하여야 한다. CAM 이벤트로부터 원격 엔드-포인트 어드레스 정보를 획득한다. CMA 이벤트에 제공된 어드레스 정보에서 VM의 SGID를 검색한다. VM의 SGID를 ACL 리스트 엔트리와 매칭시키고, 만일 VM의 SGID가 ACL 리스트 엔트리와 매칭하지 않는 경우 연결 구축 이벤트를 폐기한다. 이는 데이터베이스 프로세스 연결을 생성하는 것을 시도하는 VM이 특정 데이터베이스 서비스에 액세스하는 것이 허용됨을 확인하는 데이터베이스 리스너(546)와 협력하여 상기 데이터베이스 리스너(546)와 통신하는 VM의 적극 식별(positive identification)을 허용하는 향상된 보안을 제공한다.
서비스 거부(DoS) 공격 방지
DoS 공격들에 대한 보호는 종래의 이더넷 방화벽 어플라이언스에 의해 제공되는 표준 특징들 중 하나이다. DoS 공격에서, 다수의 메시지들이 인터페이스로 보내진다. 심지어 메시지들이 거부된 경우에도, 메시지들의 수와 메시지들을 거부하는 것과 관련된 오버헤드가 인터페이스의 리소스들을 압도하여, 리소스들이 합당한 트래픽에 사용될 수 없도록 한다. DoS 공격은 반드시 악의적인 행위자를 나타내는 것은 아니고, 예를 들어 잘못 구성된 소프트웨어 또는 반복적인 메시지들을 야기하는 하드웨어 또는 소프트웨어의 에러에 의해서 발생할 수 있다. 본 발명의 시스템들 및 방법들은 전술한 바와 같이, 멀티-테넌트 인식, 세분화된 데이터베이스 인식 액세스 제어를 제공한다. 그러나, 상기 액세스 제어는 데이터베이스 노드들의 소프트웨어 및 하드웨어에 의해 수행되기 때문에, 시스템은 DoS 문제를 해결하기 위해 표준 필터링 기법들을 사용할 수 없다. 공격이 데이터베이스 노드에 의해 검출될 때까지 이미 공격을 받고 있고, 메시지들을 제거하는데 적어도 일부의 리소스들을 소비해야한다. 전술한 바와 같이, 메시지 제어/거부를 노드의 에지(edge)까지 푸시함으로써, 소비되는 양 또는 리소스를 줄일 수 있다. 그러나, 다른 DoS 공격 방지 기능을 제공하는 것이 바람직하다.
종래의 방화벽-기반 필터링 접근법을 따르려고 시도하는 것 대신에, 본 발명의 실시예는 DoS 문제들을 해결하기 위해 완전히 엔지니어링 되고 고도로 통합된 솔루션의 이점을 최대한 활용할 수 있다. 액세스 제어를 담당하는 컴포넌트들이 액세스가 허가되지 않은 데이터베이스 서비스로 연결하려는 VM에 의한 반복되는 시도들을 검출하면, 통합된 시스템의 컴포넌트들은 액세스 위반을 수정하고 기록하는 액션들을 취할 수 있다. 예를 들면, 데이터베이스 리스너(546)가 반복되는 액세스 위반을 검출하면, 다음의 액션들을 취한다. 데이터베이스 리스너(546)는 액세스 위반을 기록한다. 데이터베이스 리스너(546)는 프로세싱 스택(예를 들어, IB 연결 관리 스택 또는 IPoIB 드라이버)의 하위에 위치하는 다른 컴포넌트들의 액세스 제어 필터들을 업데이트하여, 연속적인 공격이 데이터베이스 노드 경계들에 가까운 더 낮은 레벨에서 중지될 수 있고, 따라서 데이터베이스 노드의 동작과의 작은 간섭을 야기한다. 또한, 데이터베이스 리스너(546)는 관리 스택(210)에 통지하고, 공격의 소스인 VM을 식별하는 VMID를 포함하는 GRH.SGID를 포함하는 공격에 대한 정보를 제공한다.
시스템은 컴퓨트 노드들의 HCA에 의해 각각의 패킷의 GRH.SGID에 임베디드된 VMID를 사용하여 가상 머신의 신뢰할 수 있는 식별을 제공한다. 따라서, 공격자 VM의 신원이 공격 패킷들과 관련된 GRH.SGID로부터 관리 스택(210)에게 알려진다. 관리 스택은 공격을 중지시키기 위해 하나 이상의 액션들을 취할 수 있다. 예를 들면, 관리 스택은 데이터베이스 액세스 파티션(204)으로의 VM들의 문제가 되는 액세스를 철회할 수 있고, 따라서 VM이 데이터베이스 노드들에 임의의 추가적인 패킷들을 보내는 것을 방지할 수 있다. 추가적으로, 예를 들면, 관리 스택은 관리 스택의 구성 또는 시스템 관리자에 의해 취해진 액션에 따라 VM의 동작을 제거하기 위해, 액션들을 취할 수 있다. 이 방법으로, DoS 패킷들이 데이터베이스 노드에 도달하지 못하게 하거나, DoS 패킷들의 소스를 비활성화함으로써 표준 패킷 필터링 방화벽 어플라이언스 없이 DoS 보호 기능을 달성할 수 있다.
본 발명의 실시예에 따른, 멀티-테넌트 환경에서 네트워크 보안을 제공하는 서버가 제공된다. 상기 실시예의 서버는 이전의 실시예들에 기술된 임의의 서버들(예를 들면, 데이터베이스 서버 시스템(240))일 수 있다. 더욱이, 서버 및 서버의 컴포넌트들은 이전의 실시예들에 기술된 바와 같이 발명의 원리에 기초하여 임의의 적절한 동작들을 수행할 수 있다.
본 실시예의 예시에서, 서버는 액세스 제어 리스트를 수신하는 제1 수신 유닛을 포함할 수 있다. 상기 액세스 제어 리스트는 상기 복수의 데이터베이스 서비스들을 식별하고, 상기 복수의 데이터베이스 서비스들 각각에 대해, 상기 복수의 데이터베이스 서비스들 각각에 액세스하는 것이 허용된 하나 이상의 데이터베이스 서비스 소비자들과 관련된 하나 이상의 데이터베이스 서비스 소비자 신원들을 식별할 수 있다. 한편, 서버는 복수의 데이터베이스 서버들과 복수의 어플리케이션 서버들을 직접 연결하는 상기 연결-기반 스위칭 패브릭을 통해 전송된 복수의 통신 패킷들을 수신하는 제2 수신 유닛을 포함할 수 있다. 더욱이, 서버는 상기 복수의 통신 패킷들 중 각각의 특정 통신 패킷에 대해 다음의 단계들을 수행하는 제1 수행 유닛을 포함할 수 있다: 상기 통신 패킷이 임의의 데이터베이스 서비스 소비자 신원을 포함하지 않는 경우, 상기 통신 패킷을 폐기(discard)하는 단계, 만일 상기 통신 패킷이 데이터베이스 서비스 소비자 신원을 포함하는 경우, 상기 통신 패킷을 전송한 상기 서비스 소비자를 식별하기 위해, 상기 통신 패킷에 포함된 데이터베이스 소비자 신원을 사용하는 단계, 및 상기 액세스 제어 리스트가 상기 데이터베이스 서비스 소비자를 상기 데이터베이스 서비스에 액세스하는 것이 허용된 것으로서 식별하지 않는 한, 상기 복수의 데이터베이스 서비스들 중 하나의 데이터베이스 서비스로의 상기 데이터베이스 소비자에 의한 액세스를 방지하기 위해, 상기 액세스 제어 리스트를 상기 통신 패킷에 포함된 상기 데이터베이스 소비자 신원과 결합하여 사용하는 단계.
본 실시예의 예시에서, 상기 특정 통신 패킷은 어드레스 결정 프로토콜(ARP: address resolution protocol) 요청일 수 있다. 상기 제1 수행 유닛은 상기 액세스 제어 리스트가 상기 데이터베이스 서버에 의해 제공된 상기 복수의 데이터베이스 서비스들 중 임의의 데이터베이스 서비스에 액세스하는 것이 허용된 상기 데이터베이스 서비스 소비자를 식별하였는지 여부를 결정하는 제1 결정 유닛을 포함할 수 있다. 더욱이, 상기 제1 수행 유닛은 만일 상기 액세스 제어 리스트가 상기 데이터베이스 서버에 의해 제공된 상기 복수의 데이터베이스 서비스들 중 임의의 데이터베이스 서비스에 액세스하는 것이 허용된 상기 데이터베이스 서비스 소비자를 식별하지 않았다면, ARP 응답을 전송함이 없이 상기 ARP 요청을 드롭(drop)하는 제1 드롭 유닛을 포함할 수 있다.
본 실시예의 예시에서, 상기 특정 통신 패킷은 연결 구축 요청(connection establishment request)일 수 있다. 상기 제1 수행 유닛은 상기 연결 구축 요청이 어떠한 특정 데이터베이스 서비스에 연결을 요청하고 있는지 결정하는 제3 결정 유닛을 포함할 수 있다. 더욱이, 상기 제1 수행 유닛은 만일 상기 액세스 제어 리스트가 상기 데이터베이스 서비스에 액세스하는 것이 허용된 상기 데이터베이스 서비스 소비자를 식별하지 않았다면, 상기 연결 구축 요청에 응답하여, 상기 데이터베이스 서비스로의 연결의 구축을 방지(prevent)하는 방지 유닛을 포함할 수 있다.
본 실시예의 예시에서, 상기 특정 통신 패킷은 연결 구축 요청일 수 있다. 상기 제1 수행 유닛은 상기 연결 구축 요청에 응답하여 연결을 생성하는 생성 유닛을 포함할 수 있다. 더욱이, 상기 제1 수행 유닛은 상기 연결을 통해 상기 데이터베이스 서비스 소비자에 의해 액세스 되도록 의도된 데이터베이스 서비스의 식별을, 상기 연결을 통해, 수신하는 제3 수신 유닛을 포함할 수 있다. 나아가, 상기 제1 수행 유닛은 또한 만일 상기 액세스 제어 리스트가 상기 데이터베이스 서비스에 액세스하는 것이 허용된 상기 데이터베이스 서비스 소비자를 식별하지 않았다면, 상기 연결을 종료(terminate)하는 종료 유닛을 포함할 수 있다.
본 실시예의 예시에서, 상기 특정 통신 패킷은 상기 데이터베이스 서비스 소비자와 데이터베이스 서비스 사이에 구축된 연결을 통해 수신된 데이터 패킷일 수 있다. 상기 제1 수행 유닛은 하드웨어 컨텍스트(hardware context)를 상기 데이터베이스 서비스 소비자와 상기 데이터베이스 서비스 사이에 구축된 상기 연결과 관련시키는 관련 유닛을 포함할 수 있고, 상기 하드웨어 컨텍스트는 상기 데이터베이스 서비스 소비자의 상기 데이터베이스 서비스 소비자 식별자를 포함한다. 더욱이, 상기 제1 수행 유닛은 상기 데이터 패킷이 상기 연결과 관련된 상기 하드웨어 컨텍스트에 포함된 상기 데이터베이스 서비스 소비자 신원을 포함하지 않는 한, 상기 데이터 패킷을 드롭하는 제3 드롭 유닛을 포함할 수 있다.
본 실시예의 예시에서, 상기 데이터 패킷은 상기 데이터베이스 서버의 호스트 채널 어댑터(host channel adapter)에서 수신되고 상기 하드웨어 컨텍스트는 상기 호스트 채널 어댑터의 메모리에 저장된다. 상기 제3 드롭 유닛은 상기 데이터 패킷이 상기 연결과 관련되고 상기 호스트 채널 어댑터의 상기 메모리에 저장된 상기 하드웨어 컨텍스트에 포함된 상기 데이터베이스 서비스 소비자 신원을 포함하지 않는 한, 상기 호스트 채널 어댑터를 사용하여, 상기 데이터 패킷을 드롭하는 제4 드롭 유닛을 포함할 수 있다.
본 실시예의 예시에서, 상기 제1 수행 유닛은 상기 액세스 제어 리스트에 기초하여, 어드레스 결정 액세스 제어, 연결 구축 액세스 제어 및 데이터 교환 액세스 제어 중 하나를 수행하는 제2 수행 유닛을 포함할 수 있다.
본 실시예의 예시에서, 상기 연결-기반 스위칭 패브릭은 인피니밴드 패브릭(InfiniBand fabric)이고, 상기 특정 통신 패킷은 상기 복수의 데이터베이스 서버들과 상기 복수의 어플리케이션 서버들을 직접 연결하는 상기 인피니밴드 패브릭을 통해 상기 데이터베이스 서버에서 수신된 인피니밴드 프로토콜 통신 패킷이다. 상기 제1 수행 유닛은 상기 인피니밴드 프로토콜 통신 패킷이 글로벌 라우팅 헤더(global routing header)를 포함하지 않는 경우, 상기 인피니밴드 프로토콜 통신 패킷을 폐기하는 폐기 유닛과, 만일 상기 인피니밴드 프로토콜 통신 패킷이 글로벌 라우팅 헤더를 포함하는 경우, 상기 인피니밴드 프로토콜 통신 패킷을 전송한 상기 서비스 소비자를 식별하기 위해, 상기 인피니밴드 프로토콜 통신 패킷의 상기 글로벌 라우팅 헤더에 포함된 소스 글로벌 식별자(source global identifier)를 사용하는 사용 유닛을 포함할 수 있다. 더욱이, 상기 제1 수행 유닛은 상기 액세스 제어 리스트가 상기 데이터베이스 서비스 소비자를 상기 데이터베이스 서비스에 액세스하는 것이 허용된 것으로서 식별하지 않는 한, 상기 복수의 데이터베이스 서비스들 중 하나의 데이터베이스 서비스로의 상기 데이터베이스 소비자에 의한 액세스를 방지하기 위해, 상기 인피니밴드 프로토콜 통신 패킷의 상기 글로벌 라우팅 헤더에 포함된 상기 소스 글로벌 식별자와 결합하여 상기 액세스 제어 리스트를 사용하는 사용 유닛을 포함할 수 있다.
본 실시예의 예시에서, 상기 연결-기반 스위칭 패브릭은 인피니밴드 패브릭이다. 또한, 상기 서버는 상기 복수의 데이터베이스 서비스 소비자들로부터 전송된 각각의 인피니밴드 패킷들이 상기 각각의 패킷과 관련된 데이터베이스 서비스 소비자를 식별하는 소스 글로벌 식별자를 반드시 포함하도록, 글로벌 라우팅 헤더 및 소스 글로벌 식별자를 각각 포함하는 인피니밴드 프로토콜 패킷들을 사용하는 것 이외에는, 상기 복수의 데이터베이스 서비스 소비자들과 상기 복수의 데이터베이스 서비스들 사이의 데이터 교환을 금지하도록 상기 복수의 데이터베이스 서버들을 구성하는 구성 유닛을 포함할 수 있다.
본 발명의 다른 실시예에 따른, 멀티-테넌트 환경에서 네트워크 보안을 제공하는 서버가 제공된다. 상기 실시예의 서버는 또한 이전의 실시예들에 기술된 임의의 서버들(예를 들면, 데이터베이스 서버 시스템(240))일 수 있다. 더욱이, 서버 및 서버의 컴포넌트들은 이전의 실시예들에 기술된 바와 같이 발명의 원리에 기초하여 임의의 적절한 동작들을 수행할 수 있다.
본 실시예의 예시에서, 서버는 상기 복수의 데이터베이스 서비스 소비자들과 상기 복수의 데이터베이스 서버들에 액세스할 수 있는 데이터베이스 액세스 파티션(database access partition)을 갖도록 상기 연결-기반 스위칭 패브릭을 구성하는 제1 구성 유닛을 포함할 수 있다. 또한, 상기 서버는 상기 복수의 데이터베이스 서버들과 복수의 저장 셀들에 액세스할 수 있으나 상기 복수의 데이터베이스 서비스 소비자들에 액세스할 수 없는 저장 액세스 파티션을 갖도록 상기 연결-기반 스위칭 패브릭을 구성하는 제2 구성 유닛을 포함할 수 있다. 또한, 상기 서버는 상기 어플리케이션 서버상에 호스트된 상기 복수의 데이터베이스 서비스 소비자들 각각을 고유한 데이터베이스 서비스 소비자 신원과 관련시키도록 상기 복수의 어플리케이션 서버들 각각의 네트워크 인터페이스를 구성하는 제3 구성 유닛을 포함할 수 있다. 또한, 상기 서버는 상기 데이터베이스 서비스 소비자로부터 상기 복수의 데이터베이스 서비스들로 전송된 상기 통신 패킷들 각각에서, 상기 어플리케이션 서버상에 호스트된 상기 복수의 데이터베이스 서비스 소비자들 각각과 관련된 상기 데이터베이스 서비스 소비자 신원을 포함하도록 상기 복수의 어플리케이션 서버들 각각의 상기 네트워크 인터페이스를 구성하는 제4 구성 유닛을 포함할 수 있다. 또한, 상기 서버는 액세스 제어 리스트를 상기 복수의 데이터베이스 서버들 각각에 제공하는 제공 유닛을 포함할 수 있고, 상기 액세스 제어 리스트는 상기 복수의 데이터베이스 서비스들을 식별하고, 상기 복수의 데이터베이스 서비스들 각각에 대해, 상기 복수의 데이터베이스 서비스들 각각에 액세스하는 것이 허용된 하나 이상의 데이터베이스 서비스 소비자들과 관련된 하나 이상의 데이터베이스 서비스 소비자 신원들을 식별한다. 또한, 상기 서버는 데이터베이스 서비스 소비자 신원을 포함하지 않은 상기 복수의 어플리케이션 서버들로부터 수신된 모든 통신 패킷들을, 상기 복수의 데이터베이스 서버들 각각의 네트워크 인터페이스로, 폐기하는 폐기 유닛을 포함할 수 있다. 또한, 상기 서버는 상기 액세스 제어 리스트가 상기 특정 데이터베이스 서비스에 액세스하는 것이 허용된 특정 데이터베이스 서비스 소비자를 식별하지 않는 한, 상기 복수의 데이터베이스 서비스들 중 특정 데이터베이스 서비스로의 상기 특정 데이터베이스 소비자 신원과 관련된 상기 특정 데이터베이스 서비스 소비자에 의한 액세스를 방지하기 위해, 상기 복수의 데이터베이스 서버들 중 특정 데이터베이스 서버의 특정 네트워크 인터페이스에서 수신된 특정 통신 패킷에 포함된 상기 특정 데이터베이스 서비스 소비자 신원과 결합하여 상기 액세스 제어 리스트를 사용하는 사용 유닛을 포함할 수 있다.
본 실시예의 예시에서, 상기 특정 통신 패킷은 어드레스 결정 프로토콜(ARP) 요청이다. 상기 사용 유닛은 상기 액세스 제어 리스트가 상기 서버에 의해 제공된 상기 복수의 데이터베이스 서비스들 중 임의의 데이터베이스 서비스에 액세스하는 것이 허용된 상기 특정 데이터베이스 서비스 소비자를 식별하였는지 여부를 결정하는 제1 결정 유닛을 포함할 수 있다. 또한, 상기 사용 유닛은 만일 상기 액세스 제어 리스트가 상기 데이터베이스 서버에 의해 제공된 상기 복수의 데이터베이스 서비스들 중 임의의 데이터베이스 서비스에 액세스하는 것이 허용된 상기 데이터베이스 서비스 소비자를 식별하지 않았다면, ARP 응답을 전송함이 없이 상기 ARP 요청을 드롭하는 제2 드롭 유닛을 포함할 수 있다.
본 실시예의 예시에서, 상기 특정 통신 패킷은 연결 구축 요청이다. 상기 사용 유닛은 상기 액세스 제어 리스트가 상기 데이터베이스 서버에 의해 제공된 상기 복수의 데이터베이스 서비스들 중 임의의 데이터베이스 서비스에 액세스하는 것이 허용된 상기 데이터베이스 서비스 소비자를 식별하였는지 여부를 결정하는 제2 결정 유닛을 포함할 수 있다. 또한, 사용 유닛은 만일 상기 액세스 제어 리스트가 상기 데이터베이스 서버에 의해 제공된 상기 복수의 데이터베이스 서비스들 중 임의의 데이터베이스 서비스에 액세스하는 것이 허용된 상기 데이터베이스 서비스 소비자를 식별하지 않았다면, 연결을 구축함이 없이 상기 연결 구축 요청을 드롭하는 제2 드롭 유닛을 포함할 수 있다.
본 실시예의 예시에서, 상기 특정 통신 패킷은 연결 구축 요청이다. 상기 사용 유닛은 상기 연결 구축 요청이 어떠한 데이터베이스 서비스에 연결을 요청하고 있는지 결정하는 제3 결정 유닛을 포함할 수 있다. 또한, 상기 사용 유닛은 만일 상기 액세스 제어 리스트가 상기 데이터베이스 서비스에 액세스하는 것이 허용된 상기 데이터베이스 서비스 소비자를 식별하지 않았다면, 상기 연결 구축 요청에 응답하여, 상기 데이터베이스 서비스로의 연결의 구축을 방지하는 방지 유닛을 포함할 수 있다.
본 실시예의 예시에서, 상기 특정 통신 패킷은 연결 구축 요청이다. 상기 사용 유닛은 상기 연결 구축 요청에 응답하여 연결을 생성하는 생성 유닛, 상기 연결을 통해 상기 데이터베이스 서비스 소비자에 의해 액세스 되도록 의도된 데이터베이스 서비스의 식별을, 상기 연결을 통해, 수신하는 수신 유닛, 및 만일 상기 액세스 제어 리스트가 상기 데이터베이스 서비스에 액세스하는 것이 허용된 상기 데이터베이스 서비스 소비자를 식별하지 않았다면, 상기 연결을 종료하는 종류 유닛을 포함할 수 있다.
본 실시예의 예시에서, 상기 특정 통신 패킷은 상기 데이터베이스 서비스 소비자와 데이터베이스 서비스 사이에 구축된 연결을 통해 수신된 데이터 패킷이다. 상기 사용 유닛은 하드웨어 컨텍스트를 상기 데이터베이스 서비스 소비자와 상기 데이터베이스 서비스 사이에 구축된 상기 연결과 관련시키는 관련 유닛을 포함할 수 있고, 상기 하드웨어 컨텍스트는 상기 데이터베이스 서비스 소비자의 상기 데이터베이스 서비스 소비자 식별자를 포함하며, 상기 데이터 패킷이 상기 연결과 관련된 상기 하드웨어 컨텍스트에 포함된 상기 데이터베이스 서비스 소비자 신원을 포함하지 않는 한, 상기 데이터 패킷을 드롭하는 제3 드롭 유닛을 포함할 수 있다.
본 실시예의 예시에서, 상기 특정 네트워크 인터페이스는 호스트 채널 어댑터이고, 상기 데이터 패킷은 상기 서버의 상기 호스트 채널 어댑터에서 수신되고 상기 하드웨어 컨텍스트는 상기 호스트 채널 어댑터의 메모리에 저장된다. 상기 제3 드롭 유닛은 상기 데이터 패킷이 상기 연결과 관련되고 상기 호스트 채널 어댑터의 상기 메모리에 저장된 상기 하드웨어 컨텍스트에 포함된 상기 특정 데이터베이스 서비스 소비자 신원을 포함하지 않는 한, 상기 호스트 채널 어댑터를 사용하여, 상기 데이터 패킷을 드롭하는 제4 드롭 유닛을 포함할 수 있다.
본 실시예의 예시에서, 상기 사용 유닛은 상기 액세스 제어 리스트에 기초하여, 어드레스 결정 액세스 제어, 연결 구축 액세스 제어 및 데이터 교환 액세스 제어 중 하나를 수행하는 수행 유닛을 포함할 수 있다.
본 실시예의 예시에서, 상기 연결-기반 스위칭 패브릭은 인피니밴드 패브릭이다. 상기 서버는 상기 복수의 데이터베이스 서비스 소비자들로부터 전송된 각각의 인피니밴드 패킷들이 상기 각각의 패킷과 관련된 데이터베이스 서비스 소비자를 식별하는 소스 글로벌 식별자를 반드시 포함하도록, 글로벌 라우팅 헤더 및 소스 글로벌 식별자를 각각 포함하는 인피니밴드 프로토콜 패킷들을 사용하는 것 이외에는, 상기 복수의 데이터베이스 서비스 소비자들과 상기 복수의 데이터베이스 서비스들 사이의 데이터 교환을 금지하도록 상기 복수의 데이터베이스 서버들을 구성하는 제5 구성 유닛을 더 포함할 수 있다.
본 실시예의 예시에서, 상기 서버는 상기 복수의 데이터베이스 서버들로의 허가되지 않은 액세스 시도들과 상기 허가되지 않은 액세스 시도들과 관련된 통신 패킷들에 포함된 데이터베이스 서비스 소비자 신원을 기록하기 위해, 상기 복수의 데이터베이스 서버들 각각의 상기 네트워크 인터페이스를 사용하는 제2 사용 유닛; 상기 복수의 데이터베이스 서버들로의 허가되지 않은 액세스 시도들과 상기 허가되지 않은 액세스 시도들과 관련된 통신 패킷들에 포함된 데이터베이스 서비스 소비자 신원의 상기 기록을 관리 스택에 제공하는 제2 제공 유닛; 및 상기 데이터베이스 액세스 파티션으로의 허가되지 않은 액세스 시도들과 관련된 통신 패킷들에 포함된 상기 데이터베이스 서비스 소비자 신원에 의해 식별된 상기 데이터베이스 소비자의 액세스를 막기(block) 위해, 상기 관리 스택을 사용하는 제3 사용 유닛을 더 포함할 수 있고, 그렇게 함으로써 상기 복수의 데이터베이스 서버들과의 통신을 방지하고 상기 허가되지 않은 액세스 시도들을 막는다.
실시예의 방법은 연결-기반 패브릭, 복수의 서로 다른 테넌트들과 관련된 데이터를 보유하는 저장 셀들, 상기 데이터를 사용하여 복수의 데이터베이스 서비스들을 제공하는 데이터베이스 서버들을 포함하는 멀티-테넌트 환경에서 네트워크 보안을 제공한다. 상기 복수의 데이터베이스 서비스들 각각은 상기 복수의 저장 셀들에 보유된 상기 복수의 서로 다른 테넌트들 및 상기 복수의 서로 다른 테넌트들과 관련된 복수의 데이터베이스 서비스 소비자들을 호스팅하는 복수의 어플리케이션 서버들과 관련된 상기 데이터를 활용하고, 상기 방법은: 상기 복수의 데이터베이스 서비스 소비자들과 상기 복수의 데이터베이스 서버들에 액세스할 수 있는 데이터베이스 액세스 파티션을 갖도록 상기 연결-기반 스위칭 패브릭을 구성하는 단계와; 상기 복수의 데이터베이스 서버들과 상기 복수의 저장 셀들에 액세스할 수 있으나 상기 복수의 데이터베이스 서비스 소비자들에 액세스할 수 없는 저장 액세스 파티션을 갖도록 상기 연결-기반 스위칭 패브릭을 구성하는 단계와; 상기 복수의 데이터베이스 서비스 소비자들 각각이 상기 복수의 데이터베이스 서비스 소비자들 각각과 관련된 상기 고유한 데이터베이스 서비스 신원을 수정하거나 스푸프하지 못하도록, 상기 어플리케이션 서버상에 호스트된 상기 복수의 데이터베이스 서비스 소비자들 각각을 고유한 데이터베이스 서비스 소비자 신원과 관련시키도록 상기 복수의 어플리케이션 서버들 각각의 네트워크 인터페이스를 보안적으로 구성하는 단계와; 상기 데이터베이스 서비스 소비자로부터 상기 복수의 데이터베이스 서비스들로 전송된 상기 통신 패킷들 각각에서, 상기 어플리케이션 서버상에 호스트된 상기 복수의 데이터베이스 서비스 소비자들 각각과 관련된 상기 데이터베이스 서비스 소비자 신원을 포함하도록 상기 복수의 어플리케이션 서버들 각각의 상기 네트워크 인터페이스 제어기를 구성하는 단계와, 상기 액세스 제어 리스트는 상기 복수의 데이터베이스 서비스들을 식별하고, 상기 복수의 데이터베이스 서비스들 각각에 대해, 상기 복수의 데이터베이스 서비스들 각각에 액세스하는 것이 허용된 하나 이상의 데이터베이스 서비스 소비자들과 관련된 하나 이상의 데이터베이스 서비스 소비자 신원들을 식별하며; 데이터베이스 서비스 소비자 신원을 포함하지 않은 상기 복수의 어플리케이션 서버들로부터 수신된 모든 통신 패킷들을, 상기 복수의 데이터베이스 서버들 각각의 네트워크 인터페이스로, 폐기하는 단계와; 그리고 상기 액세스 제어 리스트가 상기 특정 데이터베이스 서비스에 액세스하는 것이 허용된 특정 데이터베이스 서비스 소비자를 식별하지 않는 한, 상기 복수의 데이터베이스 서비스들 중 특정 데이터베이스 서비스로의 상기 특정 데이터베이스 소비자 신원과 관련된 상기 특정 데이터베이스 서비스 소비자에 의한 액세스를 방지하기 위해, 상기 복수의 데이터베이스 서버들 중 특정 데이터베이스 서버의 특정 네트워크 인터페이스에서 수신된 특정 통신 패킷에 포함된 상기 특정 데이터베이스 서비스 소비자 신원과 결합하여 상기 액세스 제어 리스트를 사용하는 단계를 포함한다.
실시예의 방법은 상기 통신 패킷이 어드레스 결정 프로토콜(ARP) 요청인 것을 제공하고, 상기 액세스 제어 리스트가 상기 데이터베이스 서비스 소비자를 상기 데이터베이스 서비스에 액세스하는 것이 허용된 것으로서 식별하지 않는 한, 상기 복수의 데이터베이스 서비스들 중 하나의 데이터베이스 서비스로의 상기 데이터베이스 소비자 신원과 관련된 상기 데이터베이스 소비자에 의한 액세스를 방지하기 위해, 상기 복수의 데이터베이스 서버들 중 하나의 데이터베이스 서버의 네트워크 인터페이스에서 수신된 통신 패킷에 포함된 상기 데이터베이스 서비스 소비자 신원과 결합하여 상기 액세스 제어 리스트를 사용하는 단계는: 상기 액세스 제어 리스트가 상기 데이터베이스 서버에 의해 제공된 상기 복수의 데이터베이스 서비스들 중 임의의 데이터베이스 서비스에 액세스하는 것이 허용된 상기 데이터베이스 서비스 소비자를 식별하였는지 여부를 결정하는 것과; 그리고 만일 상기 액세스 제어 리스트가 상기 데이터베이스 서버에 의해 제공된 상기 복수의 데이터베이스 서비스들 중 임의의 데이터베이스 서비스에 액세스하는 것이 허용된 상기 데이터베이스 서비스 소비자를 식별하지 않았다면, ARP 응답을 전송함이 없이 상기 ARP 요청을 드롭(drop)하는 것을 포함한다.
실시예의 방법은 상기 통신 패킷이 연결 구축 요청인 것을 제공하고, 상기 액세스 제어 리스트가 상기 데이터베이스 서비스 소비자를 상기 데이터베이스 서비스에 액세스하는 것이 허용된 것으로서 식별하지 않는 한, 상기 복수의 데이터베이스 서비스들 중 하나의 데이터베이스 서비스로의 상기 데이터베이스 소비자 신원과 관련된 상기 데이터베이스 소비자에 의한 액세스를 방지하기 위해, 상기 복수의 데이터베이스 서버들 중 하나의 데이터베이스 서버의 네트워크 인터페이스에서 수신된 통신 패킷에 포함된 상기 데이터베이스 서비스 소비자 신원과 결합하여 상기 액세스 제어 리스트를 사용하는 단계는: 상기 데이터베이스 서버에서, 상기 액세스 제어 리스트가 상기 데이터베이스 서버에 의해 제공된 상기 복수의 데이터베이스 서비스들 중 임의의 데이터베이스 서비스에 액세스하는 것이 허용된 상기 데이터베이스 서비스 소비자를 식별하였는지 여부를 결정하는 것과; 그리고 만일 상기 액세스 제어 리스트가 상기 데이터베이스 서버에 의해 제공된 상기 복수의 데이터베이스 서비스들 중 임의의 데이터베이스 서비스에 액세스하는 것이 허용된 상기 데이터베이스 서비스 소비자를 식별하지 않았다면, 연결을 구축함이 없이 상기 연결 구축 요청을 드롭하는 것을 포함한다.
실시예의 방법은 상기 통신 패킷이 연결 구축 요청인 것을 제공하고, 상기 액세스 제어 리스트가 상기 데이터베이스 서비스 소비자를 상기 데이터베이스 서비스에 액세스하는 것이 허용된 것으로서 식별하지 않는 한, 상기 복수의 데이터베이스 서비스들 중 하나의 데이터베이스 서비스로의 상기 데이터베이스 소비자 신원과 관련된 상기 데이터베이스 소비자에 의한 액세스를 방지하기 위해, 상기 복수의 데이터베이스 서버들 중 하나의 데이터베이스 서버의 네트워크 인터페이스에서 수신된 통신 패킷에 포함된 상기 데이터베이스 서비스 소비자 신원과 결합하여 상기 액세스 제어 리스트를 사용하는 단계는: 상기 데이터베이스 서버에서, 상기 연결 구축 요청이 어떠한 데이터베이스 서비스에 연결을 요청하고 있는지 결정하는 것과; 그리고 만일 상기 액세스 제어 리스트가 상기 데이터베이스 서비스에 액세스하는 것이 허용된 상기 데이터베이스 서비스 소비자를 식별하지 않았다면, 상기 연결 구축 요청에 응답하여, 상기 데이터베이스 서비스로의 연결의 구축을 방지하는 것을 포함한다.
실시예의 방법은 상기 통신 패킷이 연결 구축 요청인 것을 제공하고, 상기 액세스 제어 리스트가 상기 데이터베이스 서비스 소비자를 상기 데이터베이스 서비스에 액세스하는 것이 허용된 것으로서 식별하지 않는 한, 상기 복수의 데이터베이스 서비스들 중 하나의 데이터베이스 서비스로의 상기 데이터베이스 소비자 신원과 관련된 상기 데이터베이스 소비자에 의한 액세스를 방지하기 위해, 상기 복수의 데이터베이스 서버들 중 하나의 데이터베이스 서버의 네트워크 인터페이스에서 수신된 통신 패킷에 포함된 상기 데이터베이스 서비스 소비자 신원과 결합하여 상기 액세스 제어 리스트를 사용하는 단계는: 상기 연결 구축 요청에 응답하여 연결을 생성하는 것과; 상기 연결을 통해 상기 데이터베이스 서비스 소비자에 의해 액세스 되도록 의도된 데이터베이스 서비스의 식별을, 상기 연결을 통해, 수신하는 것과; 그리고 만일 상기 액세스 제어 리스트가 상기 데이터베이스 서비스에 액세스하는 것이 허용된 상기 데이터베이스 서비스 소비자를 식별하지 않았다면, 상기 연결을 종료하는 것을 포함한다.
실시예의 방법은 상기 통신 패킷이 상기 데이터베이스 서비스 소비자와 데이터베이스 서비스 사이에 구축된 연결을 통해 수신된 데이터 패킷인 것을 제공하고, 상기 액세스 제어 리스트가 상기 데이터베이스 서비스 소비자를 상기 데이터베이스 서비스에 액세스하는 것이 허용된 것으로서 식별하지 않는 한, 상기 복수의 데이터베이스 서비스들 중 하나의 데이터베이스 서비스로의 상기 데이터베이스 소비자 신원과 관련된 상기 데이터베이스 소비자에 의한 액세스를 방지하기 위해, 상기 복수의 데이터베이스 서버들 중 하나의 데이터베이스 서버의 네트워크 인터페이스에서 수신된 통신 패킷에 포함된 상기 데이터베이스 서비스 소비자 신원과 결합하여 상기 액세스 제어 리스트를 사용하는 단계는: 하드웨어 컨텍스트를 상기 데이터베이스 서비스 소비자와 상기 데이터베이스 서비스 사이에 구축된 상기 연결과 관련시키는 것과, 상기 하드웨어 컨텍스트는 상기 데이터베이스 서비스 소비자의 상기 데이터베이스 서비스 소비자 식별자를 포함하며; 그리고 상기 데이터 패킷이 상기 연결과 관련된 상기 하드웨어 컨텍스트에 포함된 상기 데이터베이스 서비스 소비자 신원을 포함하지 않는 한, 상기 데이터 패킷을 드롭하는 것을 포함한다.
실시예의 방법은 상기 네트워크 인터페이스가 호스트 채널 어댑터인 것을 제공하고, 상기 데이터 패킷은 상기 데이터베이스 서버의 호스트 채널 어댑터에서 수신되고 상기 하드웨어 컨텍스트는 상기 호스트 채널 어댑터의 메모리에 저장되며, 그리고 상기 데이터 패킷이 상기 연결과 관련된 상기 하드웨어 컨텍스트에 포함된 상기 데이터베이스 서비스 소비자 신원을 포함하지 않는 한, 상기 데이터 패킷을 드롭하는 것은: 상기 데이터 패킷이 상기 연결과 관련되고 상기 호스트 채널 어댑터의 상기 메모리에 저장된 상기 하드웨어 컨텍스트에 포함된 상기 데이터베이스 서비스 소비자 신원을 포함하지 않는 한, 상기 호스트 채널 어댑터를 사용하여, 상기 데이터 패킷을 드롭하는 것을 포함한다.
상기 액세스 제어 리스트가 상기 데이터베이스 서비스 소비자를 상기 데이터베이스 서비스에 액세스하는 것이 허용된 것으로서 식별하지 않는 한, 상기 복수의 데이터베이스 서비스들 중 하나의 데이터베이스 서비스로의 상기 데이터베이스 소비자 신원과 관련된 상기 데이터베이스 소비자에 의한 액세스를 방지하기 위해, 상기 복수의 데이터베이스 서버들 중 하나의 데이터베이스 서버의 네트워크 인터페이스에서 수신된 통신 패킷에 포함된 상기 데이터베이스 서비스 소비자 신원과 결합하여 상기 액세스 제어 리스트를 사용하는 실시예의 방법은: 상기 액세스 제어 리스트에 기초하여, 어드레스 결정 액세스 제어, 연결 구축 액세스 제어 및 데이터 교환 액세스 제어 중 적어도 하나를 수행하는 것을 포함한다.
실시예의 방법은 상기 복수의 데이터베이스 서버들에 상기 저장 액세스 파티션을 사용하여 상기 복수의 저장 셀들과 통신하는 다른 네트워크 인터페이스를 제공하고, 상기 다른 네트워크 인터페이스는 상기 액세스 제어 리스트에 기초하여, 어드레스 결정 액세스 제어, 연결 구축 액세스 제어 및 데이터 교환 액세스 제어를 수행하지 않도록 구성된다.
실시예의 방법은 상기 복수의 데이터베이스 서버들로의 허가되지 않은 액세스 시도들과 상기 허가되지 않은 액세스 시도들과 관련된 통신 패킷들에 포함된 데이터베이스 서비스 소비자 신원을 기록하기 위해, 상기 복수의 데이터베이스 서버들 각각의 상기 네트워크 인터페이스를 사용하는 단계; 상기 복수의 데이터베이스 서버들로의 허가되지 않은 액세스 시도들과 상기 허가되지 않은 액세스 시도들과 관련된 통신 패킷들에 포함된 데이터베이스 서비스 소비자 신원의 상기 기록을 관리 스택에 제공하는 단계; 상기 데이터베이스 액세스 파티션으로의 허가되지 않은 액세스 시도들과 관련된 통신 패킷들에 포함된 상기 데이터베이스 서비스 소비자 신원에 의해 식별된 상기 데이터베이스 소비자의 액세스를 막기(block) 위해, 상기 관리 스택을 사용하는 단계를 제공하고, 그렇게 함으로써 상기 복수의 데이터베이스 서버들과의 통신을 방지하고 상기 허가되지 않은 액세스 시도들을 막는다.
실시예의 방법은 멀티-테넌트 환경에서 네트워크 보안을 제공하며, 멀티-테넌트 환경은: 복수의 서로 다른 테넌트들과 관련된 데이터를 보유하는 저장 셀들과; 상기 복수의 서로 다른 테넌트들과 관련된 상기 데이터를 활용하는 복수의 데이터베이스 서비스들을 제공하는 복수의 데이터베이스 서버들과; 상기 복수의 서로 다른 테넌트들과 관련된 복수의 데이터베이스 서비스 소비자들을 호스팅하는 복수의 어플리케이션 서버들; 상기 복수의 데이터베이스 서비스 소비자들과 상기 복수의 데이터베이스 서버들에 액세스할 수 있는 데이터베이스 액세스 파티션을 갖도록 구성된 연결-기반 스위칭 패브릭과; 및 상기 복수의 데이터베이스 서버들과 상기 복수의 저장 셀들에 액세스할 수 있으나 상기 복수의 데이터베이스 서비스 소비자들에 액세스할 수 없는 저장 액세스 파티션과; 상기 복수의 어플리케이션 서버들 각각의 어플리케이션 서버 네트워크 인터페이스 제어기와, 상기 어플리케이션 서버 네트워크 인터페이스 제어기는 상기 복수의 데이터베이스 서비스 소비자들 각각이 상기 복수의 데이터베이스 서비스 소비자들 각각과 관련된 상기 고유한 데이터베이스 서비스 신원을 수정하거나 스푸프하지 못하도록, 상기 어플리케이션 서버상에 호스트된 상기 복수의 데이터베이스 서비스 소비자들 각각을 고유한 데이터베이스 서비스 소비자 신원과 관련시키도록 상기 복수의 어플리케이션 서버들 각각의 네트워크 인터페이스를 보안적으로 구성되고, 상기 어플리케이션 서버 네트워크 인터페이스 제어기는 또한 상기 데이터베이스 서비스 소비자로부터 상기 복수의 데이터베이스 서비스들로 전송된 상기 통신 패킷들 각각에서, 상기 어플리케이션 서버상에 호스트된 상기 복수의 데이터베이스 서비스 소비자들 각각과 관련된 상기 데이터베이스 서비스 소비자 신원을 포함하도록 구성되며; 상기 복수의 데이터베이스 서버들 각각에 저장된 액세스 제어 리스트와, 상기 액세스 제어 리스트는 상기 복수의 데이터베이스 서비스들을 식별하고, 상기 복수의 데이터베이스 서비스들 각각에 대해, 상기 복수의 데이터베이스 서비스들 각각에 액세스하는 것이 허용된 하나 이상의 데이터베이스 서비스 소비자들과 관련된 하나 이상의 데이터베이스 서비스 소비자 신원들을 식별하며; 상기 복수의 데이터베이스 서버들 각각의 데이터베이스 서버 네트워크 인터페이스와, 각각의 데이터베이스 서버 네트워크 인터페이스는 데이터베이스 서비스 소비자 신원을 포함하지 않은 상기 복수의 어플리케이션 서버들로부터 수신된 모든 통신 패킷들을 폐기하도록 보안적으로 구성되며; 그리고 통신 패킷을 수신하는 각각의 데이터 서버 네트워크 인터페이스는 상기 액세스 제어 리스트가 상기 특정 데이터베이스 서비스에 액세스하는 것이 허용된 특정 데이터베이스 서비스 소비자를 식별하지 않는 한, 상기 복수의 데이터베이스 서비스들 중 특정 데이터베이스 서비스로의 상기 특정 데이터베이스 소비자 신원과 관련된 상기 특정 데이터베이스 서비스 소비자에 의한 액세스를 방지하기 위해, 상기 복수의 데이터베이스 서버들 중 특정 데이터베이스 서버의 특정 네트워크 인터페이스에서 수신된 특정 통신 패킷에 포함된 상기 특정 데이터베이스 서비스 소비자 신원과 결합하여 상기 액세스 제어 리스트를 사용하도록 구성된다.
실시예의 방법은 상기 통신 패킷이 어드레스 결정 프로토콜(ARP) 요청인 것을 제공하고, 상기 ARP 요청을 수신하는 상기 데이터베이스 서버 네트워크 인터페이스는: 상기 액세스 제어 리스트가 상기 데이터베이스 서버에 의해 제공된 상기 복수의 데이터베이스 서비스들 중 임의의 데이터베이스 서비스에 액세스하는 것이 허용된 상기 데이터베이스 서비스 소비자를 식별하였는지 여부를 결정하고; 그리고 만일 상기 액세스 제어 리스트가 상기 데이터베이스 서버에 의해 제공된 상기 복수의 데이터베이스 서비스들 중 임의의 데이터베이스 서비스에 액세스하는 것이 허용된 상기 데이터베이스 서비스 소비자를 식별하지 않았다면, ARP 응답을 전송함이 없이 상기 ARP 요청을 드롭하도록 구성된다.
실시예의 방법은 상기 통신 패킷이 연결 구축 요청인 것을 제공하고, 상기 연결 구축 요청을 수신하는 상기 데이터베이스 서버 네트워크 인터페이스는: 상기 액세스 제어 리스트가 상기 데이터베이스 서버에 의해 제공된 상기 복수의 데이터베이스 서비스들 중 임의의 데이터베이스 서비스에 액세스하는 것이 허용된 상기 데이터베이스 서비스 소비자를 식별하였는지 여부를 결정하고; 그리고 만일 상기 액세스 제어 리스트가 상기 데이터베이스 서버에 의해 제공된 상기 복수의 데이터베이스 서비스들 중 임의의 데이터베이스 서비스에 액세스하는 것이 허용된 상기 데이터베이스 서비스 소비자를 식별하지 않았다면, 연결을 구축함이 없이 상기 연결 구축 요청을 드롭하도록 구성된다.
실시예의 방법은 상기 통신 패킷이 연결 구축 요청인 것을 제공하고, 상기 연결 구축 요청을 수신하는 상기 데이터베이스 서버 네트워크 인터페이스는: 상기 연결 구축 요청이 어떠한 데이터베이스 서비스에 연결을 요청하고 있는지 결정하고; 그리고 만일 상기 액세스 제어 리스트가 상기 데이터베이스 서비스에 액세스하는 것이 허용된 상기 데이터베이스 서비스 소비자를 식별하지 않았다면, 상기 연결 구축 요청에 응답하여, 상기 데이터베이스 서비스로의 연결의 구축을 방지하도록 구성된다.
실시예의 방법은 상기 통신 패킷이 연결 구축 요청인 것을 제공하고, 상기 연결 구축 요청을 수신하는 상기 데이터베이스 서버 네트워크 인터페이스는: 상기 연결 구축 요청에 응답하여 연결을 생성하고; 상기 연결을 통해 상기 데이터베이스 서비스 소비자에 의해 액세스 되도록 의도된 데이터베이스 서비스의 식별을, 상기 연결을 통해, 수신하고; 그리고 만일 상기 액세스 제어 리스트가 상기 데이터베이스 서비스에 액세스하는 것이 허용된 상기 데이터베이스 서비스 소비자를 식별하지 않았다면, 상기 연결을 종료하도록 구성된다.
실시예의 방법은 상기 통신 패킷이 상기 데이터베이스 서비스 소비자와 데이터베이스 서비스 사이에 구축된 연결을 통해 수신된 데이터 패킷인 것을 제공하고, 상기 연결을 통해 상기 데이터 패킷을 수신하는 상기 데이터베이스 서버 네트워크 인터페이스는 호스트 채널 어댑터이고, 상기 네트워크 인터페이스는: 하드웨어 컨텍스트를 상기 데이터베이스 서비스 소비자와 상기 데이터베이스 서비스 사이에 구축된 상기 연결과 관련시키고, 상기 하드웨어 컨텍스트는 상기 호스트 채널 어댑터의 메모리에 저장되고 상기 데이터베이스 서비스 소비자의 상기 데이터베이스 서비스 소비자 신원을 포함하고; 상기 데이터 패킷이 상기 연결과 관련된 상기 하드웨어 컨텍스트에 포함된 상기 데이터베이스 서비스 소비자 신원을 포함하지 않는 한, 상기 데이터 패킷을 드롭하도록 구성된다.
실시예의 방법은 상기 복수의 데이터베이스 서버들 각각의 상기 데이터베이스 서버 네트워크 인터페이스를 제공하고, 상기 네트워크 인터페이스는 상기 복수의 데이터베이스 서버들 각각에 저장된 상기 액세스 제어 리스트를 사용하고, 상기 액세스 제어 리스트에 기초하여 어드레스 결정 액세스 제어, 연결 구축 액세스 제어 및 데이터 교환 액세스 제어 중 적어도 하나를 수행하도록 구성된다.
실시예의 방법은 상기 복수의 데이터베이스 서버들 각각을 제공하며, 상기 복수의 데이터베이스 서버들 각각은 상기 저장 액세스 파티션을 사용하여 상기 복수의 저장 셀들과 통신하는 다른 네트워크 인터페이스를 포함하고, 상기 다른 네트워크 인터페이스는 상기 액세스 제어 리스트에 기초하여, 어드레스 결정 액세스 제어, 연결 구축 액세스 제어 및 데이터 교환 액세스 제어를 수행하지 않도록 구성된다.
실시예의 방법은 상기 복수의 데이터베이스 서버들과 통신하는 관리 스택을 제공한다; 상기 복수의 데이터베이스 서버들 각각의 상기 데이터베이스 서버 네트워크 인터페이스는 상기 복수의 데이터베이스 서버들로의 허가되지 않은 액세스 시도들과 상기 허가되지 않은 액세스 시도들과 관련된 통신 패킷들에 포함된 데이터베이스 서비스 소비자 신원을 기록하고, 상기 기록을 상기 관리 스택에 제공하도록 구성되며; 상기 관리 스택은 상기 데이터베이스 액세스 파티션으로의 허가되지 않은 액세스 시도들과 관련된 통신 패킷들에 포함된 상기 데이터베이스 서비스 소비자 신원에 의해 식별된 상기 데이터베이스 소비자의 액세스를 막도록 구성되며, 그렇게 함으로써 상기 복수의 데이터베이스 서버들과의 통신을 방지하고 상기 허가되지 않은 액세스 시도들을 막는다.
실시예의 방법은 연결-기반 스위칭 패브릭, 복수의 서로 다른 터넌트들과 관련된 데이터를 보유하는 복수의 저장 셀들, 복수의 데이터베이스 서비스들을 제공하는 복수의 데이터베이스 서버들을 포함하는 멀티-테넌트 환경에서 네트워크 보안을 제공하는 명령어들을 포함하는 비-일시적인 컴퓨터 판독가능한 매체를 제공하며, 상기 복수의 데이터베이스 서비스들 각각은 상기 복수의 저장 셀들에 보유된 상기 복수의 서로 다른 테넌트들과 상기 복수의 서로 다른 테넌트들과 관련된 복수의 데이터베이스 서비스 소비자들을 호스팅하는 복수의 어플리케이션 서버들과 관련된 상기 데이터를 활용하고, 상기 명령어들은 실행시, 상기 복수의 데이터베이스 서버들 중 하나의 데이터베이스 서버로 하여금 단계들을 수행하도록 하며, 상기 단계들은: 상기 복수의 데이터베이스 서비스 소비자들과 상기 복수의 데이터베이스 서버들에 액세스할 수 있는 데이터베이스 액세스 파티션을 갖도록 상기 연결-기반 스위칭 패브릭을 구성하는 단계와; 상기 복수의 데이터베이스 서버들과 상기 복수의 저장 셀들에 액세스할 수 있으나 상기 복수의 데이터베이스 서비스 소비자들에 액세스할 수 없는 저장 액세스 파티션을 갖도록 상기 연결-기반 스위칭 패브릭을 구성하는 단계와; 상기 어플리케이션 서버상에 호스트된 상기 복수의 데이터베이스 서비스 소비자들 각각을 고유한 데이터베이스 서비스 소비자 신원과 관련시키도록 상기 복수의 어플리케이션 서버들 각각의 네트워크 인터페이스를 보안적으로 구성하는 단계와; 상기 데이터베이스 서비스 소비자로부터 상기 복수의 데이터베이스 서비스들로 전송된 상기 통신 패킷들 각각에서, 상기 어플리케이션 서버상에 호스트된 상기 복수의 데이터베이스 서비스 소비자들 각각과 관련된 상기 데이터베이스 서비스 소비자 신원을 포함하도록 상기 복수의 어플리케이션 서버들 각각의 상기 네트워크 인터페이스 제어기를 구성하는 단계와; 액세스 제어 리스트를 상기 복수의 데이터베이스 서버들 각각에 제공하는 단계와, 상기 액세스 제어 리스트는 상기 복수의 데이터베이스 서비스들을 식별하고, 상기 복수의 데이터베이스 서비스들 각각에 대해, 상기 복수의 데이터베이스 서비스들 각각에 액세스하는 것이 허용된 하나 이상의 데이터베이스 서비스 소비자들과 관련된 하나 이상의 데이터베이스 서비스 소비자 신원들을 식별하며; 데이터베이스 서비스 소비자 신원을 포함하지 않은 상기 복수의 어플리케이션 서버들로부터 수신된 모든 통신 패킷들을, 상기 복수의 데이터베이스 서버들 각각의 네트워크 인터페이스로, 폐기하는 단계와; 그리고 상기 액세스 제어 리스트가 상기 특정 데이터베이스 서비스에 액세스하는 것이 허용된 상기 데이터베이스 서비스 소비자를 식별하지 않는 한, 상기 복수의 데이터베이스 서비스들 중 하나의 데이터베이스 서비스로의 상기 데이터베이스 소비자 신원과 관련된 상기 데이터베이스 소비자에 의한 액세스를 방지하기 위해, 상기 복수의 데이터베이스 서버들 중 하나의 데이터베이스 서버 노드의 하나의 네트워크 인터페이스에서 수신된 통신 패킷에 포함된 데이터베이스 서비스 소비자 신원과 결합하여 상기 액세스 제어 리스트를 사용하는 단계를 포함한다.
실시예의 방법은 상기 연결-기반 스위칭 패브릭이 인피니밴드 패브릭인 것을 제공하고, 상기 방법은 상기 복수의 데이터베이스 서비스 소비자들로부터 전송된 각각의 인피니밴드 패킷들이 상기 각각의 패킷과 관련된 데이터베이스 서비스 소비자를 식별하는 소스 글로벌 식별자를 반드시 포함하도록, 글로벌 라우팅 헤더 및 소스 글로벌 식별자를 각각 포함하는 인피니밴드 프로토콜 패킷들을 사용하는 것 이외에는, 상기 복수의 데이터베이스 서비스 소비자들과 상기 복수의 데이터베이스 서비스들 사이의 데이터 교환을 금지하도록 상기 복수의 데이터베이스 서버들을 구성하는 단계를 더 포함한다.
실시예의 방법은 상기 연결-기반 스위칭 패브릭이 인피니밴드 패브릭인 것을 제공하고, 상기 복수의 데이터베이스 서버들 각각의 상기 데이터베이스 서버 네트워크 인터페이스는 상기 복수의 데이터베이스 서비스 소비자들로부터 전송된 각각의 인피니밴드 패킷들이 상기 각각의 패킷과 관련된 데이터베이스 서비스 소비자를 식별하는 소스 글로벌 식별자를 반드시 포함하도록, 글로벌 라우팅 헤더 및 소스 글로벌 식별자를 각각 포함하는 인피니밴드 프로토콜 패킷들을 사용하는 것 이외에는, 상기 복수의 데이터베이스 서비스 소비자들과 상기 복수의 데이터베이스 서비스들 사이의 데이터 교환을 금지하도록 구성된다.
본 발명의 다양한 실시예들이 상기 기술되었으나, 이들은 제한이 아닌 예시로서 제시된 것임이 이해되어야 한다. 본 발명의 사상 및 범위를 벗어남이 없이 형태 및 세부사항에서 다양한 변화가 이루어질 수 있음은 당해 기술분야에서 통상의 지식을 가진자에게 명백할 것이다.
본 발명의 많은 구성들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합의 지원으로, 또는 이들의 조합을 사용하여 수행될 수 있다. 본 발명은 본 개시 내용의 교시들에 따라 프로그래밍 된 하나 이상의 프로세서, 메모리 및/또는 컴퓨터 판독가능한 저장 매체를 포함하는 하나 이상의 종래의 범용 또는 특수 디지털 컴퓨터, 컴퓨팅 장치, 머신 또는 마이크로프로세서를 사용하여 편리하게 구현될 수 있다. 또한, 본 발명의 구성들은 예를 들어, 주문형 집적 회로(ASIC) 및 프로그래머블 로직 디바이스(programmable logic device)와 같은 하드웨어 컴포넌트들을 사용하여 하드웨어에서 구현될 수 있다. 본 명세서에 설명된 기능을 수행하기 위한 하드웨어 상태 머신의 구현은 당해 기술분야에서 통상의 지식을 가진자에게 명백할 것이다.
본 발명의 구성들은 프로세싱 시스템의 하드웨어를 제어하고 프로세싱 시스템으로 하여금 본 발명의 결과들을 활용하여 다른 메커니즘들과 인터렉션 할 수 있게 하는 소프트웨어 및/또는 펌웨어에 통합될 수 있다. 이러한 소프트웨어 또는 펌웨어에는 어플리케이션 코드, 디바이스 드라이버들, 운영 체제들 및 실행 환경들/컨테이너들이 포함될 수 있지만 이에 제한되지 않는다. 적절한 소프트웨어 코딩은 소프트웨어 분야의 통상의 지식을 가진자에게 명백한 바와 같이, 본 개시 내용의 교시들에 기초하여 숙련된 프로그래머들에 의해 용이하게 준비될 수 있다.
일부 실시예들에서, 본 발명은 본 발명의 프로세스들 중 임의의 프로세스를 수행하도록 컴퓨터를 프로그래밍하는데 사용될 수 있는 명령어들을 저장하는 저장 매체 또는 컴퓨터 판독 가능 매체(미디어)인 컴퓨터 프로그램 제품을 포함한다. 상기 저장 매체 또는 컴퓨터 판독가능한 매체는 플로피 디스크들, 광디스크들, DVD, CD-ROM들, 마이크로드라이브 및 광-자기 디스크들, ROM들, RAM들, EPROM들, EEPROM들, DRAM들, VRAM들, 플래시 메모리 디바이스들, 광 또는 자기 카드들, 나노시스템들(분자 메모리 IC를 포함한다), 또는 명령어들 및/또는 데이터를 저장하기에 적합한 임의의 유형의 미디어 또는 디바이스일 수 있다. 실시예들에서, 상기 저장 매체 또는 컴퓨터 판독가능한 매체는 비-일시적일 수 있다.
본 발명의 상기 설명은 예시 및 설명의 목적으로 제공되었다. 이은 본 발명을 개시된 정확한 형태로 제한하거나 포괄하려는 것은 아니다. 많은 수정들 및 변형들이 당해 기술분야에서 통상의 지식을 가진자에게 명백할 것이다. 수정들 및 변형들은 개시된 구성들의 임의의 관련 조합을 포함한다. 실시예들은 본 발명의 원리들과 그 실제 응용을 가장 잘 설명하고, 당해 기술분야에서 통상의 지식을 가진자가 다양한 실시예들과 의도된 특정 용도에 적합한 다양한 수정들을 통해 본 발명을 이해할 수 있도록 선택 및 설명되었다. 본 발명의 범위는 다음의 청구범위들과 이들의 균등물에 의해 정의되는 것이 의도된다.

Claims (21)

  1. 복수의 데이터베이스 서비스들을 제공하는 복수의 데이터베이스 서버들과 복수의 데이터베이스 서비스 소비자들을 호스팅(hosting)하는 복수의 어플리케이션 서버들을 직접 연결하는 연결-기반 스위칭 패브릭(connection-based switched fabric)을 갖는 멀티-테넌트(multi-tenant) 환경에서 데이터베이스 서버에 네트워크 보안을 제공하는 방법으로서, 상기 복수의 데이터베이스 서비스 소비자들 각각은 서로 다른 데이터베이스 서비스 소비자 신원(database service consumer identity)과 관련되며, 상기 방법은:
    상기 복수의 데이터베이스 서버들 중 하나의 데이터베이스 서버에서 액세스 제어 리스트(access control list)를 수신하는 단계와, 상기 액세스 제어 리스트는 상기 복수의 데이터베이스 서비스들을 식별하고, 상기 복수의 데이터베이스 서비스들 각각에 대해, 상기 복수의 데이터베이스 서비스들 각각에 액세스하는 것이 허용된 하나 이상의 데이터베이스 서비스 소비자들과 관련된 하나 이상의 데이터베이스 서비스 소비자 신원들을 식별하며;
    상기 데이터베이스 서버에서, 상기 복수의 데이터베이스 서버들과 상기 복수의 어플리케이션 서버들을 직접 연결하는 상기 연결-기반 스위칭 패브릭을 통해 전송된 복수의 통신 패킷들을 수신하는 단계와; 그리고
    상기 데이터베이스 서버에서, 상기 복수의 통신 패킷들 각각의 통신 패킷에 대해, 다음의 단계들을 수행하는 단계를 포함하며, 상기 다음의 단계들은:
    상기 통신 패킷이 임의의 데이터베이스 서비스 소비자 신원을 포함하지 않는 경우, 상기 통신 패킷을 폐기(discard)하는 단계와,
    만일 상기 통신 패킷이 데이터베이스 서비스 소비자 신원을 포함하는 경우, 상기 통신 패킷을 전송한 상기 서비스 소비자를 식별하기 위해, 상기 통신 패킷에 포함된 데이터베이스 소비자 신원을 사용하는 단계와, 그리고
    상기 액세스 제어 리스트가 상기 데이터베이스 서비스 소비자를 상기 데이터베이스 서비스에 액세스하는 것이 허용된 것으로서 식별하지 않는 한, 상기 복수의 데이터베이스 서비스들 중 하나의 데이터베이스 서비스로의 상기 데이터베이스 소비자에 의한 액세스를 방지하기 위해, 상기 액세스 제어 리스트를 상기 통신 패킷에 포함된 상기 데이터베이스 소비자 신원과 결합하여 사용하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 청구항 1에 있어서,
    상기 통신 패킷은 어드레스 결정 프로토콜(ARP: address resolution protocol) 요청이고,
    상기 액세스 제어 리스트가 상기 데이터베이스 서비스 소비자를 상기 데이터베이스 서비스에 액세스하는 것이 허용된 것으로서 식별하지 않는 한, 상기 복수의 데이터베이스 서비스들 중 하나의 데이터베이스 서비스로의 상기 데이터베이스 소비자에 의한 액세스를 방지하기 위해, 상기 액세스 제어 리스트를 상기 통신 패킷에 포함된 상기 데이터베이스 소비자 신원과 결합하여 사용하는 단계는:
    상기 데이터베이스 서버에서, 상기 액세스 제어 리스트가 상기 데이터베이스 서버에 의해 제공된 상기 복수의 데이터베이스 서비스들 중 임의의 데이터베이스 서비스에 액세스하는 것이 허용된 상기 데이터베이스 서비스 소비자를 식별하였는지 여부를 결정하는 것과; 그리고
    만일 상기 액세스 제어 리스트가 상기 데이터베이스 서버에 의해 제공된 상기 복수의 데이터베이스 서비스들 중 임의의 데이터베이스 서비스에 액세스하는 것이 허용된 상기 데이터베이스 서비스 소비자를 식별하지 않았다면, ARP 응답을 전송함이 없이 상기 ARP 요청을 드롭(drop)하는 것을 포함하는 것을 특징으로 하는 방법.
  3. 청구항 1 또는 2에 있어서,
    상기 통신 패킷은 연결 구축 요청(connection establishment request)이고,
    상기 액세스 제어 리스트가 상기 데이터베이스 서비스 소비자를 상기 데이터베이스 서비스에 액세스하는 것이 허용된 것으로서 식별하지 않는 한, 상기 복수의 데이터베이스 서비스들 중 하나의 데이터베이스 서비스로의 상기 데이터베이스 소비자에 의한 액세스를 방지하기 위해, 상기 액세스 제어 리스트를 상기 통신 패킷에 포함된 상기 데이터베이스 소비자 신원과 결합하여 사용하는 단계는:
    상기 데이터베이스 서버에서, 상기 액세스 제어 리스트가 상기 데이터베이스 서버에 의해 제공된 상기 복수의 데이터베이스 서비스들 중 임의의 데이터베이스 서비스에 액세스하는 것이 허용된 상기 데이터베이스 서비스 소비자를 식별하였는지 여부를 결정하는 것과; 그리고
    만일 상기 액세스 제어 리스트가 상기 데이터베이스 서버에 의해 제공된 상기 복수의 데이터베이스 서비스들 중 임의의 데이터베이스 서비스에 액세스하는 것이 허용된 상기 데이터베이스 서비스 소비자를 식별하지 않았다면, 연결을 구축함이 없이 상기 연결 구축 요청을 드롭하는 것을 포함하는 것을 특징으로 하는 방법.
  4. 전술한 항 중 임의의 항에 있어서,
    상기 통신 패킷은 연결 구축 요청이고,
    상기 액세스 제어 리스트가 상기 데이터베이스 서비스 소비자를 상기 데이터베이스 서비스에 액세스하는 것이 허용된 것으로서 식별하지 않는 한, 상기 복수의 데이터베이스 서비스들 중 하나의 데이터베이스 서비스로의 상기 데이터베이스 소비자에 의한 액세스를 방지하기 위해, 상기 액세스 제어 리스트를 상기 통신 패킷에 포함된 상기 데이터베이스 소비자 신원과 결합하여 사용하는 단계는:
    상기 데이터베이스 서버에서, 상기 연결 구축 요청이 어떠한 데이터베이스 서비스에 연결을 요청하고 있는지 결정하는 것과; 그리고
    만일 상기 액세스 제어 리스트가 상기 데이터베이스 서비스에 액세스하는 것이 허용된 상기 데이터베이스 서비스 소비자를 식별하지 않았다면, 상기 연결 구축 요청에 응답하여, 상기 데이터베이스 서비스로의 연결의 구축을 방지(prevent)하는 것을 포함하는 것을 특징으로 하는 방법.
  5. 청구항 1에 있어서,
    상기 통신 패킷은 연결 구축 요청이고,
    상기 액세스 제어 리스트가 상기 데이터베이스 서비스 소비자를 상기 데이터베이스 서비스에 액세스하는 것이 허용된 것으로서 식별하지 않는 한, 상기 복수의 데이터베이스 서비스들 중 하나의 데이터베이스 서비스로의 상기 데이터베이스 소비자에 의한 액세스를 방지하기 위해, 상기 액세스 제어 리스트를 상기 통신 패킷에 포함된 상기 데이터베이스 소비자 신원과 결합하여 사용하는 단계는:
    상기 연결 구축 요청에 응답하여 연결을 생성하는 것과;
    상기 연결을 통해 상기 데이터베이스 서비스 소비자에 의해 액세스 되도록 의도된 데이터베이스 서비스의 식별을, 상기 연결을 통해, 수신하는 것과; 그리고
    만일 상기 액세스 제어 리스트가 상기 데이터베이스 서비스에 액세스하는 것이 허용된 상기 데이터베이스 서비스 소비자를 식별하지 않았다면, 상기 연결을 종료(terminate)하는 것을 포함하는 것을 특징으로 하는 방법.
  6. 전술한 항 중 임의의 항에 있어서,
    상기 통신 패킷은 상기 데이터베이스 서비스 소비자와 데이터베이스 서비스 사이에 구축된 연결을 통해 수신된 데이터 패킷이고,
    상기 액세스 제어 리스트가 상기 데이터베이스 서비스 소비자를 상기 데이터베이스 서비스에 액세스하는 것이 허용된 것으로서 식별하지 않는 한, 상기 복수의 데이터베이스 서비스들 중 하나의 데이터베이스 서비스로의 상기 데이터베이스 소비자에 의한 액세스를 방지하기 위해, 상기 액세스 제어 리스트를 상기 통신 패킷에 포함된 상기 데이터베이스 소비자 신원과 결합하여 사용하는 단계는:
    하드웨어 컨텍스트(hardware context)를 상기 데이터베이스 서비스 소비자와 상기 데이터베이스 서비스 사이에 구축된 상기 연결과 관련시키는 것과, 상기 하드웨어 컨텍스트는 상기 데이터베이스 서비스 소비자의 상기 데이터베이스 서비스 소비자 식별자를 포함하며; 그리고
    상기 데이터 패킷이 상기 연결과 관련된 상기 하드웨어 컨텍스트에 포함된 상기 데이터베이스 서비스 소비자 신원을 포함하지 않는 한, 상기 데이터 패킷을 드롭하는 것을 포함하는 것을 특징으로 하는 방법.
  7. 청구항 6에 있어서,
    상기 데이터 패킷은 상기 데이터베이스 서버의 호스트 채널 어댑터(host channel adapter)에서 수신되고 상기 하드웨어 컨텍스트는 상기 호스트 채널 어댑터의 메모리에 저장되며,
    상기 데이터 패킷이 상기 연결과 관련된 상기 하드웨어 컨텍스트에 포함된 상기 데이터베이스 서비스 소비자 신원을 포함하지 않는 한, 상기 데이터 패킷을 드롭하는 것은:
    상기 데이터 패킷이 상기 연결과 관련되고 상기 호스트 채널 어댑터의 상기 메모리에 저장된 상기 하드웨어 컨텍스트에 포함된 상기 데이터베이스 서비스 소비자 신원을 포함하지 않는 한, 상기 호스트 채널 어댑터를 사용하여, 상기 데이터 패킷을 드롭하는 것을 포함하는 것을 특징으로 하는 방법.
  8. 전술한 항 중 임의의 항에 있어서,
    상기 액세스 제어 리스트가 상기 데이터베이스 서비스 소비자를 상기 데이터베이스 서비스에 액세스하는 것이 허용된 것으로서 식별하지 않는 한, 상기 복수의 데이터베이스 서비스들 중 하나의 데이터베이스 서비스로의 상기 데이터베이스 소비자에 의한 액세스를 방지하기 위해, 상기 액세스 제어 리스트를 상기 통신 패킷에 포함된 상기 데이터베이스 소비자 신원과 결합하여 사용하는 단계는:
    상기 액세스 제어 리스트에 기초하여, 어드레스 결정 액세스 제어, 연결 구축 액세스 제어 및 데이터 교환 액세스 제어 중 적어도 하나를 수행하는 것을 포함하는 것을 특징으로 하는 방법.
  9. 전술한 항 중 임의의 항에 있어서,
    상기 연결-기반 스위칭 패브릭은 인피니밴드 패브릭(InfiniBand fabric)이고, 상기 통신 패킷은 상기 복수의 데이터베이스 서버들과 상기 복수의 어플리케이션 서버들을 직접 연결하는 상기 인피니밴드 패브릭을 통해 상기 데이터베이스 서버에서 수신된 인피니밴드 프로토콜 통신 패킷이고, 그리고
    상기 복수의 통신 패킷들 중 상기 통신 패킷에 대해, 상기 데이터베이스 서버에 의해 수행되는 상기 단계들은:
    상기 인피니밴드 프로토콜 통신 패킷이 글로벌 라우팅 헤더(global routing header)를 포함하지 않는 경우, 상기 인피니밴드 프로토콜 통신 패킷을 폐기하는 단계와,
    만일 상기 인피니밴드 프로토콜 통신 패킷이 글로벌 라우팅 헤더를 포함하는 경우, 상기 인피니밴드 프로토콜 통신 패킷을 전송한 상기 서비스 소비자를 식별하기 위해, 상기 인피니밴드 프로토콜 통신 패킷의 상기 글로벌 라우팅 헤더에 포함된 소스 글로벌 식별자(source global identifier)를 사용하는 단계와, 그리고
    상기 액세스 제어 리스트가 상기 데이터베이스 서비스 소비자를 상기 데이터베이스 서비스에 액세스하는 것이 허용된 것으로서 식별하지 않는 한, 상기 복수의 데이터베이스 서비스들 중 하나의 데이터베이스 서비스로의 상기 데이터베이스 소비자에 의한 액세스를 방지하기 위해, 상기 인피니밴드 프로토콜 통신 패킷의 상기 글로벌 라우팅 헤더에 포함된 상기 소스 글로벌 식별자와 결합하여 상기 액세스 제어 리스트를 사용하는 단계를 포함하는 것을 특징으로 하는 방법.
  10. 전술한 항 중 임의의 항에 있어서,
    상기 연결-기반 스위칭 패브릭은 인피니밴드 패브릭이고, 상기 방법은:
    상기 복수의 데이터베이스 서비스 소비자들로부터 전송된 각각의 인피니밴드 패킷들이 상기 각각의 패킷과 관련된 데이터베이스 서비스 소비자를 식별하는 소스 글로벌 식별자를 반드시 포함하도록, 글로벌 라우팅 헤더 및 소스 글로벌 식별자를 각각 포함하는 인피니밴드 프로토콜 패킷들을 사용하는 것 이외에는, 상기 복수의 데이터베이스 서비스 소비자들과 상기 복수의 데이터베이스 서비스들 사이의 데이터 교환을 금지하도록 상기 복수의 데이터베이스 서버들을 구성하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  11. 복수의 데이터베이스 서비스 소비자들을 호스팅하는 복수의 어플리케이션 서버들에 직접 연결된 연결-기반 스위칭 패브릭을 갖는 멀티-테넌트 환경에서 네트워크 보안을 제공하는 시스템으로서, 상기 복수의 데이터베이스 서비스 소비자들 각각은 서로 다른 데이터베이스 서비스 소비자 신원과 관련되며, 상기 시스템은:
    복수의 데이터베이스 서비스들을 제공하는 복수의 데이터베이스 서버들과, 상기 복수의 데이터베이스 서버들의 각각의 데이터베이스 서버는 마이크로프로세서, 메모리 및 네트워크 인터페이스를 포함하며;
    상기 복수의 데이터베이스 서버들 각각에 저장된 액세스 제어 리스트를 포함하고, 상기 액세스 제어 리스트는 상기 복수의 데이터베이스 서비스들을 식별하고, 상기 복수의 데이터베이스 서비스들 각각에 대해, 상기 복수의 데이터베이스 서비스들 각각에 액세스하는 것이 허용된 하나 이상의 데이터베이스 서비스 소비자들과 관련된 하나 이상의 데이터베이스 서비스 소비자 신원들을 식별하며;
    상기 복수의 데이터베이스 서버들의 각각의 데이터베이스 서버의 상기 네트워크 인터페이스는 상기 복수의 데이터베이스 서버들과 상기 복수의 어플리케이션 서버들을 직접 연결하는 상기 연결-기반 스위칭 패브릭을 통해 전송된 복수의 통신 패킷들을 수신하도록 구성되며; 그리고
    상기 네트워크 인터페이스는, 상기 네트워크 인터페이스에서 수신된 상기 복수의 통신 패킷들 각각의 통신 패킷에 대해, 다음의 단계들을 수행하도록 구성되며, 상기 다음의 단계들은:
    상기 통신 패킷이 임의의 데이터베이스 서비스 소비자 신원을 포함하지 않는 경우, 상기 통신 패킷을 폐기하는 것과,
    만일 상기 통신 패킷이 데이터베이스 서비스 소비자 신원을 포함하는 경우, 상기 통신 패킷을 전송한 상기 서비스 소비자를 식별하기 위해, 상기 통신 패킷에 포함된 데이터베이스 소비자 신원을 사용하는 것과, 그리고
    상기 액세스 제어 리스트가 상기 데이터베이스 서비스 소비자를 상기 데이터베이스 서비스에 액세스하는 것이 허용된 것으로서 식별하지 않는 한, 상기 복수의 데이터베이스 서비스들 중 하나의 데이터베이스 서비스로의 상기 데이터베이스 소비자에 의한 액세스를 방지하기 위해, 상기 액세스 제어 리스트를 상기 통신 패킷에 포함된 상기 데이터베이스 소비자 신원과 결합하여 사용하는 것을 포함하는 것을 특징으로 하는 시스템.
  12. 청구항 11에 있어서,
    상기 통신 패킷은 어드레스 결정 프로토콜(ARP) 요청이고,
    상기 네트워크 인터페이스는:
    상기 액세스 제어 리스트가 상기 데이터베이스 서버에 의해 제공된 상기 복수의 데이터베이스 서비스들 중 임의의 데이터베이스 서비스에 액세스하는 것이 허용된 상기 데이터베이스 서비스 소비자를 식별하였는지 여부를 결정하고; 그리고
    만일 상기 액세스 제어 리스트가 상기 데이터베이스 서버에 의해 제공된 상기 복수의 데이터베이스 서비스들 중 임의의 데이터베이스 서비스에 액세스하는 것이 허용된 상기 데이터베이스 서비스 소비자를 식별하지 않았다면, ARP 응답을 전송함이 없이 상기 ARP 요청을 드롭하도록 구성되는 것을 특징으로 하는 시스템.
  13. 청구항 11 또는 12에 있어서,
    상기 통신 패킷은 연결 구축 요청이고,
    상기 네트워크 인터페이스는:
    상기 액세스 제어 리스트가 상기 데이터베이스 서버에 의해 제공된 상기 복수의 데이터베이스 서비스들 중 임의의 데이터베이스 서비스에 액세스하는 것이 허용된 상기 데이터베이스 서비스 소비자를 식별하였는지 여부를 결정하고; 그리고
    만일 상기 액세스 제어 리스트가 상기 데이터베이스 서버에 의해 제공된 상기 복수의 데이터베이스 서비스들 중 임의의 데이터베이스 서비스에 액세스하는 것이 허용된 상기 데이터베이스 서비스 소비자를 식별하지 않았다면, 연결을 구축함이 없이 상기 연결 구축 요청을 드롭하도록 구성되는 것을 특징으로 하는 시스템.
  14. 청구항 11 내지 13 중 임의의 항에 있어서,
    상기 통신 패킷은 연결 구축 요청이고,
    상기 네트워크 인터페이스는:
    상기 연결 구축 요청이 어떠한 데이터베이스 서비스에 연결을 요청하고 있는지 결정하고; 그리고
    만일 상기 액세스 제어 리스트가 상기 데이터베이스 서비스에 액세스하는 것이 허용된 상기 데이터베이스 서비스 소비자를 식별하지 않았다면, 상기 연결 구축 요청에 응답하여, 상기 데이터베이스 서비스로의 연결의 구축을 방지하도록 구성되는 것을 특징으로 하는 시스템.
  15. 청구항 11에 있어서,
    상기 통신 패킷은 연결 구축 요청이고,
    상기 네트워크 인터페이스는:
    상기 연결 구축 요청에 응답하여 연결을 생성하고;
    상기 연결을 통해 상기 데이터베이스 서비스 소비자에 의해 액세스 되도록 의도된 데이터베이스 서비스의 식별을, 상기 연결을 통해, 수신하고; 그리고
    만일 상기 액세스 제어 리스트가 상기 데이터베이스 서비스에 액세스하는 것이 허용된 상기 데이터베이스 서비스 소비자를 식별하지 않았다면, 상기 연결을 종료하도록 구성되는 것을 특징으로 하는 시스템.
  16. 전술한 항 중 임의의 항에 있어서,
    상기 통신 패킷은 상기 데이터베이스 서비스 소비자와 데이터베이스 서비스 사이에 구축된 연결을 통해 수신된 데이터 패킷이고,
    상기 네트워크 인터페이스는:
    하드웨어 컨텍스트를 상기 데이터베이스 서비스 소비자와 상기 데이터베이스 서비스 사이에 구축된 상기 연결과 관련시키고, 상기 하드웨어 컨텍스트는 상기 데이터베이스 서비스 소비자의 상기 데이터베이스 서비스 소비자 식별자를 포함하며; 그리고
    상기 데이터 패킷이 상기 연결과 관련된 상기 하드웨어 컨텍스트에 포함된 상기 데이터베이스 서비스 소비자 신원을 포함하지 않는 한, 상기 데이터 패킷을 드롭하도록 구성되는 것을 특징으로 하는 시스템.
  17. 청구항 16에 있어서,
    상기 네트워크 인터페이스는 호스트 채널 어댑터이고 상기 하드웨어 컨텍스트는 상기 호스트 채널 어댑터의 메모리에 저장되며; 그리고
    상기 호스트 채널 어댑터는 상기 데이터 패킷이 상기 연결과 관련되고 상기 호스트 채널 어댑터의 상기 메모리에 저장된 상기 하드웨어 컨텍스트에 포함된 상기 데이터베이스 서비스 소비자 신원을 포함하지 않는 한, 상기 데이터 패킷을 드롭하도록 구성되는 것을 특징으로 하는 시스템.
  18. 청구항 11 내지 17 중 임의의 항에 있어서,
    상기 네트워크 인터페이스는 상기 액세스 제어 리스트가 상기 데이터베이스 서비스 소비자를 상기 데이터베이스 서비스에 액세스하는 것이 허용된 것으로서 식별하지 않는 한, 상기 복수의 데이터베이스 서비스들 중 하나의 데이터베이스 서비스로의 상기 데이터베이스 소비자에 의한 액세스를 방지하기 위해, 상기 통신 패킷에 포함된 상기 데이터베이스 소비자 신원과 결합하여, 상기 액세스 제어 리스트에 기초하여, 어드레스 결정 액세스 제어, 연결 구축 액세스 제어 및 데이터 교환 액세스 제어 중 적어도 하나를 수행하도록 구성되는 것을 특징으로 하는 시스템.
  19. 청구항 11 내지 18 중 임의의 항에 있어서,
    상기 연결-기반 스위칭 패브릭은 인피니밴드 패브릭이고, 상기 통신 패킷은 상기 복수의 데이터베이스 서버들과 상기 복수의 어플리케이션 서버들을 직접 연결하는 상기 인피니밴드 패브릭을 통해 상기 데이터베이스 서버에서 수신된 인피니밴드 프로토콜 통신 패킷이고, 그리고
    상기 네트워크 인터페이스는:
    상기 인피니밴드 프로토콜 통신 패킷이 글로벌 라우팅 헤더를 포함하지 않는 경우, 상기 인피니밴드 프로토콜 통신 패킷을 폐기하고;
    만일 상기 인피니밴드 프로토콜 통신 패킷이 글로벌 라우팅 헤더를 포함하는 경우, 상기 인피니밴드 프로토콜 통신 패킷을 전송한 상기 서비스 소비자를 식별하기 위해, 상기 인피니밴드 프로토콜 통신 패킷의 상기 글로벌 라우팅 헤더에 포함된 소스 글로벌 식별자를 사용하고; 그리고
    상기 액세스 제어 리스트가 상기 데이터베이스 서비스 소비자를 상기 데이터베이스 서비스에 액세스하는 것이 허용된 것으로서 식별하지 않는 한, 상기 복수의 데이터베이스 서비스들 중 하나의 데이터베이스 서비스로의 상기 데이터베이스 소비자에 의한 액세스를 방지하기 위해, 상기 인피니밴드 프로토콜 통신 패킷의 상기 글로벌 라우팅 헤더에 포함된 상기 소스 글로벌 식별자와 결합하여 상기 액세스 제어 리스트를 사용하도록 구성되는 것을 특징으로 하는 시스템.
  20. 복수의 데이터베이스 서비스들을 제공하는 복수의 데이터베이스 서버들과 복수의 데이터베이스 서비스 소비자들을 호스팅하는 복수의 어플리케이션 서버들을 직접 연결하는 연결-기반 스위칭 패브릭을 갖는 멀티-테넌트 환경에서 데이터베이스 서버에 네트워크 보안을 제공하는 명령어들을 포함하는 비-일시적인 컴퓨터 판독가능한 매체로서, 상기 명령어들은 상기 비-일시적인 컴퓨터 판독가능한 매체상에 저장되며, 상기 명령어들은 실행시, 상기 복수의 데이터베이스 서버들 중 하나의 데이터베이스 서버로 하여금 단계들을 수행하도록 하며, 상기 단계들은:
    상기 복수의 데이터베이스 서버들 중 하나의 데이터베이스 서버에서 액세스 제어 리스트를 수신하는 단계와, 상기 액세스 제어 리스트는 상기 복수의 데이터베이스 서비스들을 식별하고, 상기 복수의 데이터베이스 서비스들 각각에 대해, 상기 복수의 데이터베이스 서비스들 각각에 액세스하는 것이 허용된 하나 이상의 데이터베이스 서비스 소비자들과 관련된 하나 이상의 데이터베이스 서비스 소비자 신원들을 식별하며;
    상기 데이터베이스 서버에서, 상기 복수의 데이터베이스 서버들과 상기 복수의 어플리케이션 서버들을 직접 연결하는 상기 연결-기반 스위칭 패브릭을 통해 전송된 복수의 통신 패킷들을 수신하는 단계와; 그리고
    상기 데이터베이스 서버에서, 상기 복수의 통신 패킷들 각각의 통신 패킷에 대해, 다음의 단계들을 수행하는 단계를 포함하며, 상기 다음의 단계들은:
    상기 통신 패킷이 임의의 데이터베이스 서비스 소비자 신원을 포함하지 않는 경우, 상기 통신 패킷을 폐기하는 단계와,
    만일 상기 통신 패킷이 데이터베이스 서비스 소비자 신원을 포함하는 경우, 상기 통신 패킷을 전송한 상기 서비스 소비자를 식별하기 위해, 상기 통신 패킷에 포함된 데이터베이스 소비자 신원을 사용하는 단계와, 그리고
    상기 액세스 제어 리스트가 상기 데이터베이스 서비스 소비자를 상기 데이터베이스 서비스에 액세스하는 것이 허용된 것으로서 식별하지 않는 한, 상기 복수의 데이터베이스 서비스들 중 하나의 데이터베이스 서비스로의 상기 데이터베이스 소비자에 의한 액세스를 방지하기 위해, 상기 액세스 제어 리스트를 상기 통신 패킷에 포함된 상기 데이터베이스 소비자 신원과 결합하여 사용하는 단계를 포함하는 것을 특징으로 하는 비-일시적인 컴퓨터 판독가능한 매체.
  21. 청구항 1 내지 10 중 임의의 항에 따른 네트워크 보안을 제공하는 방법에 있어서, 상기 멀티-테넌트 환경은 복수의 서로 다른 테넌트들과 관련된 데이터를 보유(hold)하는 복수의 저장 셀들을 더 가지고, 상기 복수의 데이터베이스 서비스들 각각은 상기 복수의 저장 셀들에 보유된 상기 복수의 서로 다른 테넌트들과 관련된 상기 데이터를 활용하고, 상기 데이터베이스 서비스 소비자들은 상기 복수의 서로 다른 테넌트들과 관련되며, 상기 방법은:
    상기 복수의 데이터베이스 서비스 소비자들과 상기 복수의 데이터베이스 서버들에 액세스할 수 있는 데이터베이스 액세스 파티션(database access partition)을 갖도록 상기 연결-기반 스위칭 패브릭을 구성하는 단계와;
    상기 복수의 데이터베이스 서버들과 상기 복수의 저장 셀들에 액세스할 수 있으나 상기 복수의 데이터베이스 서비스 소비자들에 액세스할 수 없는 저장 액세스 파티션을 갖도록 상기 연결-기반 스위칭 패브릭을 구성하는 단계와;
    상기 어플리케이션 서버상에 호스트된 상기 복수의 데이터베이스 서비스 소비자들 각각을 고유한 데이터베이스 서비스 소비자 신원과 관련시키도록 상기 복수의 어플리케이션 서버들 각각의 네트워크 인터페이스를 구성하는 단계와;
    상기 데이터베이스 서비스 소비자로부터 상기 복수의 데이터베이스 서비스들로 전송된 상기 통신 패킷들 각각에서, 상기 어플리케이션 서버상에 호스트된 상기 복수의 데이터베이스 서비스 소비자들 각각과 관련된 상기 데이터베이스 서비스 소비자 신원을 포함하도록 상기 복수의 어플리케이션 서버들 각각의 상기 네트워크 인터페이스를 구성하는 단계와;
    액세스 제어 리스트를 상기 복수의 데이터베이스 서버들 각각에 제공하는 단계와, 상기 액세스 제어 리스트는 상기 복수의 데이터베이스 서비스들을 식별하고, 상기 복수의 데이터베이스 서비스들 각각에 대해, 상기 복수의 데이터베이스 서비스들 각각에 액세스하는 것이 허용된 하나 이상의 데이터베이스 서비스 소비자들과 관련된 하나 이상의 데이터베이스 서비스 소비자 신원들을 식별하며;
    데이터베이스 서비스 소비자 신원을 포함하지 않은 상기 복수의 어플리케이션 서버들로부터 수신된 모든 통신 패킷들을, 상기 복수의 데이터베이스 서버들 각각의 네트워크 인터페이스로, 폐기하는 단계와; 그리고
    상기 액세스 제어 리스트가 특정 데이터베이스 서비스에 액세스하는 것이 허용된 특정 데이터베이스 서비스 소비자를 식별하지 않는 한, 상기 복수의 데이터베이스 서비스들 중 상기 특정 데이터베이스 서비스로의 상기 특정 데이터베이스 소비자 신원과 관련된 상기 특정 데이터베이스 서비스 소비자에 의한 액세스를 방지하기 위해, 상기 복수의 데이터베이스 서버들 중 특정 데이터베이스 서버의 특정 네트워크 인터페이스에서 수신된 특정 통신 패킷에 포함된 상기 특정 데이터베이스 서비스 소비자 신원과 결합하여 상기 액세스 제어 리스트를 사용하는 단계를 포함하는 것을 특징으로 하는 방법.
KR1020177009087A 2014-09-09 2015-09-09 멀티-테넌트 환경에서 보안 네트워크 통신을 위해 통합된 방화벽을 제공하는 시스템 및 방법 KR102318338B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201462048096P 2014-09-09 2014-09-09
US62/048,096 2014-09-09
US14/848,109 2015-09-08
US14/848,111 2015-09-08
US14/848,111 US9723009B2 (en) 2014-09-09 2015-09-08 System and method for providing for secure network communication in a multi-tenant environment
US14/848,109 US9723008B2 (en) 2014-09-09 2015-09-08 System and method for providing an integrated firewall for secure network communication in a multi-tenant environment
PCT/US2015/049193 WO2016040485A1 (en) 2014-09-09 2015-09-09 System and method for providing an integrated firewall for secure network communication in a multi-tenant environment

Publications (2)

Publication Number Publication Date
KR20170051486A true KR20170051486A (ko) 2017-05-11
KR102318338B1 KR102318338B1 (ko) 2021-10-28

Family

ID=55438608

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177009087A KR102318338B1 (ko) 2014-09-09 2015-09-09 멀티-테넌트 환경에서 보안 네트워크 통신을 위해 통합된 방화벽을 제공하는 시스템 및 방법

Country Status (6)

Country Link
US (3) US9723009B2 (ko)
EP (1) EP3192230B1 (ko)
JP (1) JP6581651B2 (ko)
KR (1) KR102318338B1 (ko)
CN (1) CN107079003B (ko)
WO (1) WO2016040485A1 (ko)

Families Citing this family (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10503442B2 (en) * 2015-01-28 2019-12-10 Avago Technologies International Sales Pte. Limited Method and apparatus for registering and storing virtual machine unique information capabilities
US10437770B2 (en) 2015-01-28 2019-10-08 Avago Technologies International Sales Pte. Limited Method and apparatus for providing virtual machine information to a network interface
US20160267187A1 (en) * 2015-03-10 2016-09-15 Thaddeus John Gabara Method and Apparatus for Coupling the Internet, Environment and Intrinsic Memory to Users
US9558029B2 (en) 2015-05-17 2017-01-31 Nicira, Inc. Logical processing for containers
US20170054686A1 (en) * 2015-08-18 2017-02-23 Konstantin Malkov Agentless Security of Virtual Machines using a Filtering Platform
US10701104B2 (en) * 2015-08-18 2020-06-30 Acronis International Gmbh Agentless security of virtual machines using a network interface controller
US10078527B2 (en) 2015-11-01 2018-09-18 Nicira, Inc. Securing a managed forwarding element that operates within a data compute node
US10063469B2 (en) 2015-12-16 2018-08-28 Nicira, Inc. Forwarding element implementation for containers
US10178027B2 (en) 2016-01-27 2019-01-08 Oracle International Corporation System and method for supporting inter subnet partitions in a high performance computing environment
US10348645B2 (en) 2016-01-27 2019-07-09 Oracle International Corporation System and method for supporting flexible framework for extendable SMA attributes in a high performance computing environment
US10972375B2 (en) 2016-01-27 2021-04-06 Oracle International Corporation System and method of reserving a specific queue pair number for proprietary management traffic in a high-performance computing environment
US10560318B2 (en) 2016-01-27 2020-02-11 Oracle International Corporation System and method for correlating fabric-level group membership with subnet-level partition membership in a high-performance computing environment
US11018947B2 (en) 2016-01-27 2021-05-25 Oracle International Corporation System and method for supporting on-demand setup of local host channel adapter port partition membership in a high-performance computing environment
US10616118B2 (en) 2016-01-28 2020-04-07 Oracle International Corporation System and method for supporting aggressive credit waiting in a high performance computing environment
US10355972B2 (en) 2016-01-28 2019-07-16 Oracle International Corporation System and method for supporting flexible P_Key mapping in a high performance computing environment
US10374926B2 (en) 2016-01-28 2019-08-06 Oracle International Corporation System and method for monitoring logical network traffic flows using a ternary content addressable memory in a high performance computing environment
US10536334B2 (en) 2016-01-28 2020-01-14 Oracle International Corporation System and method for supporting subnet number aliasing in a high performance computing environment
US10659340B2 (en) 2016-01-28 2020-05-19 Oracle International Corporation System and method for supporting VM migration between subnets in a high performance computing environment
US10630816B2 (en) 2016-01-28 2020-04-21 Oracle International Corporation System and method for supporting shared multicast local identifiers (MILD) ranges in a high performance computing environment
US10348847B2 (en) 2016-01-28 2019-07-09 Oracle International Corporation System and method for supporting proxy based multicast forwarding in a high performance computing environment
US10333894B2 (en) 2016-01-28 2019-06-25 Oracle International Corporation System and method for supporting flexible forwarding domain boundaries in a high performance computing environment
US10666611B2 (en) 2016-01-28 2020-05-26 Oracle International Corporation System and method for supporting multiple concurrent SL to VL mappings in a high performance computing environment
US10348649B2 (en) 2016-01-28 2019-07-09 Oracle International Corporation System and method for supporting partitioned switch forwarding tables in a high performance computing environment
US10171353B2 (en) 2016-03-04 2019-01-01 Oracle International Corporation System and method for supporting dual-port virtual router in a high performance computing environment
US10178119B1 (en) 2016-03-30 2019-01-08 Amazon Technologies, Inc. Correlating threat information across multiple levels of distributed computing systems
US10148675B1 (en) 2016-03-30 2018-12-04 Amazon Technologies, Inc. Block-level forensics for distributed computing systems
US10142290B1 (en) * 2016-03-30 2018-11-27 Amazon Technologies, Inc. Host-based firewall for distributed computer systems
US10333962B1 (en) 2016-03-30 2019-06-25 Amazon Technologies, Inc. Correlating threat information across sources of distributed computing systems
WO2018022083A1 (en) * 2016-07-29 2018-02-01 Hewlett Packard Enterprise Development Lp Deliver an ingress packet to a queue at a gateway device
US10423437B2 (en) 2016-08-17 2019-09-24 Red Hat Israel, Ltd. Hot-plugging of virtual functions in a virtualized environment
CN108604199B (zh) * 2016-08-23 2022-08-23 甲骨文国际公司 计算环境中支持快速混合重新配置的系统和方法、介质
CN108111461B (zh) * 2016-11-24 2020-11-20 中移(苏州)软件技术有限公司 实现虚拟机访问管理网络的方法、装置、网关及系统
US10261821B2 (en) * 2016-12-02 2019-04-16 Dell Products L.P. System and method to expose remote virtual media partitions to virtual machines
US10673644B2 (en) 2017-03-24 2020-06-02 Oracle International Corporation System and method to provide homogeneous fabric attributes to reduce the need for SA access in a high performance computing environment
US10693815B2 (en) * 2017-03-24 2020-06-23 Oracle International Corporation System and method to use all incoming multicast packets as a basis for GUID to LID cache contents in a high performance computing environment
US10841199B2 (en) 2017-03-24 2020-11-17 Oracle International Corporation System and method for optimized path record handling in homogenous fabrics without host stack cooperation in a high performance computing environment
US10868685B2 (en) 2017-03-24 2020-12-15 Oracle International Corporation System and method to provide explicit multicast local identifier assignment for per-partition default multicast local identifiers defined as subnet manager policy input in a high performance computing environment
US10635561B2 (en) 2017-05-11 2020-04-28 Salesforce.Com, Inc. Techniques and architectures for managing database failure in a single-node database architecture
US10425274B2 (en) * 2017-05-11 2019-09-24 Salesforce.Com, Inc. Techniques and architectures for recovering from a service disruption in a multi-server environment
CN107241313B (zh) * 2017-05-18 2020-07-07 杭州迪普科技股份有限公司 一种防mac泛洪攻击的方法及装置
US10757105B2 (en) * 2017-06-12 2020-08-25 At&T Intellectual Property I, L.P. On-demand network security system
US10984021B2 (en) 2017-06-29 2021-04-20 Sap Se Deployment of independent database artifact groups
US10776330B2 (en) 2017-06-29 2020-09-15 Sap Se Optimized re-deployment of database artifacts
US11093443B2 (en) 2017-06-29 2021-08-17 Sap Se Database-level container group management
US10674438B2 (en) 2017-06-29 2020-06-02 Sap Se Restricting access to external schemas from within a database level container by whitelisting allowed schemas
US10116671B1 (en) * 2017-09-28 2018-10-30 International Business Machines Corporation Distributed denial-of-service attack detection based on shared network flow information
US10657114B2 (en) 2017-11-28 2020-05-19 Sap Se Reserving key specifications
US10812463B2 (en) * 2017-12-08 2020-10-20 International Business Machines Corporation Secure access to an enterprise computing environment
US11044229B2 (en) * 2017-12-22 2021-06-22 International Business Machines Corporation Dynamically opening ports for trusted application processes hosted in containers
CN112398817B (zh) * 2018-01-23 2022-02-25 华为技术有限公司 数据发送的方法及设备
CN109067744B (zh) * 2018-08-08 2021-11-09 新华三技术有限公司合肥分公司 Acl规则处理方法、装置及通信设备
US10833949B2 (en) 2018-11-20 2020-11-10 Amazon Technologies, Inc Extension resource groups of provider network services
CN109542590B (zh) * 2018-11-28 2022-12-20 上海酷栈科技有限公司 Docker集群多租户下虚拟Socket通信的方法
CN109491249B (zh) * 2018-11-30 2022-01-18 沈阳航空航天大学 一种存在DoS攻击时确定一致性事件触发控制器的方法
US11064017B2 (en) 2019-09-24 2021-07-13 Amazon Technologies, Inc. Peripheral device enabling virtualized computing service extensions
US11520530B2 (en) * 2019-09-24 2022-12-06 Amazon Technologies, Inc. Peripheral device for configuring compute instances at client-selected servers
CN112565158B (zh) 2019-09-25 2022-10-04 阿里巴巴集团控股有限公司 数据访问方法、装置、系统、电子设备及计算机可读介质
US11256655B2 (en) 2019-11-19 2022-02-22 Oracle International Corporation System and method for providing bandwidth congestion control in a private fabric in a high performance computing environment
CN111163130B (zh) * 2019-12-06 2022-08-23 深圳智链物联科技有限公司 一种网络服务系统及其数据传输方法
US11569997B1 (en) 2020-03-09 2023-01-31 Amazon Technologies, Inc. Security mechanisms for data plane extensions of provider network services
US11973770B1 (en) * 2020-12-09 2024-04-30 Wiz, Inc. Techniques for multi-tenant vulnerability scanning
CN113377784B (zh) * 2021-08-13 2021-12-03 成都市维思凡科技有限公司 一种基于中间件的数据处理方法、系统和存储介质
US20230297685A1 (en) * 2022-03-15 2023-09-21 Vmware, Inc. Remediation method to trace and clean up malicious files in a distributed malware detection system
KR102491184B1 (ko) 2022-03-31 2023-01-26 주식회사 오픈텔 전용 브라우저를 통한 네트워크 보안시스템
US11929986B1 (en) * 2022-10-31 2024-03-12 Snowflake Inc. Two-way data sharing between private and public clouds

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100037309A1 (en) * 2008-08-07 2010-02-11 Anthony Dargis Method and apparatus for providing security in an intranet network
US20120284786A1 (en) * 2011-05-05 2012-11-08 Visto Corporation System and method for providing access credentials
US20130347095A1 (en) * 2012-06-25 2013-12-26 International Business Machines Corporation Isolation and security hardening among workloads in a multi-tenant networked environment

Family Cites Families (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4304001A (en) 1980-01-24 1981-12-01 Forney Engineering Company Industrial control system with interconnected remotely located computer control units
US6914905B1 (en) 2000-06-16 2005-07-05 Extreme Networks, Inc. Method and system for VLAN aggregation
JP2003281277A (ja) * 2002-03-19 2003-10-03 Kazuteru Ono 医療データベースプロバイド方法、およびシステム
US7447778B2 (en) 2002-05-06 2008-11-04 Qlogic, Corporation System and method for a shared I/O subsystem
US7493409B2 (en) 2003-04-10 2009-02-17 International Business Machines Corporation Apparatus, system and method for implementing a generalized queue pair in a system area network
US7516487B1 (en) * 2003-05-21 2009-04-07 Foundry Networks, Inc. System and method for source IP anti-spoofing security
CN1553380A (zh) * 2003-05-27 2004-12-08 鸿富锦精密工业(深圳)有限公司 数据库使用权限控制系统及方法
US8776050B2 (en) 2003-08-20 2014-07-08 Oracle International Corporation Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes
US7934020B1 (en) 2003-09-19 2011-04-26 Vmware, Inc. Managing network data transfers in a virtual computer system
US8335909B2 (en) 2004-04-15 2012-12-18 Raytheon Company Coupling processors to each other for high performance computing (HPC)
US7398394B1 (en) * 2004-06-02 2008-07-08 Bjorn Dag Johnsen Method and apparatus for authenticating nodes in a communications network
US7443860B2 (en) * 2004-06-08 2008-10-28 Sun Microsystems, Inc. Method and apparatus for source authentication in a communications network
US7437447B2 (en) 2004-11-12 2008-10-14 International Business Machines Corporation Method and system for authenticating a requestor without providing a key
US7509419B2 (en) 2005-01-13 2009-03-24 International Business Machines Corporation Method for providing remote access redirect capability in a channel adapter of a system area network
US8520512B2 (en) * 2005-01-26 2013-08-27 Mcafee, Inc. Network appliance for customizable quarantining of a node on a network
US8422678B2 (en) 2005-11-16 2013-04-16 Intel Corporation Method, apparatus and system for protecting security keys on a wireless platform
US7940757B2 (en) 2006-02-23 2011-05-10 Cisco Technology, Inc. Systems and methods for access port ICMP analysis
US7996583B2 (en) 2006-08-31 2011-08-09 Cisco Technology, Inc. Multiple context single logic virtual host channel adapter supporting multiple transport protocols
US20080189432A1 (en) 2007-02-02 2008-08-07 International Business Machines Corporation Method and system for vm migration in an infiniband network
US7913077B2 (en) 2007-02-13 2011-03-22 International Business Machines Corporation Preventing IP spoofing and facilitating parsing of private data areas in system area network connection requests
JP4747118B2 (ja) 2007-03-05 2011-08-17 富士通株式会社 ルータ、通信保証方法および通信保証プログラム
US8392981B2 (en) 2007-05-09 2013-03-05 Microsoft Corporation Software firewall control
US9660829B2 (en) 2007-06-04 2017-05-23 Avaya Inc. Secure VLANs
US7836332B2 (en) 2007-07-18 2010-11-16 Hitachi, Ltd. Method and apparatus for managing virtual ports on storage systems
US7895463B2 (en) * 2007-08-28 2011-02-22 Cisco Technology, Inc. Redundant application network appliances using a low latency lossless interconnect link
US20090077268A1 (en) * 2007-09-14 2009-03-19 International Business Machines Corporation Low Latency Multicast for Infiniband Host Channel Adapters
US8798056B2 (en) 2007-09-24 2014-08-05 Intel Corporation Method and system for virtual port communications
US7975033B2 (en) * 2007-10-23 2011-07-05 Virtudatacenter Holdings, L.L.C. System and method for initializing and maintaining a series of virtual local area networks contained in a clustered computer system
US8331381B2 (en) * 2007-12-04 2012-12-11 International Business Machines Corporation Providing visibility of Ethernet components to a subnet manager in a converged InfiniBand over Ethernet network
US7983265B1 (en) * 2008-01-17 2011-07-19 Qlogic, Corporation Method and system for processing a network packet
CN101499061A (zh) * 2008-01-30 2009-08-05 国际商业机器公司 面向多租户的数据库引擎及其数据访问方法
US7962564B2 (en) 2008-02-25 2011-06-14 International Business Machines Corporation Discovery of a virtual topology in a multi-tasking multi-processor environment
US20090222640A1 (en) 2008-02-28 2009-09-03 Bauman Ellen M Memory Migration in a Logically Partitioned Computer System
JP5272265B2 (ja) 2008-09-29 2013-08-28 株式会社日立製作所 Pciデバイス共有方法
US8429650B2 (en) * 2008-11-14 2013-04-23 Oracle International Corporation System and method of security management for a virtual environment
US7970913B2 (en) 2008-12-31 2011-06-28 International Business Machines Corporation Virtualizing sockets to enable the migration of a system environment
EP2401683A4 (en) 2009-02-27 2015-07-29 Broadcom Corp METHOD AND SYSTEM FOR NETWORKING VIRTUAL MACHINES
US8429647B2 (en) 2009-05-06 2013-04-23 Vmware, Inc. Virtual machine migration across network by publishing routes to the associated virtual networks via virtual router after the start of migration of the virtual machine
US8064443B2 (en) 2009-05-11 2011-11-22 Juniper Networks, Inc. Scalable routing policy construction using dynamic redefinition of routing preference value
US8150971B2 (en) 2009-05-31 2012-04-03 Red Hat Israel, Ltd. Mechanism for migration of client-side virtual machine system resources
US8370560B2 (en) 2009-11-16 2013-02-05 International Business Machines Corporation Symmetric live migration of virtual machines
US8327060B2 (en) 2009-11-30 2012-12-04 Red Hat Israel, Ltd. Mechanism for live migration of virtual machines with memory optimizations
US8589921B2 (en) 2009-11-30 2013-11-19 Red Hat Israel, Ltd. Method and system for target host optimization based on resource sharing in a load balancing host and virtual machine adjustable selection algorithm
JP5190084B2 (ja) 2010-03-30 2013-04-24 株式会社日立製作所 仮想マシンのマイグレーション方法およびシステム
US9244700B2 (en) 2010-05-09 2016-01-26 Citrix Systems, Inc. Methods and systems for delivering applications from a desktop operating system
US8407366B2 (en) 2010-05-14 2013-03-26 Microsoft Corporation Interconnecting members of a virtual network
US8989187B2 (en) 2010-06-04 2015-03-24 Coraid, Inc. Method and system of scaling a cloud computing network
US9148373B2 (en) 2010-07-30 2015-09-29 Intellectual Discovery Co., Ltd. Network system
US8489699B2 (en) 2010-08-13 2013-07-16 Vmware, Inc. Live migration of virtual machine during direct access to storage over SR IOV adapter
US20120173757A1 (en) 2011-01-05 2012-07-05 International Business Machines Corporation Routing optimization for virtual machine migration between geographically remote data centers
CN103339988B (zh) 2011-01-31 2017-05-31 英迪股份有限公司 网络系统
US9552215B2 (en) 2011-03-08 2017-01-24 Rackspace Us, Inc. Method and system for transferring a virtual machine
JP5395833B2 (ja) * 2011-03-14 2014-01-22 株式会社東芝 仮想ネットワークシステム及び仮想通信制御方法
US20120265956A1 (en) 2011-04-18 2012-10-18 Hitachi, Ltd. Storage subsystem, data migration method and computer system
US9218195B2 (en) 2011-05-17 2015-12-22 International Business Machines Corporation Vendor-independent resource configuration interface for self-virtualizing input/output device
US9935848B2 (en) * 2011-06-03 2018-04-03 Oracle International Corporation System and method for supporting subnet manager (SM) level robust handling of unkown management key in an infiniband (IB) network
JP5965478B2 (ja) * 2011-06-03 2016-08-03 オラクル・インターナショナル・コーポレイション ネットワークにおけるコンポーネントを認証するためのシステムおよび方法
US9304798B2 (en) * 2011-06-07 2016-04-05 Hewlett Packard Enterprise Development Lp Scalable multi-tenant network architecture for virtualized datacenters
US9332005B2 (en) * 2011-07-11 2016-05-03 Oracle International Corporation System and method for providing switch based subnet management packet (SMP) traffic protection in a middleware machine environment
US8516241B2 (en) * 2011-07-12 2013-08-20 Cisco Technology, Inc. Zone-based firewall policy model for a virtualized data center
JP5643990B2 (ja) 2011-07-29 2014-12-24 株式会社日立製作所 ネットワーク装置及びネットワークシステム
US8656389B2 (en) 2011-08-22 2014-02-18 Vmware, Inc. Virtual port command processing during migration of virtual machine
CN103765833B (zh) * 2011-08-23 2017-07-04 英特尔公司 用于无限带宽织状结构中的启用gid的交换的方法及装置
US8584215B2 (en) * 2012-02-07 2013-11-12 Cisco Technology, Inc. System and method for securing distributed exporting models in a network environment
US9742693B2 (en) 2012-02-27 2017-08-22 Brocade Communications Systems, Inc. Dynamic service insertion in a fabric switch
US9047107B2 (en) * 2012-02-29 2015-06-02 Red Hat, Inc. Applying a custom security type label to multi-tenant applications of a node in a platform-as-a-service environment
US8850514B2 (en) * 2012-05-01 2014-09-30 Red Hat, Inc. Cartridges in a multi-tenant platforms-as-a-service (PaaS) system implemented in a cloud computing environment
US9871734B2 (en) 2012-05-28 2018-01-16 Mellanox Technologies, Ltd. Prioritized handling of incoming packets by a network interface controller
US9401963B2 (en) * 2012-06-04 2016-07-26 Oracle International Corporation System and method for supporting reliable connection (RC) based subnet administrator (SA) access in an engineered system for middleware and application execution
US8893258B2 (en) * 2012-06-11 2014-11-18 Cisco Technology, Inc. System and method for identity based authentication in a distributed virtual switch network environment
CN104272281A (zh) 2012-06-25 2015-01-07 株式会社日立制作所 计算机系统和应用程序运行环境转移方法
US9063928B2 (en) 2012-07-12 2015-06-23 International Business Machines Corporation Processing data packets from a receive queue in a remote direct memory access device
US9104645B2 (en) 2012-07-27 2015-08-11 Dell Products, Lp System and method of replicating virtual machines for live migration between data centers
US9602430B2 (en) 2012-08-21 2017-03-21 Brocade Communications Systems, Inc. Global VLANs for fabric switches
US8769274B2 (en) * 2012-09-05 2014-07-01 International Business Machines Corporation Backup and restore in a secure appliance with integrity and confidentiality
US9385949B2 (en) 2012-12-20 2016-07-05 Mellanox Technologies Tlv Ltd. Routing controlled by subnet managers
US20140188996A1 (en) 2012-12-31 2014-07-03 Advanced Micro Devices, Inc. Raw fabric interface for server system with virtualized interfaces
US9306906B2 (en) * 2013-03-25 2016-04-05 Salesforce.Com, Inc. Systems and methods for utilizing uni-directional inter-host communication in an air gap environment
WO2014169251A1 (en) 2013-04-12 2014-10-16 Huawei Technologies Co., Ltd. Service chain policy for distributed gateways in virtual overlay networks
US9426155B2 (en) * 2013-04-18 2016-08-23 International Business Machines Corporation Extending infrastructure security to services in a cloud computing environment
US20140344436A1 (en) * 2013-05-08 2014-11-20 Connectloud, Inc. Method and Apparatus to Securely Process Streams of Data of Storage Devices of Private Enterprise Clouds in Batch from the Public Cloud
US20140351423A1 (en) * 2013-05-24 2014-11-27 Connectloud, Inc. Method and Apparatus for Dynamic Correlation of Large Cloud Firewall Fault Event Stream
US20140351920A1 (en) * 2013-05-24 2014-11-27 Connectloud, Inc. Method and Apparatus for Dynamic Tunneling
US20140351922A1 (en) * 2013-05-26 2014-11-27 Connectloud, Inc. Method and Apparatus for Remotely Manageable, Declaratively Configurable Data Stream Aggregator with Guaranteed Delivery for Private Cloud Compute Infrastructure
US20140351921A1 (en) * 2013-05-26 2014-11-27 Connectloud, Inc. Method and Apparatus for Remotely Manageable, Declaratively Configurable Data Stream Aggregator with Guaranteed Delivery for Private Cloud Compute Infrastructure
US20140351923A1 (en) * 2013-05-26 2014-11-27 Connectloud, Inc. Method and Apparatus for Remotely Manageable, Declaratively Configurable Data Stream Aggregator with Guaranteed Delivery for Private Cloud Compute Infrastructure
US20150026332A1 (en) * 2013-05-26 2015-01-22 Connectloud, Inc. Method and Apparatus to Securely Process Streams of Data of Network / Storage / Compute Devices of Private Enterprise Clouds in Real-time from the Public Cloud
US9300690B2 (en) * 2013-07-03 2016-03-29 Red Hat, Inc. Secure network labeling to control inter-process communications in a multi-tenant platform-as-a-service (PaaS) system
US20150067809A1 (en) * 2013-08-27 2015-03-05 Connectloud, Inc. User identity authentication and single sign on for multitenant environment
US20150067789A1 (en) * 2013-08-27 2015-03-05 Connectloud, Inc. Method and apparatus to provide a network software defined cloud with capacity to prevent tenant access to network control plane through software defined networks
US9973425B2 (en) * 2013-08-27 2018-05-15 Oracle International Corporation System and method for providing a data service in an engineered system for middleware and application execution
US20150066759A1 (en) * 2013-08-27 2015-03-05 Connectloud, Inc. METHOD AND APPARATUS FOR GAUGING NETWORK TRAFFIC FLOW FOR SOFTWARE DEFINED NETWORKS WITHIN A SOFTWARE DEFINED CLOUDd
US9397946B1 (en) * 2013-11-05 2016-07-19 Cisco Technology, Inc. Forwarding to clusters of service nodes
US9942265B2 (en) * 2014-01-06 2018-04-10 International Business Machines Corporation Preventing application-level denial-of-service in a multi-tenant system
CN103761299A (zh) * 2014-01-16 2014-04-30 西北工业大学 一种跨智能空间的情境查询方法
US20150363219A1 (en) * 2014-03-14 2015-12-17 Avni Networks Inc. Optimization to create a highly scalable virtual netork service/application using commodity hardware
US9553850B2 (en) * 2014-06-30 2017-01-24 International Business Machines Corporation Multi-tenant secure separation of data in a cloud-based application
US9756135B2 (en) * 2014-07-31 2017-09-05 Ca, Inc. Accessing network services from external networks

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100037309A1 (en) * 2008-08-07 2010-02-11 Anthony Dargis Method and apparatus for providing security in an intranet network
US20120284786A1 (en) * 2011-05-05 2012-11-08 Visto Corporation System and method for providing access credentials
US20130347095A1 (en) * 2012-06-25 2013-12-26 International Business Machines Corporation Isolation and security hardening among workloads in a multi-tenant networked environment

Also Published As

Publication number Publication date
US9888010B2 (en) 2018-02-06
US20160072817A1 (en) 2016-03-10
EP3192230B1 (en) 2018-11-07
CN107079003A (zh) 2017-08-18
WO2016040485A1 (en) 2016-03-17
US20170302673A1 (en) 2017-10-19
KR102318338B1 (ko) 2021-10-28
US9723009B2 (en) 2017-08-01
US20160072816A1 (en) 2016-03-10
EP3192230A1 (en) 2017-07-19
JP6581651B2 (ja) 2019-09-25
US9723008B2 (en) 2017-08-01
CN107079003B (zh) 2020-07-28
JP2017528832A (ja) 2017-09-28

Similar Documents

Publication Publication Date Title
KR102318338B1 (ko) 멀티-테넌트 환경에서 보안 네트워크 통신을 위해 통합된 방화벽을 제공하는 시스템 및 방법
US10333897B2 (en) Distributed firewalls and virtual network services using network packets with security tags
JP6487979B2 (ja) オフロードデバイスベースのパケット処理のためのフレームワークおよびインターフェース
CN109565500B (zh) 按需安全性架构
US9843512B2 (en) System and method for controlling a data flow in an engineered system for middleware and application execution
US10135687B2 (en) Virtual group policy based filtering within an overlay network
US9930018B2 (en) System and method for providing source ID spoof protection in an infiniband (IB) network
US7913077B2 (en) Preventing IP spoofing and facilitating parsing of private data areas in system area network connection requests
US9559990B2 (en) System and method for supporting host channel adapter (HCA) filtering in an engineered system for middleware and application execution
CN113596033B (zh) 访问控制方法及装置、设备、存储介质
US11956221B2 (en) Encrypted data packet forwarding
US7551559B1 (en) System and method for performing security actions for inter-layer binding protocol traffic
US11444883B2 (en) Signature based management of packets in a software defined networking environment
US11711292B2 (en) Pre-filtering of traffic subject to service insertion
US20220021649A1 (en) Policy based mechanism to efficiently interpret and block insecure network communication
Michel et al. Policy Routing using Process-Level Identifiers

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant