教學課程:設定具有選擇性多儲存貯體存取權的 AWS Transfer Family Web 應用程式 - AWS Transfer Family

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

教學課程:設定具有選擇性多儲存貯體存取權的 AWS Transfer Family Web 應用程式

本教學課程將引導您為單一使用者設定具有特定 Amazon S3 儲存貯體許可的 Transfer Family Web 應用程式。您將了解如何設定解決方案,允許使用者從一個儲存貯體下載並上傳至另一個儲存貯體,同時維護安全性。這是進階教學課程,以基本教學課程涵蓋的概念為基礎。如果您是初次使用 AWS Transfer Family Web 應用程式,請考慮從 開始教學課程:設定基本 Transfer Family Web 應用程式

先決條件

開始本教學課程之前,您需要:

  • 在與 AWS Transfer Family Web 應用程式相同的區域中設定的 IAM Identity Center。請注意, AWS 對於所有區域,每個 AWS 帳戶僅允許一個 IAM Identity Center 執行個體。

  • 在 IAM Identity Center 中至少設定一個使用者。

  • 兩個 S3 儲存貯體:一個用於下載,另一個用於上傳。

注意

本教學課程與基本 Web 應用程式教學課程共用許多先決條件。如需設定 IAM Identity Center 和建立使用者的詳細資訊,請參閱 教學課程:設定基本 Transfer Family Web 應用程式

步驟 1:建立 Transfer Family Web 應用程式

建立 Transfer Family Web 應用程式
  1. 登入 AWS Management Console ,並在 https://https://console.aws.amazon.com/transfer/ 開啟 AWS Transfer Family 主控台。

  2. 在左側導覽窗格中,選擇 Web 應用程式

  3. 選擇建立 Web 應用程式

    對於身分驗證存取,請注意,服務會自動尋找您設定為先決條件的 AWS IAM Identity Center 執行個體。

  4. 許可類型窗格中,選取建立並使用新的服務角色。服務會為您建立身分承載角色。身分承載角色在其工作階段中包含已驗證使用者的身分。

  5. Web 應用程式單位窗格中,接受預設值 1,或視需要調整為較高的值。

  6. 新增標籤以協助您組織 Web 應用程式。在教學課程中,輸入金鑰的名稱,並為值輸入教學課程 Web 應用程式的名稱。

    提示

    您可以在建立 Web 應用程式清單頁面直接編輯 Web 應用程式名稱。

  7. 選擇下一步以開啟設計 Web 應用程式頁面。在此畫面上,提供下列資訊。

    您可以選擇性地為您的 Web 應用程式提供標題。您也可以上傳標誌和 favicon 的影像檔案。

    • 針對頁面標題,自訂使用者連線至 Web 應用程式時看到的瀏覽器索引標籤標題。如果您未輸入頁面標題的任何內容,則會預設為 Transfer Web App

    • 對於標誌,上傳映像檔案。標誌影像的檔案大小上限為 50 KB。

    • 針對 favicon,上傳映像檔案。您的 favicon 檔案大小上限為 20 KB。

  8. 選擇下一步,然後選擇建立 Web 應用程式

步驟 2:設定 S3 存取的 IAM 角色

您需要建立兩個 IAM 角色:一個只能下載存取第一個儲存貯體,另一個只能上傳存取第二個儲存貯體。

兩個角色的信任政策

針對這兩個 IAM 角色使用以下信任政策:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AccessGrantsTrustPolicy", "Effect": "Allow", "Principal": { "Service": "access-grants.s3.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:SetSourceIdentity", "sts:SetContext" ] } ] }

下載儲存貯體的 IAM 政策

