本文档介绍了如何使用 Cloud FTP 创建外部 SFTP 服务器。外部 SFTP 服务器可通过互联网访问。您网络之外的合作伙伴可以使用该服务器安全地将文件传输到 Cloud Storage 或从 Cloud Storage 传输文件。
您可以根据用户的 IP 地址限制对外部 SFTP 服务器的访问。
如需了解创建只能在 Virtual Private Cloud (VPC) 网络内访问的内部服务器的步骤,请参阅创建内部 SFTP 服务器。 创建服务器后,您无法更改服务器是外部服务器还是内部服务器。
准备工作
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 权限。
创建外部服务器
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 分钟。