專案

本頁面說明 Google Cloud Platform Console 專案和 Cloud Storage 資源之間的關係。如要進一步瞭解 Google Cloud Platform 主控台專案的一般資訊,請參閱 Google Cloud Platform 總覽的專案一文。

什麼是專案?

專案會統整所有 Google Cloud Platform 資源。專案是由一組使用者、一組 API 以及這些 API 的計費、驗證和監控設定組成。因此,舉例來說,您的所有 Cloud Storage 值區和物件,以及存取這些物件的使用者權限全都位於專案中。您可以使用一個專案,也可以建立多個專案以將 Google Cloud Platform 資源 (包括 Cloud Storage 資料) 區分為邏輯群組。

指定專案的時機

在多數情況下,於 Cloud Storage 中執行動作時不需要指定專案;但以下情況必須提供專案 ID 或專案編號:

主控台

  • 將 Cloud Storage 搭配 GCP Console 使用時,您會自動與專案建立關聯。您可以使用 GCP Console 視窗頂端的下拉式選單來變更專案。

  • 首次存取已啟用要求者付費功能的值區時,系統會提示您選取要求計費的專案。隨後您可以使用值區中物件清單上方的 [Change project] (變更專案) 按鈕來變更計費專案。

gsutil

  • 使用 gsutil mbgsutil lsgsutil kms 指令時必須指定專案,除非您已設定預設專案。如果您尚未設定預設專案或是要使用其他專案,請使用 -p 標記來指定專案。使用其他 gsutil 指令時不需要指定專案。

  • 使用 -u 標記和專案 ID 來指示值區存取的計費專案。如要存取的值區已啟用要求者付費功能,您必須使用這個標記;如要存取的值區未啟用該功能,則這個標記為選用。

JSON API

  • 使用列出值區插入值區方法時,您必須指定專案。專案會做為要求網址的參數傳送,如下列範例所示:

    GET https://www.googleapis.com/storage/v1/b?project=[PROJECT_ID]
  • 如要指示值區存取的計費專案,請使用「userProject」查詢參數和專案 ID,如下列範例所示:

    GET https://www.googleapis.com/storage/v1/b?userProject=[PROJECT_ID]

    如要存取的值區已啟用要求者付費功能,您必須使用這個查詢參數;如要存取的值區未啟用該功能,則這個標記為選用。

XML API

  • 列出值區與插入值區時必須指定專案。x-goog-project-id HTTP 標頭中會指定與這些 XML API 要求相關聯的專案,如下列範例所示:

    x-goog-project-id: [PROJECT_ID]

    如果是其他 XML API 要求,或您已設定預設專案以供互通存取,則此標頭為選用。

  • 如要指示值區存取的計費專案,請使用「x-goog-user-project」標頭和專案 ID,如下列範例所示:

    x-goog-user-project: [PROJECT_ID]

    如要存取的值區已啟用要求者付費功能,您必須使用這個標頭;如要存取的值區未啟用該功能,則這個標記為選用。

專案成員與權限

您可以針對每個專案使用身分與存取權管理 (IAM) 功能來新增可管理及處理專案的小組成員。IAM 可讓您為每位小組成員指定一或多個「角色」:不同的角色權限可讓成員在專案中執行不同的動作。

您可以在專案層級 (可套用至專案中的所有值區) 或值區層級 (只能套用至個別值區) 設定許多 IAM 角色,但有些角色只能套用至專案。這些角色是原始角色。原始角色具備下列 Cloud Storage 屬性:

角色 內建行為 可變更的行為
roles/viewer 具備這個角色的成員可以列出專案中的值區,也可以列出並取得專案中的 HMAC 金鑰。
  • 系統會作為群組 roles/storage.legacyBucketReader 角色,授予專案中每個值區允許具備這個角色的成員。
  • 對專案中每個值區而言,具備這個角色的成員是預設物件存取控制清單 (ACL) 中的 READER
  • 系統會將具備此角色的成員當做群組,授予專案中已建立並啟用僅值區政策之值區的 roles/storage.legacyObjectReader 角色。
roles/editor 具備這個角色的成員可以列出、建立和刪除專案中的值區,也可以享有專案中 HMAC 金鑰的完整控管權限。
  • 系統會作為群組 roles/storage.legacyBucketOwner 角色,授予專案中每個值區允許具備這個角色的成員。
  • 對專案中每個值區而言,具備這個角色的成員是預設物件存取控制清單 (ACL) 中的 OWNER
  • 系統會將具備此角色的成員當做群組,授予專案中已建立並啟用僅值區政策之值區的 roles/storage.legacyObjectOwner 角色。
roles/owner 具備這個角色的成員可以列出、建立和刪除專案中的值區,也可以享有專案中 HMAC 金鑰的完整控管權限。在 Google Cloud Platform 中,通常具有 roles/owner 的成員可以執行管理工作,例如變更成員的專案角色,或變更帳單資訊。
  • 系統會作為群組 roles/storage.legacyBucketOwner 角色,授予專案中每個值區允許具備這個角色的成員。
  • 對專案中每個值區而言,具備這個角色的成員是預設物件存取控制清單 (ACL) 中的 OWNER
  • 系統會將具備此角色的成員當做群組,授予專案中已建立並啟用僅值區政策之值區的 roles/storage.legacyObjectOwner 角色。

如需 Cloud Storage 適用的角色清單,請參閱 Cloud Storage IAM 角色相關頁面。

如需瞭解在專案層級新增、查看和移除角色成員的操作說明,請參閱針對專案使用 IAM 的說明。

如同上方「可變更的行為」一欄所述,專案小組成員具備的存取權可能會超出 IAM 原始角色授予的內建權限。這類額外的存取權來自以下兩個來源:

  • 套用至值區的 IAM 角色:使用者建立值區時,系統預設會為其套用 IAM 角色。值區建立完成後,您可以編輯這項存取權。

  • 套用至物件的存取控制清單 (ACL):使用者建立物件時,系統會為其套用 ACL。可以明確指定或採用預設套用 ACL。無論您採用哪一種方式,ACL 都會特別針對建立的物件授予存取權。

請注意,在這兩種情況下,您可以為個別使用者和具備原始角色的所有使用者授予存取權。此外,授予的存取權可能會大於使用者一般具備的專案存取權,但不會受到更多限制。

服務帳戶

服務帳戶可讓應用程式驗證及存取 GCP 資源和服務。舉例來說,您可以建立服務帳戶,供 Compute Engine 執行個體用來存取儲存在 Cloud Storage 值區中的物件。

系統會在專案中建立服務帳戶,且隨附可供識別的專屬電子郵件地址。大多數服務帳戶由使用者建立及管理,但有一部分服務帳戶會由 GCP 服務自動建立及管理。Cloud Storage 會建立一個這類服務帳戶,其電子郵件地址採用下列格式:

service-[PROJECT_NUMBER]@gs-project-accounts.iam.gserviceaccount.com

其中 [PROJECT_NUMBER] 是該服務帳戶所屬專案的專案編號

使用 Cloud Storage

下列功能使用 Cloud Storage 服務帳戶:

非 Cloud Storage 服務帳戶可使用 Cloud Storage 資源採取的動作範例:

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Cloud Storage
需要協助嗎?請前往我們的支援網頁