SSH アクセス制限の不足

SSH をインターネット全体に許可せず、承認された管理経路に限定してください。

説明

ファイアウォールで 0.0.0.0/0 からの TCP 22 を許可すると、IPv4 のインターネット全体から SSH 接続を試行できる範囲が開きます。VM に実際に到達するかは、外部 IP や他の接続経路、適用されるファイアウォールポリシー、SSH サービスの待ち受けにも依存します。

管理アクセスは、承認された送信元や VPN、IAP、踏み台などの経路に制限してください。ネットワーク接続が許可されても、SSH 認証は引き続き必要です。

想定される影響

  • 管理ポートが総当たりのログイン試行や脆弱性スキャンを受ける場合があります。
  • 漏えいした認証情報や SSH の脆弱性が悪用されると、インスタンスが侵害される場合があります。

対処方法

  • 不要な公開範囲への TCP 22 の許可を削除し、必要な管理用送信元と対象インスタンスだけに限定してください。
  • VPN、IAP、踏み台を経由するアクセスと強固な SSH 認証を構成してください。他のファイアウォールルール・ポリシーと IPv6 も確認し、承認された経路から接続をテストしてください。

例

Deployment Manager のサポートは終了しています。サポートされる管理ツールを使用してください。以下は送信元制限だけを比較する既存の抜粋であり、ネットワークと対象範囲は別途構成します。203.0.113.10/32 は文書用のアドレスのため、実際に承認された管理用送信元へ置き換えてください。

変更前

yaml
resources:
  - name: firewall
    type: compute.v1.firewall
    properties:
      sourceRanges:
        - "0.0.0.0/0"
      allowed:
        - IPProtocol: tcp
          ports:
            - "22"

変更後

yaml
resources:
  - name: firewall
    type: compute.v1.firewall
    properties:
      sourceRanges:
        - "203.0.113.10/32"
      allowed:
        - IPProtocol: tcp
          ports:
            - "22"

補足:

  • 変更前: このルールは、すべての IPv4 送信元から TCP 22 を許可します。
  • 変更後: このルールの送信元を一つの IPv4 アドレスに限定します。他のルールやポリシーによる許可も確認する必要があります。

参考資料