本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
教學課程:設定具有選擇性多儲存貯體存取權的 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 應用程式
-
登入 AWS Management Console ,並在 https://https://console.aws.amazon.com/transfer/
開啟 AWS Transfer Family 主控台。 -
在左側導覽窗格中,選擇 Web 應用程式。
-
選擇建立 Web 應用程式。
對於身分驗證存取,請注意,服務會自動尋找您設定為先決條件的 AWS IAM Identity Center 執行個體。
-
在許可類型窗格中,選取建立並使用新的服務角色。服務會為您建立身分承載角色。身分承載角色在其工作階段中包含已驗證使用者的身分。
-
在 Web 應用程式單位窗格中,接受預設值 1,或視需要調整為較高的值。
-
新增標籤以協助您組織 Web 應用程式。在教學課程中,輸入金鑰的名稱,並為值輸入教學課程 Web 應用程式的名稱。
提示
您可以在建立 Web 應用程式清單頁面直接編輯 Web 應用程式名稱。
-
選擇下一步以開啟設計 Web 應用程式頁面。在此畫面上,提供下列資訊。
您可以選擇性地為您的 Web 應用程式提供標題。您也可以上傳標誌和 favicon 的影像檔案。
-
針對頁面標題,自訂使用者連線至 Web 應用程式時看到的瀏覽器索引標籤標題。如果您未輸入頁面標題的任何內容,則會預設為 Transfer Web App。
-
對於標誌,上傳映像檔案。標誌影像的檔案大小上限為 50 KB。
-
針對 favicon,上傳映像檔案。您的 favicon 檔案大小上限為 20 KB。
-
-
選擇下一步,然後選擇建立 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 存取授權
-
在 開啟 S3 主控台https://console.aws.amazon.com/s3/
。 -
在導覽窗格中,選擇存取授權。
-
按一下建立 S3 存取授權執行個體。
-
選取新增 IAM Identity Center 執行個體選項,然後輸入身分中心執行個體 ARN。
-
按一下下一步,然後按一下取消以完成建立 S3 Access Grants 執行個體,而不繼續進行其他步驟。
此步驟會建立 S3 Access Grants 執行個體。您現在將註冊位置並建立存取授權。
步驟 4:註冊 S3 儲存貯體位置
使用 S3 Access Grants 將兩個 S3 儲存貯體註冊為位置:
-
在 S3 Access Grants 主控台中,導覽至位置並按一下註冊位置。
-
在位置範圍下,選擇特定 S3 儲存貯體進行下載 (amzn-s3-demo-bucket1)。
-
當系統提示您選擇 IAM 角色時,請選取您先前建立的下載 IAM 角色。
-
完成註冊程序。
-
重複此程序以註冊上傳儲存貯體 (amzn-s3-demo-bucket2),並在出現提示時選取上傳 IAM 角色。
步驟 5:建立存取授權
建立兩個授與,每個註冊的位置各一個:
-
在 S3 存取授權主控台中,導覽至授權,然後按一下建立授權。
-
在位置中,按一下瀏覽位置,然後選取下載儲存貯體位置 (amzn-s3-demo-bucket1)。
-
在子字首 (選用) 中,輸入
*
以允許存取整個儲存貯體,或指定類似 的路徑folder1/folder2/*
來限制對特定字首的存取。使用
*
會將授予範圍設定為s3://bucket-name/*
,允許存取整個儲存貯體。若要僅允許存取特定字首,請輸入類似 的路徑folder1/folder2/*
,這會將授予範圍設定為s3://bucket-name/folder1/folder2/*
。 -
在許可和存取下,選取下載儲存貯體的讀取。
-
在承授者類型中,從 IAM Identity Center 選擇目錄身分。
-
針對 IAM 主體類型,選取使用者,然後輸入 IAM Identity Center 使用者的使用者 ID。
-
完成授予建立程序。
-
重複此程序為上傳儲存貯體 (amzn-s3-demo-bucket2) 建立授予,但為許可選取讀寫。
步驟 6:設定 S3 儲存貯體的 CORS 政策
設定兩個 S3 儲存貯體的 CORS 政策,以允許透過 AWS Transfer Family WebApp 存取:
-
開啟 S3 主控台並導覽至您的下載儲存貯體 (amzn-s3-demo-bucket1)。
-
選取許可索引標籤。
-
向下捲動至跨來源資源共用 (CORS) 區段,然後按一下編輯。
-
新增下列 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 } ] -
按一下 Save changes (儲存變更)。
-
重複上傳儲存貯體 (amzn-s3-demo-bucket2) 的程序。
步驟 7:測試組態
-
開啟您的 AWS Transfer Family Web 應用程式 URL。您可以在 AWS Transfer Family 主控台的存取端點 欄位的 WebApps 下找到此 URL。
-
使用您使用存取授權設定的 IAM Identity Center 使用者登入資料登入。
-
登入後,您應該會在首頁上看到這兩個 S3 位置。
-
導覽至下載儲存貯體 (amzn-s3-demo-bucket1),並確認您可以下載檔案,但無法上傳。
-
導覽至上傳儲存貯體 (amzn-s3-demo-bucket2),並確認您可以上傳檔案。
結論
您已成功為單一使用者設定具有選擇性 S3 儲存貯體存取權的 AWS Transfer Family WebApp。此設定允許使用者從一個儲存貯體下載並上傳至另一個儲存貯體,同時透過 IAM 角色和 S3 Access Grants 維護安全性。
此方法可以透過為每個使用者在 S3 Access Grants 中建立額外的授權,以精細控制儲存貯體存取許可,進而擴展到多個使用者。如需基本 Web 應用程式設定的資訊,請參閱 教學課程:設定基本 Transfer Family Web 應用程式。