セキュリティグループにて接続元のIPで制限を行う方法をご案内します。
なお、以下ではAPIによるcurlコマンドを用いた設定手順となりますので、任意のサーバーにて実行ください。
設定手順
[ 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 ] 任意のポートに対して指定するIPからのトラフィックのみを許可する設定を作成したセキュリティグループに追加します。
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”: “ポート番号“, “port_range_max”: “ポート番号“, “protocol”: “tcp”, “remote_ip_prefix”: “許可IPアドレス/32“}}’ \ ネットワークのエンドポイント/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にてサーバーをご利用いただく場合の一例であり、お客様の運用やポリシーによってその限りではございません。
お客様のご利用用途に応じて必要な設定や操作をおこなってください。