這份文件說明了常見的資料共用及協作情境,包含如何設定您的專案及值區身分與存取權管理 (IAM) 政策,以便在各種情境中進行實作。
儲存與維護私人資料
在這個情境中,一間公司的行銷分析師想要使用 Cloud Storage 備份收益預測與銷售預測等機密資料,並且要確保只有行銷分析師能存取這些資料。公司的 IT 部門負責監督與管理公司的 Cloud Storage 帳戶,他們的主要管理職責包含建立及共用值區,以便讓全公司各個部門都能存取 Cloud Storage。
如要滿足行銷分析師對機密性及隱私權的需求,您所設定的值區與物件權限必須讓 IT 人員能夠維護儲存試算表的值區,但無法檢視/下載儲存於值區中的資料。為此,您需要建立名為 finance-marketing
的 bucket,並為指定主體授予下列角色給列出的資源:
角色 | 資源 | 主體 | 說明 |
---|---|---|---|
Storage 舊版值區擁有者 | 值區 finance-marketing |
IT 人員 | 將值區的「Storage 舊版值區擁有者」角色指派給 IT 人員,讓他們可以執行一般的值區管理工作,例如刪除物件與變更值區的 IAM 政策。IT 人員也可透過這項權限列出 finance-marketing 值區的內容,但是無法檢視或下載任何內容。 |
Storage 物件使用者 | 值區 finance-marketing |
行銷分析師 | 將值區的「Storage Object User」角色指派給行銷分析師後,她就能上傳、檢視、更新及刪除值區內的物件。 |
指派上述角色後,就能確保只有行銷分析師能夠檢視或下載值區中的物件。讓 IT 人員不但能夠列出 finance-marketing
值區的內容,還能在有需要時刪除與取代儲存於值區中的檔案。
實作這個情境
您的動作
請採取下列行動,以便在這種情境下進行實作:
建立名為
finance-marketing
的 bucket。如需逐步操作說明,請參閱建立值區。為每位 IT 人員指派值區的「Storage 舊版值區擁有者」角色。如需逐步操作說明,請參閱新增主體至值區層級政策。
IT 人員應採取的行動
IT 人員應採取下列行動,以便在這種情境下進行實作:
- 將值區的 Storage 物件使用者角色指派給行銷分析師。如需逐步操作說明,請參閱新增主體至值區層級政策。
廠商集放箱
在這個情境中,一間建設公司與執行多項建築專案計劃的多間建築設計事務所共事。建設公司想要為廠商設立一個集放箱,讓他們針對不同的專案里程碑上傳建築計劃。集放箱必須確保建設公司客戶的隱私權受到保護;換句話說,集放箱不能讓廠商檢視彼此的工作內容。如要達成這個目標,請為每間建築公司建立個別值區,並將下列角色授予指定主體的列出資源:
角色 | 資源 | 主體 | 說明 |
---|---|---|---|
版主 | 整體專案 | 建設公司經理 | 將專案層級的「擁有者」角色指派給建設公司的經理,讓她為每間廠商建立值區。 |
Storage 物件檢視者 | 整體專案 | 建設公司經理 | Storage Object Viewer 角色讓建設公司經理能夠下載廠商上傳的物件。 |
Storage 舊版值區擁有者 | 各廠商值區 | 建設公司經理 | Storage Legacy Bucket Owner 角色讓建設公司經理能夠列出所有值區的內容,並在各個專案里程碑達成後刪除物件。 |
Storage 物件管理員 | 各廠商值區 | 與值區相關的廠商 | 為廠商指派他們自己值區中的儲存空間物件管理員角色後,就能讓他們完全掌控值區內的物件,包括上傳物件、列出值區裡的物件,以及控管可存取每個物件的使用者。這項權限無法讓廠商變更或檢視整體值區的角色等中繼資料,也無法讓他們列出或檢視專案中其他值區,因此可以保障各間廠商的隱私權。 |
實作這個情境
您的動作
請採取下列行動,以便在這種情境下進行實作:
- 將專案的「擁有者」角色和「Storage 物件檢視者」角色指派給建設公司經理。如需逐步操作說明,請參閱「授予單一角色」一文。
建設公司經理應採取的行動
建設公司經理應採取下列行動,以便在這種情境下進行實作:
為各間廠商分別建立不同值區。如需逐步操作說明,請參閱建立值區。
因為建設公司經理具備「擁有者」角色,所以針對她所建立的每個值區,她都會自動取得「Storage 舊版值區擁有者」角色。
為廠商指派他們自己值區中的「Storage Object Admin」(Storage 物件管理員) 角色。如需逐步操作說明,請參閱新增主體至值區層級政策。
如有任何廠商想要使用 Google Cloud 主控台,只要將他們自己值區的連結提供給他們即可,格式如下:
https://console.cloud.google.com/storage/browser/BUCKET_NAME
其中
BUCKET_NAME
是指該廠商值區的名稱。
廠商應採取的行動
每間廠商皆須採取下列行動,以便在這種情境下進行實作:
將物件上傳至指派給他們的值區;最簡單的做法是直接透過 Google Cloud 主控台執行,如要使用 Google Cloud CLI 等其他方法,則必須先進行其他設定。如需逐步操作說明,請參閱上傳物件。
已驗證的瀏覽器下載作業
在這個情境中,客戶想讓特定使用者透過簡單的瀏覽器下載作業取得某些檔案。您可以使用 Cloud Storage Cookie 型驗證達成這個目標。如要下載物件,使用者必須登入有效帳戶進行驗證,包括 Google Workspace、Cloud Identity、Gmail 和員工身分聯盟。通過驗證的使用者必須符合下列條件,才能下載物件:
具備該物件本身 存取控制清單 (ACL) 所列的
READ
或FULL_CONTROL
權限的使用者。具備該物件所屬值區或專案的身分與存取權管理 (IAM) 政策中包含之
storage.objects.get
權限的使用者。
其他使用者會收到 403 Forbidden (access denied)
錯誤。
如要使用這項功能,請先將物件的存取權授予使用者,然後將用於存取物件的特殊網址交給他們。如果使用者在尚未登入自己帳戶的情況下點選這個網址,Cloud Storage 會顯示提示,要求他們登入,之後他們就能將物件下載至自己的電腦。
實作這個情境
您可以透過下列四個一般步驟實作 Cookie 型驗證:
建立值區。如需逐步操作說明,請參閱建立值區。
假如您在自己擁有的專案中建立了值區,您會自動取得相關權限,讓您能夠將物件上傳至該值區,以及變更擁有該值區存取權的使用者。
上傳要共用的物件。如需逐步操作說明,請參閱上傳物件。
將物件存取權授予使用者。常見做法是修改值區的 IAM 政策,將 Storage 物件檢視者角色指派給特定使用者;這項變更會套用至值區中所有物件。如需逐步操作說明,請參閱新增主體至值區層級政策。
將用於存取物件的特殊網址提供給使用者。
已驗證的瀏覽器下載作業會透過特定網址端點存取 Cloud Storage。請使用下列網址:
https://storage.cloud.google.com/BUCKET_NAME/OBJECT_NAME
其中:
BUCKET_NAME
是包含所需物件的值區名稱。例如:my-bucket
。OBJECT_NAME
是所需物件的名稱。 例如:pets/dog.png
。
只有具備適當存取權限的使用者可以檢視這個網址,所以您用哪種方式提供網址都沒有關係;您可以將網址直接傳送給使用者,或是張貼在網頁上。
使用群組控制存取權
在這個情境中,您想要將物件提供給特定使用者,例如受邀試用新軟體的使用者。此外,雖然您想邀請許多使用者,但不想一一為每位使用者設定權限,也不想將物件設為可公開讀取,再將物件存取連結傳送給受邀客戶,因為對方有可能會將這些連結傳送給其他未受邀的使用者。
在這個情境中,您可以採取的其中一種做法是使用 Google 網上論壇。 只要先建立群組,僅將受邀使用者加入群組,然後將物件的完整存取權授予該群組即可:
角色 | 資源 | 主體 | 說明 |
---|---|---|---|
Storage 物件檢視者 | 您的 bucket | Google 群組 | 將值區的 Storage 物件檢視者角色指派給 Google 群組後,屬於該 Google 群組成員的客戶就能檢視值區內的物件。非該群組成員的使用者均無法存取這些物件。 |
實作這個情境
建立一個 Google 群組,然後將客戶加入其中。如需逐步操作說明,請參閱建立群組。
建立值區。如需逐步操作說明,請參閱建立值區。
將物件上傳至值區。如需逐步操作說明,請參閱上傳物件。
將物件存取權授予該 Google 群組。
您可以使用 IAM 角色 storage.objectViewer 將值區中所有物件的檢視權限授予群組。如需逐步操作說明,請參閱新增主體至值區層級政策。
如果您只想將值區中部分物件的存取權授予群組,請針對這些個別物件設定「讀取者」ACL。如需逐步操作說明,請參閱「設定 ACL」。
與群組分享適當的要求端點,讓他們知道存取物件的位置。
舉例來說,使用 Google Cloud 主控台時,網址
https://console.cloud.google.com/storage/browser/BUCKET_NAME
會將您帶往值區BUCKET_NAME
中的物件清單。
使用代管資料夾控管存取權
在這個情境中,您有多位客戶,每位客戶都有一個包含自訂圖片的專屬網站。您希望顧客只能將圖片上傳至自家網站,但不能上傳至其他網站。客戶取消帳戶時,您想停用網站上圖片的公開存取權,但為了避免客戶日後想重新啟用帳戶,您不想刪除圖片。
在這種情況下,您可以採取的其中一種做法是使用受管理資料夾。您可以在值區中建立多個代管資料夾,並使用 IAM 控制客戶和客戶使用者對個別代管資料夾的存取權。
實作這個情境
建立值區。
在每個客戶網站的值區中建立受管理資料夾。
針對每個代管資料夾設定 IAM 政策,授予客戶 Storage Object User (
roles/storage.objectUser
) 角色,讓客戶可以將物件上傳至代管資料夾,以及從代管資料夾移除物件。針對所有代管資料夾,設定 IAM 政策,將「Storage 物件檢視者」角色 (
roles/storage.objectViewer
) 授予主體allUsers
,讓公眾可以查看代管資料夾中的圖片物件。或者,您也可以授予具有
allUsers
storage.objects.get
IAM 權限的自訂角色。客戶取消帳戶時,請移除 IAM 政策,該政策會授予客戶相關聯受管理資料夾的 Storage 物件使用者 (
roles/storage.objectUser
) 角色。如要停用對該受管理資料夾中物件的公開存取權,請移除授予allUsers
「Storage 物件檢視者」角色 (roles/storage.objectViewer
) 的 IAM 政策。