設定 Google Cloud 權限和 Cloud Storage,以便將資料從 Cloud Storage 匯出至裝置 (逐步操作說明)

本文將逐步說明如何設定 Google Cloud 權限和 Cloud Storage,包括:

  • 準備 Cloud Storage 值區。
  • 準備 Cloud Key Management Service 金鑰,保護資料安全。
  • 向 Transfer Appliance 團隊提供 Cloud Storage bucket 設定資料。

事前準備

請確認您收到一封主旨為「Google Transfer Appliance Permissions」(Google Transfer Appliance 權限) 的電子郵件,寄件者是 Transfer Appliance 團隊。這封電子郵件包含:

  • 移轉作業所需的服務帳戶名稱。

  • 設定設備時所需的會期 ID。

  • 設定帳戶後填寫的表單。

準備 Cloud Storage 值區的權限

我們會使用兩個服務帳戶轉移您的資料。服務帳戶是應用程式 (而非使用者) 用來執行工作的特殊帳戶。在這種情況下,服務帳戶可讓 Transfer Appliance 代表您使用 Cloud Storage 資源,在 Cloud Storage 與裝置之間移轉資料。您會授予這些帳戶移轉資料所需的角色。

如要準備 Cloud Storage bucket,請按照下列步驟操作:

  1. 在主旨為「Google Transfer Appliance Permissions」(Google Transfer Appliance 權限) 的電子郵件中,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 和裝置之間轉移資料。

  2. Cloud Storage 值區會與 Google Cloud 專案繫結。選取的值區必須與訂購裝置時使用的專案相同。

  3. 如要授予 Transfer Appliance 服務帳戶使用 Cloud Storage bucket 的權限,請按照下列步驟操作:

    Google Cloud 控制台

    1. 在 Google Cloud 控制台,前往「Cloud Storage bucket」頁面。

      前往「Buckets」(值區) 頁面

    2. 針對要將角色授予主體的值區,按一下相應的「Bucket overflow」(值區溢位) 選單 ()。

    3. 選擇 [Edit bucket permissions] (編輯 Bucket 權限)。

    4. 按一下「+ Add principals」(新增主體) 按鈕。

    5. 在「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 是這個特定專案產生的號碼。

    6. 從「Select a role」(請選取角色) 下拉式選單中,選取「Storage Admin」(Storage 管理員) 角色。

      您選取的角色會顯示在面板中,系統還會針對這些角色所授予的權限提供簡短說明。

    7. 按一下 [儲存]

    指令列

    使用 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:系統為這個特定專案產生的號碼。

準備 Cloud KMS 金鑰

Transfer Appliance 會加密資料,確保裝置上的資料安全無虞。Cloud Key Management Service (Cloud KMS) 公開金鑰可用於加密 Transfer Appliance 上的資料,私密金鑰則可用於解密資料。

我們會使用「準備 Cloud Storage 值區的權限」中的工作階段服務帳戶,將 Cloud Storage 值區中的資料上傳至裝置。

您可以透過下列選項管理加密金鑰:

  • 自行建立及管理加密金鑰。請按照下列指示,建立及管理用於轉移作業的加密金鑰。準備 Cloud KMS 非對稱解密金鑰,並將工作階段服務帳戶新增至金鑰。

