本文將逐步說明如何設定權限和 Cloud Storage,包括: Google Cloud
- 準備目的地 Cloud Storage bucket。
- 準備 Cloud Key Management Service 金鑰,保護資料安全。
- 向 Transfer Appliance 團隊提供 Cloud Storage bucket 設定資料。
事前準備
請確認您收到 Transfer Appliance 團隊寄來的電子郵件,主旨為「Google Transfer Appliance Prepare Permissions and Storage」(準備權限和儲存空間)。這封電子郵件包含:
移轉作業所需的服務帳戶名稱。
設定設備時所需的會期 ID。
設定帳戶後填寫的表單。
準備目標 Cloud Storage 值區
如要在 Cloud Storage 中儲存資料,請務必準備值區。值區是在 Cloud Storage 中保存資料的基本容器。
我們會使用兩個服務帳戶,將資料從 Transfer Appliance 移至您準備的目的地 Cloud Storage bucket。服務帳戶是應用程式 (而非使用者) 用來執行工作的特殊帳戶。在本例中,服務帳戶可讓 Transfer Appliance 代表您使用 Cloud Storage 資源,將資料從裝置複製到 Cloud Storage 值區。您會授予這些帳戶必要角色,以便將資料從裝置複製到 Cloud Storage 值區。
如要準備目的地 Cloud Storage bucket,請按照下列步驟操作:
在主旨為「Google Transfer Appliance Prepare Destination Bucket」(Google Transfer Appliance 準備目的地 Bucket) 的電子郵件中,Transfer Appliance 團隊會提供下列服務帳戶:
與這項特定轉移作業相關聯的工作階段服務帳戶。 如下列範例所示:
ta-SESSION_ID@transfer-appliance-zimbru.iam.gserviceaccount.com
在本範例中,
SESSION_ID
是這項特定轉移作業的工作階段 ID。與 Transfer Service for On Premises Data 服務相關聯的服務代理程式,用於將設備中的資料移轉至 Cloud Storage 值區。類似以下範例:
project-TENANT_IDENTIFIER@storage-transfer-service.iam.gserviceaccount.com
在本例中,
TENANT_IDENTIFIER
是為這個特定專案產生的號碼。
請記下服務帳戶,以供後續步驟使用。
服務帳戶可讓 Transfer Appliance 代表您操控Google Cloud 資源,也就是將資料從裝置複製到 Cloud Storage。您會授予這些帳戶必要角色,以便將資料從裝置複製到 Cloud Storage 值區。
Cloud Storage 值區會與 Google Cloud 專案繫結。選取的值區必須與訂購裝置時使用的專案相同。
如果您沒有 Cloud Storage bucket,請建立一個:
Google Cloud 控制台
在 Google Cloud 控制台中開啟 Cloud Storage Buckets 頁面。
按一下 [Create bucket] (建立值區) 以開啟值區建立表單。
輸入 bucket 資訊,並點選「繼續」來完成各個步驟:
按一下 [完成]。
指令列
使用
gcloud storage buckets create
指令:gcloud storage buckets create gs://BUCKET_NAME --uniform-bucket-level-access --location=LOCATION --project=PROJECT_ID
在這個例子中:
BUCKET_NAME
:您要建立的值區名稱,必須遵守值區命名規定。LOCATION
:您想要的 Cloud Storage bucket 位置。PROJECT_ID
:要在哪個專案 ID 下建立值區。
請勿在值區中設定保留政策。
如要授予 Transfer Appliance 服務帳戶使用 Cloud Storage bucket 的權限,請按照下列步驟操作:
Google Cloud 控制台
- 在 Google Cloud 控制台,前往「Cloud Storage bucket」頁面。
針對要將角色授予主體的值區,按一下相應的「Bucket overflow」(值區溢位) 選單 (
)。
選擇 [Edit bucket permissions] (編輯 Bucket 權限)。
按一下「+ Add principals」(新增主體) 按鈕。
在「New principals」(新增主體) 欄位中輸入下列身分:
工作階段服務帳戶。如下列範例所示:
ta-SESSION_ID@transfer-appliance-zimbru.iam.gserviceaccount.com
在本範例中,
SESSION_ID
是這項轉移作業的會期 ID。Transfer Service for On Premises Data 服務代理。類似以下範例:
project-TENANT_IDENTIFIER@storage-transfer-service.iam.gserviceaccount.com
在本例中,
TENANT_IDENTIFIER
是這個特定專案產生的號碼。
從「Select a role」(請選取角色) 下拉式選單中,選取「Storage Admin」(Storage 管理員) 角色。
您選取的角色會顯示在面板中,系統還會針對這些角色所授予的權限提供簡短說明。
按一下 [儲存]。
指令列
使用
gcloud storage buckets add-iam-policy-binding
指令:gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:ta-SESSION_ID@transfer-appliance-zimbru.iam.gserviceaccount.com \ --role=roles/storage.admin
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:project-TENANT_IDENTIFIER@storage-transfer-service.iam.gserviceaccount.com \ --role=roles/storage.admin
在這個例子中:
BUCKET_NAME
:您要建立的 bucket 名稱。SESSION_ID
:這項特定轉移作業的工作階段 ID。TENANT_IDENTIFIER
:系統為這個特定專案產生的號碼。
- 在 Google Cloud 控制台,前往「Cloud Storage bucket」頁面。
準備 Cloud KMS 金鑰
在您將設備寄回給我們之前,Transfer Appliance 會先加密設備上的資料,確保資料安全無虞。Cloud Key Management Service (Cloud KMS) 公開金鑰可用於加密 Transfer Appliance 上的資料,私密金鑰則可用於解密資料。
我們會使用「準備目的地 Cloud Storage 值區」中的工作階段服務帳戶,將設備中的資料上傳至 Cloud Storage 值區。
您可以透過下列選項管理加密金鑰:
Google-owned and Google-managed encryption keys。您可以要求我們為您建立及管理 Cloud KMS 金鑰。如要使用這個方法,您已完成 Google Cloud 專案的設定,可以繼續執行「接收裝置」一文中的步驟。
自行建立及管理加密金鑰。請按照下列指示,建立及管理用於轉移作業的加密金鑰。準備 Cloud KMS 非對稱解密金鑰,並將工作階段服務帳戶新增至金鑰。工作階段服務帳戶會使用非對稱解密金鑰解密資料,並複製到 Cloud Storage。
如要準備 Cloud KMS 金鑰,請按照下列步驟操作:
如果您沒有 Cloud Key Management Service 金鑰環,請按照下列步驟建立:
Google Cloud 控制台
前往Google Cloud console 的「Cryptographic Keys」(加密編譯金鑰) 頁面。
按一下 [Create key ring] (建立金鑰環)。
在「Key ring name」(金鑰環名稱) 欄位中,輸入金鑰環的名稱。
從「Key ring location」(金鑰環位置) 下拉式選單中,選取類似
"us-east1"
的位置。點選「建立」。
指令列
gcloud kms keyrings create KEY_RING --location=LOCATION --project=PROJECT_ID
在這個例子中:
LOCATION
:金鑰環的 Cloud Key Management Service 位置。例如:global
。KEY_RING
:金鑰環的名稱。PROJECT_ID
:儲存空間值區所屬的 Google Cloud 專案 ID。
請按照下列步驟建立非對稱式解密金鑰:
Google Cloud 控制台
前往Google Cloud console 的「Cryptographic Keys」(加密編譯金鑰) 頁面。
按一下要建立金鑰的金鑰環名稱。
按一下 [Create key] (建立金鑰)。
在「您要建立哪種類型的金鑰?」部分,選擇「產生的金鑰」。
在「Key name」(金鑰名稱) 欄位中,輸入金鑰的名稱。
按一下「Protection level」(防護等級) 下拉式選單,然後選取「Software」(軟體)。
按一下「Purpose」(用途) 下拉式清單,並選取「Asymmetric decrypt」(非對稱式解密)。
按一下「演算法」下拉式選單,然後選取「4096 位元 RSA - OAEP 填充法 - SHA256 摘要」
點選「建立」。
指令列
執行下列指令來建立非對稱式解密金鑰:
gcloud kms keys create KEY --keyring=KEY_RING \ --location=LOCATION --purpose=asymmetric-encryption \ --default-algorithm=rsa-decrypt-oaep-4096-sha256 \ --project=PROJECT_ID
在這個例子中:
KEY
:Cloud Key Management Service 金鑰的名稱。 例如:ta-key
。KEY_RING
:金鑰環的名稱。LOCATION
:金鑰環的 Cloud Key Management Service 位置。例如:global
。PROJECT_ID
:儲存空間值區所屬的 Google Cloud 專案 ID。
執行下列步驟,將工作階段服務帳戶新增為非對稱金鑰的主體:
Google Cloud 控制台
前往 Google Cloud 控制台的「Cryptographic Keys」(加密編譯金鑰) 頁面。
按一下包含非對稱金鑰的金鑰環。
選取非對稱式金鑰的核取方塊。
在「資訊面板」中,按一下「新增主體」。
畫面上會顯示「Add principals」(新增主體)。
在「新增主體」欄位中,輸入 Transfer Appliance 團隊提供的工作階段服務帳戶。如下列範例所示:
ta-SESSION_ID@transfer-appliance-zimbru.iam.gserviceaccount.com
在本範例中,
SESSION_ID
是這項轉移作業的會期 ID。在「Select a role」(選取角色) 欄位中,新增「Cloud KMS CryptoKey Public Key Viewer」(Cloud KMS 加密編譯金鑰公開金鑰檢視者) 角色。
按一下 [Add another role] (新增其他角色)。
在「請選擇角色」欄位中,新增「Cloud KMS CryptoKey Decrypter」角色。
按一下 [儲存]。
指令列
執行下列指令,將
roles/cloudkms.cryptoKeyDecrypter
角色授予工作階段服務帳戶:gcloud kms keys add-iam-policy-binding KEY \ --keyring=KEY_RING --location=LOCATION \ --member=serviceAccount:ta-SESSION_ID@transfer-appliance-zimbru.iam.gserviceaccount.com \ --role=roles/cloudkms.cryptoKeyDecrypter
在這個例子中:
KEY
:Cloud Key Management Service 金鑰的名稱。 例如:ta-key
。KEY_RING
:金鑰環的名稱。LOCATION
:金鑰環的 Cloud Key Management Service 位置。例如:global
。SESSION_ID
:這項特定轉移作業的工作階段 ID。
執行下列指令,將
roles/cloudkms.publicKeyViewer
角色授予工作階段服務帳戶:gcloud kms keys add-iam-policy-binding KEY \ --keyring=KEY_RING --location=LOCATION \ --member=serviceAccount:ta-SESSION_ID@transfer-appliance-zimbru.iam.gserviceaccount.com \ --role=roles/cloudkms.publicKeyViewer
在這個例子中:
KEY
:Cloud Key Management Service 金鑰的名稱。 例如:ta-key
。KEY_RING
:金鑰環的名稱。LOCATION
:金鑰環的 Cloud Key Management Service 位置。例如:global
。SESSION_ID
:這項特定轉移作業的工作階段 ID。
請按照下列步驟取得非對稱式金鑰的路徑:
Google Cloud 控制台
前往 Google Cloud 控制台的「Cryptographic Keys」(加密編譯金鑰) 頁面。
按一下包含非對稱解密金鑰的金鑰環。
按一下非對稱解密金鑰的名稱。
選取所需金鑰版本,然後按一下「更多」圖示 more_vert。
按一下「複製資源名稱」。
金鑰格式範例如下:
projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY/cryptoKeyVersions/VERSION_NUMBER
在這個例子中:
PROJECT_ID
:儲存空間值區所屬的 Google Cloud 專案 ID。LOCATION
:金鑰環的 Cloud Key Management Service 位置。KEY_RING
:金鑰環的名稱。KEY
:Cloud Key Management Service 金鑰的名稱。VERSION_NUMBER
:金鑰的版本號碼。
Transfer Appliance 團隊需要完整的金鑰路徑 (包括版本號碼),才能將正確的金鑰套用至您的資料。
指令列
執行下列指令,列出非對稱金鑰的完整路徑,包括版本號碼:
gcloud kms keys versions list --keyring=KEY_RING \ --key=KEY --location=LOCATION \ --project=PROJECT_ID
在這個例子中:
KEY_RING
:金鑰環的名稱。KEY
:非對稱金鑰的名稱。LOCATION
:金鑰環的 Google Cloud 位置。PROJECT_ID
:儲存空間值區所屬的 Google Cloud 專案 ID。
以下範例回應類似於傳回的輸出內容:
NAME STATE projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY/cryptoKeyVersions/VERSION_NUMBER ENABLED
在這個例子中:
PROJECT_ID
:儲存空間值區所屬的 Google Cloud 專案 ID。LOCATION
:金鑰環的 Cloud Key Management Service 位置。KEY_RING
:金鑰環的名稱。KEY
:Cloud Key Management Service 金鑰的名稱。VERSION_NUMBER
:金鑰的版本號碼。
Transfer Appliance 團隊需要
NAME
下方以/cryptoKeyVersions/VERSION_NUMBER
結尾的字串,其中VERSION_NUMBER
是金鑰的版本號碼。
向 Transfer Appliance 團隊提供 bucket 設定資料
我們會傳送主旨為「Google Transfer Appliance Prepare Permissions and Storage」(Google Transfer Appliance 準備權限和儲存空間) 的電子郵件,收集有關 Cloud Storage 值區的資訊。我們會根據您提供的資訊,設定從 Transfer Appliance 到 Cloud Storage 的移轉作業。
在該電子郵件中連結的表單中,輸入下列資訊:
- Google Cloud 專案 ID。
- 選取「加密」的選項:
- Google-owned and Google-managed encryption key:如果您選擇由 Google 管理加密金鑰。
- 如果您選擇自行管理加密金鑰,請選取「客戶自行管理的加密金鑰」。從「選取客戶自行管理的加密金鑰」下拉式選單中,選取所需的加密金鑰。
- 用於這項轉移作業的 Google Cloud Cloud Storage 目標值區名稱。
- 選用:物件前置字串。如果沒有物件前置字串,物件會連同來源路徑 (不含檔案系統上的根路徑和檔案名稱) 一併轉移至 Cloud Storage。舉例來說,如果您有下列檔案:
/source_root_path/file1.txt
/source_root_path/dirA/file2.txt
/source_root_path/dirA/dirB/file3.txt
file1.txt
dirA/file2.txt
dirA/dirB/file3.txt
/
字元之後,以及物件轉移來源的任何路徑名稱之前,但不包括來源的根路徑。這有助於區分從其他轉移作業轉移的物件。 下表列出幾個物件前置字串的範例,以及在來源物件路徑為/source_root_path/sub_folder_name/object_name
時,這些前置字串在 Cloud Storage 中產生的物件名稱:前置字串 目的地物件名稱 無 /destination_bucket/sub_folder_name/object_name
prefix/
/destination_bucket/prefix/sub_folder_name/object_name
後續步驟
設定 IP 網路埠,讓 Transfer Appliance 在您的網路上運作。