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

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

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

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

始める前に

コンソール

  1. Google Cloud アカウントにログインします。 Google Cloudを初めて使用する場合は、 アカウントを作成して、実際のシナリオで Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分も差し上げます。
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  4. Verify that billing is enabled for your Google Cloud project.

  5. Enable the Cloud FTP API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  7. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  8. Verify that billing is enabled for your Google Cloud project.

  9. Enable the Cloud FTP API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  10. ユーザーの IP アドレスに基づいてサーバーへのアクセスを制限する場合は、サーバーへのアクセスが許可されている CIDR ブロックのリストを収集します。

gcloud

  1. Google Cloud アカウントにログインします。 Google Cloudを初めて使用する場合は、 アカウントを作成して、実際のシナリオで Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分も差し上げます。
  2. Google Cloud CLI をインストールします。

  3. 外部 ID プロバイダ(IdP)を使用している場合は、まず フェデレーション ID を使用して gcloud CLI にログインする必要があります。

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

    gcloud init
  5. 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 プロジェクトの名前に置き換えます。

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

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

  8. Cloud FTP API が有効になっていない場合は、有効にします。

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

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

    gcloud services enable ftp.googleapis.com
  9. Google Cloud CLI をインストールします。

  10. 外部 ID プロバイダ(IdP)を使用している場合は、まず フェデレーション ID を使用して gcloud CLI にログインする必要があります。

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

    gcloud init
  12. 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 プロジェクトの名前に置き換えます。

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

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

  15. Cloud FTP API が有効になっていない場合は、有効にします。

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

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

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

必要なロール

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

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

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

外部サーバーを作成する

コンソール

  1. Google Cloud コンソールで、[Cloud FTP] ページに移動します。

    Cloud FTP に移動

  2. [サーバーを作成] をクリックします。

  3. [サーバー構成] タブで、サーバーの基本情報を入力します。

    1. [サーバー ID] フィールドに、サーバーの一意の ID を入力します。

    2. [リージョン] リストで、サーバーの Google Cloud ロケーションを選択します。

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

    3. (省略可)サーバーの表示名を入力します。

    4. [続行] をクリックします。

  4. [ネットワーキングとセキュリティ] タブで、サーバーの接続を構成します。

    1. [外部(パブリック IP)] を選択します。

    2. [許可された IP 範囲] フィールドに、サーバーへのアクセスを許可する CIDR ブロックを指定し、Enter キーを押します。例: 192.0.2.0/24少なくとも 1 つの値を指定する必要があります。最大 500 個の CIDR ブロックを指定できます。すべての IP アドレスからの接続を許可するには、0.0.0.0/0 を使用します。

  5. [作成] をクリックします。

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

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 分かかります。

次のステップ