このドキュメントでは、Cloud FTP を使用して外部 SFTP サーバーを作成する方法について説明します。外部 SFTP サーバーにはインターネット経由でアクセスできます。ネットワーク外のパートナーは、このサーバーを使用して Cloud Storage との間でファイルを安全に転送できます。
ユーザーの IP アドレスに基づいて、外部 SFTP サーバーへのアクセスを制限できます。
Virtual Private Cloud(VPC)ネットワーク内でのみアクセスできる内部サーバーを作成する手順については、内部 SFTP サーバーを作成するをご覧ください。サーバーの作成後に、サーバーが外部か内部かを変更することはできません。
始める前に
gcloud
- Google Cloud アカウントにログインします。 Google Cloudを初めて使用する場合は、 アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
-
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します。
gcloud init -
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 プロジェクトの名前に置き換えます。
-
このガイドで既存のプロジェクトを使用する場合は、このガイドを完了するために必要な権限があることを確認します。新しいプロジェクトを作成した場合は、必要な権限がすでに付与されています。
Cloud FTP API を有効にします。
API を有効にするために必要なロール
API を有効にするには、
serviceusage.services.enable権限が必要です。プロジェクトを作成した場合は、オーナーロール(roles/owner)を介してこの権限がすでに付与されている可能性があります。それ以外の場合は、Service Usage 管理者ロール(roles/serviceusage.serviceUsageAdmin)を介してこの権限を取得できます。ロールを付与する方法をご覧ください。gcloud services enable ftp.googleapis.com
-
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します。
gcloud init -
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 プロジェクトの名前に置き換えます。
-
このガイドで既存のプロジェクトを使用する場合は、このガイドを完了するために必要な権限があることを確認します。新しいプロジェクトを作成した場合は、必要な権限がすでに付与されています。
Cloud FTP API を有効にします。
API を有効にするために必要なロール
API を有効にするには、
serviceusage.services.enable権限が必要です。プロジェクトを作成した場合は、オーナーロール(roles/owner)を介してこの権限がすでに付与されている可能性があります。それ以外の場合は、Service Usage 管理者ロール(roles/serviceusage.serviceUsageAdmin)を介してこの権限を取得できます。ロールを付与する方法をご覧ください。gcloud services enable ftp.googleapis.com
- ユーザーの 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 分かかります。