Google Compute Engineで9090などの特定のポートを開く方法


195

2つのGoogle Compute Engineインスタンスがあり、両方のインスタンスでポート9090を開きたい。ファイアウォールルールをいくつか追加する必要があると思います。

どうすればそれを行うことができますか?


7
この質問に対する回答はあったと思います。以下の回答から1つ選択していただけませんか。将来の読者がこの問題が解決されたことをより簡単に認識するのに役立ちます。
modulitos

サブフラディよ、答えを選んでください。
オリゴフレン2018年

回答:


339

必要がある:

  1. cloud.google.comにアクセスします

  2. コンソールに移動

  3. プロジェクトを選択してください

  4. [Networking]> [VPC network]を選択します

  5. 「ファイアウォールルール」を選択します

  6. 「ファイアウォールルールの作成」を選択します

  7. ルールを適用してVMインスタンスを選択するには、[ターゲット]> [指定されたターゲットタグ]を選択し、[ターゲットタグ]にタグの名前を入力します。このタグは、新しいファイアウォールルールを任意のインスタンスに適用するために使用されます。次に、インスタンスにネットワークタグが適用されていることを確認します。

  8. ポート9090への着信TCP接続を許可するには、「プロトコルとポート」に次のように入力します。 tcp:9090

  9. 作成をクリックします

これがお役に立てば幸いです。

更新ルールをカスタマイズするには、ドキュメントを参照してください。


4
計算エンジンには「ネットワーク」オプションがありません(もう?)
Afr

8
はい、現在、ネットワークオプションはありません。更新されたパスは、プロジェクト->ネットワーキング->ファイアウォールルール
Caio Vertematti

1
私のインスタンスでは、私が唯一持っているallow httpallow https私は、新しいファイアウォールルールを追加しましたが、私はそれを見つけるように見えることはできません。それが役に立てば、私も無料枠にいます。
A. L

1
httpが80ポートを開き、httpsが443を開くことを許可する必要があります。これはショートカットです。
カルロスロハス2017

4
ドキュメントのメニューパスは変わり続けます。答えの中でドキュメントを指すことが重要だと考えています:cloud.google.com/vpc/docs/using-firewalls
Anupam

81

この質問に答えるためのコマンドラインアプローチは次のとおりです。

gcloud compute firewall-rules create <rule-name> --allow tcp:9090 --source-tags=<list-of-your-instances-names> --source-ranges=0.0.0.0/0 --description="<your-description-here>"

これにより、指定9090したインスタンスのポートが開きます。省略し--source-tags--source-rangesすべてのインスタンスにルールを適用します。詳細はしているのgcloudドキュメントコマンドマニュアルfirewall-rule create

以前の回答は素晴らしいですが、Googleではgcloudコマンドの代わりに新しいコマンドを使用することお勧めしていgcutilます。

PS:Googleのファイアウォールルールを理解するには、gcloud compute firewall-rules listすべてのファイアウォールルールを実行して表示してください


--descriptionパーツを使用すると苦情が出ますが、それ以外の場合は問題ありません。
shabbychef 2016

2
彼らがAPIを変更したかどうかはわかりませんが、ソースとターゲットは@modulitosの答えとは逆のようです。firewall-rulesコマンドドキュメントによると、sourceは着信トラフィックを意味targetしますが、ルールを適用するインスタンスを指します。
cindyxiaoxiaoli

1
ERROR: (gcloud.compute.firewall-rules.create) Could not fetch resource: - Insufficient Permission@modulitos
alper

余波テスト@modulitosとは何ですか?それはありますtelnet :instance_ip :portnmap -p :port :instance_ip
Nam G VU

@alper前に次のコマンドを実行する必要があります。「gcloud auth login」とログイン
Anton Tkachov

10

tcp:9090インスタンスへのインバウンドアクセスを開くには、ファイアウォールルールを追加する必要があります。3つ以上のインスタンスがあり、それらの2つに対してのみ9090を開く場合は、これら2つのインスタンスが共有するタグがあることを確認する必要があります。コンソールまたはコマンドラインを介してタグを追加または更新できます。必要に応じてGUIを使用することをお勧めします。GUIはで読み取り/変更/書き込みサイクルを処理するためsetinstancetagsです。

