JP2019522282A - クラウドコンピューティングノードのセキュアな設定 - Google Patents

クラウドコンピューティングノードのセキュアな設定 Download PDF

Info

Publication number
JP2019522282A
JP2019522282A JP2018565727A JP2018565727A JP2019522282A JP 2019522282 A JP2019522282 A JP 2019522282A JP 2018565727 A JP2018565727 A JP 2018565727A JP 2018565727 A JP2018565727 A JP 2018565727A JP 2019522282 A JP2019522282 A JP 2019522282A
Authority
JP
Japan
Prior art keywords
node
configuration
setting
information
command
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2018565727A
Other languages
English (en)
Other versions
JP6707153B2 (ja
Inventor
アラウージョ,ネルソン
バキリアン,モフセン
イェジ,スティーブン・フランシス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of JP2019522282A publication Critical patent/JP2019522282A/ja
Application granted granted Critical
Publication of JP6707153B2 publication Critical patent/JP6707153B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

クラウドコンピューティングネットワークにおいてノードを設定するための方法およびシステムを記載する。1つの例示的方法は、ネットワークを介して、クラウドコンピューティングネットワークにおける特定のノードから、特定のノードについてのノード情報を含む設定要求を受信するステップと、ノード情報に少なくとも部分的に基づいて、特定のノードが設定のために認可されていることを確認するステップと、特定のノードが設定のために認可されていることを確認したことに応じて、ノード情報に少なくとも部分的に基づいて特定のノード上で実行すべき設定動作を識別するステップと、識別された1つ以上の設定動作に対応する設定コマンドを、ネットワークを介して、特定のノードに送信するステップとを含み、特定のノードは、設定コマンドを受信すると設定コマンドを実行して、対応する設定動作を実行する。

Description

背景
本明細書は、概して、クラウドコンピューティングシステムにおいてノードをセキュアに設定することに関する。
クラウドコンピューティングネットワークにおいては、複数のコンピューティングデバイスがネットワークによって接続され得るとともに、演算タスクを協働的におよび/または平行に実行し得る。大規模な分散型システムは何百またはさらには何千もの別個のコンピューティングデバイスを含み得る。コンピューティングデバイスは、(同じ設定を共有する)同質または(さまざまな設定を有する)異質なものであり得る。コンピューティングデバイスはさらに、複数のコンピューティングノード(たとえば、仮想マシンインスタンス、コンテナインスタンス)が単一の物理的なコンピューティングデバイス上でホストされることを可能にする仮想環境をホストし得る。
概要
概して、この明細書中に記載されている主題の一局面は、システムと、データ処理装置によって実行される方法とにおいて具体化され得る。当該システムおよび方法は、ネットワークを介して、クラウドコンピューティングネットワークにおける特定のノードから、特定のノードについてのノード情報を含む設定要求を受信することと、ノード情報に少なくとも部分的に基づいて特定のノードが設定のために認可されていることを確認することと、特定のノードが設定のために認可されていることを確認したことに応じて、ノード情報に少なくとも部分的に基づいて特定のノード上で実行すべき設定動作を識別することと、識別された1つ以上の設定動作に対応する設定コマンドを、ネットワークを介して、特定のノードに送信することとを含む。特定のノードは、設定コマンドを受信するとこれを実行して、対応する設定動作を実行する。
概して、この明細書中に記載される主題の1つの革新的な局面は、設定コントローラによってソフトウェアデプロイメントを制御するステップを含む方法で具体化することができる。この場合、ソフトウェアは、1グループの設定マネージャのうち1つの設定マネージャによってクラウドコンピューティング環境におけるノードにデプロイされる。1つのこのような方法は、ノードによって、ノードを設定するように設定コントローラに要求するステップと、設定コントローラが、ノードを設定するために用いられるべき設定マネージャを決定するステップと、設定コントローラが、ノードと設定マネージャとの間の信頼関係を確立するステップと、確立された信頼関係に基づいて設定マネージャを用いてノード上にソフトウェアをデプロイするステップとを含む。
別の局面においては、設定マネージャは、当該1グループの設定マネージャからアドミニストレータによって予め決定されていてもよい。
いくつかの局面においては、信頼関係は、設定マネージャのサーバとクライアントとの間で確立されてもよく、この場合、上記サーバによって提供されるソフトウェアの上記クライアント上でデプロイメントが行われ、上記クライアントがノード上で実行されている。
いくつかの局面においては、設定コントローラは、ノード、ノード上でのソフトウェアデプロイメントの状態、および/または、設定を受信したとき、ノード設定が成功したときもしくは失敗したときに取られるべき1つ以上の動作、についての情報を維持する。
別の局面においては、ノード上にデプロイされるべきソフトウェアが、設定コントローラによって決定される設定によって特定される。
別の局面においては、設定は、アドミニストレータによって設定コントローラに提供される。
いくつかの局面においては、クラウドコンピューティング環境および/または設定マネージャにアクセスするためのキーは、設定コントローラによって格納されて機密に維持され、設定コントローラは、当該キーを用いて信頼関係を確立する。
別の局面においては、クラウドコンピューティング環境および/または設定マネージャにアクセスするためのキーは、設定マネージャが知見しているエンティティによって作成されて格納される。この場合、エンティティは、クラウドコンピューティング環境、設定マネージャ、または、信頼された第三者であり得るとともに、設定コントローラは、上記知見を用いて信頼関係を確立する。場合によっては、キーは暗号化キーである。
いくつかの局面においては、第1のパーティと第2のパーティとの信頼関係を確立するということは、第2のパーティへのアクセスを認可するのに使用可能なクレデンシャルを第1のパーティに提供すること、または、他のそれぞれのパーティへのアクセスを認可するのに使用可能なクレデンシャルを各々のパーティに提供することを意味する。
この明細書中に記載されるいくつかの実現例においては、特定のノードが設定のために認可されていることを確認する/ノードと設定マネージャとの間の信頼関係を確立するプロセスは、システムの全体的なセキュリティを高めてセキュアな設定を容易にするために間接層(a layer of indirection)を提供する。場合によっては、当該プロセスは、個々のノードがどのように設定されるかを制御するための個々のノードの能力を排除し、これにより、認可されていないノード、確認されていないノードまたは損なわれていないノードが、アドホックな態様で、機密情報を含み得る設定リソースを要求することを防止する。これにより、認可されていないノード、確認されていないノードまたは損なわれていないノードが機密に関わる設定情報にアクセスし得るリスクが低減され得る。
当該プロセスはまた、さまざまな既存の設定マネージャと統合することによって融通性を提供してもよく、これにより、アドミニストレータが、特定のノードを設定するために用いられるべき設定マネージャを選ぶことを可能にし得る。さまざまな設定マネージャおよび設定ツールと統合することによっても、複数の設定マネージャおよび設定ツールを利用して異種のクラウドコンピューティングネットワークにおいて当該プロセスを実現することが可能になり得る。当該プロセスはまた、通信用の共通のクライアント・サーバプロトコルを用いて実現されてもよく、これにより、既存のネットワークおよびシステムの再設定を最小限にすることを可能にし得る。
この明細書に記載される主題の1つ以上の実現例の詳細が、添付の図面および以下の説明において記載されている。主題の他の特徴、局面および潜在的利点は、以下の説明、添付の図面および添付の特許請求の範囲から明らかになるだろう。
クラウドコンピューティングシステムにおいてリソースをセキュアに設定するための例示的な環境を示す図である。 クラウドコンピューティングシステムにおいてリソースをセキュアに設定するための例示的なプロセスを示すスイムレーン図である。 クラウドコンピューティングシステムにおいてリソースをセキュアに設定するための例示的なプロセスを示すスイムレーン図である。 図1の環境において用いられる例示的な設定コントローラを示す図である。 クラウドコンピューティングシステムにおいてリソースをセキュアに設定するための例示的なプロセスを示すフローチャートである。 この明細書において記載されるシステムおよび方法を実現するために用いられ得るコンピューティングデバイスを示す図である。
さまざまな図面における同様の参照番号および符号は同様の要素を示す。
詳細な説明
CHEF(登録商標)、PUPPET、SALTおよびANSIBLEなどの設定マネージャは、ネットワークを介してソフトウェアをコンピューティングデバイスにデプロイするためのソフトウェアプログラムである。これらの設定マネージャは、内部ネットワークを介してソフトウェアを分散させるためにオンプレミス環境において用いられることが多い。これらの設定マネージャが多くの有用な特徴を提供しているので、より大規模なクラウドコンピューティングシステムにおいてこれら設定マネージャを用いるための努力が払われてきた。しかしながら、これらの設定マネージャは主に内部ネットワーク使用のために設計されているので、このような努力は、これまで、ロバストなセキュリティ、他のフレームワークとの相互運用性および融通性のあるデプロイメント能力などのクラウドコンピューティングシステムにおいて望ましい多くの特徴によって妨害されてきた。
本開示は、クラウドコンピューティングシステムにおいてノードをセキュアに設定するための方法およびシステムを記載する。記載された解決策は、設定プロセス中にノードに設定アイテムを提供するためのリソースとして既存の設定マネージャを利用する。この解決策は、さまざまなアプリケーションプログラミングインターフェイス(application programming interface:API)を用いて複数のさまざまな種類の設定マネージャをサポートし得るとともに、単一のクラウドコンピューティングシステムにおいてこれらを一緒に用いることを可能にし得る。さらに、この解決策は、リソースに対する需要の増加または変化するネットワーク条件などに応じて、リソースの融通性のあるデプロイメントをサポートする。加えて、潜在的に機密に関わる設定リソースのためのアクセスクレデンシャルの割当て、分布および管理などのセキュリティ対策は、クラウドコンピューティングシステムにおいて、設定リソースまたはノードではなく、上述のシステムによって全体的に管理される。
上述の解決策は、設定時に設定マネージャとノードとの間に間接層を追加する。たとえば、ノードが設定リソースによって設定される場合、信頼関係は設定されるべきノードと設定リソースとの間に確立され得る。概して、設定リソースまたはノードは、セキュアな設定プロセスを確実にするために、信頼されたコンピューティング基盤の一部をなしている(たとえば、認可されていないノードまたは確認されていないノードが、機密情報を含み得る設定リソースにアクセス要求することが防止される)。この明細書中に記載される解決策においては、信頼されたコンピューティング基盤に含まれる設定コントローラは、ノードと設定リソースとの間の信頼関係を仲介し得るものであって、これにより、ノードおよび設定リソースは、信頼されたコンピューティング基盤の一部を設定することなく相互信頼を確立し得る。設定コントローラは、たとえば、設定リソース上のノードのためのアクセスクレデンシャルを設定してリソースへのアクセスに使用されるクレデンシャルをノードに提供することによって、この信頼関係を確立してもよい。設定コントローラによって提供されるこの間接層に基づけば、ノードまたは設定リソースが信頼されたコンピューティング基盤の一部をなしていなくても、ノードのセキュアな設定が実現され得る。信頼されたコンピューティング基盤は、たとえば、潜在的に機密のアクセスクレデンシャルを管理しセキュアにするコンポーネントをシステム内に含み得る。
アドミニストレータは、どの設定マネージャからのどの設定が特定のノードに適用されるべきであるかを規定する1セットの設定ポリシーでシステムを設定し得る。設定ポリシーは1セットのルールとして特定されてもよい。各々のルールは、ノードの特性(たとえば、名前、作成日、所有者など)を1セットの設定データに一致させる。各々のルールはまた、成功したノード設定または失敗したノード設定に対してシステムが取るべき設定動作を特定し得る。設定を得るために、ノードは(たとえばネットワークを介して)システムに要求を送信する。システムがマシンを設定するようにとの要求を受信すると、当該システムは、実行すべき設定動作を決定するために、設定ポリシーのうちノードの特性に一致する1つ以上のルールを見つけ出す。
本解決策は、リソースについての要求に応じて、自動的なノード設定によって融通性をもたらすために既存の設定マネージャと統合されてもよい。既存の設定マネージャは、概して、アドミニストレータが新しいノードをプロビジョニングするために設定マネージャを対話形式で用いている対話環境において機能する。この対話形式のシナリオは、システムの現在の状態に応じて顧客がノードをプロビジョニングすることを希望している融通性のあるシナリオに対しては有用でないかもしれない。本解決策は、要望に応じてノードをプロビジョニングするアドミニストレータの能力を増大させて、設定マネージャを融通性のあるシナリオに適用できるようにする。既存の解決策を備えたこの統合機能はまた、さまざまな異なる既存のクラウド設定において本システムをより容易にデプロイさせる。各々の既存のクラウド設定は、本システムを統合させることのできる1つ以上の設定マネージャを用いてもよい。
セキュリティに関して、いくつかのクラウド設定マネージャは、設定時にノードにアクセスクレデンシャル(たとえば、暗号化キー、ログインクレデンシャルなど)を提供し得るので、設定のために必要とされるアイテム(たとえば、ソフトウェアライブラリ、ソースコードなど)を得るためにネットワークリソースにアクセスできるようになる。このような設定は、セキュリティ上のリスクを呈する可能性がある。というのも、攻撃者がこれらのアクセスクレデンシャルを得るためにいくつかのノードに侵入することができるからである。本開示において記載されるシステムにおいては、アクセスクレデンシャルは、設定システムによって管理され得るとともに、設定されているノードによって管理または維持される必要がない。この局面は、システムの全体的なセキュリティを高めて、セキュアな設定を容易にする。さらに、本システムは、個々のノードがどのように設定されるかを制御するために個々のノードの能力を排除し、これにより、損なわれたノードが、アドホックな態様で、機密情報を含み得る設定リソースを要求するのを防止する。これにより、認可されていないノード、確認されていないノードまたは損なわれたノードが機密に関わる設定情報にアクセスし得るリスクが低減される。
本解決策はまた、特定のノード要求設定が実際にそのように設定されることが認可されていることを確認することによって、高度なセキュリティを提供し得る。当該システムは、ノードが設定されることが認可されていることを確認するために、アドミニストレータによって、特定のノードから受信された設定要求を対応する動作と相互に関連付けてもよい。当該システムはまた、ノードに指示して、さまざまな命令を実行させ得るとともに、当該ノードが本物であって、たとえば攻撃者によって指示された損なわれたノードではないことを確認するための命令を出力させ得る。たとえば、システムは、損なわれたノードが人の攻撃者によって手動で制御されていないことを確認するために短時間に多数の計算を実行するようにノードに指示してもよい。システムはまた、その初期設定に含まれている一意識別子などの情報を提供するようにノードに指示してもよい。このような情報は、ノードが設定を受信することが認可されていることを確認するために、ノードに対する元の作成要求と相互に関連付けることができる。
図1は、クラウドコンピューティングシステムにおいてリソースをセキュアに設定するための例示的な環境100を示す図である。図示のとおり、環境100は、デプロイメントマネージャ120と通信するユーザまたは自動化システム110を含む。デプロイメントマネージャ120は、ユーザ/自動化システム110からの要求に応答して、ノード130(たとえば、仮想マシンインスタンス、コンテナインスタンスまたはクラウドコンピューティングシステムの他のコンポーネント)をデプロイする。設定コントローラ140は、ノード130と対話して、これに設定を提供する。設定コントローラ140は設定ポリシー160に基づいて動作する。設定コントローラ140はまた、ノード130がリソースから設定アイテムを検索することも認可しないように、設定リソース150と対話する。動作時に、ユーザ/自動化システム110は、デプロイメントマネージャ120がノードを作成する(170)ことを要求する。これに応答して、デプロイメントマネージャ120はノード130をデプロイする(172)。初期化されると、ノード130は設定要求174を設定コントローラ140に送信する。設定コントローラ140は、設定要求174に含まれるパラメータに基づいてノード130の設定ポリシー164を識別する。設定コントローラ140は、ノード130に設定コマンド176を発行する。ノード130は、設定コマンド176を実行し、設定コントローラ140にコマンドの結果を提供する。設定コントローラ140はまた、設定リソース150に設定コマンド178を送信してもよい。たとえば、設定コントローラ140のための設定は、ノード130が設定リソース150から設定アイテムを検索する(180)ことを認可するように設定リソース150を設定してもよい。設定コントローラ140はまた、ノード130を、これが設定リソース150にアクセスすることを可能にするアクセスクレデンシャルで(たとえば、設定コマンド176によって)設定してもよい。
ユーザ/自動化システム110は、デプロイメントマネージャ120によってデプロイされるノード130などの、ノードインスタンスを要求するエンティティである。たとえば、ユーザ/自動化システム110は、新しいノードインスタンスを作成するためにユーザインターフェイスと対話するユーザを含み得る。ユーザ/自動化システム110はまた、たとえば、特定のアプリケーションのためのコンピューティングリソースに対する要求の増加に応じて、デプロイメントマネージャ120によって管理されているクラウドコンピューティングシステムの性能の低下に応じて、または、他の事象に応じて、デプロイメントマネージャにノードインスタンスの作成を自動的に要求する自動化システムを含んでもよい。いくつかの実現例においては、ユーザ/自動化システム110は、ノードの作成(170)を要求するために、かつ、ノードが作成された(182)という通知を受信するために、ネットワーク(図示せず)を介してデプロイメントマネージャ120と通信してもよい。ユーザ/自動化システム110のアイデンティティ、作成されるべきノードの属性または他の情報などの付加的な情報は、以下においてより詳細に説明されるように、作成要求(170)および通知(182)において呈示されてもよい。
デプロイメントマネージャ120は、クラウドコンピューティングシステムなどの分散コンピューティング環境におけるコンピューティングコンポーネントであってもよい。いくつかの実現例においては、デプロイメントマネージャ120は、新しいノードインスタンスをデプロイするとともに分散コンピューティング環境内における既存のノードインスタンスを管理するように動作可能である1つ以上のコンピューティングコンポーネントであってもよい。場合によっては、デプロイメントマネージャ120は、ソフトウェアコンポーネントとして実現されてもよく、ユーザ/自動化システム110などのエンティティが分散コンピューティング環境内で新しいノードの作成を要求することを可能にするAPIを提供してもよい。いくつかの実現例においては、デプロイメントは、1つ以上の仮想実行環境内においてノードをデプロイして管理するハイパーバイザコンポーネントであってもよい。このような場合、ハイパーバイザによってデプロイおよび管理されるノードは、仮想マシンインスタンス、コンテナインスタンス、仮想リソース(たとえば、ディスク、プロセッサなど)または他の仮想コンポーネントであってもよい。
ノード130は、172においてデプロイメントマネージャ120によってデプロイされる。ノード130は、仮想環境内において物理的なコンピューティングデバイスによってデプロイされて実行されるノードインスタンスであってもよい。場合によっては、ノード130は、デプロイメントマネージャ120に関連付けられるとともに作成要求170においてユーザ/自動化システム110によって特定される仮想マシンまたはコンテナ画像に従って作成されてもよい。いくつかの実現例においては、ノード130は、それが設定コントローラ140と通信することを可能にするのに十分な最小の設定でデプロイされてもよい。たとえば、ノード130は、最小限に設定されたオペレーティングシステムと、当該ノード130がネットワーク(図示せず)を介して設定コントローラ140にアクセスすることを可能にする限られたネットワーク設定と、設定コントローラ140に設定要求174を送信して設定コントローラ140からの応答を待つ命令とを用いて、デプロイされてもよい。このようなデプロイメントは、設定コントローラ140がノード130の設定のほとんどの局面を制御することを可能にし得る。対照的に、非最小の設定でデプロイされたノードは、構成設定、ソフトウェアパッケージ、および、ノードを作成するのに用いられる画像内の他の設定アイテムを含み得る。このような方策により、新しいノードのための初期設定に変更を加えることが困難になる可能性がある。なぜなら、ノードを作成するための元となる画像が、このような変更を実現するために更新されなければならないからである。本解決策はまた、たとえば、予めインストールされたソフトウェアパッケージを最新バージョンに更新するために、画像における初期設定内に含まれている設定を更新済みの値に変更するために、かつ、他の設定動作を実行するために、ノードがこのような非最小の設定でデプロイされている状況において利用されてもよい。このような方策は、画像に含まれている初期設定を変更することの困難さをいくらか緩和し得る。なぜなら、非最小に設定されたノード130は、最小に設定されたノードと同じ態様で、初期化されると、設定コントローラ140に設定を要求して設定コントローラ140からこの設定を受信し得るからである。
設定コントローラ140は、ネットワーク(図示せず)を介してノード130から設定要求174を受信する。いくつかの実現例においては、ノード130は、設定コントローラ140によって提供されるレプレゼンテーショナル・ステート・トランスファ(Representational State Transfer:REST)APIに従って設定要求174を送信する。ノード130は、ハイパーテキスト転送プロトコル(Hypertext Transfer Protocol:HTTP)、HTTPセキュア(HTTP Secure:HTTPS)または他のプロトコルを用いて、設定コントローラ140に対応するユニフォームリソースロケータ(Uniform Resource Locator:URL)にアクセスするように指示され得る。たとえば、ノード130は、設定コントローラ140にURL「http://configcontroller.internal.net/start」についてのHTTP要求を送信してもよい。この場合、ドメイン名「configcontroller.internal.net」は設定コントローラ140に関連付けられたネットワークアドレスに分解され、目的である「start」は、ノード130が設定を要求していることを設定コントローラ140に示している。
設定要求174はまた、ノード130についての情報を識別することを含み得る。たとえば、ユーザ/自動化システム110は、デプロイメントマネージャ120によって作成されるべきノード130についての情報、たとえば、あるタイプのノードインスタンス、ノード130の作成を要求しているユーザまたはシステムのアイデンティティ、ノードを作成するようにとの要求についての一意識別子、または他の情報など、を特定し得る。場合によっては、この情報は設定要求174において符号化されてもよい。いくつかの実現例においては、設定コントローラ140は、この情報を用いて、ノード130が設定されることが認可されていることを確認してもよい。たとえば、設定コントローラ140は、設定要求174でノードを作成するようにとの要求についての一意識別子を受信してもよく、この識別子を用いることで、ノード130が実際にデプロイされていて、有効な作成要求に基づいて設定を要求していることを確認してもよい。このような確認は、認可されていないノードインスタンスが内部の、場合によっては機密の、設定データにアクセスするのを防止することによって、高度なセキュリティを提供し得る。一例においては、このようなノードインスタンスは、このような内部データにアクセスしようと試みる悪意のあるエンティティによって作成されるはずである。設定コントローラ140はまた、ノード要求設定の特定の属性を備えたノードインスタンスを作成することが認可されているユーザまたはシステムによってノードインスタンスが作成されたことを確認してもよい。
いくつかの実現例においては、設定コントローラ140はデプロイメントマネージャ120から設定要求174を受信してもよい。このような場合、デプロイメントマネージャ120が新しいノードをデプロイすると、デプロイメントマネージャ120は、新しくデプロイされたノードについての情報とともに設定要求174を設定コントローラ140に送信してもよい。設定コントローラ140は、ノードによって開始された上述の設定シナリオと同様に、上述と同様の態様でノードについての情報を用いてノードのアイデンティティを識別および確認してからこれを設定し得る。
いくつかの実現例においては、設定コントローラ140は、設定を待っている新しくデプロイされたノードのためにネットワークをスキャンするように設定されてもよい。このような場合、設定コントローラ140は、特定のノードの設定を開始するようにとの設定要求174を受信しない可能性があるが、代わりに、設定を待っているノードが発見されたときに設定プロセスを開始する可能性がある。たとえば、設定コントローラ140は、設定を待っているノードのリストを含むデータベースまたは他のリソースを定期期的にチェックし得るとともに、設定プロセスを開始するためにこのようなノードとの通信を開始し得る。設定コントローラ140はまた、いずれかの新しくデプロイされたノードを設定する準備ができていることを示すブロードキャストメッセージをネットワーク上で送信してもよい。このような場合、新しくデプロイされたノードは、このブロードキャストメッセージに応答して設定プロセスを開始するように設定されるだろう。
設定コントローラ140は、設定要求174からの情報を用いて、ノード130を設定するために用いるべき設定ポリシー160のうちの1つを識別してもよい。いくつかの実現例においては、設定ポリシー160は、ルールと、設定されるべきノードが当該ルールに一致する場合に実行するべき1セットの設定コマンドとを含み得る。たとえば、設定ポリシー160は、「データベース」のノードタイプで設定されるべきノードが設定プロセス中にインストールされたデータベース管理ソフトウェアプログラムを有するべきであることを規定してもよい。設定コントローラ140がノード130のタイプが「データベース」であることを特定する設定要求をノード130から受信する場合、設定コントローラは、ノード130がノードタイプ「データベース」についての設定ポリシー160に一致することを特定し、データベース管理ソフトウェアプログラムをインストールするために設定ポリシー160において規定されている設定コマンドをノード130に発行するだろう。設定ポリシー160におけるルールは、ノード130から受信された設定要求において受信された情報について一致する値を規定する基準を含み得る。いくつかの実現例においては、設定ポリシー160は、設定を実行するために用いられる特定の設定リソース152を特定してもよい。
設定コントローラ140がノード130を設定するために用いられる設定ポリシー162を識別すると、設定コントローラ140は1つ以上の設定コマンド176をノード130に送信し得る。上述されたように、ノード130は、設定要求174を送信した後、設定コントローラ140からのこのようなコマンドをリッスンする。いくつかの実現例においては、ノード130が設定コマンド176を受信すると、ノード130をデプロイするための命令は、受信されたコマンドを実行させるとともに、実行されたコマンドの出力または結果を設定コントローラ140に提供する。
この配置設定は、ノード130を設定する際に高い融通性を提供し得る。なぜなら、設定コントローラ140は、ユーザがノード130に直接コマンドを入力することによって実行され得るいずれのコマンドも有効に実行するようにノード130に指示し得るからである。いくつかの実現例においては、ノード130は、オペレーティングシステム・シェルまたはコマンドラインインターフェイスにおいて、たとえば、ボーン・シェル(Bourne shell)(sh)、ボーン・アゲイン・シェル(Bourne-Again shell)(bash)、コーン・シェル(Korn shell)(ksh)、Cシェル(csh)もしくは他のシェル、または、コマンドラインインターフェイスなどにおいて、受信した各々の設定コマンド176を実行し得る。このような配置設定は、リダイレクト(「>」)およびパイプ(「|」)などのスクリプティングおよびフロー制御動作など、ノード130を設定する際にこのようなシェルのリッチな特徴を設定コントローラ140が利用することを可能にし得る。
たとえば、タイプ「データベース」のノード130からの例示的な設定要求174に応じて、設定コントローラ140は、特定の設定リソース150にアクセスするためにアドバンスドパッケージングツール(Advanced Packaging Tool:APT)、RPMパッケージマネージャまたは他のクライアントなどのパッケージ管理クライアントをノード130上で設定するために設定コマンド176をノード130に送信してもよい。たとえば、この設定コマンド176は、「add-apt-repository ‘deb http://config.blah.com/config/ database-manager main’」であってもよく、この場合、「http://config.blah.com/config/」はリソース150に対応するURLである。ノード130は、設定コマンド176を受信して、上述のとおりシェルまたはコマンドラインインターフェイスにおいてこれを実行し得る。設定コマンド176を実行することにより、ノード130上の「add-apt-repository」プログラムが特定されたパラメータで実行され、これにより、この場合には、APTパッケージ管理クライアントプログラムの設定が更新されることとなる。次いで、設定コントローラ140は、ノード130上でパッケージ管理クライアントを呼出し、適切なパッケージを検索するようにこれに指示する設定コマンド176を送信してもよい。たとえば、上述の例から「データベース・マネージャ」コンポーネントを検索するための設定コマンド176は、「apt-get install database-manager」であってもよい。ノード130は、設定コマンド176を受信して、これを上述のとおりシェルまたはコマンドラインインターフェイスにおいて実行し得る。設定コマンド176を実行することにより、ノード130上の「add-get」プログラムが特定のパラメータで実行されることとなり、さらに、この場合には、ノード130に、上述のコマンドで設定された設定リソース150から「database-manager」ソフトウェアパッケージを検索させてインストールさせることとなるだろう。
設定コントローラ140はまた、ノード130が設定されることが認可されていることをさらに確認するために選択された設定コマンド176を送信してもよい。たとえば、設定コントローラ140は、一連の計算を実行して一定の期間内で結果を提供するようにノード130に指示してもよい。このようなメカニズムは、ノード130が実際にはコンピューティングリソースであって、システムに電子的にアクセスしようと試みる人の攻撃者ではないことを確認するために用いられてもよい。上記期間は、上記期間の終了前においては人の攻撃者が計算を実行できなくなるように選択されてもよい。別の例においては、設定コントローラ140は、ノード130に指示して、その環境についての不変の特徴、たとえば、物理的な媒体アクセス制御(Medium Access Control:MAC)アドレス、シリアル番号、または、それが実行される物理的なコンピューティングデバイスの他の一意識別子など、を読出させてもよい。ノード130は、確認のためにこのデータを設定コントローラ140に提供してもよい。このようなチェックは、ノード130が、ユーザ/自動化システム110からの要求に応答してデプロイメントマネージャ120によってデプロイされたノードインスタンスであって、場合によっては悪意のある目的のためにデプロイされたインスタンスを模倣する攻撃者ではないことを確実にし得る。
設定リソース150は、ノード130がそこから設定アイテムを検索し得る(180)1つのコンピューティングコンポーネントまたはコンピューティングコンポーネントのセットであってもよい。たとえば、設定リソース150は、たとえばCHEF、PUPPET、SALT、ANSIBLEまたは別の設定管理ツールなどの設定管理ツールを実行する設定管理サーバであってもよい。設定リソース150はまた、データベース、デポジトリまたは設定アイテムの他の集合であってもよい。いくつかの実現例においては、設定コントローラは、API、通信プロトコルまたは各々の特定のタイプの設定リソース150に特有の他のメカニズムを用いて、複数の異なるタイプの設定リソース150と通信するように設定されてもよい。設定コントローラ140は、ノード130が設定リソース150にアクセスすることを認可するために設定リソース150に設定コマンド178を送信してもよい。設定コントローラ140は、同様に、ノード130に設定コマンド176を送信して、設定リソース150にアクセスする際に用いるべきクレデンシャルを提供してもよい。場合によっては、このようなクレデンシャルは、ノード130が設定される必要のあるアクセスのレベル分だけ当該ノード130が許可されるように制限されてもよい。たとえば、ノード130には、設定プロセスの開始時に設定コントローラ140によって作成されるとともに設定プロセスの終了時に設定コントローラ140によって削除される、設定リソース150のためのアクセスクレデンシャルが提供されてもよい。このような技術は、ノード130が設定リソース150のためにそれ自体のアクセスクレデンシャルを格納して維持する必要性を軽減することにより、従来の技術を上回る高度なセキュリティにつながり得る。代わりに、設定コントローラ140は、このようなクレデンシャルを管理し、設定のために必要な場合にのみノード130にこれらクレデンシャルを提供してもよい。これにより、ノード130の制御を掌握している攻撃者によってアクセス可能なリソースが制限され得るとともに、潜在的に機密に関わるアクセスクレデンシャルを管理してセキュアにすることを必要とするシステム内のコンポーネントの数が制限される。
いくつかの実現例においては、図1に示されるコンポーネント間の対話は、これらコンポーネントが接続される1つ以上のネットワークを介してコンポーネント間で送信されるメッセージとして実現されてもよい。たとえば、1つ以上のネットワークは、インターネットプロトコル(Internet Protocol:IP)または他のタイプのネットワークを含んでもよく、トランスポート層において伝送制御プロトコル(Transmission Control Protocol:TCP)、ユニバーサルデータグラムプロトコル(Universal Datagram Protocol:UDP)または他のプロトコルを利用してもよい。コンポーネント間で送信されるメッセージは、たとえば、ハイパーテキスト転送プロトコル(Hypertext Transfer Protocol:HTTP)、リモート・プロシージャ・コール(Remote Procedure Call:RPC)、簡易オブジェクトアクセスプロトコル(Simple Object Access Protocol:SOAP)または他の通信プロトコルなどの通信プロトコルに従って設定されてもよい。1つ以上のネットワークは、イーサネット(登録商標)、同期光ネットワーキング(Synchronous Optical Networking:SONET)、非同期転送モード(Asynchronous Transfer Mode:ATM)、および、他の有線または無線ネットワーキング技術を含むがこれらに限定されない1つ以上の物理層ネットワーキング技術を用いて実現されてもよい。
いくつかの実現例においては、設定コントローラ140は、ネットワーク上の既存のノードを交互にずらして更新してもよい。このようなローリング更新プロセスにおいては、設定コントローラ140は、特定の基準に基づいて更新済みの設定を受信するためにノードを選択する。たとえば、基準は、ネットワーク上のノードが1時間当たり100のレートで更新されるように規定してもよい。これに応じて、設定コントローラ140は、1時間当たり100のノードを選択して、これらのノードに対して上述と同じ態様で更新済みの設定を得るように指示し得る。場合によっては、設定コントローラ140は、更新されるべきとのメッセージをノードに送信することによって更新プロセスを開始してもよい。設定コントローラ140はまた、更新プロセスを開始するメッセージを更新されるべき各々のノードから受信し得る。設定コントローラ140はまた、更新プロセスを開始するメッセージをデプロイメントマネージャ120から受信してもよい。
図2は、クラウドコンピューティングシステムにおいてリソースをセキュアに設定するための例示的なプロセスのスイムレーン図である。205において、ユーザ/自動化システム110は、デプロイメントマネージャ120がノードを作成することを要求する。210において、デプロイメントマネージャ120はノード130を作成してデプロイする。215において、ノード130は、初期化ごとに、設定を要求するメッセージを設定コントローラ140に送信する。220において、ノード130は設定コントローラ140からの設定コマンドについてポーリングする。いくつかの実現例においては、ノード130は、設定コントローラ140から受信された設定コマンドを定期的にチェックする「ビジーウェイト(busy wait)」ループに入り得る。
225において、ノード130から設定についての要求を受信したことに応答して、設定コントローラ140がノード130に設定コマンドを送信する。230において、ノード130が、受信した設定コマンドを実行する。235として、ノード130は、設定コントローラ140に設定コマンドの結果を送信する。たとえば、ノード130は、オペレーティングシステム・シェルにおいて設定コマンドを実行し、結果として、実行されたコマンドの出力を設定コントローラ140に提供してもよい。240において、ノード130が、再び、設定コントローラ140からの設定コマンドについてポーリングする。
図3は、設定コントローラ140を用いてノード130および設定リソース150を設定するための例示的なプロセスを示すスイムレーン図である。305において、設定コントローラ140は、設定リソース150にアクセスするようにノード130を設定する。たとえば、設定コントローラ140は、設定リソース150にアクセスするための情報、たとえば、設定リソース150にコンタクトするのに用いられるネットワークアドレス、設定リソース150にアクセスするのに用いるべきアクセスクレデンシャル、または他の情報などを、ノード130を提供し得る。いくつかの実現例においては、当該設定は、設定コントローラ140が(以下に記載される)310および315において設定リソースを準備した後に、行われてもよい。いくつかの実現例においては、設定コントローラ140は、ノード130上に設定リソース150に関連付けられたクライアントアプリケーションをインストールしてもよく、設定リソース150から設定アイテムを検索するようにノード130に指示する際にこのクライアントアプリケーションを呼出してもよい。
310において、設定コントローラ140は、ノード130に設定アイテムを提供するように設定リソース150を準備するためのセットアップ動作を実行する。いくつかの実現例においては、このようなセットアップ動作は、設定リソース150がノード130を設定するのに必要な特定の設定アイテムを提供することができるかどうかを判断する動作を含み得る。315において、設定コントローラ140は、設定リソース150にアクセスするノード130を認可するように設定リソース150に指示する。たとえば、設定コントローラ140は、ノード130のために設定リソース150上に1セットのアクセスクレデンシャルを作成してもよい。場合によっては、設定コントローラ140は、設定リソース150に、そのネットワークアドレスまたは他の識別情報などのノード130についての情報を提供してもよく、これにより、設定リソース150は、リソースにアクセスしようと試みる際にノード130を確認することができるようになる。いくつかの実現例においては、設定コントローラ140は、設定リソース150に特有のAPIを利用することによってステップ310および315を実行してもよい。設定コントローラ140は、複数のさまざまなAPIを用いて複数のさまざまな種類の設定リソース150と通信するように動作可能であり得る。
320において、設定コントローラ140は、設定リソース150から設定アイテムを検索するようにノード130に指示する。たとえば、設定コントローラ140は、設定リソース150にアクセスするために305においてインストールされたクライアントアプリケーションを呼出すようにノード130に指示してもよい。設定コントローラ140は、検索されるべき1つの設定アイテムまたは複数の設定アイテムの識別を含み得る。いくつかの実現例においては、設定コントローラ140は、設定アイテムを検索するために設定リソース150に特有のプロトコルに従って設定されたメッセージをネットワークを介して送信するようにノード130に指示してもよい。330において、設定リソース150は、325において送信された要求によって示される設定アイテムを戻す。
335において、ノード130は、設定リソース150から受信した設定アイテムを適用する。いくつかの実現例においては、設定アイテムを適用することは、受信された設定アイテムをノード130上にインストールする、設定リソース150に関連付けられたクライアントアプリケーションを含み得る。ノード130はまた、330において設定リソース150から設定アイテムを受信すると、設定コントローラ140に結果を戻してもよい。これに応じて、設定コントローラ140は、設定アイテムをインストールするようにとの命令を含む設定コマンドをノード130に送信してもよい。340において、ノード130は、設定コントローラ140に設定アイテムを適用した結果を送信する。いくつかの実現例においては、ステップ320〜ステップ340は、複数の異なる設定アイテムをノード130に適用するために複数回繰返されてもよい。ノード130について設定コントローラ140によって識別された設定ポリシー160は、どの設定アイテムがノード130にインストールされるべきであるかを特定し得るとともに、これにより、回数を特定し、どのようなパラメータでステップ320〜340を繰返し得るかを特定し得る。
345において、設定コントローラ140は、ノード130の設定が完了していると判断する。いくつかの実現例においては、設定コントローラ140は、ノード130に適用されるべき各々の設定アイテムについての好結果をノード130から受信したことに基づいて設定が完了していると判断してもよい。350において、設定コントローラ140は、設定プロセスが完了しているという表示をノード130に送信する。355において、ノード130は、デプロイに成功したという表示をデプロイメントマネージャ120に送信する。360において、デプロイメントマネージャ120は、ノード130を作成するのに成功したという表示をユーザ/自動化システム110に送信する。いくつかの実現例においては、設定コントローラ140は、適用されるべき設定アイテムのうち1つ以上についてノード130から好成績を受信しない場合、当該設定コントローラは、「設定の失敗」などを示すネガティブな表示をノード130に送信してもよい。ノード130は、この表示をデプロイメントマネージャ120に伝達してもよく、デプロイメントマネージャ120が次いで、この表示をユーザ/自動化システム110に伝達してもよい。場合によっては、ノード130はこのような失敗の表示に応じてそれ自体を削除するかもしれない。ノードの削除は、設定コントローラ140またはデプロイメントマネージャ120によって実行されてもよい。
図4は、図1に示される設定コントローラ140を含む例示的な環境400を示す図である。図示のとおり、設定コントローラ140は、設定サービス410、設定ワーカー420、1セットの設定データ432およびユーザインターフェイス450を含む。動作時に、設定イニシエータ440が、REST APIを用いて設定サービス410と通信してもよい。設定イニシエータ440は、新しいノード130がデプロイされていることを設定サーバ410に示してもよく、さらに、設定コントローラ140に設定を要求することになるだろう。場合によっては、設定イニシエータ440は、図1に示されるユーザ/自動化システム110、図1に示されるデプロイメントマネージャ120、または、デプロイされたノード130もしくは作成されたノード130である他の任意のコンピューティングコンポーネントもしくはエンティティであり得る。設定イニシエータ440は、ノード130についての情報、たとえば、ノード130についての、または、ノード130をデプロイさせるかもしくは作成させる要求についての固有の識別情報など、を示してもよい。この情報は、設定コントローラ140によって受信された設定についての要求が、設定イニシエータ440によって作成されたかまたはデプロイされたノード130からのものであることを確認するために、用いられてもよい。
設定イニシエータ440からのこのような表示を受信したことに応じて、設定サービス410は、ノード130を設定するタスクを設定ワーカー420に割当ててもよい。いくつかの実現例においては、設定ワーカー420は、ノード130からの設定要求を処理するのに必要であるとともに必要な設定を実行するための必要な設定コマンドをノード130に提供するのに必要である機能を含むスレッド、モジュールまたはオブジェクトなどのソフトウェアコンポーネントであってもよい。場合によっては、設定サービス410はまた、設定コントローラ140内において受信されたメッセージの内部ルーティングの役割を果たすネットワークモジュール(図示せず)を設定することなどによって、ノード130から発生するものとして識別された設定に対する要求を、ノード130を設定するために割当てられた設定ワーカー420にルーティングさせてもよい。設定ワーカー420は、設定についての要求をノード130から受信すると、図1〜図3に関して上述したように、ノード130を設定するように設定リソース150におけるノード130と対話し得る。
設定サービス410および設定ワーカー420は、1セットの設定データ432を作成して維持し得る。いくつかの実現例においては、設定データ432は、ペンディング中の設定動作についての情報、以前の設定動作の結果(たとえば成功もしくは失敗)、または、設定コントローラ140において失敗があった場合にペンディング中の設定動作を回復させるかもしくは再開させるのに用いられるリカバリデータを含み得る。
図示のとおり、設定サービス410は課金記録470およびログ480を作成する。いくつかの実現例においては、課金記録470およびログ480は、完了した設定動作についての情報を含む。たとえば、課金記録470は、ノード130のデプロイを成功させるために、設定イニシエータ440または別のエンティティに課金されるべき料金を含み得る。ログ480は、ノード130のための設定プロセスに関する詳細情報、たとえば、どの設定コマンドが設定コントローラ140によって発行されたか、コマンドの結果などを含み得る。ログ480は、設定コントローラ140の活動の履歴記録を提供してもよい。
ユーザインターフェイス450は、課金記録470、ログ480からアドミニストレータ460への情報に対するアクセスを提供する。たとえば、アドミニストレータ460は、HTTPを用いてネットワークを介してユーザインターフェイス450にアクセスするためにウェブブラウザを用いてもよく、課金記録470およびログ480からの情報を含むウェブページをユーザインターフェイスから検索してもよい。いくつかの実現例においては、ユーザインターフェイス450、または図示されるものとは異なるユーザインターフェイスは、アドミニストレータ460が課金記録470およびログ480内の情報をサーチすること、情報をフィルタリングすること、さまざまな方法で情報を閲覧すること、情報をさまざまなフォーマットでエクスポートすること、または、他の動作を実行することを可能にし得る。
図5は、クラウドコンピューティングシステムにおいてリソースをセキュアに設定するための例示的なプロセス500のフローチャートである。明瞭にするために、プロセス500は図1に示されるコンポーネントに関連付けて説明することとする。505において、設定コントローラ140は、クラウドコンピューティングネットワークにおける特定のノード130から設定要求を受信する。場合によっては、設定要求は、特定のノードについてのノード情報を含む。ノード情報は、特定のノードのアイデンティティを含み得る。
510において、設定コントローラ140は、ノード情報に少なくとも部分的に基づいて、特定のノード130が設定のために認可されていることを確認する。場合によっては、特定のノード130が設定のために認可されていることを確認することは、設定コントローラ140が、情報要求をネットワークを介して特定のノード130に送信すること、情報要求に対する応答をネットワークを介して特定のノード130から受信すること、特定のノード130から受信した応答が予想される応答と一致することを確認することを含む。いくつかの実現例においては、情報要求は、それが受信されたときに特定のノード130によって実行されるべき1つ以上のコマンドを含むとともに、情報要求に対する応答は、特定のノード130によって1つ以上のコマンドを実行することによって生成される出力を含む。特定のノード130が設定のために認可されていることを確認することはまた、クラウドコンピューティングネットワークに関連付けられた管理コンポーネントが、特定のノード130から受信したのと一致するノード情報を有するノードを作成したことと、ノードがまだ設定されていないこととを判断し得る。いくつかの実現例においては、ノード情報は、特定のノード130がどのように作成されたかを詳述する作成情報を含むとともに、特定のノード130が設定のために認可されていることを確認することは、作成情報がクラウドコンピューティングネットワークに関連付けられたセキュリティポリシーに一致することを確認することを含む。作成情報は、特定のノード130を作成した管理コンポーネント、特定のノード130を作成した管理コンポーネントのユーザ、特定のノードが作成された目的であるプロジェクト、または特定のノード130についてのノードタイプ、のうち少なくとも1つを含み得る。
515において、図1に関して上述したように、特定のノード130が設定のために認可されていることを確認したことに応じて、設定コントローラ140は、ノード情報に少なくとも部分的に基づいて特定のノード130上で実行すべき設定動作を識別する。520において、図1に関して上述したように、設定コントローラ140は、識別された1つ以上の設定動作に対応する設定コマンドを特定のノード130に送信するとともに、特定のノード130は、設定コマンドを受信するとこれを実行して、対応する設定動作を実行する。
場合によっては、プロセス500はさらに、設定コマンドに対応する設定レポートをネットワークを介して特定のノード130から受信する設定コントローラ140を含む。設定レポートは、特定のノード130による設定コマンドの実行に関するレポート情報を含む。
場合によっては、設定コマンドは第1の設定コマンドである。プロセス500はさらに、設定コントローラ140が、レポート情報に基づいて特定のノード130によって第1の設定コマンドを実行するのに成功したと判断することと、第1の設定コマンドを実行するのに成功したと判断したことに応じて、1つ以上の付加的な設定動作に対応する第2の設定コマンドを、ネットワークを介して、特定のノード130に送信することとを含む。この場合、1つ以上の付加的な設定動作は、識別された設定動作から選択されるものであって、第1の設定コマンドに対応する設定動作とは異なる。
いくつかの実現例においては、プロセス500はさらに、設定コントローラ140が、レポート情報に基づいて、特定のノード130によって設定コマンドを実行するのに成功しなかったと判断することと、設定コマンドを実行するのに成功しなかったと判断したことに応じて、特定のノード130を設定することに成功しなかったことを、特定のノード130に関連付けられた管理コンポーネントに通知することとを含む。
図6は、クライアントまたは1つのサーバまたは複数のサーバとして、この明細書中に記載されるシステムおよび方法を実現するために用いられ得るコンピューティングデバイス600および650のブロック図である。コンピューティングデバイス600は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレームおよび他の適切なコンピュータなどのデジタルコンピュータのさまざまな形態を表わすように意図されている。コンピューティングデバイス650は、携帯情報端末、携帯電話、スマートフォンおよび他の同様のコンピューティングデバイスなどのモバイルデバイスのさまざまな形態を表わすように意図されている。加えて、コンピューティングデバイス600または650はユニバーサルシリアルバス(Universal Serial Bus:USB)フラッシュドライブを含み得る。USBフラッシュドライブはオペレーティングシステムおよび他のアプリケーションを格納し得る。USBフラッシュドライブは、別のコンピューティングデバイスのUSBポートへ挿入され得るワイヤレス送信機またはUSBコネクタのような入出力コンポーネントを含み得る。ここに示すコンポーネント、それらの接続および関係、ならびにそれらの機能は例示であることが意図されているに過ぎず、本文書に記載のおよび/または請求項に記載の発明の実現例を限定することを意図していない。
コンピューティングデバイス600は、プロセッサ602、メモリ604、ストレージデバイス606、メモリ604および高速拡張ポート610に接続している高速インターフェイス608、ならびに低速バス614およびストレージデバイス606に接続している低速インターフェイス612を含む。コンポーネント602,604,606,608,610および612の各々はさまざまなバスを用いて相互に接続されており、共通のマザーボード上にまたは他の態様で適宜搭載され得る。プロセッサ602は、コンピューティングデバイス600内で実行される命令を処理可能であり、この命令には、GUIのためのグラフィック情報を高速インターフェイス608に結合されているディスプレイ616などの外部入出力デバイス上に表示するためにメモリ604内またはストレージデバイス606上に格納されている命令が含まれる。他の実現例では、複数のプロセッサおよび/または複数のバスが、複数のメモリおよび複数種類のメモリとともに必要に応じて用いられ得る。また、複数のコンピューティングデバイス600が接続されてもよく、各デバイスは(たとえばサーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)必要な動作の一部を提供する。
メモリ604は情報をコンピューティングデバイス600内に格納する。一実現例では、メモリ604は1つまたは複数の揮発性メモリユニットである。別の実現例では、メモリ604は1つまたは複数の不揮発性メモリユニットである。また、メモリ604は、磁気ディスクまたは光ディスクといった別の形態のコンピュータ読取り可能媒体であってもよい。
ストレージデバイス606は、コンピューティングデバイス600にマスストレージを提供可能である。一実現例では、ストレージデバイス606は、フロッピー(登録商標)ディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイス、フラッシュメモリもしくは他の同様のソリッドステートメモリデバイス、またはストレージエリアネットワークもしくは他の構成におけるデバイスを含む多数のデバイスといった、コンピュータ読取り可能媒体であってもよく、または当該コンピュータ読取り可能媒体を含んでいてもよい。コンピュータプログラムプロダクトが情報媒体内に有形に具体化され得る。また、コンピュータプログラムプロダクトは、実行されると上述のような1つ以上の方法を実行する命令を含み得る。情報媒体は、メモリ604、ストレージデバイス606、またはプロセッサ602上のメモリといった、コンピュータ読取り可能媒体またはマシン読取り可能媒体である。
高速コントローラ608はコンピューティングデバイス600のための帯域幅集約的な動作を管理するのに対して、低速コントローラ612はより低い帯域幅集約的な動作を管理する。そのような機能の割当ては例示に過ぎない。一実現例では、高速コントローラ608はメモリ604、ディスプレイ616に(たとえばグラフィックスプロセッサまたはアクセラレータを介して)、およびさまざまな拡張カード(図示せず)を受付け得る高速拡張ポート610に結合される。当該実現例では、低速コントローラ612はストレージデバイス606および低速拡張ポート614に結合される。さまざまな通信ポート(たとえばUSB、ブルートゥース(登録商標)、イーサネット(登録商標)、無線イーサネット)を含み得る低速拡張ポートは、キーボード、ポインティングデバイス、スキャナ、またはスイッチもしくはルータといったネットワーキングデバイスなどの1つ以上の入出力デバイスに、たとえばネットワークアダプタを介して結合され得る。
コンピューティングデバイス600は、図に示すように多数の異なる形態で実現されてもよい。たとえば、コンピューティングデバイス600は標準的なサーバ620として、またはそのようなサーバのグループ内で複数回実現されてもよい。また、コンピューティングデバイス600はラックサーバシステム624の一部として実現されてもよい。さらに、コンピューティングデバイス600はラップトップコンピュータ622などのパーソナルコンピュータにおいて実現されてもよい。代替的には、コンピューティングデバイス600からのコンポーネントは、デバイス650などのモバイルデバイス(図示せず)内の他のコンポーネントと組合されてもよい。そのようなデバイスの各々がコンピューティングデバイス600,650のうち1つ以上を含んでいてもよく、システム全体が、互いに通信する複数のコンピューティングデバイス600,650で構成されてもよい。
コンピューティングデバイス650は、数あるコンポーネントの中でも特に、プロセッサ652、メモリ664、ディスプレイ654などの入出力デバイス、通信インターフェイス666、およびトランシーバ668を含む。また、デバイス650には、付加的なストレージを提供するために、マイクロドライブまたは他のデバイスなどのストレージデバイスが設けられてもよい。コンポーネント650,652,664,654,666および668の各々はさまざまなバスを用いて相互に接続されており、当該コンポーネントのいくつかは共通のマザーボード上にまたは他の態様で適宜搭載され得る。
プロセッサ652は、メモリ664に格納されている命令を含む、コンピューティングデバイス650内の命令を実行可能である。プロセッサは、別個の複数のアナログおよびデジタルプロセッサを含むチップのチップセットとして実現されてもよい。さらに、プロセッサは、いくつかのアーキテクチャのうちのいずれかを使用して実現され得る。たとえば、プロセッサ610は、CISC(Complex Instruction Set Computers(複雑命令セットコンピュータ))プロセッサ、RISC(Reduced Instruction Set Computer(簡略化命令セットコンピュータ))プロセッサ、または、MISC(Minimal Instruction Set Computer(最小命令セットコンピュータ))プロセッサであり得る。プロセッサは、たとえば、ユーザインターフェイスの制御、デバイス650が実行するアプリケーション、およびデバイス650による無線通信といった、デバイス650の他のコンポーネントの協調を提供し得る。
プロセッサ652は、ディスプレイ654に結合された制御インターフェイス658およびディスプレイインターフェイス656を介してユーザと通信し得る。ディスプレイ654は、たとえば、TFTディスプレイ(Thin-Film-Transistor Liquid Crystal Display:薄膜トランジスタ液晶ディスプレイ)もしくはOLED(Organic Light Emitting Diode:有機発光ダイオード)ディスプレイ、または他の適切なディスプレイ技術であり得る。ディスプレイインターフェイス656は、ディスプレイ654を駆動してグラフィックおよび他の情報をユーザに提示するための適切な回路を含み得る。制御インターフェイス658はユーザからコマンドを受け、当該コマンドをプロセッサ652に提示できるように変換し得る。さらに、デバイス650と他のデバイスとの隣接通信を可能にするために、プロセッサ652と通信する外部インターフェイス662が設けられてもよい。外部インターフェイス662は、たとえば、ある実現例では有線通信を提供し、他の実現例では無線通信を提供してもよく、また、複数のインターフェイスが用いられてもよい。
メモリ664は情報をコンピューティングデバイス650内に格納する。メモリ664は、1つもしくは複数のコンピュータ読取り可能媒体、1つもしくは複数の揮発性メモリユニット、または1つもしくは複数の不揮発性メモリユニットの1つ以上として実現され得る。さらに、拡張メモリ674が設けられてもよく、たとえばSIMM(Single In Line Memory Module)カードインターフェイスを含み得る拡張インターフェイス672を介してデバイス650に接続されてもよい。このような拡張メモリ674はデバイス650に余分のストレージスペースを提供し得るか、またはデバイス650のためのアプリケーションもしくは他の情報をさらに格納し得る。具体的には、拡張メモリ674は上述のプロセスを実行または補足するための命令を含み得るとともに、セキュアな情報も含み得る。このため、たとえば、拡張メモリ674はデバイス650のためのセキュリティモジュールとして設けられてもよく、デバイス650のセキュアな使用を許可する命令でプログラムされてもよい。さらに、ハッキング不可能なようにSIMMカード上に識別情報を置くなどして、セキュアなアプリケーションが付加的な情報とともにSIMMカードを介して設けられてもよい。
メモリは、以下に記載のように、たとえばフラッシュメモリおよび/またはNVRAMメモリを含み得る。一実現例では、コンピュータプログラムプロダクトが情報媒体内に有形に具体化される。コンピュータプログラムプロダクトは、実行されると上述のような1つ以上の方法を実行する命令を含む。情報媒体は、メモリ664、拡張メモリ674、またはプロセッサ652上のメモリなどのコンピュータ読取り可能媒体またはマシン読取り可能媒体であって、たとえばトランシーバ668または外部インターフェイス662を介して受信され得る。
デバイス650は、必要に応じてデジタル信号処理回路を含み得る通信インターフェイス666を介して無線通信し得る。通信インターフェイス666は、とりわけ、GSM(登録商標)音声通話、SMS、EMS、またはMMSメッセージング、CDMA、TDMA、PDC、WCDMA(登録商標)、CDMA2000、またはGPRSといった、さまざまなモードまたはプロトコル下の通信を提供し得る。そのような通信は、たとえば無線周波数トランシーバ668を介して行われてもよい。さらに、ブルートゥース、Wi−Fi、または他のそのようなトランシーバ(図示せず)を用いるなどして、短距離通信が行われてもよい。さらに、GPS(Global Positioning System:全地球測位システム)レシーバモジュール670が付加的なナビゲーション関連および位置関連の無線データをデバイス650に提供し得るとともに、当該データはデバイス650上で実行されるアプリケーションによって適宜用いられ得る。
また、デバイス650は、ユーザから口頭情報を受けて当該情報を使用可能なデジタル情報に変換し得る音声コーデック660を用いて可聴的に通信し得る。音声コーデック660も同様に、たとえばデバイス650のハンドセット内で、スピーカを介すなどしてユーザに可聴音を生成し得る。そのような音は音声電話からの音を含んでいてもよく、録音された音(たとえば音声メッセージ、音楽ファイル等)を含んでいてもよく、さらに、デバイス650上で実行されるアプリケーションが生成する音を含んでいてもよい。
コンピューティングデバイス650は、図に示すように多数の異なる形態で実現されてもよい。たとえば、コンピューティングデバイス650はセルラー電話680として実現されてもよい。また、コンピューティングデバイス650は、スマートフォン682、携帯情報端末、または他の同様のモバイルデバイスの一部として実現されてもよい。
本明細書に記載のシステムおよび技術のさまざまな実現例は、デジタル電子回路、集積回路、特別に設計されたASIC(application specific integrated circuit:特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組合せで実現され得る。これらのさまざまな実現例は、少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステム上で実行可能および/または解釈可能な1つ以上のコンピュータプログラムにおける実現例を含んでいてもよく、当該プロセッサは専用であっても汎用であってもよく、ストレージシステム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信するように、かつこれらにデータおよび命令を送信するように結合されている。
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても公知)はプログラマブルプロセッサのためのマシン命令を含んでおり、高レベル手続きおよび/もしくはオブジェクト指向プログラミング言語で、ならびに/またはアセンブリ/マシン言語で実現され得る。本明細書において使用する「マシン読取り可能媒体」および「コンピュータ読取り可能媒体」という用語は、マシン命令および/またはデータをプログラマブルプロセッサに提供するために用いられる任意のコンピュータプログラムプロダクト、装置および/またはデバイス(たとえば磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(Programmable Logic Device:PLD))を指し、マシン命令をマシン読取り可能信号として受信するマシン読取り可能媒体を含む。「マシン読取り可能信号」という用語は、マシン命令および/またはデータをプログラマブルプロセッサに提供するために用いられる任意の信号を指す。
ユーザと対話できるようにするために、本明細書に記載のシステムおよび技術は、情報をユーザに表示するためのディスプレイデバイス(たとえばCRT(cathode ray tube:陰極線管)またはLCD(液晶ディスプレイ)モニタ)と、ユーザがコンピュータに入力することを可能にするキーボードおよびポインティングデバイス(たとえばマウスまたはトラックボール)とを有するコンピュータ上で実現され得る。他の種類のデバイスを用いてユーザと対話できるようにすることもでき、たとえば、ユーザに提供されるフィードバックは任意の形態の感覚フィードバック(たとえば視覚フィードバック、聴覚フィードバック、または触覚フィードバック)であり得るとともに、ユーザからの入力は、音響入力、スピーチ入力または触覚入力を含む任意の形態で受け付けられ得る。
本明細書に記載のシステムおよび技術は、バックエンドコンポーネントを(たとえばデータサーバとして)含むコンピューティングシステムにおいて実現され得るか、またはミドルウェアコンポーネント(たとえばアプリケーションサーバ)を含むコンピューティングシステムにおいて実現され得るか、またはフロントエンドコンポーネント(たとえば、ユーザが上記のシステムおよび技術の実現例と対話する際に使用可能なグラフィックユーザインターフェイスもしくはウェブブラウザを有するクライアントコンピュータ)を含むコンピューティングシステムにおいて実現され得るか、またはそのようなバックエンド、ミドルウェア、もしくはフロントエンドコンポーネントの任意の組合せを含むコンピューティングシステムにおいて実現され得る。システムのコンポーネントは、任意の形態または媒体のデジタルデータ通信(たとえば通信ネットワーク)によって相互に接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(local area network:LAN)、ワイドエリアネットワーク(wide area network:WAN)、(アドホックまたはスタティックメンバーを有する)ピアツーピアネットワーク、グリッドコンピューティングインフラストラクチャ、および、インターネットを含む。システムのコンポーネントはまた、仮想マシンインスタンスまたはコンテナインスタンスなどのソフトウェアインスタンスを実行するための1つ以上の仮想環境を含むコンピューティングデバイス(たとえば、クライアントまたはサーバ)であり得る。仮想環境は、実行するソフトウェアインスタンスに対して、ハードウェア、ソフトウェアおよび他のリソースの仮想表現を提供し得る。
コンピューティングシステムはクライアントおよびサーバを含み得る。クライアントおよびサーバは一般に互いにリモートであり、典型的には通信ネットワークを介して対話する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されて互いにクライアント−サーバ関係を有するコンピュータプログラムによって発生する。いくつかの実現例においては、サーバは、通信ネットワークを介してクライアントによってアクセスされるクラウドコンピューティングシステム内のノードであってもよい。
いくつかの実現例を詳細に上述してきたが、他の変更例も実現可能である。加えて、図に示されている論理のフローは、望ましい結果を実現するために、図示された特定の順序または連続する順序を必要としない。他のステップが提供されてもよく、または、ステップが上述のフローから省かれてもよく、他のコンポーネントが上述のシステムに追加されてもよく、または上述のシステムから省かれてもよい。したがって、他の実現例も添付の特許請求の範囲内にある。

Claims (20)

  1. クラウドコンピューティングネットワークにおいてノードを設定するために1つ以上のプロセッサによって実行される、コンピュータにより実現される方法であって、
    前記クラウドコンピューティングネットワークにおける特定のノードから、ネットワークを介して、設定要求を受信するステップを備え、前記設定要求は、前記特定のノードについてのノード情報を含み、
    前記ノード情報に少なくとも部分的に基づいて、前記特定のノードが設定のために認可されていることを確認するステップと、
    前記特定のノードが設定のために認可されていることを確認したことに応じて、前記ノード情報に少なくとも部分的に基づいて前記特定のノード上で実行すべき設定動作を識別するステップと、
    識別された1つ以上の前記設定動作に対応する設定コマンドを、前記ネットワークを介して、前記特定のノードに送信するステップとを含み、前記特定のノードは、前記設定コマンドを受信すると前記設定コマンドを実行して、前記対応する設定動作を実行する、方法。
  2. 前記設定コマンドに対応する設定レポートを、前記特定のノードから前記ネットワークを介して受信するステップをさらに含み、前記設定レポートは、前記特定のノードによる前記設定コマンドの実行に関するレポート情報を含む、請求項1に記載の方法。
  3. 前記設定コマンドは第1の設定コマンドであり、前記方法はさらに、
    前記レポート情報に基づいて、前記特定のノードによって前記第1の設定コマンドを実行するのに成功したと判断するステップと、
    前記第1の設定コマンドを実行するのに成功したと判断したことに応じて、1つ以上の付加的な設定動作に対応する第2の設定コマンドを前記ネットワークを介して前記特定のノードに送信するステップとを含み、前記1つ以上の付加的な設定動作は、識別された前記設定動作から選択されるとともに、前記第1の設定コマンドに対応する前記設定動作とは異なる、請求項2に記載の方法。
  4. 前記レポート情報に基づいて、前記特定のノードによって前記設定コマンドを実行するのに成功しなかったと判断するステップと、
    前記設定コマンドを実行するのに成功しなかったと判断したことに応じて、前記特定のノードを設定するのに成功しなかったことを、前記特定のノードに関連付けられた管理コンポーネントに通知するステップとをさらに含む、請求項2に記載の方法。
  5. 前記特定のノードが設定のために認可されていることを確認するステップは、
    前記ネットワークを介して、前記特定のノードに情報要求を送信するステップと、
    前記ネットワークを介して、前記特定のノードから前記情報要求に対する応答を受信するステップと、
    前記特定のノードから受信した前記応答が予想される応答と一致することを確認するステップとを含む、請求項1に記載の方法。
  6. 前記情報要求は、受信したときに前記特定のノードによって実行されるべき1つ以上のコマンドを含み、前記情報要求に対する前記応答は、前記特定のノードによって前記1つ以上のコマンドを実行することによって生成される出力を含む、請求項5に記載の方法。
  7. 前記特定のノードが設定のために認可されていることを確認するステップは、前記クラウドコンピューティングネットワークに関連付けられた管理コンポーネントが、前記特定のノードから受信したのと一致するノード情報を備えたノードを作成したことと、前記ノードがまだ設定されていないこととを判断するステップを含む、請求項1に記載の方法。
  8. 前記ノード情報は、前記特定のノードがどのように作成されたかを詳述する作成情報を含み、
    前記特定のノードが設定のために認可されていることを確認するステップは、前記作成情報が前記クラウドコンピューティングネットワークに関連付けられたセキュリティポリシーに一致することを確認するステップを含む、請求項1に記載の方法。
  9. 前記作成情報は、前記特定のノードを作成した管理コンポーネント、前記特定のノードを作成した前記管理コンポーネントのユーザ、前記特定のノードが作成された目的であるプロジェクト、または前記特定のノードについてのノードタイプ、のうち少なくとも1つを含む、請求項8に記載の方法。
  10. 前記ノード情報は、前記特定のノードのアイデンティティを含む、請求項1に記載の方法。
  11. 少なくとも1つのプロセッサに以下の演算を行なわせるために実行されるときに実施可能である命令を格納した非一時的なコンピュータ読取り可能媒体であって、前記以下の演算は、
    前記クラウドコンピューティングネットワークにおける特定のノードから、ネットワークを介して、設定要求を受信することを備え、前記設定要求は、前記特定のノードについてのノード情報を含み、
    前記ノード情報に少なくとも部分的に基づいて、前記特定のノードが設定のために認可されていることを確認することと、
    前記特定のノードが設定のために認可されていることを確認したことに応じて、前記ノード情報に少なくとも部分的に基づいて前記特定のノード上で実行すべき設定動作を識別することと、
    識別された1つ以上の前記設定動作に対応する設定コマンドを、前記ネットワークを介して、前記特定のノードに送信することとを含み、前記特定のノードは、前記設定コマンドを受信すると前記設定コマンドを実行して、前記対応する設定動作を実行する、非一時的なコンピュータ読取り可能媒体。
  12. 前記以下の演算はさらに、
    前記設定コマンドに対応する設定レポートを、前記ネットワークを介して前記特定のノードから受信することを含み、前記設定レポートは、前記特定のノードによる前記設定コマンドの実行に関するレポート情報を含む、請求項11に記載のコンピュータ読取り可能媒体。
  13. 前記設定コマンドは第1の設定コマンドであり、前記以下の演算はさらに、
    前記レポート情報に基づいて、前記特定のノードによって前記第1の設定コマンドを実行するのに成功したと判断することと、
    前記第1の設定コマンドを実行するのに成功したと判断したことに応じて、1つ以上の付加的な設定動作に対応する第2の設定コマンドを、前記ネットワークを介して前記特定のノードに送信することとを含み、前記1つ以上の付加的な設定動作は、識別された前記設定動作から選択されるとともに、前記第1の設定コマンドに対応する前記設定動作とは異なる、請求項12に記載のコンピュータ読取り可能媒体。
  14. 前記以下の演算はさらに、
    前記レポート情報に基づいて、前記特定のノードによって前記設定コマンドを実行するのに成功しなかったと判断することと、
    前記設定コマンドを実行するのに成功しなかったと判断したことに応じて、前記特定のノードを設定するのに成功しなかったことを、前記特定のノードに関連付けられた管理コンポーネントに通知することとを含む、請求項12に記載のコンピュータ読取り可能媒体。
  15. 前記特定のノードが設定のために認可されていることを確認することは、
    前記ネットワークを介して、前記特定のノードに情報要求を送信することと、
    前記ネットワークを介して、前記特定のノードから前記情報要求に対する応答を受信することと、
    前記特定のノードから受信した前記応答が予想される応答に一致することを確認することとを含む、請求項11に記載のコンピュータ読取り可能媒体。
  16. 前記情報要求は、受信したときに前記特定のノードによって実行されるべき1つ以上のコマンドを含み、前記情報要求に対する前記応答は、前記特定のノードによって前記1つ以上のコマンドを実行することによって生成される出力を含む、請求項15に記載のコンピュータ読取り可能媒体。
  17. 前記特定のノードが設定のために認可されていることを確認することは、前記クラウドコンピューティングネットワークに関連付けられた管理コンポーネントが、前記特定のノードから受信したのと一致するノード情報を備えたノードを作成したことと、前記ノードがまだ設定されていないこととを判断することを含む、請求項11に記載のコンピュータ読取り可能媒体。
  18. 前記ノード情報は、前記特定のノードがどのように作成されたかを詳述する作成情報を含み、前記特定のノードが設定のために認可されていることを確認することは、前記作成情報が前記クラウドコンピューティングネットワークに関連付けられたセキュリティポリシーに一致していることを確認することを含む、請求項11に記載のコンピュータ読取り可能媒体。
  19. 前記作成情報は、前記特定のノードを作成した管理コンポーネント、前記特定のノードを作成した前記管理コンポーネントのユーザ、前記特定のノードが作成された目的であるプロジェクト、または前記特定のノードについてのノードタイプ、のうち少なくとも1つを含む、請求項18に記載のコンピュータ読取り可能媒体。
  20. システムであって、
    データを格納するためのメモリと、
    以下の演算を実行するように動作可能である1つ以上のプロセッサとを備え、前記以下の演算は、
    前記クラウドコンピューティングネットワークにおける特定のノードから、ネットワークを介して、設定要求を受信することを含み、前記設定要求は、前記特定のノードについてのノード情報を含み、
    前記ノード情報に少なくとも部分的に基づいて、前記特定のノードが設定のために認可されていることを確認することと、
    前記特定のノードが設定のために認可されていることを確認したことに応じて、前記ノード情報に少なくとも部分的に基づいて前記特定のノード上で実行すべき設定動作を識別することと、
    識別された1つ以上の前記設定動作に対応する設定コマンドを、前記ネットワークを介して、前記特定のノードに送信することとを含み、前記特定のノードは、前記設定コマンドを受信すると前記設定コマンドを実行して、前記対応する設定動作を実行する、システム。
JP2018565727A 2016-06-16 2016-06-16 クラウドコンピューティングノードのセキュアな設定 Active JP6707153B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2016/037786 WO2017217988A1 (en) 2016-06-16 2016-06-16 Secure configuration of cloud computing nodes

Publications (2)

Publication Number Publication Date
JP2019522282A true JP2019522282A (ja) 2019-08-08
JP6707153B2 JP6707153B2 (ja) 2020-06-10

Family

ID=56194627

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018565727A Active JP6707153B2 (ja) 2016-06-16 2016-06-16 クラウドコンピューティングノードのセキュアな設定

Country Status (6)

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

Families Citing this family (17)

* 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 雙子星雲端運算股份有限公司 雲端服務管理方法
US10621004B2 (en) * 2018-03-19 2020-04-14 Accenture Global Solutions Limited Resource control stack based system for multiple domain presentation of cloud computing resource control
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 이선재 클라우드 컴퓨팅 기반의 스마트 메모 관리 시스템
CN114079609B (zh) * 2020-08-03 2024-08-27 阿里巴巴集团控股有限公司 网络系统的管控方法、装置、设备、介质及网络系统
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
CN115955481B (zh) * 2022-12-12 2024-06-14 支付宝(杭州)信息技术有限公司 应急响应方法和装置
KR102571781B1 (ko) * 2022-12-14 2023-08-29 스트라토 주식회사 클러스터 노드 추천 시스템 및 그 제어방법
KR102571782B1 (ko) * 2022-12-16 2023-08-29 스트라토 주식회사 리소스 관리 풀을 이용한 가상 머신 재배치를 위한 장치 및 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006127521A (ja) * 2004-10-27 2006-05-18 Lucent Technol Inc 時限式実行可能エージェントを使用したソフトウェア保全性保護のための方法および装置
JP2013145499A (ja) * 2012-01-16 2013-07-25 Nec Corp 分散処理システム、分散処理方法および分散処理プログラム
US20140047095A1 (en) * 2012-08-07 2014-02-13 Advanced Micro Devices, Inc. System and method for tuning a cloud computing system
JP2014505924A (ja) * 2010-12-21 2014-03-06 インターナショナル・ビジネス・マシーンズ・コーポレーション 信頼できるホスト環境が仮想計算機(vm)の要件に準拠しているという妥当性確認を提供するためのシステム、方法、コンピュータ・プログラム製品、およびコンピュータ・プログラム
JP2015537428A (ja) * 2012-10-12 2015-12-24 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. 仮想マシンによる安全なデータ処理

Family Cites Families (31)

* 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
US7827595B2 (en) 2003-08-28 2010-11-02 Microsoft Corporation Delegated administration of a hosted resource
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
US9122685B2 (en) * 2009-12-15 2015-09-01 International Business Machines Corporation Operating cloud computing 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
US9253053B2 (en) 2012-10-11 2016-02-02 International Business Machines Corporation Transparently enforcing policies in hadoop-style processing infrastructures
US20140195672A1 (en) * 2013-01-09 2014-07-10 Microsoft Corporation Automated failure handling through isolation
AU2014209611B2 (en) * 2013-01-22 2017-03-16 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 (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006127521A (ja) * 2004-10-27 2006-05-18 Lucent Technol Inc 時限式実行可能エージェントを使用したソフトウェア保全性保護のための方法および装置
JP2014505924A (ja) * 2010-12-21 2014-03-06 インターナショナル・ビジネス・マシーンズ・コーポレーション 信頼できるホスト環境が仮想計算機(vm)の要件に準拠しているという妥当性確認を提供するためのシステム、方法、コンピュータ・プログラム製品、およびコンピュータ・プログラム
JP2013145499A (ja) * 2012-01-16 2013-07-25 Nec Corp 分散処理システム、分散処理方法および分散処理プログラム
US20140047095A1 (en) * 2012-08-07 2014-02-13 Advanced Micro Devices, Inc. System and method for tuning a cloud computing system
JP2015537428A (ja) * 2012-10-12 2015-12-24 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. 仮想マシンによる安全なデータ処理

Also Published As

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

Similar Documents

Publication Publication Date Title
US11750455B2 (en) Secure configuration of cloud computing nodes
US20210297410A1 (en) Mec platform deployment method and apparatus
US9973472B2 (en) Methods and systems for orchestrating physical and virtual switches to enforce security boundaries
US10558407B2 (en) Availability of devices based on location
US10133525B2 (en) Autonomous secure printing
JP2021511561A (ja) 資産管理方法および装置ならびに電子デバイス
JP2021514496A (ja) アセット管理システム、方法、装置、および電子デバイス
WO2016140692A1 (en) Enabling file attachments in calendar events
US11523260B2 (en) Delivery of configuration information for cross-platform application integration
US11477269B2 (en) Hybrid cloud computing network management with synchronization features across different cloud service providers
US9760412B2 (en) Client server communication system
US11770436B2 (en) Web client with response latency awareness
CN117931515A (zh) 用于跨云壳层的实例持久化数据的技术

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190221

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190221

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200406

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200422

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200519

R150 Certificate of patent or registration of utility model

Ref document number: 6707153

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250