本文說明如何使用 Cloud FTP 建立內部 SFTP 伺服器。您只能透過 Private Service Connect,在虛擬私有雲 (VPC) 網路中存取內部 SFTP 伺服器。員工和內部利害關係人只要在您的網路中,就能使用伺服器安全地將檔案傳輸至 Cloud Storage,以及從 Cloud Storage 傳輸檔案。
您可以指定允許連線至伺服器的專案。您可以選擇指定要拒絕連線的專案。
如需虛擬私有雲的背景資訊,請參閱虛擬私有雲總覽。
如要瞭解如何建立可透過網際網路存取的外部伺服器,請參閱「建立外部 SFTP 伺服器」。伺服器建立完成後,就無法變更伺服器是外部還是內部。
事前準備
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 時所需的角色
如要啟用 API,您必須具備
serviceusage.services.enable權限。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用情形管理員」角色 (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 時所需的角色
如要啟用 API,您必須具備
serviceusage.services.enable權限。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用情形管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。gcloud services enable ftp.googleapis.com
-
收集伺服器使用者的下列資訊:
- 允許存取伺服器的專案 ID 或專案編號清單。
- (選用) 遭拒絕存取伺服器的專案 ID 或專案編號清單。
必要的角色
如要取得建立 SFTP 伺服器所需的權限,請要求管理員在專案中授予您「Cloud FTP 管理員 」(roles/ftp.admin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這個預先定義的角色具備 ftp.servers.create 權限,可建立 SFTP 伺服器。
建立內部伺服器
gcloud
如要建立內部伺服器,請執行 gcloud alpha storage ftp servers create 指令,並提供 --access-type=INTERNAL 旗標。
使用下方的任何指令資料之前,請先替換以下項目:
- SERVER_ID:伺服器的專屬 ID。開頭必須是小寫英文字母,結尾則須為小寫英文字母或數字。可使用小寫英文字母、數字和連字號。 長度上限為 30 個半形字元。
-
LOCATION_ID:伺服器的Google Cloud 位置,例如
us-west1。如要以最快的速度傳輸資料,請在儲存資料的 Cloud Storage bucket 所在位置建立伺服器。如果 Cloud FTP 不支援該值區的位置,請選取最接近的可用位置。
-
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 不支援該值區的位置,請選取最接近的可用位置。
- SERVER_ID:伺服器的專屬 ID。開頭必須是小寫英文字母,結尾則須為小寫英文字母或數字。可使用小寫英文字母、數字和連字號。 長度上限為 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 分鐘才能建立完成。