すべてのインスタンスに対してポート9090を開く場合は、次のようなファイアウォールルールを作成できます。

gcutil addfirewall allow-9090 --allowed=tcp:9090

これはすべてのインスタンスに適用されます。

アプリケーションにサービスを提供している2つのインスタンスに対してポート9090のみを開く場合は、それらにのようなタグがあることを確認してmy-appから、次のようなファイアウォールを追加します。

gcutil addfirewall my-app-9090 --allowed=tcp:9090 --target_tags=my-app

GCEでのファイアウォールの作成と管理について詳しくは、こちらをご覧ください


10
gcutil使用できなくなりました; を使用してコマンドラインを書き直してくださいgcloud
Misha Brukman、2015

10

この質問は古く、Carlos Rojasの答えは良いですが、ポートを開こうとするときに心に留めておくべきことをいくつか投稿する必要があると思います。

最初に覚えておくべきことは、Networkingセクションの名前がVPC Networkingに変更されていることです。ファイアウォールルールオプションが利用できる場所を見つけようとしている場合は、VPCネットワークを参照してください。

2つ目は、Linux VMでポートを開こうとする場合は、いかなる状況でもufwコマンドを使用してポートを開こうとしないことを確認してください。私はそれを使ってみました、そして、VMへのsshアクセスを失いました。だから私の間違いを繰り返さないでください。

3つ目は、Windows VMでポートを開こうとする場合は、VPCネットワーク->ファイアウォールルールとともに、WindowsファイアウォールでもVM内にファイアウォールルールを作成する必要があることです。Linux VMとは異なり、両方のファイアウォールルールでポートを開く必要があります。そのため、VMの外部からポートにアクセスできない場合は、GCP ConsoleとWindowsファイアウォールの両方でポートを開いているかどうかを確認してください。

最後の(明白な)ことは、ポートを不必要に開かないことです。不要になったらすぐにポートを閉じます。

この回答がお役に立てば幸いです。


ufwコマンドを使用して特定のポートをいくつか開いていて、まだsshアクセスできることを除いて、良いヒントです。
stackErr 2018年

7

私はあなたと同じ問題を抱えていたので、@ CarlosRojasの指示に従って少し違いをもって解決することができました。新しいファイアウォールルールを作成する代わりに、新しいルールをdefault-allow-internal作成しても違いはないので、どこからでもトラフィックを受け入れるように編集しました。


新しいファイアウォールルールを作成するには料金がかかります。このルールを編集して、それを回避できましたか?
killjoy 2016年

@killjoyよくわかりません。現在、Google Compute Engineを使用していません。ごめんなさい。
Nevershowmyface

2
これはうまくいくかもしれませんが、この方法にはセキュリティ上の懸念があります。私の場合は、インスタンスでファイアウォールタグを使用していることがわかりました。ファイアウォールルールを作成するときに、そのルールの「ターゲットタグ」を作成できます。次に、そのタグをVMインスタンスに適用し、特定のインスタンスにルールを適用します。:ここでは、より受け入れ答えを参照してくださいstackoverflow.com/questions/31509722/...
k00k

7

ファイアウォールルールの作成

GCPのファイアウォールルールに慣れていない場合は、ファイアウォールルールコンポーネント[1]を確認してください。ファイアウォールルールはネットワークレベルで定義され、それらが作成されたネットワークにのみ適用されます。ただし、それぞれに選択する名前はプロジェクトに固有である必要があります。

