本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon S3 儲存貯體
主題
掛載 Amazon S3 儲存貯體
Research and Engineering Studio (RES) 支援將 Amazon S3 儲存貯體掛載到 Linux Virtual Desktop Infrastructure (VDI) 執行個體。RES 管理員可以將 S3 儲存貯體加入 RES、將其連接至專案、編輯其組態,以及移除環境管理下 S3 儲存貯體索引標籤中的儲存貯體。
S3 儲存貯體儀表板提供您可用的已加入 S3 儲存貯體清單。從 S3 儲存貯體儀表板,您可以:
-
使用新增儲存貯體將 S3 儲存貯體加入 RES。
-
選取 S3 儲存貯體並使用動作功能表來:
-
編輯儲存貯體
-
移除儲存貯體
-
-
使用搜尋欄位依儲存貯體名稱搜尋,並尋找已加入的 S3 儲存貯體。
新增 Amazon S3 儲存貯體
若要將 S3 儲存貯體新增至您的 RES 環境:
-
選擇新增儲存貯體。
-
輸入儲存貯體詳細資訊,例如儲存貯體名稱、ARN 和掛載點。
重要
-
提供的儲存貯體 ARN、掛載點和模式無法在建立後變更。
-
儲存貯體 ARN 可以包含字首,該字首會將加入的 S3 儲存貯體與該字首隔離。
-
-
選取要加入儲存貯體的模式。
重要
-
資料隔離 如需使用特定模式隔離資料的詳細資訊,請參閱 。
-
-
在進階選項下,您可以提供 IAM 角色 ARN 來掛載儲存貯體以進行跨帳戶存取。請依照 中的步驟跨帳戶儲存貯體存取建立跨帳戶存取所需的 IAM 角色。
-
(選用) 將儲存貯體與專案建立關聯,稍後可以變更。不過,S3 儲存貯體無法掛載到專案的現有 VDI 工作階段。只有專案與儲存貯體建立關聯之後啟動的工作階段才會掛載儲存貯體。
-
選擇提交。
編輯 Amazon S3 儲存貯體
-
在 S3 儲存貯體清單中選取 S3 儲存貯體。
-
從動作功能表中,選擇編輯。
-
輸入您的更新。
重要
-
將專案與 S3 儲存貯體建立關聯不會將儲存貯體掛載到該專案的現有虛擬桌面基礎設施 (VDI) 執行個體。只有在儲存貯體與該專案建立關聯之後,儲存貯體才會掛載到專案中啟動的 VDI 工作階段。
-
取消專案與 S3 儲存貯體的關聯不會影響 S3 儲存貯體中的資料,但會導致桌面使用者無法存取該資料。
-
-
選擇儲存儲存貯體設定。
移除 Amazon S3 儲存貯體
-
在 S3 儲存貯體清單中選取 S3 儲存貯體。
-
從動作功能表中,選擇移除。
重要
-
您必須先從儲存貯體中移除所有專案關聯。
-
移除操作不會影響 S3 儲存貯體中的資料。它只會移除 S3 儲存貯體與 RES 的關聯。
-
移除儲存貯體會導致現有的 VDI 工作階段在該工作階段的登入資料過期時 (~1 小時) 無法存取該儲存貯體的內容。
-
資料隔離
當您將 S3 儲存貯體新增至 RES 時,您可以選擇將儲存貯體中的資料隔離給特定專案和使用者。在新增儲存貯體頁面上,您可以選擇唯讀 (R) 或讀寫 (R/W) 模式。
唯讀
如果選取 Read Only (R)
,則會根據儲存貯體 ARN (Amazon Resource Name) 的字首強制執行資料隔離。例如,如果管理員使用 ARN 將儲存貯體新增至 RES,arn:aws:s3:::
並將此儲存貯體與專案 A 和專案 B 建立關聯,則從專案 A 和專案 B 內啟動 VDIs 的使用者只能讀取位於路徑 bucket-name
/example-data
//example-data
下儲存貯體名稱
中的資料。他們將無法存取該路徑以外的資料。如果沒有字首附加到儲存貯體 ARN,則整個儲存貯體將提供給與其相關聯的任何專案。
讀取和寫入
Read and Write (R/W)
如果選取 ,仍會根據儲存貯體 ARN 的字首強制執行資料隔離,如上所述。此模式有其他選項,可讓管理員為 S3 儲存貯體提供以變數為基礎的字首。Read and Write (R/W)
選取 時,自訂字首區段會變成可用,提供具有下列選項的下拉式功能表:
沒有自訂字首
/%p
/%p/%u

