本文档介绍了如何使用 Cloud FTP 创建外部 SFTP 服务器。外部 SFTP 服务器可通过互联网访问。您网络之外的合作伙伴可以使用该服务器安全地将文件传输到 Cloud Storage 或从 Cloud Storage 传输文件。
您可以根据用户的 IP 地址限制对外部 SFTP 服务器的访问。
如需了解创建只能在 Virtual Private Cloud (VPC) 网络内访问的内部服务器的步骤,请参阅创建内部 SFTP 服务器。 创建服务器后,您无法更改服务器是外部服务器还是内部服务器。
准备工作
控制台
- 登录您的 Google Cloud 账号。如果您是 Google Cloud新手,请 创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
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.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud FTP API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. 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.-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
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.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud FTP API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. 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.- 如果您想根据用户的 IP 地址限制对服务器的访问权限,请收集允许访问服务器的 CIDR 地址块列表。
gcloud
- 登录您的 Google Cloud 账号。如果您是 Google Cloud新手,请 创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
-
安装 Google Cloud CLI。
-
如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init -
选择或创建项目所需的角色
- 选择项目:选择项目不需要特定的 IAM 角色,您可以选择已获授角色的任何项目。
-
创建项目:如需创建项目,您需要拥有 Project Creator 角色 (
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 项目名称。
-
如果您要使用现有项目来完成本指南,请验证您是否拥有完成本指南所需的权限。如果您创建了新项目,则您已拥有所需的权限。
启用 Cloud FTP API:
启用 API 所需的角色
如需启用 API,您需要拥有
serviceusage.services.enable权限。如果您创建了项目,则可能已经通过 Owner 角色 (roles/owner) 获得了此权限。否则,您可以通过 Service Usage Admin 角色 (roles/serviceusage.serviceUsageAdmin) 获得此权限。了解如何授予角色。gcloud services enable ftp.googleapis.com
-
安装 Google Cloud CLI。
-
如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init -
选择或创建项目所需的角色
- 选择项目:选择项目不需要特定的 IAM 角色,您可以选择已获授角色的任何项目。
-
创建项目:如需创建项目,您需要拥有 Project Creator 角色 (
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 项目名称。
-
如果您要使用现有项目来完成本指南,请验证您是否拥有完成本指南所需的权限。如果您创建了新项目,则您已拥有所需的权限。
启用 Cloud FTP API:
启用 API 所需的角色
如需启用 API,您需要拥有
serviceusage.services.enable权限。如果您创建了项目,则可能已经通过 Owner 角色 (roles/owner) 获得了此权限。否则,您可以通过 Service Usage Admin 角色 (roles/serviceusage.serviceUsageAdmin) 获得此权限。了解如何授予角色。gcloud services enable ftp.googleapis.com
- 如果您想根据用户的 IP 地址限制对服务器的访问权限,请收集允许访问服务器的 CIDR 地址块列表。
所需的角色
如需获得创建 SFTP 服务器所需的权限,请让您的管理员为您授予项目的 Cloud FTP Admin (roles/ftp.admin) IAM 角色。
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
此预定义角色包含创建 SFTP 服务器所需的 ftp.servers.create 权限。
创建外部服务器
控制台
- 在 Google Cloud 控制台中,前往 Cloud FTP 页面。
点击创建服务器。
在服务器配置标签页上,输入服务器的基本详细信息:
在服务器 ID 字段中,输入服务器的唯一 ID。
在区域列表中,选择服务器的Google Cloud 位置。
为获得最快的数据传输速度,请在存储数据的 Cloud Storage 存储桶所在的同一位置创建服务器。 如果 Cloud FTP 不支持相应存储桶的位置,请选择最近的可用位置。
(可选)输入服务器的显示名称。
点击继续。
在网络和安全标签页上,为服务器配置连接:
选择外部(公共 IP)。
在 Allowed IP ranges 字段中,提供允许访问服务器的 CIDR 块,然后按 Enter 键。例如
192.0.2.0/24。您必须至少提供一个值,最多可以提供 500 个 CIDR 块。 如需允许来自所有 IP 地址的连接,请使用0.0.0.0/0。
点击创建。
创建服务器大约需要 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。您必须提供至少一个值,并且最多可以在逗号分隔列表中提供 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。您必须至少提供一个值,最多可以提供 500 个 CIDR 块。 如需允许来自所有 IP 地址的连接,请使用0.0.0.0/0。
HTTP 方法和网址:
POST https://ftp.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/servers?serverId=SERVER_ID
请求 JSON 正文:
{
"accessType": "EXTERNAL",
"externalConfig": {
"allowedCidrBlocks": [
"CIDR_BLOCK"
]
}
}
如需发送您的请求,请展开以下选项之一:
该响应用于标识长时间运行的操作。创建服务器大约需要 10 分钟。