Cloud Consoleの場合:

  1. Google Cloud Platform Consoleのファイアウォールルールページに移動します。
  2. [ファイアウォールルールの作成]をクリックします。
  3. ファイアウォールルールの名前を入力します。この名前はプロジェクトで一意である必要があります。
  4. ファイアウォールルールを実装するネットワークを指定します。
  5. ルールの優先度を指定します。数値が小さいほど、優先度が高くなります。
  6. トラフィックの方向には、入力または出力を選択します。
  7. [一致時のアクション]で、[許可]または[拒否]を選択します。
  8. ルールのターゲットを指定します。

    • ルールをネットワーク内のすべてのインスタンスに適用する場合は、[ネットワーク内のすべてのインスタンス]を選択します。
    • ルールをネットワーク(ターゲット)タグごとに選択したインスタンスに適用する場合は、[指定されたターゲットタグ]を選択し、ルールを適用するタグを[ターゲットタグ]フィールドに入力します。
    • 関連付けられたサービスアカウントによって選択したインスタンスにルールを適用する場合は、[指定されたサービスアカウント]を選択し、サービスアカウントが現在のプロジェクトにあるか、サービスアカウントのスコープの下にある別のプロジェクトにあるかを示し、ターゲットサービスでサービスアカウント名を選択または入力しますアカウントフィールド。
  9. 上りルールの場合、送信元フィルターを指定します。

    • IP範囲を選択し、CIDRブロックを[送信元IP範囲]フィールドに入力して、IPアドレス範囲ごとに着信トラフィックの送信元を定義します。任意のネットワークからのソースには0.0.0.0/0を使用します。
    • [サブネット]を選択し、[サブネット]ポップアップボタンから必要なものをマークして、サブネット名で着信トラフィックのソースを定義します。
    • ネットワークタグでソースを制限するには、[ソースタグ]を選択し、[ソースタグ]フィールドにネットワークタグを入力します。ソースタグの数の制限については、VPCの割り当てと制限をご覧ください。ソースタグによるフィルタリングは、ターゲットがサービスアカウントで指定されていない場合にのみ使用できます。詳細については、サービスアカウントとネットワークタグによるフィルタリングをご覧ください。
    • サービスアカウントでソースを制限するには、[サービスアカウント]を選択し、サービスアカウントが現在のプロジェクトにあるか、サービスアカウントスコープの下の別のプロジェクトにあるかを示し、[ソースサービスアカウント]フィールドでサービスアカウント名を選択または入力します。ソースサービスアカウントによるフィルタリングは、ターゲットがネットワークタグで指定されていない場合にのみ使用できます。詳細については、サービスアカウントとネットワークタグによるフィルタリングをご覧ください。
    • 必要に応じて、2番目のソースフィルターを指定します。セカンダリソースフィルターは、プライマリフィルターフィルターと同じフィルター基準を使用できません。
  10. 下りルールの場合、宛先フィルターを指定します。

    • IP範囲を選択し、CIDRブロックを[宛先IP範囲]フィールドに入力して、発信トラフィックの宛先をIPアドレス範囲で定義します。0.0.0.0/0を使用して、あらゆる場所を意味します。
    • [サブネット]を選択し、[サブネット]ポップアップボタンから必要なものをマークして、サブネット名で送信トラフィックの宛先を定義します。
  11. ルールを適用するプロトコルとポートを定義します。

    • アクションに応じて、[すべて許可]または[すべて拒否]を選択して、ルールをすべてのプロトコルとポートに適用します。

    • 特定のプロトコルとポートを定義します。

      • TCPプロトコルとポートを含めるには、tcpを選択します。20-22、80、8080など、ポートのすべてまたはカンマ区切りのリストを入力します。
      • UDPプロトコルとポートを含めるには、udpを選択します。67-69、123など、ポートのすべてまたはカンマ区切りのリストを入力します。
      • icmpやsctpなどのプロトコルを含めるには、[その他のプロトコル]を選択します。
  12. (オプション)ファイアウォールルールを作成できますが、施行状態を無効に設定することで施行できません。[ルールを無効にする]をクリックし、[無効]を選択します。

  13. (オプション)ファイアウォールルールのロギングを有効にできます。

    • [ログ]> [オン]をクリックします。
    • [オンにする]をクリックします。
  14. 作成をクリックします。

リンク:[1] https://cloud.google.com/vpc/docs/firewalls#firewall_rule_components


0

優先度を下げる(高くする)ことでこれを修正する必要がありました。これにより、即座に応答がありました。私が期待していたものではありませんでしたが、うまくいきました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.