本文說明如何使用 Cloud FTP 建立內部 SFTP 伺服器。內部 SFTP 伺服器只能透過 Private Service Connect,在虛擬私有雲 (VPC) 網路中存取。網路中的員工和內部利害關係人可以使用伺服器,安全地將檔案傳輸至 Cloud Storage,或從 Cloud Storage 傳輸檔案。
您可以指定允許連線至伺服器的專案。您也可以視需要指定拒絕連線的專案。
如需虛擬私有雲的背景資訊,請參閱「虛擬私有雲總覽」。
如要瞭解如何建立可透過網際網路存取的外部伺服器,請參閱「建立外部 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, if it is not already enabled.
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, if it is not already enabled.
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.-
收集下列伺服器使用者相關資訊:
- 允許存取伺服器的專案 ID 或專案編號清單。
- (選用) 遭拒絕存取伺服器的專案 ID 或專案編號清單。
gcloud
- 登入 Google Cloud 帳戶。如果您未曾使用過 Google Cloud,歡迎 建立帳戶,親自體驗實際使用我們產品的成效。新客戶還能獲得價值 $300 美元的免費抵免額,用於執行、測試及部署工作負載。
-
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
-
執行下列指令,初始化 gcloud CLI:
gcloud init -
選取或建立專案所需的角色
- 選取專案:選取專案時不需要特定 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 專案名稱。
-
如要使用現有專案進行本指南中的操作,請確認您具有完成本指南所需的權限。如果您建立新專案,則已具備必要權限。
啟用 Cloud FTP API (如果尚未啟用):
啟用 API 所需的角色
您必須具備
serviceusage.services.enable權限,才能啟用 API。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「Service Usage 管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。gcloud services enable ftp.googleapis.com
-
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
-
執行下列指令,初始化 gcloud CLI:
gcloud init -
選取或建立專案所需的角色
- 選取專案:選取專案時不需要特定 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 專案名稱。
-
如要使用現有專案進行本指南中的操作,請確認您具有完成本指南所需的權限。如果您建立新專案,則已具備必要權限。
啟用 Cloud FTP API (如果尚未啟用):
啟用 API 所需的角色
您必須具備
serviceusage.services.enable權限,才能啟用 API。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「Service Usage 管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。gcloud services enable ftp.googleapis.com
-
收集下列伺服器使用者相關資訊:
- 允許存取伺服器的專案 ID 或專案編號清單。
- (選用) 遭拒絕存取伺服器的專案 ID 或專案編號清單。
必要的角色
如要取得建立 SFTP 伺服器所需的權限,請要求管理員授予您專案的 Cloud FTP 管理員 (roles/ftp.admin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這個預先定義的角色具備建立 SFTP 伺服器所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
必須具備下列權限,才能建立 SFTP 伺服器:
-
ftp.servers.create -
如要使用 Google Cloud 控制台執行這項工作:
-
ftp.servers.list -
ftp.locations.list
-
建立內部伺服器
控制台
- 前往 Google Cloud 控制台的「Cloud FTP」頁面。
按一下「建立伺服器」。
在「Server configuration」(伺服器設定) 分頁中,輸入伺服器的基本詳細資料:
在「Server ID」(伺服器 ID) 欄位中,輸入伺服器的專屬 ID。
在「Region」(區域) 清單中,選取伺服器的Google Cloud 位置。
為達到最快的資料移轉速度,請在儲存資料的 Cloud Storage bucket 所在位置建立伺服器。如果 Cloud FTP 不支援 bucket 的位置,請選取最接近的可用位置。
(選用) 輸入伺服器的顯示名稱。
按一下「繼續」。
在「Networking and security」(網路和安全性) 分頁中,設定伺服器的連線能力:
選取「內部 (僅限虛擬私有雲)」。
在「Accepted projects」(接受的專案) 區段中,指定允許使用 Private Service Connect 連線至伺服器的用戶專案。請執行下列步驟:
在「Project ID or number」(專案 ID 或編號) 欄位中,輸入允許連線的專案 ID 或編號。例如:
example-allowed-project。在「Connection limit」(連線限制) 欄位中,輸入可在用戶專案中建立的 Private Service Connect 端點數量上限。值必須介於 1 到 250 個端點之間。
如要新增更多專案,請按一下「Add accepted project」(新增接受的專案),然後重複上述步驟。
(選用) 如要禁止專案連線至伺服器,請在「Rejected projects」(遭拒的專案) 區段中,按一下「Add rejected project」(新增遭拒的專案)。輸入禁止連線至伺服器的用戶專案 ID 或編號。
即使這份清單中的專案包含在允許的專案清單中,也無法存取伺服器。
點選「建立」。
伺服器建立作業約需 10 分鐘。
gcloud
如要建立內部伺服器,請執行 gcloud alpha storage ftp servers create 指令,並提供 --access-type=INTERNAL 旗標。
使用下列任何指令資料前,請先替換以下項目:
- SERVER_ID:伺服器的專屬 ID。開頭須為小寫英文字母,結尾須為小寫英文字母或數字。可使用小寫英文字母、數字和連字號。
開頭不得為前置字串
goog,也不得包含字串google,包括g00gle等近似拼寫錯誤。長度上限為 30 個半形字元。 -
LOCATION_ID:伺服器的Google Cloud 位置,例如
us-west1。為達到最快的資料移轉速度,請在儲存資料的 Cloud Storage bucket 所在位置建立伺服器。如果 Cloud FTP 不支援 bucket 的位置,請選取最接近的可用位置。
-
PROJECT_TO_ALLOW:允許使用 Private Service Connect 連線至伺服器的用戶專案 ID 或編號。例如:
example-allowed-project。至少須指定一項專案。最多可以允許 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 bucket 所在位置建立伺服器。如果 Cloud FTP 不支援 bucket 的位置,請選取最接近的可用位置。
- SERVER_ID:伺服器的專屬 ID。開頭須為小寫英文字母,結尾須為小寫英文字母或數字。可使用小寫英文字母、數字和連字號。
開頭不得為前置字串
goog,也不得包含字串google,包括g00gle等近似拼寫錯誤。長度上限為 30 個半形字元。 -
PROJECT_TO_ALLOW:允許使用 Private Service Connect 連線至伺服器的用戶專案 ID 或編號。例如:
example-allowed-project。至少須指定一項專案。最多可以允許 500 項專案。
- CONNECTION_LIMIT:用戶專案中可建立的 Private Service Connect 端點數量上限。值必須介於 1 到 250 個端點之間。
-
(選用) PROJECT_TO_REJECT:禁止連線至伺服器的用戶專案 ID 或編號。例如:
example-rejected-project。 即使這份清單中的專案也列於允許的專案清單,仍無法存取伺服器。最多可拒絕 64 項專案。
如果不想明確拒絕任何專案,請省略
consumerRejectList物件。
HTTP 方法和網址:
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 分鐘。
用戶端程式庫
如要建立內部伺服器,請將存取權類型設為內部,並提供內部存取權設定。
C#
如要瞭解如何安裝及使用 Cloud FTP 的用戶端程式庫,請參閱「Cloud FTP 用戶端程式庫」。詳情請參閱 Cloud FTP C# API 參考文件。
如要向 Cloud FTP 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
如要瞭解如何安裝及使用 Cloud FTP 的用戶端程式庫,請參閱「Cloud FTP 用戶端程式庫」。詳情請參閱 Cloud FTP Go API 參考文件。
如要向 Cloud FTP 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要瞭解如何安裝及使用 Cloud FTP 的用戶端程式庫,請參閱「Cloud FTP 用戶端程式庫」。詳情請參閱 Cloud FTP Java API 參考文件。
如要向 Cloud FTP 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
如要瞭解如何安裝及使用 Cloud FTP 的用戶端程式庫,請參閱「Cloud FTP 用戶端程式庫」。詳情請參閱 Cloud FTP Node.js API 參考文件。
如要向 Cloud FTP 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
PHP
如要瞭解如何安裝及使用 Cloud FTP 的用戶端程式庫,請參閱「Cloud FTP 用戶端程式庫」。詳情請參閱 Cloud FTP PHP API 參考文件。
如要向 Cloud FTP 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要瞭解如何安裝及使用 Cloud FTP 的用戶端程式庫,請參閱「Cloud FTP 用戶端程式庫」。詳情請參閱 Cloud FTP Python API 參考文件。
如要向 Cloud FTP 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Ruby
如要瞭解如何安裝及使用 Cloud FTP 的用戶端程式庫,請參閱「Cloud FTP 用戶端程式庫」。詳情請參閱 Cloud FTP Ruby API 參考文件。
如要向 Cloud FTP 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。