- 無自訂資料隔離
-
為自訂字首選取
No custom prefix
時,會新增儲存貯體,而沒有任何自訂資料隔離。這可讓與儲存貯體相關聯的任何專案具有讀取和寫入存取權。例如,如果管理員使用arn:aws:s3:::
bucket-name
No custom prefix
選取的 ARN 將儲存貯體新增至 RES,並將此儲存貯體與專案 A 和專案 B 建立關聯,則從專案 A 和專案 B 內啟動 VDIs 的使用者將擁有儲存貯體不受限制的讀取和寫入存取權。 - 每個專案層級的資料隔離
-
為自訂字首選取
/%p
時,儲存貯體中的資料會隔離至與其相關聯的每個特定專案。%p
變數代表專案程式碼。例如,如果管理員使用arn:aws:s3:::
具有bucket-name
/%p
所選 和/ 儲存貯體
掛載點的 ARN 將儲存貯體新增至 RES,並將此儲存貯體與專案 A 和專案 B 建立關聯,則專案 A 中的使用者 A 可以將檔案寫入/儲存貯體
。專案 A 中的使用者 B 也可以查看使用者 A 在/ 儲存貯
體中撰寫的檔案。不過,如果使用者 B 在專案 B 中啟動 VDI 並在/ 儲存貯
體中尋找,他們將不會看到使用者 A 所撰寫的檔案,因為資料是由專案隔離。檔案 使用者 A 寫入位於 S3 儲存貯體的字首下,/ProjectA
而使用者 B 只能在從專案 B 使用其 VDIs/ProjectB
時存取 。 - 每個專案、每個使用者層級的資料隔離
-
為自訂字首選取
/%p/%u
時,儲存貯體中的資料會與該專案相關聯的每個特定專案和使用者隔離。%p
變數代表專案程式碼,而%u
代表使用者名稱。例如,管理員使用arn:aws:s3:::
ARN 搭配bucket-name
/%p/%u
選取的 和掛載點/ 儲存貯體
,將儲存貯體新增至 RES。此儲存貯體與專案 A 和專案 B 相關聯。專案 A 中的使用者 A 可以將檔案寫入/ 儲存貯體
。與先前僅隔離的情況不同%p
,在此情況下,使用者 B 不會看到使用者 A 在/ 儲存貯
體的專案 A 中寫入的檔案,因為資料是由專案和使用者所隔離。檔案 使用者 A 寫入位於 S3 儲存貯體的字首下,/ProjectA/UserA
而使用者 B 只能在專案 A 中使用其 VDIs/ProjectA/UserB
時存取。
跨帳戶儲存貯體存取
RES 能夠從其他 AWS 帳戶掛載儲存貯體,前提是這些儲存貯體具有適當的許可。在下列案例中,帳戶 A 中的 RES 環境想要在帳戶 B 中掛載 S3 儲存貯體。
步驟 1:在部署 RES 的帳戶中建立 IAM 角色 (這將稱為帳戶 A):
-
登入需要存取 S3 儲存貯體 (帳戶 A) 之 RES 帳戶的 AWS 管理主控台。
-
開啟 IAM 主控台:
-
導覽至 IAM 儀表板。
-
在導覽窗格中,選取 Policies (政策)。
-
-
建立政策:
-
選取建立政策。
-
選擇 JSON 標籤。
-
貼上下列 JSON 政策 (將
<BUCKET-NAME>
取代為位於帳戶 B 中的 S3 儲存貯體名稱): -
選取下一步。
-
-
檢閱並建立政策:
-
提供政策的名稱 (例如,「S3AccessPolicy」)。
-
新增選用的描述來解釋政策的目的。
-
檢閱政策,然後選取建立政策。
-
-
開啟 IAM 主控台:
-
導覽至 IAM 儀表板。
-
在導覽窗格中,選取 Roles (角色)。
-
-
建立角色:
-
選取 建立角色。
-
選擇自訂信任政策作為信任實體的類型。
-
貼上下列 JSON 政策 (將
<ACCOUNT_ID>
取代為帳戶 A 的實際帳戶 ID、將<ENVIRONMENT_NAME>
取代為 RES 部署的環境名稱,並將<REGION>
取代為 AWS 區域 RES 部署的目標): -
選取「下一步」。
-
-
連接許可政策:
-
搜尋並選取您先前建立的政策。
-
選取「下一步」。
-
-
標記、檢閱和建立角色:
-
輸入角色名稱 (例如,「S3AccessRole」)。
-
在步驟 3 下,選取新增標籤,然後輸入下列索引鍵和值:
-
索引鍵:
res:Resource
-
值:
s3-bucket-iam-role
-
-
檢閱角色,然後選取建立角色。
-
-
在 RES 中使用 IAM 角色:
-
複製您建立的 IAM 角色 ARN。
-
登入 RES 主控台。
-
在左側導覽窗格中,選取 S3 儲存貯體。
-
選取新增儲存貯體,並使用跨帳戶 S3 儲存貯體 ARN 填寫表單。
-
選取進階設定 - 選用下拉式清單。
-
在 IAM 角色 ARN 欄位中輸入角色 ARN。
-
選取新增儲存貯體。
-
步驟 2:修改帳戶 B 中的儲存貯體政策
-
登入帳戶 B 的 AWS 管理主控台。
-
開啟 S3 主控台:
-
導覽至 S3 儀表板。
-
選取您要授予存取權的儲存貯體。
-
-
編輯儲存貯體政策:
-
選擇許可索引標籤,然後選取儲存貯體政策。
-
新增下列政策,以授予帳戶 A 對儲存貯體的 IAM 角色存取權 (將
<AccountA_ID>
取代為帳戶 A 的實際帳戶 ID,並將<BUCKET-NAME>
取代為 S3 儲存貯體的名稱): -
選取 Save (儲存)。
-
防止私有 VPC 中的資料外洩
若要防止使用者將資料從安全的 S3 儲存貯體滲透到其帳戶中自己的 S3 儲存貯體,您可以連接 VPC 端點來保護您的私有 VPC。下列步驟說明如何為 S3 服務建立 VPC 端點,以支援存取您帳戶中的 S3 儲存貯體,以及具有跨帳戶儲存貯體的任何其他帳戶。
-
開啟 Amazon VPC 主控台:
-
登入 AWS 管理主控台。
-
在 https://https://console.aws.amazon.com/vpc/ 開啟 Amazon VPC
主控台。
-
-
建立 S3 的 VPC 端點:
-
在左側導覽窗格中,選取端點。
-
選取建立端點。
-
請確定在 Service category (服務類別) 欄位,您已選擇 AWS services (AWS 服務)。
-
在服務名稱欄位中,輸入
com.amazonaws.
(將<region>
.s3<region>
取代為您的 AWS 區域) 或搜尋 "S3"。 -
從清單中選擇 S3 服務。
-
-
設定端點設定:
-
針對 VPC,選取您要建立端點的 VPC。
-
針對子網路,選取部署期間用於 VDI 子網路的兩個私有子網路。
-
針對啟用 DNS 名稱,請確定已勾選 選項。這可讓私有 DNS 主機名稱解析為端點網路介面。
-
-
設定政策以限制存取:
-
在政策下,選取自訂。
-
在政策編輯器中,輸入限制存取您帳戶或特定帳戶內資源的政策。以下是範例政策 (將
mybucket
取代為您的 S3 儲存貯體名稱,並將111122223333
和444455556666
取代為您想要存取的適當 AWS 帳戶 IDs):
-
-
建立端點:
-
檢閱您的設定。
-
選取建立端點。
-
-
驗證端點:
-
建立端點後,導覽至 VPC 主控台中的端點區段。
-
選取新建立的端點。
-
驗證狀態是否可用。
-
遵循以下步驟,您可以建立 VPC 端點,允許 S3 存取僅限於您帳戶或指定帳戶 ID 內的資源。
故障診斷
如何檢查儲存貯體是否無法在 VDI 上掛載
如果儲存貯體無法在 VDI 上掛載,您可以在幾個位置檢查錯誤。請依照下列步驟進行。
-
檢查 VDI 日誌:
-
登入 AWS 管理主控台。
-
開啟 EC2 主控台並導覽至執行個體。
-
選取您啟動的 VDI 執行個體。
-
透過 Session Manager 連線至 VDI。
-
執行下列命令:
sudo su cd ~/bootstrap/logs
在這裡,您會找到引導日誌。任何失敗的詳細資訊都會位於
configure.log.{time}
檔案中。此外,請檢查
/etc/message
日誌以取得更多詳細資訊。
-
-
檢查自訂登入資料中介裝置 Lambda CloudWatch Logs:
-
登入 AWS 管理主控台。
-
開啟 CloudWatch 主控台並導覽至日誌群組。
-
搜尋日誌群組
/aws/lambda/
。<stack-name>
-vdc-custom-credential-broker-lambda -
檢查第一個可用的日誌群組,並在日誌中找到任何錯誤。這些日誌將包含有關提供臨時自訂登入資料以掛載 S3 儲存貯體的潛在問題的詳細資訊。
-
-
檢查自訂登入資料中介裝置 API Gateway CloudWatch Logs:
-
登入 AWS 管理主控台。
-
開啟 CloudWatch 主控台並導覽至日誌群組。
-
搜尋日誌群組
。<stack-name>
-vdc-custom-credential-broker-lambdavdccustomcredentialbrokerapigatewayaccesslogs<nonce> -
檢查第一個可用的日誌群組,並在日誌中找到任何錯誤。這些日誌將包含任何請求和 API Gateway 回應的詳細資訊,以取得掛載 S3 儲存貯體所需的自訂登入資料。
-
如何在加入後編輯儲存貯體的 IAM 角色組態
-
登入 AWS DynamoDB 主控台
。 -
選取資料表:
-
在左側導覽窗格中,選取資料表。
-
尋找並選取
。<stack-name>
.cluster-settings
-
-
掃描資料表:
-
選取探索資料表項目。
-
確定已選取掃描。
-
-
新增篩選條件:
-
選取篩選條件以開啟篩選條件項目區段。
-
設定篩選條件以符合您的金鑰 -
-
屬性:輸入 金鑰。
-
條件:選擇開頭。
-
值:輸入以需要修改的檔案系統值
shared-storage.
取代<filesystem_id>
.s3_bucket.iam_role_arn<filesystem_id>
。
-
-
-
執行掃描:
選取執行以使用篩選條件執行掃描。
-
檢查 值:
如果項目存在,請確保使用正確的 IAM 角色 ARN 正確設定值。
如果項目不存在:
-
選取建立項目。
-
輸入項目詳細資訊:
-
針對金鑰屬性,輸入
shared-storage.
。<filesystem_id>
.s3_bucket.iam_role_arn -
新增正確的 IAM 角色 ARN。
-
-
選取儲存以新增項目。
-
-
重新啟動 VDI 執行個體:
重新啟動執行個體,以確保再次掛載受不正確 IAM 角色 ARN 影響VDIs。
啟用 CloudTrail
若要使用 CloudTrail 主控台在您的帳戶中啟用 CloudTrail,請遵循 AWS CloudTrail 使用者指南中的使用 CloudTrail 主控台建立追蹤中提供的指示。CloudTrail 將透過記錄存取 S3 儲存貯體的 IAM 角色來記錄對 S3 儲存貯體的存取。這可以連結回連結至專案或使用者的執行個體 ID。