最新バージョン: 1.0.19-1
Web サービス API は CA AppLogic 2.9 の限定リリースおよびそれ以降のバージョンでのみ提供されます。
WS_API アプリケーションは、REST (Representational State Transfer)ベースのサービスを通じて、Web サービス インターフェースを 1 つ以上のグリッドに提供します。 WS_API REST インターフェースでは、以下のいずれかのアクセス メソッドを使用できます。
プロパティ名 |
タイプ |
説明 |
usr_ip |
IP |
WS_API アプリケーションが HTTP または HTTPS ベースのリクエストを通じてユーザにサービスを提供する IP アドレスです。 このプロパティは必須です。 |
net_ip |
IP |
WS_API アプリケーションがパブリック ネットワーク アドレスにアクセスするために使用される IP アドレスです。 このプロパティは必須です。 |
netmask |
IP |
vpn_ip、usr_ip、net_ip が存在するネットワークのネットワーク マスク。 このプロパティは必須です。 |
gateway |
IP |
トラフィックのルーティングに使用される IP ゲートウェイのアドレス。 WS_API が実行されている IP ネットワークの外側にあるホストから WS_API アプリケーションにアクセスするためには、このプロパティを指定する必要があります(ほとんどの場合必須)。 無効にするには、0.0.0.0 を使用します。 このプロパティは必須です。 |
dns1 |
IP |
ホスト名解決のための DNS サーバの IP アドレス。 このプロパティは必須です。 |
dns2 |
IP |
ホスト名解決のためのバックアップ DNS サーバの IP アドレス。 デフォルト: 0.0.0.0 |
allowed_hosts |
文字列 |
許可される IP アドレス、または IP アドレスの範囲(CIDR 形式) デフォルト: 0.0.0.0/0 (すべて許可) |
http_mode |
文字列 |
usr_ip 上で API が対応する HTTP リクエストの種類を指定します。 有効な値: https、http、両方。 http に設定された場合、シンプルな HTTP ベースのリクエストが API によって対応されます。 https に設定された場合、SSL v3.0 暗号化に基づいたセキュアな HTTP リクエストのみが REST API によって対応されます。 両方に設定された場合、HTTP および HTTPS リクエストすべてが対応されます。 デフォルト: https このプロパティは、アプライアンスを使用して対応されるリクエストにのみ効果的です(つまり VPN を使用する場合には影響がありません)。 モードが http に設定された場合、すべてのトラフィックはプレーン テキストになることに注意してください。 API リクエストを発行する IP には allowed_hosts プロパティを設定することを強くお勧めします。 |
opts |
文字列 |
SSL 設定の引数は opts プロパティを使用してアプリケーションに渡すことができます。これは、カンマ区切りの「名前=値」のペアとして渡されます。 このプロパティは、シンプル HTTP モード(http_mode=http)の場合は設定する必要がありません。 デフォルト: 空(使用されません)。 引数のいずれも指定されない場合、空の値であると見なされます。 |
vpn_ip |
IP |
WS_API アプリケーションが安全な VPN トンネルを介してユーザにサービスを提供する IP アドレスです。 デフォルト: 空 |
vpn_ports |
文字列 |
Web サービス API にアクセスするポートのリストです。 これらのポートは、VPN トンネルおよびファイアウォール ルールを介して許可されます。 通常必要とされるのはポート 80,443 のみです。デフォルト: 80,443 |
vpn_type |
文字列 |
確立する VPN トンネルのタイプです。 有効な値は以下のとおりです。 |
vpn_authpath |
文字列 |
トンネルの認証情報。 共有秘密モードの操作では、これはデータ ボリューム上の共有秘密ファイルへの相対パスになります(例: 「client/secret.key」ファイルの場合は 「secret.key」)。 トンネルが SSH キーである場合、このプロパティは、SSH 公開キー ファイル(VPN サーバの場合)、または秘密キー ファイル(VPN クライアントの場合)へのパスになります。パスにはファイル名も含まれます(例: /client/1/ssh.key 公開キー ファイルの場合は "/1/ssh.key")。 デフォルト: empty |
vpn_standby |
整数 |
アプリケーションの開始で VPN アクセスが有効かどうかを指定します。 ゼロ以外の場合、VPN アクセスは無効です。ゼロの場合は有効です。 VPN アクセスは、ランタイムに VPN アプライアンスを開始/停止することによって、手動で有効/無効にできます。 デフォルト: 1 (VPN アクセスは無効)。 |
in_standby |
整数 |
REST API へのアクセスが標準の HTTP または HTTPS ベースの接続を介して許可されるかどうかを指定します。 このプロパティが 1 に設定され、vpn_standby が 0 に設定された場合、VPN トンネル ベースのアクセスのみが許可されます。 このアクセスは、ランタイムに in アプライアンスを開始/停止することによって、手動で有効/無効にできます。 デフォルト 0 (標準の HTTP と HTTPS アクセスが有効)。 |
mon_standby |
整数 |
アプリケーションの開始時に、アプリケーション モニタリングがそのアプリケーションに無効になるかどうかを決定します。 ゼロ以外の場合、モニタリングは有効です。そうでない場合、モニタリングは無効になります。 モニタリングは、mon アプライアンスを開始することによって、ランタイムに手動で有効にできます。 デフォルト: 1 (モニタリングは無効になります)。 |
重要: vpn_ip、usr_ip、net_ip のプロパティに設定される IP アドレスは、使用する CA AppLogic グリッドで利用可能な IP アドレスである必要があります。 グリッドのダッシュボード上で、ネットマスク、ゲートウェイおよび DNS サーバと一緒に、それらを検索することができます。 将来は、CA AppLogic でこれらのアドレスが自動的に提供されるようにする予定です。
"WS_API" アプリケーション
リソース |
最小 |
最大 |
デフォルト |
CPU |
0.55 |
76 |
1.1 |
メモリ |
992 MB |
134 GB |
1.656 GB |
帯域幅 |
7 Mbps |
12.5 Gbps |
730 Mbps |
アプリケーション自身でいくつかのボリュームを使用します。 それらはアプリケーションの一部で、アプライアンス インスタンス内にすでに設定されています。 アプリケーション境界上で設定する必要のあるボリュームはありません。
ボリューム |
サイズ |
説明 |
code |
50M |
このボリュームは API アプリケーションのコードとスクリプトを格納するために使用されます。 このボリュームは WEB5 アプライアンスに割り当てられます。 デフォルトでは、code という名前の事前入力されたボリュームが、このアプリケーションで使用するために提供されます。 |
conf |
50M |
このボリュームは Web サービス API アプリケーションのすべての設定データを格納するために使用されます。 これには、リモート グリッドに関する情報を格納するためにユーザが事前入力した「vdcs.conf」、リモート グリッドにアクセスするためにユーザが作成した ssh キー、HTTPS インターフェースを介して API にアクセスするために API アプリケーションによって生成された SSL 証明書、および VPN インターフェースを介して API にアクセスするためにユーザが作成した VPN サーバ側証明書が含まれます。 このボリュームは NAS アプライアンスに割り当てられます。 デフォルトでは、conf という名前の事前入力されたボリュームが、このアプリケーションで使用するために提供されます。 |
log_data |
50M |
このボリュームは API サーバのログ記録データを格納するために使用されます。 また、API アプリケーションに必要な一時ファイルを格納するためにも使用されます。 このボリュームは NAS アプライアンスに割り当てられます。 デフォルトでは、log_data という名前の事前入力されたボリュームが、このアプリケーションで使用するために提供されます。 |
mon |
50M |
このボリュームは、アプリケーションのモニタリング データを格納するために使用されます。 ユーザがこのボリュームにアクセスしたり変更したりする理由はありません。このボリュームは、MON アプライアンスによって内部的に使用されます。 デフォルトでは、mon という名前のボリュームが、アプリケーション モニタリング データを格納するために提供されます。 |
WS_API アプリケーションを開始するには、Web サービス インターフェースを介して管理されるグリッドにアクセスするように設定されている必要があります。 そのためには、conf ボリューム上で data サブディレクトリ内に vdcs.conf ファイルを作成することも必要です。 秘密/公開キーのペアを生成し、生成された公開キーでターゲットのグリッド コントローラ上にユーザを設定する必要があります。 vdcs.conf に入力する方法、Web サービス API 用の ssh キーの設定方法とグリッド ユーザの作成方法については、「設定」セクションを参照してください。
WS_API は、以下のモードのいずれかまたはその組み合わせで動作するように設定できます。
HTTP の使用
このモードでは、REST API に標準の HTTP ベースのインターフェースを介してアクセスできます。
例: curl "http://usr_ip/api/v1/app/list?vdc=controller_name"
アプリケーションをこのモードで開始するには、必須プロパティを適切な値に設定し、http_mode プロパティを http に設定する必要があります。 アプリケーションをこのモードで動作するよう設定する方法については、「設定」セクションを参照してください。
HTTPS の使用
このモードでは、REST API に安全な HTTP ベースのインターフェースを介してアクセスできます。
例: curl -k -E /path/to/client_key.pem "https://usr_ip/api/v1/app/list?vdc=controller_name"
アプリケーションをこのモードで開始するには、必須プロパティを適切な値に設定し、http_mode プロパティを https に設定する必要があります。 また、opts プロパティを、前述のプロパティ表の該当する証明書用オプションで設定し、適宜署名されるようにすることもできます。 アプリケーションが正常に開始されたら、クライアント証明書を、conf ボリューム内の ssl-keys サブディレクトリからクライアント アプリケーションまたはブラウザにコピーし、WS_API へのアクセスに必要できるようにする必要があります。 アプリケーションをこのモードで動作するよう設定する方法については、「設定」セクションを参照してください。
vpn トンネルの使用
このモードでは、安全な VPN トンネルが、アプリケーション内の in_vpn VPN サーバとクライアント側の VPN クライアントの間で作成されます。 使用可能なタイプ VPN トンネル タイプのいずれか 1 つを使用してトンネルが正常に作成されたら、REST API には標準の HTTP ベースのインターフェースを介してアクセスできます。
例: curl "http://usr_ip/api/v1/app/list?vdc=controller_name"
アプリケーションをこのモードで開始するには、必須プロパティを適切な値に設定し、vpn_ip プロパティを設定して vpn_standby を 0 に設定する必要があります。 デフォルトでは、vpn_ports は 80,443 に設定されてポート 80 および 443 (それぞれ http および https)への接続が許可されます。vpn_type は certificate に設定され、VPN クライアントが SSL 証明書ベースのトンネルを使用してアプリケーション内の VPN サーバに接続することを許可します。 in_standby プロパティを 1 に設定し、VPN トンネルを介したリクエストのみが許可されるようにすることもできます。 VPN トンネルの外側からの API リクエストはすべてドロップされます。 アプリケーションをこのモードで動作するよう設定する方法については、「設定」セクションを参照してください。
CA AppLogic Web サービス 'WS_API' アプリケーションのインフラストラクチャを以下に示します。
次のコンポーネントがあります。
このセクションでは、WS_API アプリケーションを 3 種類のモードのそれぞれで開始するための設定方法について説明します。
WS_API アプリケーションを設定する方法
app provision WS_API ws_api_instance --skipstart
vol manage ws_api_instance:conf
cd /mnt/vol/data ls vdcs.conf
このファイルには、REST API を通じて管理されるグリッドにアクセスするのに必要な情報が含まれています。
vi vdcs.conf
vdcs { vdc controller_name : host = controller_ip or FQDN { location = "city, state, country" latitude = latitude longitude = longitude } # vdc controller_name : host = controller_ip or FQDN # { # location = "city, state, country" # latitude = latitude # longitude = longitude # } }
キーのペアを生成する方法
ssh-keygen -t dsa -f /mnt/vol/data/gridkey パスワードを入力するプロンプトが表示されたら Enter キーを押します。 パスワードは入力しないでください。 chmod 600 /mnt/vol/data/gridkey* chown 99:99 /mnt/vol/data/gridkey*
cat /mnt/vol/data/gridkey.pub
user create api@domain.com pwd=- sshkey="ssh-dsa AAA.................xyz"
ユーザが作成されます。
アプリケーション境界が 3 つのオペレーティング モードのいずれかで動作するように設定できるようになりました。
WS_API アプリケーションは、REST (Representational State Transfer)ベースのサービスを通じて、Web サービス インターフェースを 1 つ以上のグリッドに提供します。 HTTP アクセス メソッドは、シンプルな HTTP ベースの REST API コールを有効にします。
注: このモードは非常に慎重に使用する必要があります。 このモードではセキュリティ チェックが一切ありません。誰でも認証なしで API リクエストを作成することができます。 また、クライアントと ws_api_instance アプリケーションの間のすべてのトラフィックはプレーン テキストになります。
アプリケーションを HTTP モードで設定するには、http_mode プロパティを http に設定し、必須プロパティを適切な値に設定する必要があります。 例:
app config ws_api_instance usr_ip=usr-ip net_ip=net-ip netmask=netmask gateway=gateway dns1=dns1 dns2=dns2 http_mode=http
アプリケーションを app start コマンドを使用して、または GUI の[アプリケーションの開始]ボタンを使用して開始できるようになりました。
WS_API アプリケーションは、REST (Representational State Transfer)ベースのサービスを通じて、Web サービス インターフェースを 1 つ以上のグリッドに提供します。 HTTPS アクセス メソッドは、安全な HTTP ベースの REST API コールを有効にします。
アプリケーションを HTTPS モードで設定する方法
注: opts が空白のままの場合は、汎用的な SSL 証明書がアプリケーションの開始時に生成されます。 http_mode および allowed_hosts プロパティ設定はデフォルト値の設定のままにできます。 例:
app config ws_api_instance usr_ip=usr-ip net_ip=net-ip netmask=netmask gateway=gateway dns1=dns1 dns2=dns2 opts=ssl_country=Country,ssl_state=State,ssl_local=City,ssl_org_name=Organization,ssl_org_unit=Unit,ssl_common_name=Common Name,ssl_email_address=company@domain.com,ssl_export_pass=Passkey
アプリケーションが初めて開始された場合、PEM 形式のクライアント キー(クライアント証明書と api_client.pem という名前の秘密キーで構成)および PKCS12 形式の api_client.p14 という名前のブラウザ対応キーが、conf ボリュームの /mnt/config/ssl_keys/keys/ ディレクトリに作成されます。 api_client.p14 キー ファイルはブラウザ ベースのすべての API アクセスに使用でき、api_client.pem キーはブラウザ以外の API アクセスに使用できます。
追加のクライアント証明書を生成する方法
WS_API アプリケーションは、REST (Representational State Transfer)ベースのサービスを通じて、Web サービス インターフェースを 1 つ以上のグリッドに提供します。 VPN アクセス メソッドは、安全な VPN トンネルを介して HTTP リクエストを送信できるようにします。
アプリケーションを VPN モードで設定する方法
例:
app config ws_api_instance usr_ip=usr-ip vpn_ip=vpn-ip net_ip=net-ip netmask=netmask gateway=gateway dns1=dns1 dns2=dns2 vpn_standby=0 in_standby=1
アプリケーションが開始した後、必要なサーバ証明書およびキー ファイルが存在しない場合は、VPN サーバ アプライアンスがこれらのファイルを生成します。
[ws_api_instance:main.in_vpn appliance]# ./security.sh generate_client Generated client SSL cerfiticate and key file. ============================================== これらのファイルは、CA 証明書ファイルと共に VPN サーバの /client/ subdirectory of data volume or fs-mounted volume. クライアント ファイル(client.a1c65e2bae3d0b57)へのパスは auth_path プロパティに指定される必要があります。 Location of files: クライアント証明書: /mnt/data/server/client.a1c65e2bae3d0b57.crt クライアント キー ファイル: /mnt/data/server/client.a1c65e2bae3d0b57.key CA 証明書ファイルは /mnt/data/server/ca.crt にあります。
クライアント証明書(client.xxxxxxxxxxxxxxxx.crt など)およびキー ファイル(client.xxxxxxxxxxxxxxxx.key など)は、client サブディレクトリ内に生成されます。CA 証明書(ca.crt)は conf ボリュームの server サブディレクトリ内に生成されます。
オープン ソースおよびサードパーティ ソフトウェアの使用
以下のオープン ソース/サードパーティ ソフトウェアが code ボリュームにインストールされます。
ソフトウェア |
バージョン |
変更 |
ライセンス |
ノート |
JSON |
2.15 |
いいえ |
Artistic |
該当なし |
IPC-Run |
0.82 |
いいえ |
GPLv2 |
該当なし |
XML-Simple |
1.40 |
いいえ |
Artistic |
該当なし |
Sort-Naturally |
1.02 |
いいえ |
Artistic |
該当なし |
Copyright © 2012 CA. All rights reserved. |
|