任意のルールで新しいセキュリティグループを作成する方法をご案内します。
以下手順は、80番ポートのみを受け付けるセキュリティグループのルールを作成し、対象のサーバーに適用する設定例になります。
なお、APIによるcurlコマンドを用いた設定手順となりますので、任意のサーバーにて実行ください。
コントロールパネルの操作手順
[ 1 ] 左メニューより [仮想サーバー] を選択の上、「仮想サーバーリスト」の中から対象サーバーの [ネームタグ] をクリックします。
[ 2 ] 「ネットワーク情報」を選択します。「接続許可ポート」項目にて現在のセキュリティグループのポート開閉の設定状況がご確認いただけます。
[ 3 ] [全て許可] のチェックをはずし、全ての接続を拒否する状態にします。後述するAPIの操作を適用するサーバー内で実施する場合は、「SSH(22)」などの必要なポート番号が利用できるよう任意でチェックを入れてください。
以上がコントロールパネルにて必要な操作になります。以降はサーバー内で設定に必要なAPIを実行します。
API操作手順
[ 1 ] API認証を行い、トークンの取得ならびに発行されたトークンIDを確認します。
認証のエンドポイント | コントロールパネル内のAPIメニューから「Identity Service」をご確認ください。 |
APIユーザー名 | コントロールパネル内のAPIメニューからAPIユーザーを作成ください。 |
パスワード | コントロールパネルのAPIメニューからAPIユーザーを作成する際に設定するパスワード。 |
テナント名 | コントロールパネル内のAPIメニューから「テナント名」をご確認ください。 |
curl -i -X POST \ -H “Accept: application/json” \ -H “Content-Type: application/json” \ -d ‘{“auth”:{“passwordCredentials”:{“username”: “APIユーザー名“, “password”: “パスワード“},”tenantName”:”テナント名“}}’ \ 認証のエンドポイント/tokens |
コンソール画面上には以下のようにリクエストの結果が返ってきます。
「access」の「id」の値がAPI操作を行う際に必要となるトークンIDです。
以降の手順では、トークンIDと表示されているものは全てこのIDを指すものとします。
トークンIDは発行後、24時間で失効となりますので作業が日をまたぐ場合は都度発行する必要があります。
{“access”:{“token”:{“issued_at”:”2016-11-27T08:01:26.504595″,”expires”:”2016-11-28T08:01:26Z”, “id”:”9e54605ee98043b2a89d28f80bc1ce3f“ |
[ 2 ] セキュリティグループを作成します。
ネットワークのエンドポイント | コントロールパネル内のAPIメニューから「Network Service」をご確認ください。 |
curl -i -X POST \ -H “Accept: application/json” \ -H “Content-Type: application/json” \ -H “X-Auth-Token: トークンID” \ -d ‘{“security_group”: {“name”: “任意のセキュリティグループ名“}}’ \ ネットワークのエンドポイント/v2.0/security-groups |
上記リクエストが正常に処理されると以下のような結果が返ってきます。
「security_group」の「id」の値がAPI操作を行う際に必要となるセキュリティグループIDです。
以降の手順でAPIの操作に必要となりますので、メモをとってください。
{“security_group”: {“description”: “”,”id”: “セキュリティグループID“ |
[ 3 ] 80番ポートのトラフィックのみを許可するルールを作成したセキュリティグループに追加します。
curl -i -X POST \ -H “Content-Type: application/json” \ -H “X-Auth-Token: トークンID” \ -d ‘{“security_group_rule”: {“direction”: “ingress”, “ethertype”: “IPv4”, “security_group_id”: “セキュリティグループID“, “port_range_min”: “80”, “port_range_max”: “80”, “protocol”: “tcp”}}’ \ ネットワークのエンドポイント/v2.0/security-group-rules
|
[ 4 ] セキュリティグループを適用するサーバーの「ポート情報」を確認します。
curl -i -X GET \ -H “Accept: application/json” \ -H “Content-Type: application/json” \ -H “X-Auth-Token: トークンID” \ ネットワークのエンドポイント/v2.0/ports |
上記リクエストが正常に処理されると以下のような結果が返ってきます。
「id」の値がAPI操作を行う際に必要となるポートIDです。
以降の手順でAPIの操作に必要となりますので、該当サーバーにアタッチされているグローバルIPアドレス等の情報から対象サーバーの「ポートID」をご確認の上、メモをとってください。
{
“ports”: [ { “admin_state_up”: true, “allowed_address_pairs”: [], “binding:vnic_type”: “normal”, “device_id”: “デバイスID”, “device_owner”: “compute:None”, “extra_dhcp_opts”: [], “fixed_ips”: [ { “ip_address”: “IPアドレス“, “subnet_id”: “サブネットID” } ], “id”: “ポートID“, “mac_address”: “MACアドレス”, “name”: “ポートの名前”, “network_id”: “ネットワークID”, “security_groups”: [ “セキュリティグループID” ], “status”: “ACTIVE”, “tenant_id”: “テナントID” }, |
[ 5 ] 作成したセキュリティグループを対象サーバーのポートに適用します。
curl -X PUT \ -H “Accept: application/json” \ -H “X-Auth-Token: トークンID” \ -d ‘{“port”: {“security_groups”: [“セキュリティグループID“]}}’ \ ネットワークのエンドポイント/v2.0/ports/ポートID |
本リファレンスはS-port cloud EVAにてサーバーをご利用いただく場合の一例であり、お客様の運用やポリシーによってその限りではございません。
お客様のご利用用途に応じて必要な設定や操作をおこなってください。