使用下列政策建立 IAM 角色,以唯讀存取您的下載儲存貯體:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ObjectLevelReadPermissions", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:GetObjectAcl", "s3:GetObjectVersionAcl", "s3:ListMultipartUploadParts", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1/*", "arn:aws:s3:::amzn-s3-demo-bucket1" ] } ] }
重要

以下載儲存貯體的實際名稱取代 amzn-s3-demo-bucket1

上傳儲存貯體的 IAM 政策

使用下列政策建立另一個 IAM 角色,以寫入存取您的上傳儲存貯體:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ObjectLevelWritePermissions", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectAcl", "s3:PutObjectVersionAcl", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:AbortMultipartUpload", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket2/*", "arn:aws:s3:::amzn-s3-demo-bucket2" ] } ] }
重要

使用上傳儲存貯體的實際名稱取代 amzn-s3-demo-bucket2

步驟 3:設定 S3 存取授權

  1. 在 開啟 S3 主控台https://console.aws.amazon.com/s3/

  2. 在導覽窗格中,選擇存取授權

  3. 按一下建立 S3 存取授權執行個體

  4. 選取新增 IAM Identity Center 執行個體選項,然後輸入身分中心執行個體 ARN。

  5. 按一下下一步,然後按一下取消以完成建立 S3 Access Grants 執行個體,而不繼續進行其他步驟。

此步驟會建立 S3 Access Grants 執行個體。您現在將註冊位置並建立存取授權。

步驟 4:註冊 S3 儲存貯體位置

使用 S3 Access Grants 將兩個 S3 儲存貯體註冊為位置:

  1. 在 S3 Access Grants 主控台中,導覽至位置並按一下註冊位置

  2. 位置範圍下,選擇特定 S3 儲存貯體進行下載 (amzn-s3-demo-bucket1)。

  3. 當系統提示您選擇 IAM 角色時,請選取您先前建立的下載 IAM 角色。

  4. 完成註冊程序。

  5. 重複此程序以註冊上傳儲存貯體 (amzn-s3-demo-bucket2),並在出現提示時選取上傳 IAM 角色。

步驟 5:建立存取授權

建立兩個授與,每個註冊的位置各一個:

  1. 在 S3 存取授權主控台中,導覽至授權,然後按一下建立授權

  2. 位置中,按一下瀏覽位置,然後選取下載儲存貯體位置 (amzn-s3-demo-bucket1)。

  3. 子字首 (選用) 中,輸入 * 以允許存取整個儲存貯體,或指定類似 的路徑folder1/folder2/*來限制對特定字首的存取。

    使用 *會將授予範圍設定為 s3://bucket-name/*,允許存取整個儲存貯體。若要僅允許存取特定字首,請輸入類似 的路徑folder1/folder2/*,這會將授予範圍設定為 s3://bucket-name/folder1/folder2/*

  4. 許可和存取下,選取下載儲存貯體的讀取

  5. 承授者類型中,從 IAM Identity Center 選擇目錄身分

  6. 針對 IAM 主體類型,選取使用者,然後輸入 IAM Identity Center 使用者的使用者 ID。

  7. 完成授予建立程序。

  8. 重複此程序為上傳儲存貯體 (amzn-s3-demo-bucket2) 建立授予,但為許可選取讀寫

步驟 6:設定 S3 儲存貯體的 CORS 政策

設定兩個 S3 儲存貯體的 CORS 政策,以允許透過 AWS Transfer Family WebApp 存取:

  1. 開啟 S3 主控台並導覽至您的下載儲存貯體 (amzn-s3-demo-bucket1)。

  2. 選取許可索引標籤。

  3. 向下捲動至跨來源資源共用 (CORS) 區段,然後按一下編輯

  4. 新增下列 CORS 組態,將 WebAppEndpoint 取代為您實際的 WebApp 端點 URL:

    您可以在 WebApps 下的 AWS Transfer Family 主控台中找到您的 Web 應用程式端點 URL。 WebApps 它看起來與 https://webapp-***************.transfer-webapp.us-west-2.on.aws 類似。

    [ { "AllowedHeaders": [ "*" ], "AllowedMethods": [ "GET", "PUT", "POST", "DELETE", "HEAD" ], "AllowedOrigins": [ "https://WebAppEndpoint" ], "ExposeHeaders": [ "last-modified", "content-length", "etag", "x-amz-version-id", "content-type", "x-amz-request-id", "x-amz-id-2", "date", "x-amz-cf-id", "x-amz-storage-class", "access-control-expose-headers" ], "MaxAgeSeconds": 3000 } ]
  5. 按一下 Save changes (儲存變更)。

  6. 重複上傳儲存貯體 (amzn-s3-demo-bucket2) 的程序。

步驟 7:測試組態

  1. 開啟您的 AWS Transfer Family Web 應用程式 URL。您可以在 AWS Transfer Family 主控台的存取端點 欄位的 WebApps 下找到此 URL。

  2. 使用您使用存取授權設定的 IAM Identity Center 使用者登入資料登入。

  3. 登入後,您應該會在首頁上看到這兩個 S3 位置。

  4. 導覽至下載儲存貯體 (amzn-s3-demo-bucket1),並確認您可以下載檔案,但無法上傳。

  5. 導覽至上傳儲存貯體 (amzn-s3-demo-bucket2),並確認您可以上傳檔案。

結論

您已成功為單一使用者設定具有選擇性 S3 儲存貯體存取權的 AWS Transfer Family WebApp。此設定允許使用者從一個儲存貯體下載並上傳至另一個儲存貯體,同時透過 IAM 角色和 S3 Access Grants 維護安全性。

此方法可以透過為每個使用者在 S3 Access Grants 中建立額外的授權,以精細控制儲存貯體存取許可,進而擴展到多個使用者。如需基本 Web 應用程式設定的資訊,請參閱 教學課程:設定基本 Transfer Family Web 應用程式