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

このドキュメントでは、Cloud FTP を使用して内部 SFTP サーバーを作成する方法について説明します。内部 SFTP サーバーには、Private Service Connect を使用して Virtual Private Cloud(VPC)ネットワーク内からのみアクセスできます。 ネットワーク内の従業員と内部関係者は、このサーバーを使用して Cloud Storage との間でファイルを安全に転送できます。

サーバーへの接続を許可するプロジェクトを指定します。必要に応じて、接続を拒否するプロジェクトを指定できます。

VPC の背景情報については、 VPC の概要をご覧ください。

インターネット経由でアクセスできる外部サーバーを作成する手順については、 外部 SFTP サーバーを作成するをご覧ください。 サーバーの作成後に、サーバーが外部か内部かを変更することはできません。

始める前に

gcloud

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

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

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

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

    プロジェクトを選択または作成するために必要なロール

    • プロジェクトを選択する: プロジェクトの選択に特定の IAM ロールは必要ありません。ロールが付与されているプロジェクトを選択できます。
    • プロジェクトを作成する: プロジェクトを作成するには、プロジェクト作成者ロール (roles/resourcemanager.projectCreator)が必要です。これには resourcemanager.projects.create 権限が含まれています。詳しくは、ロールを付与する方法をご覧ください。
    • プロジェクトを作成する 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 ロールは必要ありません。ロールが付与されているプロジェクトを選択できます。
    • プロジェクトを作成する: プロジェクトを作成するには、プロジェクト作成者ロール (roles/resourcemanager.projectCreator)が必要です。これには resourcemanager.projects.create 権限が含まれています。詳しくは、ロールを付与する方法をご覧ください。
    • プロジェクトを作成する 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. サーバーのユーザーに関する次の情報を収集します。

    • サーバーへのアクセスを許可するプロジェクト ID またはプロジェクト番号のリスト。
    • (省略可)サーバーへのアクセスを拒否するプロジェクト ID またはプロジェクト番号のリスト 。

必要なロール

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

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

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

内部サーバーを作成する

gcloud

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

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

  • SERVER_ID: サーバーの一意の ID。小文字で始まり、 小文字または数字で終わる必要があります。小文字、数字、ハイフンを含めることができます。 最大長は 30 文字です。
  • LOCATION_ID:サーバーのGoogle Cloud ロケーションus-west1 など)。

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

  • PROJECT_TO_ALLOW: Private Service Connect を使用してサーバーに接続できるコンシューマー プロジェクトのプロジェクト ID または番号。例: example-allowed-project。少なくとも 1 つのプロジェクトを指定する必要があります。

    最大 500 個のプロジェクトを許可できます。 複数のプロジェクトとそれぞれの接続上限をカンマ区切りのリストで指定します。例: --consumer-accept-list=projectA=20,projectB=15

  • CONNECTION_LIMIT: コンシューマー プロジェクトで作成できる Private Service Connect エンドポイントの最大数。値は 1 ~ 250 エンドポイントにする必要があります。
  • (省略可)PROJECT_TO_REJECT:サーバーへの接続が禁止されているコンシューマー プロジェクトのプロジェクト ID または番号。例: example-rejected-project。 このリストにあるプロジェクトは、許可されたプロジェクトのリスト に含まれていても、サーバーへのアクセスが拒否されます。

    最大 64 個のプロジェクトを拒否できます。 複数のプロジェクトをカンマ区切りのリストで指定します。

    プロジェクトを明示的に拒否しない場合は、 --consumer-reject-list フラグを省略します。

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

Linux、macOS、Cloud Shell

gcloud alpha storage ftp servers create SERVER_ID --access-type=INTERNAL \
    --location=LOCATION_ID \
    --consumer-accept-list=PROJECT_TO_ALLOW=CONNECTION_LIMIT \
    --consumer-reject-list=PROJECT_TO_REJECT

Windows(PowerShell)

gcloud alpha storage ftp servers create SERVER_ID --access-type=INTERNAL `
    --location=LOCATION_ID `
    --consumer-accept-list=PROJECT_TO_ALLOW=CONNECTION_LIMIT `
    --consumer-reject-list=PROJECT_TO_REJECT

Windows(cmd.exe)

gcloud alpha storage ftp servers create SERVER_ID --access-type=INTERNAL ^
    --location=LOCATION_ID ^
    --consumer-accept-list=PROJECT_TO_ALLOW=CONNECTION_LIMIT ^
    --consumer-reject-list=PROJECT_TO_REJECT

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

REST

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

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

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

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

  • SERVER_ID: サーバーの一意の ID。小文字で始まり、 小文字または数字で終わる必要があります。小文字、数字、ハイフンを含めることができます。 最大長は 30 文字です。
  • PROJECT_TO_ALLOW: Private Service Connect を使用してサーバーに接続できるコンシューマー プロジェクトのプロジェクト ID または番号。例: example-allowed-project。少なくとも 1 つのプロジェクトを指定する必要があります。

    最大 500 個のプロジェクトを許可できます。

  • CONNECTION_LIMIT: コンシューマー プロジェクトで作成できる Private Service Connect エンドポイントの最大数。値は 1 ~ 250 エンドポイントにする必要があります。
  • (省略可)PROJECT_TO_REJECT:サーバーへの接続が禁止されているコンシューマー プロジェクトのプロジェクト ID または番号。例: example-rejected-project。 このリストにあるプロジェクトは、許可されたプロジェクトのリスト に含まれていても、サーバーへのアクセスが拒否されます。

    最大 64 個のプロジェクトを拒否できます。

    プロジェクトを明示的に拒否しない場合は、 consumerRejectList オブジェクトを省略します。

HTTP メソッドと URL:

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

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

{
  "accessType": "INTERNAL",
  "internalConfig": {
    "consumerAcceptList": [
      {
        "project": "projects/PROJECT_TO_ALLOW",
        "connectionLimit": CONNECTION_LIMIT
      }
    ],
    "consumerRejectList": [
      {
        "project": "projects/PROJECT_TO_REJECT"
      }
    ]
  }
}

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

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

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

次のステップ