外部 SFTP サーバーを作成する

このドキュメントでは、Cloud FTP を使用して外部 SFTP サーバーを作成する方法について説明します。外部 SFTP サーバーにはインターネット経由でアクセスできます。ネットワーク外のパートナーは、このサーバーを使用して Cloud Storage との間でファイルを安全に転送できます。

ユーザーの IP アドレスに基づいて、外部 SFTP サーバーへのアクセスを制限できます。

Virtual Private Cloud(VPC)ネットワーク内でのみアクセスできる内部サーバーを作成する手順については、内部 SFTP サーバーを作成するをご覧ください。サーバーの作成後に、サーバーが外部か内部かを変更することはできません。

始める前に

gcloud

  1. Google Cloud CLI をインストールします。

  2. フェデレーション ID(連携 ID)を使用するように gcloud CLI を構成します。

    詳細については、連携 ID を使用して gcloud CLI にログインするをご覧ください。

  3. gcloud CLI を初期化するには、次のコマンドを実行します。

    gcloud init
  4. Google Cloud プロジェクトを作成または選択します

    プロジェクトの選択または作成に必要なロール

    • プロジェクトを選択する: プロジェクトの選択に特定の IAM ロールは必要ありません。ロールが付与されているプロジェクトであれば、どのプロジェクトでも選択できます。
    • プロジェクトを作成する: プロジェクトを作成するには、resourcemanager.projects.create 権限を含むプロジェクト作成者ロール(roles/resourcemanager.projectCreator)が必要です。詳しくは、ロールを付与する方法をご覧ください。
    • Google Cloud プロジェクトを作成します。

      gcloud projects create PROJECT_ID

      PROJECT_ID は、作成する Google Cloud プロジェクトの名前に置き換えます。

    • 作成した Google Cloud プロジェクトを選択します。

      gcloud config set project PROJECT_ID

      PROJECT_ID は、 Google Cloud プロジェクトの名前に置き換えます。

  5. このガイドで既存のプロジェクトを使用する場合は、このガイドを完了するために必要な権限があることを確認します。新しいプロジェクトを作成した場合は、必要な権限がすでに付与されています。

  6. Google Cloud プロジェクトに対して課金が有効になっていることを確認します

  7. Cloud FTP API を有効にします。

    API を有効にするために必要なロール

    API を有効にするには、serviceusage.services.enable 権限が必要です。プロジェクトを作成した場合は、オーナーロール(roles/owner)を介してこの権限がすでに付与されている可能性があります。それ以外の場合は、Service Usage 管理者ロール(roles/serviceusage.serviceUsageAdmin)を介してこの権限を取得できます。ロールを付与する方法をご覧ください。

    gcloud services enable ftp.googleapis.com
  8. ユーザーの IP アドレスに基づいてサーバーへのアクセスを制限する場合は、サーバーへのアクセスを許可する CIDR ブロックのリストを収集します。

必要なロール

SFTP サーバーの作成に必要な権限を取得するには、プロジェクトに対する Cloud FTP 管理者 roles/ftp.admin)IAM ロールの付与を管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

この事前定義ロールには、SFTP サーバーの作成に必要な ftp.servers.create 権限が含まれています。

カスタムロールや他の事前定義ロールを使用して、この権限を取得することもできます。

外部サーバーを作成する

gcloud

外部サーバーを作成するには、gcloud alpha storage ftp servers create コマンドを実行して --access-type=EXTERNAL フラグを指定します。

後述のコマンドデータを使用する前に、次のように置き換えます。

  • SERVER_ID: サーバーの一意の ID。先頭は英小文字に、末尾は英小文字または数字にする必要があります。英小文字、数字、ハイフンを使用できます。最大文字数は 30 文字です。
  • LOCATION_ID: サーバーの Google Cloud ロケーションus-west1 など)。

    データ転送速度を最大にするには、データを保存する Cloud Storage バケットと同じロケーションにサーバーを作成します。バケットのロケーションが Cloud FTP でサポートされていない場合は、最も近い利用可能なロケーションを選択します。

  • CIDR_BLOCK: サーバーへのアクセスが許可されている CIDR ブロック。例: 192.0.2.0/24少なくとも 1 つの値を指定する必要があります。カンマ区切りのリストで最大 500 個の CIDR ブロックを指定できます。すべての IP アドレスからの接続を許可するには、0.0.0.0/0 を使用します。

次のコマンドを実行します。

Linux、macOS、Cloud Shell

gcloud alpha storage ftp servers create SERVER_ID --access-type=EXTERNAL \
    --location=LOCATION_ID --allowed-cidr-blocks=CIDR_BLOCK

Windows(PowerShell)

gcloud alpha storage ftp servers create SERVER_ID --access-type=EXTERNAL `
    --location=LOCATION_ID --allowed-cidr-blocks=CIDR_BLOCK

Windows(cmd.exe)

gcloud alpha storage ftp servers create SERVER_ID --access-type=EXTERNAL ^
    --location=LOCATION_ID --allowed-cidr-blocks=CIDR_BLOCK

サーバーの作成には約 10 分かかります。

REST

外部サーバーを作成するには、servers.create メソッドを使用して、externalConfig アクセス構成を指定します。

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: サーバーの Google Cloud プロジェクト ID。
  • LOCATION_ID: サーバーの Google Cloud ロケーションus-west1 など)。

    データ転送速度を最大にするには、データを保存する Cloud Storage バケットと同じロケーションにサーバーを作成します。バケットのロケーションが Cloud FTP でサポートされていない場合は、最も近い利用可能なロケーションを選択します。

  • SERVER_ID: サーバーの一意の ID。先頭は英小文字に、末尾は英小文字または数字にする必要があります。英小文字、数字、ハイフンを使用できます。最大文字数は 30 文字です。
  • CIDR_BLOCK: サーバーへのアクセスが許可されている CIDR ブロック。例: 192.0.2.0/24少なくとも 1 つの値を指定する必要があります。最大 500 個の CIDR ブロックを指定できます。すべての IP アドレスからの接続を許可するには、0.0.0.0/0 を使用します。

HTTP メソッドと URL:

POST https://ftp.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/servers?serverId=SERVER_ID

リクエストの本文(JSON):

{
  "accessType": "EXTERNAL",
  "externalConfig": {
    "allowedCidrBlocks": [
      "CIDR_BLOCK"
      ]
  }
}

リクエストを送信するには、次のいずれかのオプションを展開します。

レスポンスは、長時間実行オペレーションを識別します。

サーバーの作成には約 10 分かかります。

次のステップ