如要準備 Cloud KMS 金鑰,請按照下列步驟操作:

  1. 如果您沒有 Cloud Key Management Service 金鑰環,請按照下列步驟建立:

    Google Cloud 控制台

    1. 前往Google Cloud console 的「Cryptographic Keys」(加密編譯金鑰) 頁面。

      前往「Cryptographic Keys」(加密編譯金鑰) 頁面

    2. 按一下 [Create key ring] (建立金鑰環)

    3. 在「Key ring name」(金鑰環名稱) 欄位中,輸入金鑰環的名稱。

    4. 從「Key ring location」(金鑰環位置) 下拉式選單中,選取類似 "us-east1" 的位置。

    5. 點選「建立」

    指令列

    gcloud kms keyrings create KEY_RING --location=LOCATION --project=PROJECT_ID
    

    在這個例子中:

    • LOCATION:金鑰環的 Cloud Key Management Service 位置。例如:global
    • KEY_RING:金鑰環的名稱。
    • PROJECT_ID:儲存空間值區所屬的 Google Cloud 專案 ID。
  2. 請按照下列步驟建立非對稱式解密金鑰:

    Google Cloud 控制台

    1. 前往Google Cloud console 的「Cryptographic Keys」(加密編譯金鑰) 頁面。

      前往「Cryptographic Keys」(加密編譯金鑰) 頁面

    2. 按一下要建立金鑰的金鑰環名稱。

    3. 按一下 [Create key] (建立金鑰)

    4. 在「您要建立哪種類型的金鑰?」部分,選擇「產生的金鑰」

    5. 在「Key name」(金鑰名稱) 欄位中,輸入金鑰的名稱。

    6. 按一下「Protection level」(防護等級) 下拉式選單,然後選取「Software」(軟體)

    7. 按一下「Purpose」(用途) 下拉式清單,並選取「Asymmetric decrypt」(非對稱式解密)

    8. 按一下「演算法」下拉式選單,然後選取「4096 位元 RSA - OAEP 填充法 - SHA256 摘要」

    9. 點選「建立」

    指令列

    執行下列指令來建立非對稱式解密金鑰:

    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。
  3. 執行下列步驟,將工作階段服務帳戶新增為非對稱金鑰的主體:

    Google Cloud 控制台

    1. 前往 Google Cloud 控制台的「Cryptographic Keys」(加密編譯金鑰) 頁面。

      前往「Cryptographic Keys」(加密編譯金鑰) 頁面

    2. 按一下包含非對稱金鑰的金鑰環。

    3. 選取非對稱式金鑰的核取方塊。

    4. 在「資訊面板」中,按一下「新增主體」

      畫面上會顯示「Add principals」(新增主體)

    5. 在「新增主體」欄位中,輸入 Transfer Appliance 團隊提供的工作階段服務帳戶。如下列範例所示:

      ta-SESSION_ID@transfer-appliance-zimbru.iam.gserviceaccount.com

      在本範例中,SESSION_ID 是這項轉移作業的會期 ID。

    6. 在「Select a role」(選取角色) 欄位中,新增「Cloud KMS CryptoKey Public Key Viewer」(Cloud KMS 加密編譯金鑰公開金鑰檢視者) 角色。

    7. 按一下 [儲存]

    指令列

    1. 執行下列指令,將 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。
  4. 請按照下列步驟取得非對稱式金鑰的路徑:

    Google Cloud 控制台

    1. 前往 Google Cloud 控制台的「Cryptographic Keys」(加密編譯金鑰) 頁面。

      前往「Cryptographic Keys」(加密編譯金鑰) 頁面

    2. 按一下包含非對稱解密金鑰的金鑰環。

    3. 按一下非對稱解密金鑰的名稱。

    4. 選取所需金鑰版本,然後按一下「更多」圖示

    5. 按一下「複製資源名稱」

      金鑰格式範例如下:

      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 Permissions」的電子郵件,以收集 Cloud Storage bucket 的相關資訊。我們會使用您提供的資訊,設定 Cloud Storage 與 Transfer Appliance 之間的資料移轉作業。

在該電子郵件中連結的表單中,輸入下列資訊:

  • Google Cloud 專案 ID
  • 選取「加密」的選項:
    • 客戶自行管理的加密金鑰:從「選取客戶自行管理的加密金鑰」下拉式選單中選取加密金鑰。
  • 用於這項轉移作業的 Google Cloud Cloud Storage bucket 名稱

後續步驟

設定 IP 網路埠,讓 Transfer Appliance 在您的網路上運作。