KR102387312B1 - 클라우드 컴퓨팅 노드들의 보안 구성 - Google Patents

클라우드 컴퓨팅 노드들의 보안 구성 Download PDF

Info

Publication number
KR102387312B1
KR102387312B1 KR1020217033405A KR20217033405A KR102387312B1 KR 102387312 B1 KR102387312 B1 KR 102387312B1 KR 1020217033405 A KR1020217033405 A KR 1020217033405A KR 20217033405 A KR20217033405 A KR 20217033405A KR 102387312 B1 KR102387312 B1 KR 102387312B1
Authority
KR
South Korea
Prior art keywords
configuration
node
request
configuration command
command
Prior art date
Application number
KR1020217033405A
Other languages
English (en)
Other versions
KR20210129256A (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 구글 엘엘씨
Priority to KR1020227012133A priority Critical patent/KR102500737B1/ko
Publication of KR20210129256A publication Critical patent/KR20210129256A/ko
Application granted granted Critical
Publication of KR102387312B1 publication Critical patent/KR102387312B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0894Policy-based network configuration management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/303Terminal profiles

Abstract

클라우드 컴퓨팅 네트워크에서 노드들을 구성하기 위한 방법들 및 시스템들이 설명된다. 한 예시적인 방법은, 네트워크를 통해 클라우드 컴퓨팅 네트워크 내의 특정 노드로부터 구성 요청을 수신하는 단계 ― 구성 요청은 특정 노드에 대한 노드 정보를 포함함 ―; 노드 정보에 적어도 부분적으로 기초하여, 특정 노드가 구성에 대한 권한이 있는지를 검증하는 단계; 특정 노드가 구성에 대한 권한이 있는지를 검증하는 것에 대한 응답으로, 노드 정보에 적어도 부분적으로 기초하여, 특정 노드에서 수행할 구성 액션들을 식별하는 액션; 및 식별된 구성 액션들 중 하나 그보다 많은 구성 액션들에 대응하는 구성 커맨드를 네트워크를 통해 특정 노드에 전송하는 단계를 포함하며, 특정 노드는 수신시 구성 커맨드를 실행하여 대응하는 구성 액션들을 수행한다.

Description

클라우드 컴퓨팅 노드들의 보안 구성{SECURE CONFIGURATION OF CLOUD COMPUTING NODES}
[0001] 본 명세서는 일반적으로 클라우드 컴퓨팅 시스템에서 노드들을 안전하게 구성하는 것에 관한 것이다.
[0002] 클라우드 컴퓨팅 네트워크에서는, 다수의 컴퓨팅 디바이스들이 네트워크에 의해 접속되어 협력적으로 그리고/또는 병렬로 컴퓨팅 작업들을 수행할 수 있다. 대규모 분산 시스템들은 수백 또는 심지어 수천 개의 개별 컴퓨팅 디바이스들을 포함할 수 있다. 컴퓨팅 디바이스들은 (동일한 구성을 공유하는) 동종 또는 (다양한 구성들을 갖는) 이종일 수 있다. 컴퓨팅 디바이스들은 다수의 컴퓨팅 노드들(예컨대, 가상 머신 인스턴스들, 컨테이너 인스턴스들)이 단일 물리적 컴퓨팅 디바이스 상에서 호스팅될 수 있게 하는 가상 환경들을 추가로 호스팅할 수 있다.
[0003] 일반적으로, 본 명세서에서 설명되는 청구 대상의 한 양상은 시스템들, 및 데이터 처리 장치들에 의해 수행되는 방법들로 구현될 수 있으며, 이 방법들은, 네트워크를 통해 클라우드 컴퓨팅 네트워크 내의 특정 노드로부터 구성 요청을 수신하는 액션 ― 구성 요청은 특정 노드에 대한 노드 정보를 포함함 ―; 노드 정보에 적어도 부분적으로 기초하여, 특정 노드가 구성에 대한 권한이 있는지를 검증하는 액션; 특정 노드가 구성에 대한 권한이 있는지를 검증하는 것에 대한 응답으로, 노드 정보에 적어도 부분적으로 기초하여, 특정 노드에서 수행할 구성 액션들을 식별하는 액션; 및 식별된 구성 액션들 중 하나 이상의 구성 액션들에 대응하는 구성 커맨드를 네트워크를 통해 특정 노드에 전송하는 액션을 포함하며, 특정 노드는 수신시 구성 커맨드를 실행하여 대응하는 구성 액션들을 수행한다.
[0004] 일반적으로, 본 명세서에서 설명되는 청구 대상의 하나의 혁신적인 양상은 구성 제어기에 의해 소프트웨어 배치를 제어하는 단계를 포함하는 방법들로 구현될 수 있으며, 소프트웨어는 클라우드 컴퓨팅 환경 내의 노드에 대해 구성 관리자들의 그룹 중 구성 관리자에 의해 배치된다. 이러한 하나의 방법은, 노드를 구성하도록 노드에 의해 구성 제어기에 요청하는 단계; 노드를 구성하는 데 사용될 구성 관리자를 구성 제어기에 의해 결정하는 단계; 구성 제어기에 의해 노드와 구성 관리자 사이의 신뢰 관계를 확립하는 단계; 및 확립된 신뢰 관계를 기초로 구성 관리자를 사용하여 노드 상에 소프트웨어를 배치하는 단계를 포함한다.
[0005] 다른 양상에서, 구성 관리자는 구성 관리자들의 그룹으로부터의 관리자에 의해 미리 결정될 수 있다.
[0006] 일부 양상들에서, 신뢰 관계는 구성 관리자의 서버와 클라이언트 사이에 확립될 수 있으며, 상기 서버에 의해 제공되는 소프트웨어의 상기 클라이언트 상에서 배치가 발생하고, 상기 클라이언트는 노드 상에서 실행 중이다.
[0007] 일부 양상들에서, 구성 제어기는 노드에 관한 정보, 노드 상의 소프트웨어 배치의 상태, 및/또는 구성의 수신시, 성공적인 노드 구성시 또는 실패의 발생시 취해질 하나 이상의 액션들을 유지한다.
[0008] 다른 양상에서, 노드 상에 배치될 소프트웨어는 구성 제어기에 의해 결정되는 구성에 의해 지정된다.
[0009] 다른 양상에서, 구성은 관리자에 의해 구성 제어기에 제공된다.
[0010] 일부 양상들에서, 클라우드 컴퓨팅 환경 및/또는 구성 관리자에 액세스하기 위한 키들은 구성 제어기에 의해 저장되고 비밀로 유지되며, 구성 제어기는 상기 키들을 사용하여 신뢰 관계를 확립한다.
[0011] 다른 양상에서, 클라우드 컴퓨팅 환경 및/또는 구성 관리자에 액세스하기 위한 키들은 구성 관리자에게 알려진 엔티티에 의해 생성되어 저장되며, 엔티티는 클라우드 컴퓨팅 환경, 구성 관리자 또는 제3 신뢰 기관(trusted third party)일 수 있고, 구성 제어기는 상기 지식을 사용하여 신뢰 관계를 확립한다. 어떤 경우들에, 키들은 암호화 키들이다.
[0012] 일부 양상들에서, 제1 기관과 제2 기관 사이의 신뢰 관계를 확립하는 것은, 제1 기관에게 제2 기관에 대한 액세스 권한을 부여하는 데 사용 가능한 크리덴셜을 제공하거나, 또는 각각의 기관에게 다른 기관에 대한 액세스 권한을 부여하는 데 사용 가능한 크리덴셜들을 제공하는 것을 의미한다.
[0013] 본 명세서에서 설명되는 일부 구현들에서, 특정 노드가 구성에 대한 권한이 있는지를 검증하는/노드와 구성 관리자 사이의 신뢰 관계를 확립하는 프로세스는 시스템의 전체적인 보안을 높이고 보안 구성을 가능하게 하도록 간접 계층을 제공한다. 어떤 경우들에는, 개별 노드가 어떻게 구성되는지를 제어하는 그러한 개별 노드의 능력을 프로세스가 제거하여, 민감 정보를 포함할 수 있는 구성 리소스들을 권한이 없거나, 검증되지 않았거나 또는 손상된 노드가 애드 혹 방식으로 요청하는 것을 방지한다. 이는 권한이 없거나, 검증되지 않았거나 또는 손상된 노드들이 민감한 구성 정보에 액세스할 수 있는 위험을 줄일 수 있다.
[0014] 프로세스는 또한, 서로 다른 기존의 구성 관리자들과 통합함으로써 유연성을 제공할 수 있는데, 이로써 특정 노드를 구성하기 위해 어떤 구성 관리자가 사용될지를 관리자가 선택하는 것을 가능하게 할 수 있다. 서로 다른 구성 관리자들 및 구성 도구들과 통합하는 것은 또한, 다수의 구성 관리자들 및 구성 도구들을 이용하는 이종 클라우드 컴퓨팅 네트워크들에서 프로세스가 구현될 수 있게 할 수 있다. 이 프로세스는 또한, 통신을 위해 공통 클라이언트-서버 프로토콜들을 사용하여 구현될 수 있는데, 이로써 기존 네트워크들 및 시스템들의 최소한의 재구성을 가능하게 할 수 있다.
[0015] 본 명세서에서 설명되는 청구 대상의 하나 이상의 구현들의 세부사항들은 아래 첨부 도면들 및 설명에서 제시된다. 청구 대상의 다른 특징들, 양상들 및 잠재적 이점들은 설명, 도면들 및 청구항들로부터 자명해질 것이다.
[0016] 도 1은 클라우드 컴퓨팅 시스템에서 리소스들을 안전하게 구성하기 위한 예시적인 환경의 도면이다.
[0017] 도 2는 클라우드 컴퓨팅 시스템에서 리소스들을 안전하게 구성하기 위한 예시적인 프로세스의 구획면도(swim lane diagram)이다.
[0018] 도 3은 클라우드 컴퓨팅 시스템에서 리소스들을 안전하게 구성하기 위한 예시적인 프로세스의 구획면도이다.
[0019] 도 4는 도 1의 환경에서 사용되는 예시적인 구성 제어기의 도면이다.
[0020] 도 5는 클라우드 컴퓨팅 시스템에서 리소스들을 안전하게 구성하기 위한 예시적인 프로세스의 흐름도이다.
[0021] 도 6은 본 문헌에서 설명되는 시스템들 및 방법들을 구현하는 데 사용될 수 있는 컴퓨팅 디바이스들의 도면이다.
[0022] 다양한 도면들에서 유사한 참조 번호들 및 지정들은 유사한 엘리먼트들을 표시한다.
[0023] CHEF™, PUPPET, SALT 및 ANSIBLE과 같은 구성 관리자들은 네트워크를 통해 컴퓨팅 디바이스들에 소프트웨어를 배치하기 위한 소프트웨어 프로그램들이다. 이러한 구성 관리자들은 내부 네트워크들을 통해 소프트웨어를 배포하기 위해 구내(on-premises) 환경들에서 흔히 사용된다. 이러한 구성 관리자들은 많은 유용한 특징들을 제공하므로, 더 큰 규모의 클라우드 컴퓨팅 시스템들에서 이들을 사용하려는 노력들이 이루어져 왔다. 그러나 이러한 구성 관리자들은 주로 내부 네트워크 사용을 위해 설계되기 때문에, 강력한 보안, 다른 프레임워크들과의 상호 운용성 및 탄력적 배치 능력들과 같이 클라우드 컴퓨팅 시스템에 바람직한 많은 특징들이 지금까지 그러한 노력들을 방해해왔다.
[0024] 본 개시내용은 클라우드 컴퓨팅 시스템에서 안전하게 노드들을 구성하기 위한 방법들 및 시스템들을 설명한다. 설명된 솔루션은 기존 구성 관리자들을 리소스들로서 사용하여 구성 프로세스 중에 노드들에 구성 항목들을 제공한다. 이 솔루션은 서로 다른 애플리케이션 프로그래밍 인터페이스(API: application programming interface)들을 가진 다수의 서로 다른 타입들의 구성 관리자들을 지원할 수 있으며, 이들을 단일 클라우드 컴퓨팅 시스템에서 함께 사용될 수 있게 할 수 있다. 또한, 이 솔루션은 이를테면, 리소스들에 대해 증가되는 요구 또는 네트워크 조건들의 변경에 대한 응답으로 리소스들의 탄력적인 배치에 대한 지원을 제공한다. 추가로, 잠재적으로 민감한 구성 리소스들에 대한 액세스 크리덴셜들의 할당, 배포 및 관리와 같은 보안 조치들은 클라우드 컴퓨팅 시스템의 구성 리소스들 또는 노드들보다는 설명된 시스템에 의해 전체적으로 관리된다.
[0025] 설명되는 솔루션은 구성에 따라 구성 관리자와 노드들 사이에 간접 계층을 추가한다. 예를 들어, 노드가 구성 리소스에 의해 구성되는 경우, 구성될 노드와 구성 리소스 간에 신뢰 관계가 확립될 수 있다. 일반적으로, 구성 리소스 또는 노드는 (예컨대, 권한이 없거나 또는 검증되지 않은 노드들이 민감 정보를 포함할 수 있는 요청 구성 리소스들에 액세스하는 것이 방지되는) 보안 구성 프로세스를 보장하기 위한 신뢰 컴퓨팅 기반의 일부이다. 본 명세서에서 설명되는 솔루션에서, 신뢰 컴퓨팅 기반에 포함된 구성 제어기는 노드들과 구성 리소스들 사이의 신뢰 관계들을 중개할 수 있어, 노드와 구성 리소스가 그들 자신이 신뢰 컴퓨팅 기반의 일부가 되지 않고 상호 신뢰를 확립할 수 있다. 구성 제어기는 예를 들어, 구성 리소스 상에 노드에 대한 액세스 크리덴셜들을 구성하고 리소스에 액세스하는 데 사용할 노드에 크리덴셜들을 제공함으로써 이 신뢰 관계를 확립할 수 있다. 구성 제어기에 의해 제공된 이 간접 계층을 기반으로, 노드 또는 구성 리소스가 신뢰 컴퓨팅 기반의 일부가 아니어도 노드의 보안 구성이 달성될 수 있다. 신뢰 컴퓨팅 기반은 예를 들어, 잠재적으로 민감한 액세스 크리덴셜들을 관리하고 안전하게 하는 컴포넌트들 시스템 내에 포함할 수 있다.
[0026] 관리자는 어떤 구성 관리자로부터의 어떤 구성이 특정 노드들에 적용되어야 하는지를 정의하는 한 세트의 구성 정책들로 시스템을 구성할 수 있다. 구성 정책들은 한 세트의 규칙들로서 지정될 수 있다. 각각의 규칙은 노드의 특성들(예컨대, 이름, 생성 날짜, 소유자 등)을 한 세트의 구성 데이터와 일치시킨다. 각각의 규칙은 또한 성공적인 또는 성공적이지 않은 노드 구성에 대해 시스템이 취할 구성 액션들을 지정할 수 있다. 구성을 얻기 위해, 노드는 시스템에 (예컨대, 네트워크를 통해) 요청을 전송한다. 시스템이 머신을 구성하라는 요청을 수신하면, 시스템은 구성 정책들 내에서 노드의 특성들과 일치하는 하나 이상의 규칙들을 찾아 수행할 구성 액션들을 결정한다.
[0027] 본 솔루션은 리소스들에 대한 요구에 대한 응답으로 자동 노드 구성을 통해 탄력성을 제공하도록 기존의 구성 관리자들과 통합될 수 있다. 기존 구성 관리자들은 일반적으로, 관리자가 대화식으로 구성 관리자를 사용하여 새로운 노드들을 프로비저닝하는 대화식 환경에서 작동한다. 이 대화식 시나리오는 시스템의 현재 상태에 대한 응답으로 고객들이 노드들을 프로비저닝하길 원하는 탄력적인 시나리오들에는 유용하지 않을 수 있다. 이 솔루션은 필요에 따라 노드들을 프로비저닝하는 관리자 능력을 보강하고 구성 관리자들을 탄력적인 시나리오들에 적용할 수 있게 한다. 기존 솔루션들과의 이러한 통합 능력은 또한 본 시스템이 다양한 서로 다른 기존 클라우드 구성들에 보다 쉽게 배치되게 하는데, 기존 클라우드 구성들 각각은 본 시스템이 통합할 수 있는 하나 이상의 구성 관리자들을 사용할 수 있다.
[0028] 보안에 관해, 일부 클라우드 구성 관리자들은, 노드가 네트워크 리소스(들)에 액세스하여 구성에 필요한 항목들(예컨대, 소프트웨어 라이브러리들, 소스 코드 등)을 얻을 수 있도록, 구성에 따라 노드에 액세스 크리덴셜들(예컨대, 암호화 키들, 로그인 크리덴셜들 등)을 제공할 수 있다. 이러한 구성은 공격자가 이러한 액세스 크리덴셜들을 얻기 위해 임의의 수의 노드들을 침범할 수 있으므로 보안 위험을 초래할 수 있다. 본 개시내용은 액세스 크리덴셜들이 구성 시스템에 의해 관리될 수 있고 구성되고 있는 노드들에 의해 관리되거나 유지될 필요가 없는 시스템을 기술한다. 이 양상은 시스템의 전반적인 보안을 높이고 보안 구성을 가능하게 한다. 또한, 본 시스템은 개별 노드가 어떻게 구성되는지를 제어하는 그러한 개별 노드의 능력을 제거하여, 민감 정보를 포함할 수 있는 구성 리소스들을 손상된 노드가 애드 혹 방식으로 요청하는 것을 방지한다. 이는 권한이 없거나, 검증되지 않았거나 또는 손상된 노드들이 민감한 구성 정보에 액세스할 수 있는 위험을 줄인다.
[0029] 본 솔루션은 또한, 구성을 요청하는 특정 노드가 실제로 그렇게 구성될 권한이 있는지를 검증함으로써 높아진 보안을 제공할 수 있다. 시스템은 특정 노드로부터 수신된 구성 요청을 관리자에 의해 대응하는 액션과 상관시켜 노드가 구성될 권한이 있는지를 검증할 수 있다. 시스템은 또한, 다양한 명령들을 실행하고 명령들의 출력을 제공하도록 노드에 지시하여, 노드가 진짜이고 예를 들어, 공격자에 의해 지시되는 손상된 노드가 아님을 검증할 수 있다. 예를 들어, 시스템은 짧은 양의 시간 내에 많은 수의 계산들을 실행하도록 노드에 지시하여, 손상된 노드가 인간 공격자에 의해 수동으로 제어되고 있지 않음을 검증할 수 있다. 시스템은 또한 노드의 초기 구성에 포함된 정보, 이를테면 고유 식별자를 제공하도록 노드에 지시할 수 있다. 이러한 정보는 노드에 대한 원래의 생성 요청과 상관되어, 노드가 구성을 수신할 권한이 있는지를 검증할 수 있다.
[0030] 도 1은 클라우드 컴퓨팅 시스템에서 리소스들을 안전하게 구성하기 위한 예시적인 환경(100)의 도면이다. 도시된 바와 같이, 환경(100)은 배치 관리자(120)와 통신하는 사용자 또는 자동화 시스템(110)을 포함한다. 배치 관리자(120)는 사용자/자동화 시스템(110)으로부터의 요청에 대한 응답으로 노드(130)(예컨대, 가상 머신 인스턴스, 컨테이너 인스턴스, 또는 클라우드 컴퓨팅 시스템의 다른 컴포넌트)를 배치한다. 구성 제어기(140)는 노드(130)와 상호 작용하여 노드(130)에 구성을 제공한다. 구성 제어기(140)는 구성 정책들(160)에 기초하여 동작한다. 구성 제어기(140)는 또한, 리소스로부터 구성 항목들을 리트리브할 권한을 노드(130)에 부여하지 않도록 구성 리소스(150)와 상호 작용한다. 동작 중에, 사용자/자동화 시스템(110)은 배치 관리자(120)가 노드를 생성할 것을 요청한다(170). 응답으로, 배치 관리자(120)가 노드(130)를 배치한다(172). 초기화시, 노드(130)는 구성 요청(174)을 구성 제어기(140)에 전송한다. 구성 제어기(140)는 구성 요청(174)에 포함된 파라미터들에 기초하여 노드(130)의 구성 정책(160)을 식별한다. 구성 제어기(140)는 노드(130)에 구성 커맨드들(176)을 발행한다. 노드(130)는 구성 커맨드들(176)을 실행하고, 커맨드들의 결과들을 구성 제어기(140)에 제공한다. 구성 제어기(140)는 또한, 구성 커맨드들(178)을 구성 리소스(150)에 전송할 수 있다. 예를 들어, 구성 제어기(140)에 대한 구성은 구성 리소스(150)로부터 구성 항목들을 리트리브(180)할 권한을 노드(130)에 부여하도록 구성 리소스(150)를 구성할 수 있다. 구성 제어기(140)는 또한 노드(130)가 구성 리소스(150)에 액세스하는 것을 허용하는 액세스 크리덴셜들로 (예컨대, 구성 커맨드들(176)을 통해) 노드(130)를 구성할 수 있다.
[0031] 사용자/자동화 시스템(110)은 노드(130)와 같은 노드 인스턴스들이 배치 관리자(120)에 의해 배치될 것을 요청하는 엔티티이다. 예를 들어, 사용자/자동화 시스템(110)은 새로운 노드 인스턴스를 생성하기 위해 사용자 인터페이스와 상호 작용하는 사용자를 포함할 수 있다. 사용자/자동화 시스템(110)은 또한 이를테면, 예를 들어 특정 애플리케이션에 대한 컴퓨팅 리소스들에 대한 요구의 증가, 배치 관리자(120)에 의해 관리되는 클라우드 컴퓨팅 시스템의 성능 저하에 대한 응답으로, 또는 다른 이벤트들에 대한 응답으로, 배치 관리자로부터의 노드 인스턴스들의 생성을 자동으로 요청하는 자동화 시스템을 포함할 수 있다. 일부 구현들에서, 사용자/자동화 시스템(110)은 노드(170)의 생성을 요청하고 노드가 생성되었다(182)는 확인 응답을 수신하기 위해 (도시되지 않은) 네트워크를 통해 배치 관리자(120)와 통신할 수 있다. 아래에서 더 상세히 논의되는 바와 같이, 사용자/자동화 시스템(110)의 아이덴티티, 생성될 노드의 속성들 또는 다른 정보와 같은 추가 정보가 생성 요청(170) 및 확인 응답(182)에 존재할 수 있다.
[0032] 배치 관리자(120)는 클라우드 컴퓨팅 시스템과 같은 분산 컴퓨팅 환경 내의 컴퓨팅 컴포넌트일 수 있다. 일부 구현들에서, 배치 관리자(120)는 새로운 노드 인스턴스들을 배치하고 분산 컴퓨팅 환경 내의 기존 노드 인스턴스들을 관리하도록 동작 가능한 하나 이상의 컴퓨팅 컴포넌트들일 수 있다. 어떤 경우들에, 배치 관리자(120)는 소프트웨어 컴포넌트로서 구현될 수 있고, 사용자/자동화 시스템(110)과 같은 엔티티들이 분산 컴퓨팅 환경 내에서 새로운 노드의 생성을 요청할 수 있게 하는 API를 제공할 수 있다. 일부 구현들에서, 배치는 하나 이상의 가상 실행 환경들 내에 노드들을 배치하고 관리하는 하이퍼바이저 컴포넌트일 수 있다. 이러한 경우, 하이퍼바이저에 의해 배치되고 관리되는 노드들은 가상 머신 인스턴스들, 컨테이너 인스턴스들, 가상 리소스들(예컨대, 디스크들, 프로세서들 등) 또는 다른 가상 컴포넌트들일 수 있다.
[0033] 노드(130)는 172에서 배치 관리자(120)에 의해 배치된다. 노드(130)는 가상 환경 내에서 물리적 컴퓨팅 디바이스에 의해 배치되고 실행되는 노드 인스턴스일 수 있다. 어떤 경우들에, 노드(130)는 배치 관리자(120)와 연관되며 생성 요청(170)에서 사용자/자동화 시스템(110)에 의해 지정된 가상 머신 또는 컨테이너 이미지에 따라 생성될 수 있다. 일부 구현들에서, 노드(130)는 노드(130)가 구성 제어기(140)와 통신할 수 있게 하기에 충분한 최소 구성으로 배치될 수 있다. 예를 들어, 노드(130)는 최소한으로 구성된 운영 시스템, (도시되지 않은) 네트워크를 통해 노드(130)가 구성 제어기(140)에 액세스할 수 있게 하는 제한된 네트워크 구성, 및 구성 요청(174)을 구성 제어기(140)에 전송하고 구성 제어기(140)로부터의 응답을 기다리라는 명령들로 배치될 수 있다. 이러한 배치는 구성 제어기(140)가 노드(130)의 구성의 대부분의 양상들을 제어하는 것을 가능하게 할 수 있다. 이에 반해, 최소한이 아닌 구성으로 배치된 노드는 노드를 생성하는 데 사용된 이미지 내에 구성 설정들, 소프트웨어 패키지들 및 다른 구성 항목들을 포함할 수 있다. 이러한 접근 방식은 새로운 노드들에 대한 초기 구성들로 변경하는 데 어려움을 초래할 수 있는데, 이는 노드들을 생성한 이미지가 이러한 변경들을 구현하도록 업데이트되어야 하기 때문이다. 본 솔루션은 또한, 예를 들어 사전 설치된 소프트웨어 패키지들을 최신 버전들로 업데이트하고, 이미지의 초기 구성 내에 포함된 설정들을 업데이트된 값들로 변경하고, 다른 구성 액션들을 수행하는 것과 같은 그러한 최소가 아닌 구성으로 노드들이 배치되는 상황들에서 이용될 수 있다. 그러한 접근 방식은, 최소한이 아니게 구성된 노드(130)가 최소한으로 구성된 노드와 동일한 방식으로 초기화시 구성 제어기(140)로부터의 구성을 요청하고 수신할 수 있기 때문에, 이미지에 포함된 초기 구성들을 변경하는 어려움들의 일부를 완화할 수 있다.
[0034] 구성 제어기(140)는 (도시되지 않은) 네트워크를 통해 노드(130)로부터의 구성 요청(174)을 수신한다. 일부 구현들에서, 노드(130)는 구성 제어기(140)에 의해 제공되는 표현 상태 변경(REST: Representational State Transfer) API에 따라 구성 요청(174)을 전송한다. 노드(130)는 하이퍼텍스트 전송 프로토콜(HTTP: Hypertext Transfer Protocol), HTTP 보안(HTTPS: HTTP Secure) 또는 다른 프로토콜들을 사용하여 구성 제어기(140)에 대응하는 유일 리소스 로케이터(URL: Uniform Resource Locator)에 액세스하도록 명령을 받을 수 있다. 예를 들어, 노드(130)는 "http://configcontroller.internal.net/start"라는 URL에 대한 HTTP 요청을 구성 제어기(140)에 전송할 수 있으며, 여기서 도메인 네임인 "configcontroller.internal.net"은 구성 제어기(140)와 연관된 네트워크 어드레스로 확인(resolve)되고, 타깃인 "start"는 노드(130)가 구성을 요청하고 있음을 구성 제어기(140)에 나타낸다.
[0035] 구성 요청(174)은 또한 노드(130)에 관한 정보를 식별하는 것을 포함할 수 있다. 예를 들어, 사용자/자동화 시스템(110)은 배치 관리자(120)에 의해 생성될 노드(130)에 관한 정보, 이를테면 노드 인스턴스의 타입, 노드(130)의 생성을 요청하는 사용자 또는 시스템의 아이덴티티, 노드를 생성하라는 요청에 대한 고유 식별자, 또는 다른 정보를 지정할 수 있다. 어떤 경우들에, 이 정보는 구성 요청(174)에서 인코딩될 수 있다. 일부 구현들에서, 구성 제어기(140)는 이 정보를 사용하여, 노드(130)가 구성될 권한이 있는지를 검증할 수 있다. 예를 들어, 구성 제어기(140)는 구성 요청(174)에서 노드를 생성하라는 요청에 대한 고유 식별자를 수신할 수 있고, 이 식별자를 사용하여, 노드(130)가 실제로 배치되었고 유효한 생성 요청에 기초하여 구성을 요청하고 있음을 검증할 수 있다. 이러한 검증은 권한이 없는 노드 인스턴스들이 내부의 그리고 가능하게는 민감한 구성 데이터에 대한 액세스를 얻는 것을 방지함으로써 높아진 보안을 제공할 수 있다. 일례로, 그러한 내부 데이터에 대한 액세스를 얻으려고 시도하는 악의적인 엔티티에 의해 이러한 노드 인스턴스가 생성될 수 있다. 구성 제어기(140)는 또한 노드 인스턴스가, 구성을 요청하는 노드의 특정 속성들을 갖는 노드 인스턴스들을 생성할 권한이 있는 사용자 또는 시스템에 의해 생성되었음을 검증할 수 있다.
[0036] 일부 구현들에서, 구성 제어기(140)는 배치 관리자(120)로부터의 구성 요청(174)을 수신할 수 있다. 이러한 경우에, 배치 관리자(120)가 새로운 노드를 배치할 때, 배치 관리자(120)는 새로 배치된 노드에 관한 정보와 함께 구성 제어기(140)에 구성 요청(174)을 전송할 수 있다. 구성 제어기(140)는 앞서 설명한 노드 개시 구성 시나리오에서와 같이, 노드를 구성하기 전에 노드의 아이덴티티를 식별하고 검증하기 위해, 앞서 설명한 것과 유사한 방식으로 노드에 관한 정보를 사용할 수 있다.
[0037] 일부 구현들에서, 구성 제어기(140)는 구성을 대기하는 새로 배치된 노드들에 대한 네트워크를 스캔하도록 구성될 수 있다. 그러한 경우, 구성 제어기(140)는 특정 노드의 구성을 개시하기 위한 구성 요청(174)을 수신하는 것이 아니라, 대신에 구성을 대기하고 있는 노드가 발견될 때 구성 프로세스를 개시할 것이다. 예를 들어, 구성 제어기(140)는 구성을 대기하는 노드들의 리스트를 포함하는 데이터베이스 또는 다른 리소스를 주기적으로 체크할 수 있고, 그러한 노드들과의 통신을 개시하여 구성 프로세스를 시작할 수 있다. 구성 제어기(140)는 또한, 새로 배치된 노드들을 구성할 준비가 되었음을 나타내는 브로드캐스트 메시지를 네트워크 상에서 전송할 수 있다. 이러한 경우, 새로 배치된 노드들은 이 브로드캐스트 메시지에 응답하여 구성 프로세스를 시작하도록 구성될 것이다.
[0038] 구성 제어기(140)는 구성 정책들(160) 중 노드(130)를 구성하기 위해 사용할 구성 정책을 식별하기 위해 구성 요청(174)으로부터의 정보를 사용할 수 있다. 일부 구현들에서, 구성 정책(160)은 구성될 노드가 규칙과 일치할 때 수행할 규칙 및 한 세트의 구성 커맨드들을 포함할 수 있다. 예를 들어, 구성 정책(160)은 "데이터베이스"의 노드 타입으로 구성될 노드가 구성 프로세스 동안 설치된 데이터베이스 관리 소프트웨어 프로그램을 가져야 한다고 지정할 수 있다. 구성 제어기(140)가 노드(130)의 타입이 "데이터베이스"임을 지정하는 구성 요청을 노드(130)로부터 수신한다면, 구성 제어기는 노드(130)가 "데이터베이스"라는 노드 타입에 대한 구성 정책(160)과 일치함을 식별할 것이고, 데이터베이스 관리 소프트웨어 프로그램을 설치하도록 구성 정책(160)에 정의된 구성 커맨드들을 노드(130)에 발행할 것이다. 구성 정책들(160) 내의 규칙들은 노드(130)로부터 수신된 구성 요청에서 수신된 정보에 대한 일치 값들을 지정하는 기준들을 포함할 수 있다. 일부 구현들에서, 구성 정책(160)은 구성을 수행하기 위해 사용할 특정 구성 리소스(150)를 지정할 수 있다.
[0039] 일단 구성 제어기(140)가 노드(130)를 구성하는 데 사용된 구성 정책(160)을 식별하면, 구성 제어기(140)는 하나 이상의 구성 커맨드들(176)을 노드(130)에 전송할 수 있다. 앞서 논의한 바와 같이, 노드(130)는 구성 요청(174)을 전송한 후에 구성 제어기(140)로부터 그러한 커맨드들을 청취한다. 일부 구현들에서, 노드(130)가 구성 커맨드(176)를 수신할 때, 노드(130)가 배치되게 한 명령들은 노드(130)가 수신된 커맨드를 실행하게 하고, 실행된 커맨드의 출력들 또는 결과들을 구성 제어기(140)에 제공하게 한다.
[0040] 이러한 어레인지먼트는, 사용자가 노드(130)에 직접 커맨드들을 입력함으로써 실행될 수 있는 임의의 커맨드를 효과적으로 실행하도록 구성 제어기(140)가 노드(130)에 명령할 수 있기 때문에, 노드(130)를 구성하는 데 향상된 유연성을 제공할 수 있다. 일부 구현들에서, 노드(130)는 예를 들어, 본 셸(Bourne shell)(sh), 본 어게인 셸(Bourne-Again shell)(bash), 콘 셸(Korn shell)(ksh), C 셸(csh), 또는 다른 셸들이나 커맨드 라인 인터페이스들과 같은 운영 시스템 셸 또는 커맨드 라인 인터페이스에서 각각 수신된 구성 커맨드(176)를 실행할 수 있다. 이러한 어레인지먼트는 구성 제어기(140)가 노드(130)를 구성하는 데 이러한 셸들의 풍부한 특징들, 이를테면 스크립팅 및 흐름 제어 동작들, 이를테면 리다이렉트(redirect)들(">") 및 파이프들("|")을 이용하는 것을 가능하게 할 수 있다.
[0041] 예를 들어, "데이터베이스" 타입의 노드(130)로부터의 예시적인 구성 요청(174)에 대한 응답으로, 구성 제어기(140)는 특정 구성 리소스(150)에 액세스하도록 노드(130) 상의 패키지 관리 클라이언트, 이를테면 어드밴스드 패키징 툴(APT: Advanced Packaging Tool), RPM 패키지 관리자 또는 다른 클라이언트를 구성하기 위한 구성 커맨드(176)를 노드(130)에 전송할 수 있다. 예를 들어, 이 구성 커맨드(176)는 "add-apt-repository 'deb http://conFIGblah.com/config/ database-manager main'"일 수 있으며, 여기서 "http://conFIGblah.com/config/"는 리소스(150)에 대응하는 URL이다. 노드(130)는 구성 커맨드(176)를 수신하고, 앞서 설명한 바와 같이 셸 또는 커맨드 라인 인터페이스에서 구성 커맨드(176)를 실행할 수 있다. 구성 커맨드(176)의 실행은 노드(130) 상의 "add-apt-repository" 프로그램이 지정된 파라미터들로 실행되게 할 것이며, 이러한 파라미터들은 이 경우에 APT 패키지 관리 클라이언트 프로그램의 구성이 업데이트되게 할 것이다. 그 다음, 구성 제어기(140)는, 노드(130) 상의 패키지 관리 클라이언트를 호출하고 그리고 적절한 패키지를 리트리브하도록 노드(130)에 명령하는 구성 커맨드(176)를 전송할 수 있다. 예를 들어, 이전 예로부터 "database-manager" 컴포넌트를 리트리브하기 위한 구성 커맨드(176)는 "apt-get install database-manager"일 수 있다. 노드(130)는 구성 커맨드(176)를 수신하고, 앞서 설명한 바와 같이 셸 또는 커맨드 라인 인터페이스에서 구성 커맨드(176)를 실행할 수 있다. 구성 커맨드(176)의 실행은 노드(130) 상의 "add-get" 프로그램이 지정된 파라미터들로 실행되게 할 것이며, 이러한 파라미터들은 이 경우에 노드(130)가 이전 커맨드로 구성된 구성 리소스(150)로부터 "database-manager" 소프트웨어 패키지를 리트리브하여 설치하게 할 것이다.
[0042] 구성 제어기(140)는 또한, 노드(130)가 구성될 권한이 있는지를 추가로 검증하기 위해 선택된 구성 커맨드들(176)을 전송할 수 있다. 예를 들어, 구성 제어기(140)는 일련의 계산들을 수행하고 특정 시간 기간 내에 결과들을 제공하도록 노드(130)에 명령할 수 있다. 이러한 메커니즘은 노드(130)가 실제로 컴퓨팅 리소스이고, 시스템에 대한 전자 액세스를 얻으려고 시도하는 인간 공격자가 아니라는 것을 검증하는 데 사용될 수 있다. 시간 기간은 인간 공격자가 시간 기간이 만료되기 전에 계산들을 수행하는 것이 실현 가능하지 않도록 선택될 수 있다. 다른 예에서, 구성 제어기(140)는 물리적 매체 액세스 제어(MAC: Medium Access Control) 어드레스, 일련번호, 또는 노드(130)가 실행 중인 물리적 컴퓨팅 디바이스의 다른 고유 식별자와 같은, 노드(130)의 환경의 불변 특성들을 판독하도록 노드(130)에 명령할 수 있다. 노드(130)는 검증을 위해 이 데이터를 구성 제어기(140)에 제공할 수 있다. 이러한 체크는, 노드(130)가 사용자/자동화 시스템(110)으로부터의 요청에 대한 응답으로 배치 관리자(120)에 의해 배치된 노드 인스턴스이고, 배치된 인스턴스를 가능하게는 악의적인 목적으로 모방한 공격자가 아님을 보장할 수 있다.
[0043] 구성 리소스(150)는 노드(130)가 구성 항목들을 리트리브(180)할 수 있는 컴퓨팅 컴포넌트 또는 컴퓨팅 컴포넌트들의 세트일 수 있다. 예를 들어, 구성 리소스(150)는 예를 들어, CHEF™, PUPPET, SALT, ANSIBLE 또는 다른 구성 관리 도구와 같은 구성 관리 도구를 실행하는 구성 관리 서버일 수 있다. 구성 리소스(150)는 또한 데이터베이스, 보관소, 또는 구성 항목들의 다른 집합일 수 있다. 일부 구현들에서, 구성 제어기는 API들, 통신 프로토콜들, 또는 각각의 특정 타입의 구성 리소스(150)에 특정한 다른 메커니즘들을 사용하여 다수의 서로 다른 타입들의 구성 리소스들(150)과 통신하도록 구성될 수 있다. 구성 제어기(140)는 구성 리소스(150)에 액세스할 권한을 노드(130)에 부여하기 위해 구성 리소스(150)에 구성 커맨드들(178)을 전송할 수 있다. 구성 제어기(140)는 마찬가지로, 구성 리소스(150)에 액세스할 때 사용할 크리덴셜들을 노드(130)에 제공하는 구성 커맨드들(176)을 노드(130)에 전송할 수 있다. 어떤 경우들에, 그러한 크리덴셜들은 노드(130)가 구성될 필요가 있는 액세스 레벨만이 노드(130)에 그랜트되도록 제한될 수 있다. 예를 들어, 구성 프로세스가 시작될 때 구성 제어기(140)에 의해 생성되고 구성 프로세스가 종료될 때 구성 제어기(140)에 의해 삭제되는, 구성 리소스(150)에 대한 액세스 크리덴셜들이 노드(130)에 제공될 수 있다. 이러한 기술들은 노드(130)가 구성 리소스(150)에 대한 그 자신의 액세스 크리덴셜들을 저장하고 유지할 필요성을 완화함으로써 이전 기술들에 비해 높아진 보안으로 이어질 수 있다. 그 대신에, 구성 제어기(140)는 그러한 크리덴셜들을 관리할 수 있으며, 이들을 구성에 필요한 경우에만 노드(130)에 제공할 수 있다. 이는 노드(130)를 지배하는 공격자에 의해 액세스될 수 있는 리소스들을 제한할 수 있으며, 잠재적으로 민감한 액세스 크리덴셜들을 관리하고 안전하게 할 필요가 있는 시스템 내의 컴포넌트들의 수를 제한한다.
[0044] 일부 구현들에서, 도 1에 도시된 컴포넌트들 간의 상호 작용들은 컴포넌트들이 접속되는 하나 이상의 네트워크들을 통해 컴포넌트들 간에 전송된 메시지들로서 구현될 수 있다. 예를 들어, 하나 이상의 네트워크들은 인터넷 프로토콜(IP: Internet Protocol) 또는 다른 타입들의 네트워크들을 포함할 수 있으며, 전송 계층에서 전송 제어 프로토콜(TCP: Transmission Control Protocol), 범용 데이터그램 프로토콜(UDP: Universal Datagram Protocol) 또는 다른 프로토콜들을 이용할 수 있다. 컴포넌트들 간에 전송된 메시지들은 예를 들어, 하이퍼텍스트 전송 프로토콜(HTTP), 원격 프로시저 호출(RPC: Remote Procedure Call), 단순 객체 접근 프로토콜(SOAP: Simple Object Access Protocol), 또는 다른 통신 프로토콜들과 같은 통신 프로토콜에 따라 구성될 수 있다. 하나 이상의 네트워크들은 이더넷, 동기식 광 네트워킹(SONET: Synchronous Optical Networking), 비동기 전송 모드(ATM: Asynchronous Transfer Mode), 및 다른 유선 또는 무선 네트워킹 기술들을 포함하는, 그러나 이에 한정된 것은 아닌 하나 이상의 물리 계층 네트워킹 기술들을 사용하여 구현될 수 있다.
[0045] 일부 구현들에서, 구성 제어기(140)는 네트워크 상의 기존 노드들을 시차(staggered) 방식으로 업데이트할 수 있다. 이러한 롤링 업데이트 프로세스에서, 구성 제어기(140)는 업데이트된 구성을 수신할 노드들을 지정된 기준들에 기초하여 선택한다. 예를 들어, 기준들은 네트워크 상의 노드들이 시간당 100의 레이트로 업데이트되는 것을 지정할 수 있다. 응답으로, 구성 제어기(140)는 시간당 100개의 노드들을 선택하고 업데이트된 구성을 앞서 설명한 것과 동일한 방식으로 얻도록 이러한 노드들에 명령할 수 있다. 어떤 경우들에, 구성 제어기(140)는 업데이트될 노드들에 메시지를 전송함으로써 업데이트 프로세스를 시작할 수 있다. 구성 제어기(140)는 또한, 업데이트될 각각의 노드로부터 메시지를 수신하여 업데이트 프로세스를 개시할 수 있다. 구성 제어기(140)는 또한, 배치 관리자(120)로부터 메시지를 수신하여 업데이트 프로세스를 개시할 수 있다.
[0046] 도 2는 클라우드 컴퓨팅 시스템에서 리소스들을 안전하게 구성하기 위한 예시적인 프로세스의 구획면도이다. 205에서, 사용자/자동화 시스템(110)은 배치 관리자(120)가 노드를 생성할 것을 요청한다. 210에서, 배치 관리자(120)가 노드(130)를 생성하여 배치한다. 215에서, 노드(130)는 초기화시, 구성을 요청하는 메시지를 구성 제어기(140)에 전송한다. 220에서, 노드(130)는 구성 제어기(140)로부터의 구성 커맨드들에 대해 폴링한다. 일부 구현들에서, 노드(130)는 구성 제어기(140)로부터 수신된 구성 커맨드들에 대해 주기적으로 검사하는 "바쁜 대기(busy wait)" 루프에 들어갈 수 있다.
[0047] 225에서는, 노드(130)로부터의 구성에 대한 요청을 수신하는 것에 대한 응답으로, 구성 제어기(140)는 노드(130)에 구성 커맨드를 송신한다. 230에서, 노드(130)는 수신된 구성 커맨드를 실행한다. 235에서, 노드(130)는 구성 커맨드의 결과를 구성 제어기(140)에 전송한다. 예를 들어, 노드(130)는 운영 시스템 셸에서 구성 커맨드를 실행할 수 있고, 실행된 커맨드의 출력들을 구성 제어기(140)에 결과로서 제공할 수 있다. 240에서, 노드(130)는 구성 제어기(140)로부터의 구성 커맨드들에 대해 다시 폴링한다.
[0048] 도 3은 구성 제어기(140)를 사용하여 노드(130) 및 구성 리소스(150)를 구성하기 위한 예시적인 프로세스의 구획면도이다. 305에서, 구성 제어기(140)는 구성 리소스(150)에 액세스하도록 노드(130)를 구성한다. 예를 들어, 구성 제어기(140)는 구성 리소스(150)에 액세스하기 위한 정보, 이를테면 구성 리소스(150)에 접촉하기 위해 사용할 네트워크 어드레스, 구성 리소스(150)에 액세스하기 위해 사용할 액세스 크리덴셜들, 또는 다른 정보를 노드(130)에 제공할 수 있다. 일부 구현들에서, 구성은 구성 제어기(140)가 (아래에서 설명되는) 310 및 315에서 구성 리소스를 준비한 후에 발생할 수 있다. 일부 구현들에서, 구성 제어기(140)는 구성 리소스(150)와 연관된 클라이언트 애플리케이션을 노드(130) 상에 설치할 수 있고, 구성 리소스(150)로부터 구성 항목들을 리트리브하도록 노드(130)에 명령할 때 이 클라이언트 애플리케이션을 호출할 수 있다.
[0049] 310에서, 구성 제어기(140)는 구성 리소스(150)가 노드(130)에 구성 항목들을 제공할 준비를 하도록 셋업 동작들을 수행한다. 일부 구현들에서, 이러한 셋업 동작들은 구성 리소스(150)가 노드(130)를 구성하는 데 필요한 특정 구성 항목들을 제공할 수 있는지 여부를 결정하는 것을 포함할 수 있다. 315에서, 구성 제어기(140)는 노드(130)가 구성 리소스(150)에 액세스할 권한을 부여하도록 구성 리소스(150)에 명령한다. 예를 들어, 구성 제어기(140)는 노드(130)에 대해 구성 리소스(150) 상에 한 세트의 액세스 크리덴셜들을 생성할 수 있다. 어떤 경우들에는, 구성 제어기(140)가 노드(130)에 관한 정보, 이를테면 노드(130)의 네트워크 어드레스 또는 다른 식별 정보를 구성 리소스(150)에 제공할 수 있어, 구성 리소스(150)는 노드(130)가 리소스들에 액세스하려고 시도할 때 노드(130)를 검증할 수 있다. 일부 구현들에서, 구성 제어기(140)는 구성 리소스(150)에 특정한 API를 이용함으로써 단계들(310, 315)을 수행할 수 있다. 구성 제어기(140)는 다수의 서로 다른 API들을 사용하여 다수의 서로 다른 타입들의 구성 리소스들(150) 과 통신하도록 동작 가능할 수 있다.
[0050] 320에서, 구성 제어기(140)는 구성 리소스(150)로부터 구성 항목들을 리트리브하도록 노드(130)에 명령한다. 예를 들어, 구성 제어기(140)는 구성 리소스(150)에 액세스하기 위해 305에서 설치된 클라이언트 애플리케이션을 호출하도록 노드(130)에 명령할 수 있다. 구성 제어기(140)는 리트리브될 구성 항목 또는 구성 항목들의 식별을 포함할 수 있다. 일부 구현들에서, 구성 제어기(140)는 구성 리소스(150)에 특정한 프로토콜에 따라 구성된 메시지를 네트워크를 통해 전송하여 구성 항목을 리트리브하도록 노드(130)에 명령할 수 있다. 330에서, 구성 리소스(150)는 325에서 전송된 요청에 의해 표시된 구성 항목을 리턴한다.
[0051] 335에서, 노드(130)는 구성 리소스(150)로부터 수신된 구성 항목을 적용한다. 일부 구현들에서, 구성 항목을 적용하는 것은 구성 리소스(150)와 연관된 클라이언트 애플리케이션이 수신된 구성 항목을 노드(130) 상에 설치하는 것을 포함할 수 있다. 노드(130)가 330에서 구성 리소스(150)로부터 구성 항목을 수신하면, 노드(130)는 또한 구성 제어기(140)에 결과를 리턴할 수 있다. 응답으로, 구성 제어기(140)는 구성 항목을 설치하라는 명령들을 포함하는 구성 커맨드를 노드(130)에 전송할 수 있다. 340에서, 노드(130)는 구성 항목을 적용한 결과를 구성 제어기(140)에 전송한다. 일부 구현들에서, 단계들(320 내지 340)은 여러 번 반복되어 다수의 서로 다른 구성 항목들을 노드(130)에 적용할 수 있다. 노드(130)에 대해 구성 제어기(140)에 의해 식별된 구성 정책(160)은 어느 구성 항목들이 노드(130) 상에 설치될지를 지정할 수 있으며, 따라서 단계들(320 내지 340)이 반복될 수 있는 횟수를 그리고 어떤 파라미터들로 반복될 수 있는지를 지정할 수 있다.
[0052] 345에서, 구성 제어기(140)는 노드(130)의 구성이 완료되었음을 결정한다. 일부 구현들에서, 구성 제어기(140)는 노드(130)에 적용될 각각의 구성 항목에 대해 노드(130)로부터 성공적인 결과를 수신하는 것에 기초하여 구성이 완료되었음을 결정할 수 있다. 350에서, 구성 제어기(140)는 구성 프로세스가 완료되었다는 표시를 노드(130)에 전송한다. 355에서, 노드(130)는 노드(130)가 성공적으로 배치되었다는 표시를 배치 관리자(120)에게 전송한다. 360에서, 배치 관리자(120)는 노드(130)가 성공적으로 생성되었다는 표시를 사용자/자동화 시스템(110)에 전송한다. 일부 구현들에서, 구성 제어기(140)는 적용될 구성 항목들 중 하나 이상에 대해 노드(130)로부터 성공적인 결과를 수신하지 못하고, 구성 제어기는 노드(130)에 "구성 실패" 표시와 같은 부정적인 표시를 전송할 수 있다. 노드(130)는 이 표시를 배치 관리자(120)에게 전달할 수 있으며, 배치 관리자(120)는 이 표시를 사용자/자동화 시스템(110)에 전달할 수 있다. 어떤 경우들에, 노드(130)가 그러한 실패 표시에 대한 응답으로 자신을 삭제할 수 있다. 노드 삭제는 구성 제어기(140) 또는 배치 관리자(120)에 의해서도 또한 수행될 수 있다.
[0053] 도 4는 도 1에 도시된 구성 제어기(140)를 포함하는 예시적인 환경(400)의 도면이다. 도시된 바와 같이, 구성 제어기(140)는 구성 서비스(410), 구성 작업자(420), 한 세트의 구성 데이터(432) 및 사용자 인터페이스(450)를 포함한다. 동작시, 구성 개시자(440)는 REST API를 사용하여 구성 서비스(410)와 통신할 수 있다. 구성 개시자(440)는, 새로운 노드(130)가 배치되었고 구성 제어기(140)로부터의 구성을 요청할 것임을 구성 서비스(410)에 나타낼 수 있다. 어떤 경우들에, 구성 개시자(440)는 도 1에 도시된 사용자/자동화 시스템(110), 도 1에 도시된 배치 관리자(120), 또는 노드(130)가 배치 또는 생성된 임의의 다른 컴퓨팅 컴포넌트 또는 엔티티일 수 있다. 구성 개시자(440)는 노드(130)에 관한 정보, 이를테면 노드(130)가 배치 또는 생성되게 한 요청에 대한 또는 노드(130)에 대한 고유 식별 정보를 나타낼 수 있다. 이 정보는 구성 개시자(440)에 의해 생성 또는 배치된 노드(130)로부터 구성 제어기(140)에 의해 수신된 구성에 대한 요청을 검증하는 데 사용될 수 있다.
[0054] 구성 개시자(440)로부터 이러한 표시를 수신하는 것에 대한 응답으로, 구성 서비스(410)는 노드(130)를 구성하는 작업을 구성 작업자(420)에게 할당할 수 있다. 일부 구현들에서, 구성 작업자(420)는, 노드(130)로부터의 구성 요청을 처리하고 필요한 구성 커맨드들을 노드(130)에 제공하여 필요한 구성을 수행하는 데 필요한 기능을 포함하는 스레드, 모듈 또는 객체와 같은 소프트웨어 컴포넌트일 수 있다. 어떤 경우들에, 구성 서비스(410)는 또한 이를테면, 구성 제어기(140) 내에서 수신된 메시지들의 내부 라우팅을 담당하는 (도시되지 않은) 네트워크 모듈을 구성함으로써, 노드(130)로부터 발생한 것으로 식별된 구성에 대한 요청이 노드(130)를 구성하도록 할당된 구성 작업자(420)로 라우팅되게 할 수 있다. 일단 구성 작업자(420)가 노드(130)로부터 구성에 대한 요청을 수신하면, 구성 작업자(420)는 구성 리소스(150) 내의 노드(130)와 상호 작용하여 도 1 내지 도 3과 관련하여 설명한 바와 같이 노드(130)를 구성할 수 있다.
[0055] 구성 서비스(410) 및 구성 작업자(420)가 한 세트의 구성 데이터(432)를 생성하여 유지할 수 있다. 일부 구현들에서, 구성 데이터(432)는 보류 중인 구성 액션들, 이전 구성 액션들의 결과들(예컨대, 성공 또는 실패), 또는 구성 제어기(140)의 실패의 경우에 보류 중인 구성 액션들을 복원 또는 재개하는 데 사용되는 복구 데이터에 대한 정보를 포함할 수 있다.
[0056] 도시된 바와 같이, 구성 서비스(410)는 과금 기록들(470) 및 로그들(480)을 생성한다. 일부 구현들에서, 과금 기록들(470) 및 로그들(480)은 완료된 구성 액션들에 관한 정보를 포함한다. 예를 들어, 과금 기록들(470)은 노드(130)의 성공적인 배치를 위해 구성 개시자(440) 또는 다른 엔티티에 부과될 요금들을 포함할 수 있다. 로그들(480)은 구성 제어기(140)에 의해 어떤 구성 커맨드들이 발행되었는지, 그리고 커맨드들의 결과들과 같은 노드(130)에 대한 구성 프로세스에 관한 상세한 정보를 포함할 수 있다. 로그들(480)은 구성 제어기(140)의 활동에 대한 이력 기록을 제공할 수 있다.
[0057] 사용자 인터페이스(450)는 관리자(460)에게 과금 기록들(470) 및 로그들(480)로부터의 정보에 대한 액세스를 제공한다. 예를 들어, 관리자(460)는 HTTP를 사용하여 네트워크를 통해 사용자 인터페이스(450)에 액세스하기 위해 웹 브라우저를 사용할 수 있고, 과금 기록들(470) 및 로그들(480)로부터의 정보를 포함하는 웹 페이지를 사용자 인터페이스로부터 리트리브할 수 있다. 일부 구현들에서, 사용자 인터페이스(450) 또는 도시된 것과는 다른 사용자 인터페이스는 관리자(460)가 과금 기록들(470) 및 로그들(480)에서 정보를 탐색하거나, 정보를 필터링하거나, 다양한 방식들로 정보를 보거나, 서로 다른 포맷들로 정보를 내보내거나, 다른 동작들을 수행하는 것을 가능하게 할 수 있다.
[0058] 도 5는 클라우드 컴퓨팅 시스템에서 리소스들을 안전하게 구성하기 위한 예시적인 프로세스(500)의 흐름도이다. 명확하게 하기 위해, 프로세스(500)는 도 1에 도시된 컴포넌트들과 관련하여 설명될 것이다. 505에서, 구성 제어기(140)가 클라우드 컴퓨팅 네트워크 내의 특정 노드(130)로부터 구성 요청을 수신한다. 어떤 경우들에, 구성 요청은 특정 노드에 대한 노드 정보를 포함한다. 노드 정보는 특정 노드의 아이덴티티를 포함할 수 있다.
[0059] 510에서, 구성 제어기(140)는 노드 정보에 적어도 부분적으로 기초하여, 특정 노드(130)가 구성에 대한 권한이 있는지를 검증한다. 어떤 경우들에는, 특정 노드(130)가 구성에 대한 권한이 있는지를 검증하는 것은, 구성 제어기(140)가 네트워크를 통해 특정 노드(130)에 정보 요청을 전송하고, 네트워크를 통해 특정 노드(130)로부터 정보 요청에 대한 응답을 수신하고, 특정 노드(130)로부터의 수신된 응답이 예상된 응답과 일치함을 검증하는 것을 포함한다. 일부 구현들에서, 정보 요청은 수신시 특정 노드(130)에 의해 실행될 하나 이상의 커맨드들을 포함하고, 정보 요청에 대한 응답은 특정 노드(130)에 의한 하나 이상의 커맨드들의 실행에 의해 생성된 출력을 포함한다. 특정 노드(130)가 구성에 대한 권한이 있는지를 검증하는 것은 또한, 클라우드 컴퓨팅 네트워크와 연관된 관리 컴포넌트가 특정 노드(130)로부터 수신된 것과 일치하는 노드 정보를 갖는 노드를 생성했고, 노드가 아직 구성되지 않았음을 결정하는 것을 포함할 수 있다. 일부 구현들에서, 노드 정보는 특정 노드(130)가 어떻게 생성되었는지를 상세히 기술하는 생성 정보를 포함하고, 특정 노드(130)가 구성에 대한 권한이 있는지를 검증하는 것은, 생성 정보가 클라우드 컴퓨팅 네트워크와 연관된 보안 정책과 일치함을 검증하는 것을 포함한다. 생성 정보는: 특정 노드(130)를 생성한 관리 컴포넌트, 특정 노드(130)를 생성한 관리 컴포넌트의 사용자, 특정 노드가 생성된 프로젝트, 또는 특정 노드(130)에 대한 노드 타입 중 적어도 하나를 포함할 수 있다.
[0060] 515에서는, 도 1에 관해 앞서 논의한 바와 같이, 특정 노드(130)가 구성에 대한 권한이 있는지를 검증하는 것에 대한 응답으로, 구성 제어기(140)는 노드 정보에 적어도 부분적으로 기초하여, 특정 노드(130)에서 수행할 구성 액션들을 식별한다. 520에서는, 도 1에 관해 앞서 논의한 바와 같이, 구성 제어기(140)는 식별된 구성 액션들 중 하나 이상의 구성 액션들에 대응하는 구성 커맨드를 특정 노드(130)에 전송하고, 특정 노드(130)는 수신시 구성 커맨드를 실행하여 대응하는 구성 액션들을 수행한다.
[0061] 어떤 경우들에, 프로세스(500)는 구성 제어기(140)가 특정 노드(130)로부터 네트워크를 통해 구성 커맨드에 대응하는 구성 보고를 수신하는 것을 더 포함하며, 구성 보고는 특정 노드(130)에 의한 구성 커맨드의 실행과 관련된 보고 정보를 포함한다.
[0062] 어떤 경우들에, 구성 커맨드는 제1 구성 커맨드이고, 프로세스(500)는 구성 제어기(140)가, 보고 정보에 기초하여, 특정 노드(130)에 의해 제1 구성 커맨드가 성공적으로 실행되었음을 결정하는 것, 그리고 제1 구성 커맨드가 성공적으로 실행되었다는 결정에 대한 응답으로, 하나 이상의 추가 구성 액션들에 대응하는 제2 구성 커맨드를 네트워크를 통해 특정 노드(130)에 전송하는 것을 더 포함하며, 하나 이상의 추가 구성 액션들은 식별된 구성 액션들로부터 선택되고, 제1 구성 커맨드에 대응하는 구성 액션들과는 다르다.
[0063] 일부 구현들에서, 프로세스(500)는 구성 제어기(140)가, 보고 정보에 기초하여, 특정 노드(130)에 의해 구성 커맨드가 성공적으로 실행되지 않았음을 결정하는 것, 그리고 구성 커맨드가 성공적으로 실행되지 않았다는 결정에 대한 응답으로, 특정 노드(130)가 성공적으로 구성되지 않았음을 특정 노드(130)와 연관된 관리 컴포넌트에 통지하는 것을 더 포함한다.
[0064] 도 6은 클라이언트로서 또는 서버 또는 복수의 서버들로서, 본 문헌에서 설명되는 시스템들 및 방법들을 구현하는 데 사용될 수 있는 컴퓨팅 디바이스들(600, 650)의 블록도이다. 컴퓨팅 디바이스(600)는 랩톱들, 데스크톱들, 워크스테이션들, 개인용 디지털 보조기기들, 서버들, 블레이드 서버들, 메인프레임들 및 다른 적절한 컴퓨터들과 같은 다양한 형태들의 디지털 컴퓨터들을 나타내는 것으로 의도된다. 컴퓨팅 디바이스(650)는 개인용 디지털 보조기기들, 셀룰러 전화들, 스마트폰들 및 다른 유사한 컴퓨팅 디바이스들과 같은 다양한 형태들의 모바일 디바이스들을 나타내는 것으로 의도된다. 추가로 컴퓨팅 디바이스(600 또는 650)는 범용 직렬 버스(USB: Universal Serial Bus) 플래시 드라이브들을 포함할 수 있다. USB 플래시 드라이브들은 운영 시스템들 및 다른 애플리케이션들을 저장할 수 있다. USB 플래시 드라이브들은 다른 컴퓨팅 디바이스의 USB 포트에 삽입될 수 있는 무선 송신기 또는 USB 커넥터와 같은 입력/출력 컴포넌트들을 포함할 수 있다. 여기에 도시된 컴포넌트들, 이들의 접속들 및 관계들, 그리고 이들의 기능들은 단지 예시로 여겨지며, 본 문서에서 설명 및/또는 청구된 발명들의 구현들을 제한하는 것으로 여겨지는 것은 아니다.
[0065] 컴퓨팅 디바이스(600)는 프로세서(602), 메모리(604), 저장 디바이스(606), 메모리(604)와 고속 확장 포트들(610)에 접속되는 고속 인터페이스(608), 및 저속 버스(614)와 저장 디바이스(606)에 접속되는 저속 인터페이스(612)를 포함한다. 컴포넌트들(602, 604, 606, 608, 610, 612) 각각은 다양한 버스들을 사용하여 상호 접속되고, 공통 마더보드 상에 또는 다른 방식들로 적절하게 장착될 수 있다. 프로세서(602)는 메모리(604)에 또는 저장 디바이스(606) 상에 저장된 명령들을 포함하여 컴퓨팅 디바이스(600) 내에서 실행하기 위한 명령들을 처리하여, 고속 인터페이스(608)에 연결된 디스플레이(616)와 같은 외부 입력/출력 디바이스 상에 GUI에 대한 그래픽 정보를 디스플레이할 수 있다. 다른 구현들에서는, 다수의 메모리들 및 다수의 타입들의 메모리와 함께 다수의 프로세서들 및/또는 다수의 버스들이 적절하게 사용될 수 있다. 또한, 다수의 컴퓨팅 디바이스들(600)이 접속될 수 있으며, 각각의 디바이스는 (예를 들어, 서버 뱅크, 블레이드 서버들의 그룹 또는 다중 프로세서 시스템으로서) 필요한 동작들의 부분들을 제공한다.
[0066] 메모리(604)는 컴퓨팅 디바이스(600) 내의 정보를 저장한다. 한 구현에서, 메모리(604)는 휘발성 메모리 유닛 또는 유닛들이다. 다른 구현에서, 메모리(604)는 비휘발성 메모리 유닛 또는 유닛들이다. 메모리(604)는 또한 자기 또는 광 디스크와 같은 다른 형태의 컴퓨터 판독 가능 매체일 수 있다.
[0067] 저장 디바이스(606)는 컴퓨팅 디바이스(600)에 대한 대용량 저장소를 제공할 수 있다. 한 구현에서, 저장 디바이스(606)는 플로피 디스크 디바이스, 하드 디스크 디바이스, 광 디스크 디바이스 또는 테이프 디바이스, 플래시 메모리 또는 다른 유사한 솔리드 스테이트 메모리 디바이스, 또는 저장 영역 네트워크 또는 다른 구성들의 디바이스들을 포함하는 디바이스들의 어레이와 같은 컴퓨터 판독 가능 매체일 수 있거나 이를 포함할 수 있다. 컴퓨터 프로그램 제품은 정보 캐리어로 유형적으로 구현될 수 있다. 컴퓨터 프로그램 제품은 또한 실행될 때, 앞서 설명한 것들과 같은 하나 이상의 방법들을 수행하는 명령들을 포함할 수 있다. 정보 캐리어는 메모리(604), 저장 디바이스(606), 또는 프로세서(602) 상의 메모리와 같은 컴퓨터 판독 가능 또는 기계 판독 가능 매체이다.
[0068] 고속 제어기(608)는 컴퓨팅 디바이스(600)에 대한 대역폭 집약적 동작들을 관리하는 한편, 저속 제어기(612)는 더 낮은 대역폭 집약적 동작들을 관리한다. 기능들의 이러한 할당은 단지 예시일 뿐이다. 한 구현에서, 고속 제어기(608)는 메모리(604)에, (예컨대, 그래픽 프로세서 또는 가속기를 통해) 디스플레이(616)에, 그리고 (도시되지 않은) 다양한 확장 카드들을 수용할 수 있는 고속 확장 포트들(610)에 연결된다. 이 구현에서, 저속 제어기(612)는 저장 디바이스(606) 및 저속 확장 포트(614)에 연결된다. 다양한 통신 포트들(예를 들어, USB, 블루투스, 이더넷, 무선 이더넷)을 포함할 수 있는 저속 확장 포트는 키보드, 포인팅 디바이스, 스캐너, 또는 스위치나 라우터와 같은 네트워킹 디바이스와 같은 하나 이상의 입력/출력 디바이스들에 예를 들어, 네트워크 어댑터를 통해 연결될 수 있다.
[0069] 컴퓨팅 디바이스(600)는 도면에 도시된 바와 같이, 다수의 서로 다른 형태들로 구현될 수 있다. 예를 들어, 이는 표준 서버(620)로서 또는 여러 번 그러한 서버들의 그룹으로 구현될 수 있다. 이는 또한, 랙(rack) 서버 시스템(624)의 일부로서 구현될 수 있다. 또한, 이는 랩톱 컴퓨터(622)와 같은 개인용 컴퓨터로 구현될 수 있다. 대안으로, 컴퓨팅 디바이스(600)로부터의 컴포넌트들은 디바이스(650)와 같은 (도시되지 않은) 모바일 디바이스 내의 다른 컴포넌트들과 결합될 수 있다. 이러한 디바이스들 각각은 컴퓨팅 디바이스(600, 650) 중 하나 이상을 포함할 수 있고, 전체 시스템은 서로 통신하는 다수의 컴퓨팅 디바이스들(600, 650)로 구성될 수 있다.
[0070] 컴퓨팅 디바이스(650)는 다른 컴포넌트들 중에서도, 프로세서(652), 메모리(664), 디스플레이(654)와 같은 입력/출력 디바이스, 통신 인터페이스(666) 및 트랜시버(668)를 포함한다. 디바이스(650)는 또한 추가 저장소를 제공하기 위해 마이크로드라이브 또는 다른 디바이스와 같은 저장 디바이스를 구비할 수 있다. 컴포넌트들(650, 652, 664, 654, 666, 668) 각각은 다양한 버스들을 사용하여 상호 접속되며, 컴포넌트들 중 몇몇은 공통 마더보드 상에 또는 다른 방식들로 적절하게 장착될 수 있다.
[0071] 프로세서(652)는 메모리(664)에 저장된 명령들을 포함하여, 컴퓨팅 디바이스(650) 내의 명령들을 실행할 수 있다. 프로세서는 별개의 다수의 아날로그 및 디지털 프로세서들을 포함하는 칩들의 칩셋으로서 구현될 수 있다. 추가로, 프로세서는 다수의 아키텍처들 중 임의의 아키텍처를 사용하여 구현될 수 있다. 예를 들어, 프로세서(652)는 복잡 명령 집합 컴퓨터(CISC: Complex Instruction Set Computers) 프로세서, 축소 명령 집합 컴퓨터(RISC: Reduced Instruction Set Computer) 프로세서 또는 최소 명령 집합 컴퓨터(MISC: Minimal Instruction Set Computer) 프로세서일 수 있다. 프로세서는 예를 들어, 사용자 인터페이스들, 디바이스(650)에 의해 구동되는 애플리케이션들, 및 디바이스(650)에 의한 무선 통신의 제어와 같은 디바이스(650)의 다른 컴포넌트들의 조정을 제공할 수 있다.
[0072] 프로세서(652)는 디스플레이(654)에 연결된 제어 인터페이스(658) 및 디스플레이 인터페이스(656)를 통해 사용자와 통신할 수 있다. 디스플레이(654)는 예를 들어, 박막 트랜지스터 액정 디스플레이(TFT LCD: Thin-Film-Transistor Liquid Crystal Display) 또는 유기 발광 다이오드(OLED: Organic Light Emitting Diode) 디스플레이, 또는 다른 적절한 디스플레이 기술일 수 있다. 디스플레이 인터페이스(656)는 디스플레이(654)를 구동하여 사용자에게 그래픽 및 다른 정보를 제시하기 위한 적절한 회로를 포함할 수 있다. 제어 인터페이스(658)는 사용자로부터 커맨드들을 수신하고 이들을 프로세서(652)에 제출하기 위해 변환할 수 있다. 또한, 다른 디바이스들과 디바이스(650)의 근거리 통신을 가능하게 하도록, 프로세서(652)와 통신하는 외부 인터페이스(662)가 제공될 수 있다. 외부 인터페이스(662)는 예를 들어, 일부 구현들에서는 유선 통신을, 또는 다른 구현들에서는 무선 통신을 제공할 수 있으며, 다수의 인터페이스들이 또한 사용될 수 있다.
[0073] 메모리(664)는 컴퓨팅 디바이스(650) 내의 정보를 저장한다. 메모리(664)는 컴퓨터 판독 가능 매체 또는 매체들, 휘발성 메모리 유닛 또는 유닛들, 또는 비휘발성 메모리 유닛 또는 유닛들 중 하나 이상으로서 구현될 수 있다. 확장 메모리(674)가 또한 제공될 수 있으며, 예를 들어 단일 인라인 메모리 모듈(SIMM: Single In Line Memory Module) 카드 인터페이스를 포함할 수 있는 확장 인터페이스(672)를 통해 디바이스(650)에 접속될 수 있다. 이러한 확장 메모리(674)는 디바이스(650)를 위한 여분의 저장 공간을 제공할 수 있거나, 디바이스(650)에 대한 애플리케이션들 또는 다른 정보를 또한 저장할 수 있다. 구체적으로, 확장 메모리(674)는 앞서 설명한 프로세스들을 실행하거나 보완하기 위한 명령들을 포함할 수 있고, 보안 정보를 또한 포함할 수 있다. 따라서 예를 들어, 확장 메모리(674)는 디바이스(650)에 대한 보안 모듈로서 제공될 수 있고, 디바이스(650)의 보안 사용을 허용하는 명령들로 프로그래밍될 수 있다. 또한, SIMM 카드들을 통해 보안 애플리케이션들이, SIMM 카드 상의 식별 정보를 해킹 불가능하게 하는 등의 추가 정보와 함께 제공될 수 있다.
[0074] 메모리는 예를 들어, 아래에서 논의되는 바와 같이, 플래시 메모리 및/또는 NVRAM 메모리를 포함할 수 있다. 한 구현에서, 컴퓨터 프로그램 제품은 정보 캐리어로 유형적으로 구현된다. 컴퓨터 프로그램 제품은 실행될 때, 앞서 설명한 것들과 같은 하나 이상의 방법들을 수행하는 명령들을 포함한다. 정보 캐리어는 메모리(664), 확장 메모리(674) 또는 프로세서(652) 상의 메모리와 같은 컴퓨터 판독 가능 또는 기계 판독 가능 매체이며, 이는 예를 들어, 트랜시버(668) 또는 외부 인터페이스(662)를 통해 수신될 수 있다.
[0075] 디바이스(650)는 필요한 곳에 디지털 신호 처리 회로를 포함할 수 있는 통신 인터페이스(666)를 통해 무선으로 통신할 수 있다. 통신 인터페이스(666)는 무엇보다도, GSM 음성 호출들, SMS, EMS 또는 MMS 메시징, CDMA, TDMA, PDC, WCDMA, CDMA2000 또는 GPRS와 같은 다양한 모드들 또는 프로토콜들 하에서의 통신들을 제공할 수 있다. 이러한 통신은 예를 들어, 무선 주파수 트랜시버(668)를 통해 발생할 수 있다. 또한, 이를테면, 블루투스, WiFi 또는 (도시되지 않은) 다른 그러한 트랜시버를 사용하여 단거리 통신이 발생할 수 있다. 또한, 글로벌 포지셔닝 시스템(GPS: Global Positioning System) 수신기 모듈(670)이 디바이스(650) 상에서 구동되는 애플리케이션들에 의해 적절하게 사용될 수 있는 추가 내비게이션 및 위치 관련 무선 데이터를 디바이스(650)에 제공할 수 있다.
[0076] 디바이스(650)는 또한 사용자로부터 구두 정보를 수신하여 이를 사용 가능한 디지털 정보로 변환할 수 있는 오디오 코덱(660)을 사용하여 청각적으로 통신할 수 있다. 오디오 코덱(660)은 마찬가지로, 예를 들어 디바이스(650)의 핸드셋에서, 이를테면 스피커를 통해 사용자를 위한 가청 사운드를 생성할 수 있다. 이러한 사운드는 음성 전화 호출들로부터의 사운드를 포함할 수 있고, 녹음된 사운드(예를 들어, 음성 메시지들, 음악 파일들 등)를 포함할 수 있으며, 디바이스(650) 상에서 동작하는 애플리케이션들에 의해 생성된 사운드를 또한 포함할 수 있다.
[0077] 컴퓨팅 디바이스(650)는 도면에 도시된 바와 같이, 다수의 서로 다른 형태들로 구현될 수 있다. 예를 들면, 이는 셀룰러 전화(680)로서 구현될 수 있다. 이는 또한 스마트폰(682), 개인용 디지털 보조기기, 또는 다른 유사한 모바일 디바이스의 일부로서 구현될 수 있다.
[0078] 여기서 설명된 시스템들 및 기술들의 다양한 구현들은 디지털 전자 회로, 집적 회로, 특수 설계된 주문형 집적 회로(ASIC: application specific integrated circuit)들, 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 및/또는 이들의 결합들로 실현될 수 있다. 이러한 다양한 구현들은 저장 시스템, 적어도 하나의 입력 디바이스 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령들을 수신하고 이들에 데이터 및 명령들을 송신하도록 결합된, 특수 또는 범용일 수 있는 적어도 하나의 프로그래밍 가능 프로세서를 포함하는 프로그래밍 가능 시스템 상에서 실행 가능하고 그리고/또는 해석 가능한 하나 이상의 컴퓨터 프로그램들에서의 구현을 포함할 수 있다.
[0079] (프로그램들, 소프트웨어, 소프트웨어 애플리케이션들 또는 코드로도 또한 알려진) 이러한 컴퓨터 프로그램들은 프로그래밍 가능 프로세서에 대한 기계 명령들을 포함하며, 고레벨 절차적 그리고/또는 객체 지향 프로그래밍 언어로, 그리고/또는 어셈블리/기계 언어로 구현될 수 있다. 본 명세서에서 사용된 바와 같이, "기계 판독 가능 매체” 및 "컴퓨터 판독 가능 매체"라는 용어들은 기계 판독 가능 신호로서 기계 명령들을 수신하는 기계 판독 가능 매체를 포함하여, 프로그래밍 가능한 프로세서에 기계 명령들 및/또는 데이터를 제공하는 데 사용되는 임의의 컴퓨터 프로그램 제품, 장치 및/또는 디바이스(예컨대, 자기 디스크들, 광 디스크들, 메모리, 프로그래밍 가능한 로직 디바이스(PLD: Programmable Logic Device)들)를 의미한다. "기계 판독 가능 신호"라는 용어는 기계 명령들 및/또는 데이터를 프로그래밍 가능 프로세서에 제공하는 데 사용되는 임의의 신호를 의미한다.
[0080] 사용자와의 상호 작용을 제공하기 위해, 여기서 설명된 시스템들 및 기술들은 사용자에게 정보를 디스플레이하기 위한 디스플레이 디바이스(예컨대, 음극선관(CRT: cathode ray tube) 또는 액정 디스플레이(LCD: liquid crystal display) 모니터) 및 사용자가 컴퓨터에 입력을 제공할 수 있게 하는 키보드와 포인팅 디바이스(예컨대, 마우스 또는 트랙볼)를 갖는 컴퓨터 상에 구현될 수 있다. 다른 종류들의 디바이스들이 사용자와의 상호 작용을 제공하는데 역시 사용될 수 있는데; 예를 들어, 사용자에게 제공되는 피드백은 임의의 형태의 감각 피드백(예컨대, 시각 피드백, 청각 피드백 또는 촉각 피드백)일 수 있고; 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다.
[0081] 여기서 설명된 시스템들 및 기술들은 (예를 들어, 데이터 서버로서) 백엔드 컴포넌트를 포함하는, 또는 미들웨어 컴포넌트(예를 들어, 애플리케이션 서버)를 포함하는, 또는 프론트엔드 컴포넌트(예를 들어, 여기서 설명된 시스템들 및 기술들의 구현과 사용자가 상호 작용할 수 있게 하는 그래픽 사용자 인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터)를 포함하는 컴퓨팅 시스템, 또는 이러한 백엔드, 미들웨어 또는 프론트엔드 컴포넌트들의 임의의 결합으로 구현될 수 있다. 시스템의 컴포넌트들은 임의의 형태 또는 매체의 디지털 데이터 통신(예를 들면, 통신 네트워크)에 의해 상호 접속될 수 있다. 통신 네트워크들의 예들은 근거리 네트워크("LAN(local area network)"), 광역 네트워크("WAN(wide area network)"), (애드 혹 또는 정적 멤버들을 갖는) 피어 투 피어 네트워크들, 그리드 컴퓨팅 인프라구조들 및 인터넷을 포함한다. 시스템의 컴포넌트들은 또한, 가상 머신 인스턴스들 또는 컨테이너 인스턴스들과 같은 소프트웨어 인스턴스들을 실행하기 위한 하나 이상의 가상 환경들을 포함하는 컴퓨팅 디바이스들(예컨대, 클라이언트들 또는 서버들)일 수 있다. 가상 환경들은 실행 중인 소프트웨어 인스턴스들에 하드웨어, 소프트웨어 및 다른 리소스들의 가상 표현들을 제공할 수 있다.
[0082] 컴퓨팅 시스템은 클라이언트들 및 서버들을 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로로부터 원거리이며 일반적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는, 각각의 컴퓨터들 상에서 구동되며 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램들에 의해 발생한다. 일부 구현들에서, 서버들은 통신 네트워크를 통해 클라이언트들에 의해 액세스되는 클라우드 컴퓨팅 시스템 내의 노드들일 수 있다.
[0083] 몇몇 구현들이 위에서 상세히 설명되었지만, 다른 변형들이 가능하다. 추가로, 도면들에 도시된 논리 흐름들은 바람직한 결과들을 달성하기 위해, 도시된 특정 순서 또는 순차적인 순서를 필요로 하는 것은 아니다. 다른 단계들이 제공될 수 있거나, 설명된 흐름들로부터 단계들이 제거될 수 있으며, 설명된 시스템들에 다른 컴포넌트들이 추가되거나 설명된 시스템들로부터 다른 컴포넌트들이 제거될 수 있다. 이에 따라, 다른 구현들이 다음의 청구항들의 범위 내에 있다.

Claims (20)

  1. 컴퓨터에서 구현되는 방법으로서,
    상기 방법은 데이터 프로세싱 하드웨어에 의해 실행될 때, 상기 데이터 프로세싱 하드웨어로 하여금 동작들을 수행하게 하고, 상기 동작들은:
    클라우드 컴퓨팅 네트워크 내의 노드를 생성하고 구성하기 위해 사용자 시스템으로부터 요청을 수신하는 동작 ― 상기 요청은 생성되고 구성될 상기 노드와 연관된 속성들을 포함함 ―;
    상기 사용자 시스템이 상기 노드를 생성하고 구성할 권한이 있는지를 검증하는 동작;
    상기 사용자 시스템이 상기 노드를 생성하고 구성할 권한이 있는 것을 검증하는 것에 대한 응답으로:
    상기 노드를 생성하는 동작;
    상기 생성된 노드로부터 구성 요청을 수신하는 동작 ― 상기 구성 요청은 상기 생성된 노드와 연관된 속성들에 적어도 부분적으로 기초하여 상기 생성된 노드 상에서 수행할 구성 액션들을 식별함 ―;
    상기 생성된 노드로부터 상기 구성 요청을 수신하는 것에 대한 응답으로, 상기 식별된 구성 액션들 중 하나 이상의 구성 액션들에 대응하는 구성 커맨드를 상기 생성된 노드에 전송하는 동작 ― 상기 생성된 노드는 상기 식별된 구성 액션들 중 하나 이상의 구성 액션들을 수행하기 위해 상기 구성 커맨드의 수신 시 상기 구성 커맨드를 실행함 ―;
    상기 생성된 노드로부터, 상기 생성된 노드에 의해 상기 구성 커맨드의 실행과 관련된 보고 정보를 수신하는 동작; 및
    상기 구성 커맨드가 상기 보고 정보에 기초하여 상기 생성된 노드에 의해 성공적으로 실행되었음을 결정하는 동작
    을 포함하는,
    컴퓨터에서 구현되는 방법.
  2. 제1항에 있어서,
    상기 동작들은 상기 생성된 노드가 생성되었다는 확인 응답을 상기 사용자 시스템에 전송하는 동작을 더 포함하는,
    컴퓨터에서 구현되는 방법.
  3. 제1항에 있어서,
    상기 요청은 상기 사용자 시스템의 아이덴티티를 더 포함하는,
    컴퓨터에서 구현되는 방법.
  4. 제1항에 있어서,
    상기 속성들은 노드 인스턴스의 타입을 포함하는,
    컴퓨터에서 구현되는 방법.
  5. 제4항에 있어서,
    상기 구성 요청은 상기 노드 인스턴스의 타입에 적어도 부분적으로 기초한 구성 정책을 포함하고, 상기 구성 커맨드는 상기 구성 정책에 기초하는,
    컴퓨터에서 구현되는 방법.
  6. 제1항에 있어서,
    상기 요청은 상기 요청을 식별하기 위한 고유 식별자를 더 포함하는,
    컴퓨터에서 구현되는 방법.
  7. 제1항에 있어서,
    상기 동작들은 상기 생성된 노드로부터의 상기 구성 커맨드에 대응하는 구성 보고를 전송하는 동작을 더 포함하고, 상기 구성 보고는 상기 생성된 노드에 의한 상기 구성 커맨드의 실행과 관련된 보고 정보를 포함하는,
    컴퓨터에서 구현되는 방법.
  8. 제7항에 있어서,
    상기 구성 커맨드는 제1 구성 커맨드이고,
    상기 동작들은,
    상기 보고 정보에 기초하여, 상기 생성된 노드에 의해 상기 제1 구성 커맨드가 성공적으로 실행되었음을 결정하는 동작; 및
    상기 제1 구성 커맨드가 성공적으로 실행되었다는 결정에 대한 응답으로 하나 이상의 추가 구성 액션들에 대응하는 제2 구성 커맨드를 상기 생성된 노드에 전송하는 동작
    을 더 포함하고,
    상기 하나 이상의 추가 구성 액션들은 상기 식별된 구성 액션들로부터 선택되고, 상기 제1 구성 커맨드에 대응하는 구성 액션들과는 다른,
    컴퓨터에서 구현되는 방법.
  9. 제7항에 있어서,
    상기 동작들은:
    상기 보고 정보에 기초하여, 상기 생성된 노드에 의해 상기 구성 커맨드가 성공적으로 실행되지 않았음을 결정하는 동작; 및
    상기 구성 커맨드가 성공적으로 실행되지 않았다는 결정에 대한 응답으로 상기 생성된 노드가 성공적으로 구성되지 않았음을 상기 생성된 노드와 연관된 관리 컴포넌트에 통지하는 동작
    을 더 포함하는,
    컴퓨터에서 구현되는 방법.
  10. 제1항에 있어서,
    상기 사용자 시스템이 상기 노드를 생성하고 구성할 권한이 있는지를 검증하는 동작은 상기 속성들이 상기 데이터 프로세싱 하드웨어와 연관된 보안 정책과 일치함을 검증하는 동작을 포함하는,
    컴퓨터에서 구현되는 방법.
  11. 시스템으로서,
    데이터 프로세싱 하드웨어; 및
    상기 데이터 프로세싱 하드웨어와 통신하는 메모리 하드웨어를 포함하고,
    상기 메모리 하드웨어는, 상기 데이터 프로세싱 하드웨어 상에서 실행될 때 상기 데이터 프로세싱 하드웨어로 하여금:
    클라우드 컴퓨팅 네트워크 내의 노드를 생성하고 구성하기 위해 사용자 시스템으로부터 요청을 수신하는 동작 ― 상기 요청은 생성되고 구성될 상기 노드와 연관된 속성들을 포함함 ―;
    상기 사용자 시스템이 상기 노드를 생성하고 구성할 권한이 있는지를 검증하는 동작;
    상기 사용자 시스템이 상기 노드를 생성하고 구성할 권한이 있는 것을 검증하는 것에 대한 응답으로:
    상기 노드를 생성하는 동작;
    상기 생성된 노드로부터 구성 요청을 수신하는 동작 ― 상기 구성 요청은 상기 생성된 노드와 연관된 속성들에 적어도 부분적으로 기초하여 상기 생성된 노드 상에서 수행할 구성 액션들을 식별하는 동작;
    상기 생성된 노드로부터 상기 구성 요청을 수신하는 것에 대한 응답으로 상기 식별된 구성 액션들 중 하나 이상의 구성 액션들에 대응하는 구성 커맨드를 상기 생성된 노드에 전송하는 동작 ― 상기 생성된 노드는 상기 식별된 구성 액션들 중 하나 이상의 구성 액션들을 수행하기 위해 상기 구성 커맨드의 수신 시 상기 구성 커맨드를 실행함 ―;
    상기 생성된 노드로부터, 상기 생성된 노드에 의해 상기 구성 커맨드의 실행과 관련된 보고 정보를 수신하는 동작; 및
    상기 구성 커맨드가 상기 보고 정보에 기초하여 상기 생성된 노드에 의해 성공적으로 실행되었음을 결정하는 동작
    을 포함하는 동작들을 수행하게 하는 명령들을 저장하는,
    시스템.
  12. 제11항에 있어서,
    상기 동작들은 상기 생성된 노드가 생성되었다는 확인 응답을 상기 사용자 시스템에 전송하는 동작을 더 포함하는,
    시스템.
  13. 제11항에 있어서,
    상기 요청은 상기 사용자 시스템의 아이덴티티를 더 포함하는,
    시스템.
  14. 제11항에 있어서,
    상기 속성들은 노드 인스턴스의 타입을 포함하는,
    시스템.
  15. 제14항에 있어서,
    상기 구성 요청은 상기 노드 인스턴스의 타입에 적어도 부분적으로 기초한 구성 정책을 포함하고, 상기 구성 커맨드는 상기 구성 정책에 기초하는,
    시스템.
  16. 제11항에 있어서,
    상기 요청은 상기 요청을 식별하기 위한 고유 식별자를 더 포함하는,
    시스템.
  17. 제11항에 있어서,
    상기 동작들은 상기 생성된 노드로부터의 상기 구성 커맨드에 대응하는 구성 보고를 전송하는 동작을 더 포함하고, 상기 구성 보고는 상기 생성된 노드에 의한 상기 구성 커맨드의 실행과 관련된 보고 정보를 포함하는,
    시스템.
  18. 제17항에 있어서,
    상기 구성 커맨드는 제1 구성 커맨드이고,
    상기 동작들은,
    상기 보고 정보에 기초하여, 상기 생성된 노드에 의해 상기 제1 구성 커맨드가 성공적으로 실행되었음을 결정하는 동작; 및
    상기 제1 구성 커맨드가 성공적으로 실행되었다는 결정에 대한 응답으로, 하나 이상의 추가 구성 액션들에 대응하는 제2 구성 커맨드를 상기 생성된 노드에 전송하는 동작
    을 더 포함하고,
    상기 하나 이상의 추가 구성 액션들은 상기 식별된 구성 액션들로부터 선택되고, 상기 제1 구성 커맨드에 대응하는 구성 액션들과는 다른,
    시스템.
  19. 제17항에 있어서,
    상기 동작들은:
    상기 보고 정보에 기초하여, 상기 생성된 노드에 의해 상기 구성 커맨드가 성공적으로 실행되지 않았음을 결정하는 동작; 및
    상기 구성 커맨드가 성공적으로 실행되지 않았다는 결정에 대한 응답으로, 상기 생성된 노드가 성공적으로 구성되지 않았음을 상기 생성된 노드와 연관된 관리 컴포넌트에 통지하는 동작
    을 더 포함하는,
    시스템.
  20. 제11항에 있어서,
    상기 사용자 시스템이 상기 노드를 생성하고 구성할 권한이 있는지를 검증하는 동작은 상기 속성들이 상기 데이터 프로세싱 하드웨어와 연관된 보안 정책과 일치함을 검증하는 동작을 포함하는,
    시스템.
KR1020217033405A 2016-06-16 2016-06-16 클라우드 컴퓨팅 노드들의 보안 구성 KR102387312B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020227012133A KR102500737B1 (ko) 2016-06-16 2016-06-16 클라우드 컴퓨팅 노드들의 보안 구성

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
PCT/US2016/037786 WO2017217988A1 (en) 2016-06-16 2016-06-16 Secure configuration of cloud computing nodes
KR1020207035410A KR102315895B1 (ko) 2016-06-16 2016-06-16 클라우드 컴퓨팅 노드들의 보안 구성

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020207035410A Division KR102315895B1 (ko) 2016-06-16 2016-06-16 클라우드 컴퓨팅 노드들의 보안 구성

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020227012133A Division KR102500737B1 (ko) 2016-06-16 2016-06-16 클라우드 컴퓨팅 노드들의 보안 구성

Publications (2)

Publication Number Publication Date
KR20210129256A KR20210129256A (ko) 2021-10-27
KR102387312B1 true KR102387312B1 (ko) 2022-04-14

Family

ID=56194627

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020207035410A KR102315895B1 (ko) 2016-06-16 2016-06-16 클라우드 컴퓨팅 노드들의 보안 구성
KR1020197001416A KR102191347B1 (ko) 2016-06-16 2016-06-16 클라우드 컴퓨팅 노드들의 보안 구성
KR1020227012133A KR102500737B1 (ko) 2016-06-16 2016-06-16 클라우드 컴퓨팅 노드들의 보안 구성
KR1020217033405A KR102387312B1 (ko) 2016-06-16 2016-06-16 클라우드 컴퓨팅 노드들의 보안 구성

Family Applications Before (3)

Application Number Title Priority Date Filing Date
KR1020207035410A KR102315895B1 (ko) 2016-06-16 2016-06-16 클라우드 컴퓨팅 노드들의 보안 구성
KR1020197001416A KR102191347B1 (ko) 2016-06-16 2016-06-16 클라우드 컴퓨팅 노드들의 보안 구성
KR1020227012133A KR102500737B1 (ko) 2016-06-16 2016-06-16 클라우드 컴퓨팅 노드들의 보안 구성

Country Status (6)

Country Link
US (4) US10785099B2 (ko)
EP (2) EP3465434A1 (ko)
JP (1) JP6707153B2 (ko)
KR (4) KR102315895B1 (ko)
CN (2) CN109564527B (ko)
WO (1) WO2017217988A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102571782B1 (ko) * 2022-12-16 2023-08-29 스트라토 주식회사 리소스 관리 풀을 이용한 가상 머신 재배치를 위한 장치 및 방법

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3465434A1 (en) * 2016-06-16 2019-04-10 Google LLC Secure configuration of cloud computing nodes
US10644946B2 (en) * 2017-06-19 2020-05-05 Cisco Technology, Inc. Detection of overlapping subnets in a network
TWI649657B (zh) * 2017-12-20 2019-02-01 雙子星雲端運算股份有限公司 雲端服務管理方法
US11683213B2 (en) * 2018-05-01 2023-06-20 Infra FX, Inc. Autonomous management of resources by an administrative node network
US10887192B2 (en) 2018-08-03 2021-01-05 Red Hat, Inc. Targeted network discovery and visualizations
CN109861922B (zh) 2019-02-21 2022-03-29 北京百度网讯科技有限公司 用于控制流量的方法和装置
US11108636B2 (en) * 2019-10-23 2021-08-31 Cisco Technology, Inc. Integrity verification for managing network configurations
US11388228B2 (en) 2019-10-31 2022-07-12 Keysight Technologies, Inc. Methods, systems and computer readable media for self-replicating cluster appliances
CN110928598B (zh) * 2019-11-11 2024-01-30 南方电网财务有限公司 系统配置方法、装置、计算机设备和存储介质
KR20210064826A (ko) 2019-11-26 2021-06-03 이선재 클라우드 컴퓨팅 기반의 스마트 메모 관리 시스템
CN114661427B (zh) * 2022-05-18 2022-08-19 深圳致星科技有限公司 部署容器化应用服务的计算集群的节点管理方法及系统
US20230388180A1 (en) * 2022-05-31 2023-11-30 Microsoft Technology Licensing, Llc Techniques for provisioning workspaces in cloud-based computing platforms
CN115955481A (zh) * 2022-12-12 2023-04-11 支付宝(杭州)信息技术有限公司 应急响应方法和装置
KR102571781B1 (ko) 2022-12-14 2023-08-29 스트라토 주식회사 클러스터 노드 추천 시스템 및 그 제어방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101137049B1 (ko) 2003-08-28 2012-04-23 마이크로소프트 코포레이션 호스트된 리소스로의 위임된 관리
JP2014505924A (ja) 2010-12-21 2014-03-06 インターナショナル・ビジネス・マシーンズ・コーポレーション 信頼できるホスト環境が仮想計算機(vm)の要件に準拠しているという妥当性確認を提供するためのシステム、方法、コンピュータ・プログラム製品、およびコンピュータ・プログラム
US20140108639A1 (en) 2012-10-11 2014-04-17 International Business Machines Corporation Transparently enforcing policies in hadoop-style processing infrastructures

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7054924B1 (en) * 2000-09-29 2006-05-30 Cisco Technology, Inc. Method and apparatus for provisioning network devices using instructions in extensible markup language
US9547485B2 (en) * 2006-03-31 2017-01-17 Prowess Consulting, Llc System and method for deploying a virtual machine
US8505078B2 (en) * 2008-12-28 2013-08-06 Qualcomm Incorporated Apparatus and methods for providing authorized device access
WO2011072899A1 (en) * 2009-12-15 2011-06-23 International Business Machines Corporation Method for operating cloud computing services and cloud computing information system
US8856300B2 (en) 2010-05-18 2014-10-07 At&T Intellectual Property I, L.P. End-to-end secure cloud computing
US8676939B2 (en) * 2010-08-26 2014-03-18 Adobe Systems Incorporated Dynamic configuration of applications deployed in a cloud
US8706869B2 (en) * 2011-06-14 2014-04-22 International Business Machines Corporation Distributed cloud placement software
US20130117806A1 (en) * 2011-11-09 2013-05-09 Microsoft Corporation Network based provisioning
GB2498708B (en) * 2012-01-17 2020-02-12 Secure Cloudlink Ltd Security management for cloud services
US10025638B2 (en) 2012-07-02 2018-07-17 Vmware, Inc. Multiple-cloud-computing-facility aggregation
US8887056B2 (en) * 2012-08-07 2014-11-11 Advanced Micro Devices, Inc. System and method for configuring cloud computing systems
US9292352B2 (en) * 2012-08-10 2016-03-22 Adobe Systems Incorporated Systems and methods for cloud management
US20140195672A1 (en) * 2013-01-09 2014-07-10 Microsoft Corporation Automated failure handling through isolation
CA2898478C (en) * 2013-01-22 2017-11-14 Amazon Technologies, Inc. Instance host configuration
US9202082B2 (en) * 2013-03-14 2015-12-01 Intel Corporation Secure data sharing with publicly accessible computing nodes
US9172621B1 (en) * 2013-04-01 2015-10-27 Amazon Technologies, Inc. Unified account metadata management
US9471349B1 (en) * 2013-09-06 2016-10-18 Amazon Technologies, Inc. Computing resource provisioning failure mitigation
US10200239B2 (en) * 2013-12-27 2019-02-05 Red Hat Israel, Ltd. Normalized management network
US20160342801A1 (en) * 2014-06-25 2016-11-24 defend7, Inc. Containerized security as a service
US9424065B2 (en) * 2014-06-26 2016-08-23 Vmware, Inc. Methods and apparatus to scale application deployments in cloud computing environments using virtual machine pools
US10097410B2 (en) * 2014-06-26 2018-10-09 Vmware, Inc. Methods and apparatus to scale application deployments in cloud computing environments
US9729506B2 (en) * 2014-08-22 2017-08-08 Shape Security, Inc. Application programming interface wall
US9672069B2 (en) * 2014-09-10 2017-06-06 Verizon Patent And Licensing Inc. Dynamic zone-based cloud management
US10091055B2 (en) * 2015-02-13 2018-10-02 Amazon Technologies, Inc. Configuration service for configuring instances
US20160337356A1 (en) * 2015-05-14 2016-11-17 RightScale Inc. Deployment templates with embedded permissions
JP6550945B2 (ja) * 2015-06-10 2019-07-31 富士通株式会社 判定制御プログラム、判定制御方法及び仮想マシン管理装置
US20170180308A1 (en) * 2015-12-18 2017-06-22 Bluedata Software, Inc. Allocation of port addresses in a large-scale processing environment
US10592221B2 (en) * 2016-05-03 2020-03-17 Hewlett Packard Enterprese Development Lp Parallel distribution of application services to virtual nodes
EP3465434A1 (en) * 2016-06-16 2019-04-10 Google LLC Secure configuration of cloud computing nodes

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101137049B1 (ko) 2003-08-28 2012-04-23 마이크로소프트 코포레이션 호스트된 리소스로의 위임된 관리
JP2014505924A (ja) 2010-12-21 2014-03-06 インターナショナル・ビジネス・マシーンズ・コーポレーション 信頼できるホスト環境が仮想計算機(vm)の要件に準拠しているという妥当性確認を提供するためのシステム、方法、コンピュータ・プログラム製品、およびコンピュータ・プログラム
US20140108639A1 (en) 2012-10-11 2014-04-17 International Business Machines Corporation Transparently enforcing policies in hadoop-style processing infrastructures

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102571782B1 (ko) * 2022-12-16 2023-08-29 스트라토 주식회사 리소스 관리 풀을 이용한 가상 머신 재배치를 위한 장치 및 방법

Also Published As

Publication number Publication date
US10785099B2 (en) 2020-09-22
CN116527397A (zh) 2023-08-01
CN109564527B (zh) 2023-07-11
KR102500737B1 (ko) 2023-02-16
US20200389355A1 (en) 2020-12-10
KR102191347B1 (ko) 2020-12-15
US11310108B2 (en) 2022-04-19
US11750456B2 (en) 2023-09-05
KR20210129256A (ko) 2021-10-27
EP3465434A1 (en) 2019-04-10
CN109564527A (zh) 2019-04-02
KR20200140943A (ko) 2020-12-16
US20220038338A1 (en) 2022-02-03
JP6707153B2 (ja) 2020-06-10
EP4002118A1 (en) 2022-05-25
JP2019522282A (ja) 2019-08-08
US11750455B2 (en) 2023-09-05
US20220210013A1 (en) 2022-06-30
US20190149410A1 (en) 2019-05-16
KR20190017997A (ko) 2019-02-20
WO2017217988A1 (en) 2017-12-21
KR102315895B1 (ko) 2021-10-20
KR20220051274A (ko) 2022-04-26

Similar Documents

Publication Publication Date Title
KR102387312B1 (ko) 클라우드 컴퓨팅 노드들의 보안 구성
US20210297410A1 (en) Mec platform deployment method and apparatus
US10558407B2 (en) Availability of devices based on location
US10133525B2 (en) Autonomous secure printing
US11777865B2 (en) Discovery and adjustment of path maximum transmission unit
US11546287B2 (en) Multi-device workspace notifications
US11770436B2 (en) Web client with response latency awareness

Legal Events

Date Code Title Description
A107 Divisional application of patent
E701 Decision to grant or registration of patent right
GRNT Written decision to grant