實作邏輯目錄 - AWS Transfer Family

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

實作邏輯目錄

重要

根目錄需求

  • 如果您未使用 Amazon S3 效能最佳化設定,您的根目錄必須在啟動時存在。

  • 對於 Amazon S3,這表示建立以正斜線 () 結尾的零位元組物件/

  • 若要避免此需求,請考慮在建立或更新伺服器時啟用 Amazon S3 效能最佳化。

  • 使用 LOGICAL HomeDirectory HomeDirectoryType 時,該值必須映射至其中一個邏輯目錄映射。服務會在使用者建立和更新期間驗證這一點,以防止組態無法運作。

邏輯主目錄組態

使用 LOGICAL 做為 HomeDirectoryType 時,請注意下列事項:

  • HomeDirectory 值必須對應至其中一個現有的邏輯目錄映射。

  • 系統會在使用者建立和更新期間自動驗證此項目。

  • 此驗證可防止會導致存取問題的組態。

啟用邏輯目錄

若要使用使用者的邏輯目錄,請將 HomeDirectoryType 參數設定為 LOGICAL。當您建立新的使用者或更新現有的使用者時,請執行此操作。

"HomeDirectoryType": "LOGICAL"

chroot 為使用者啟用

針對 chroot,建立包含每個使用者的單一 EntryTarget 配對的目錄結構。項目 / 代表根資料夾,而目標指定儲存貯體或檔案系統中的實際位置。

Example for Amazon S3
[{"Entry": "/", "Target": "/amzn-s3-demo-bucket/jane"}]
Example for Amazon EFS
[{"Entry": "/", "Target": "/fs-faa1a123/jane"}]

您可以使用如上一個範例所示的絕對路徑,也可以使用動態替代搭配 的使用者名稱${transfer:UserName},如下列範例所示。

[{"Entry": "/", "Target": "/amzn-s3-demo-bucket/${transfer:UserName}"}]

在上述範例中,使用者已鎖定至其根目錄,且無法在階層中向上移動。

虛擬目錄結構

對於虛擬目錄結構,您可以與 S3 儲存貯體或 EFS 檔案系統中任何位置的目標建立多個EntryTarget配對,包括跨多個儲存貯體或檔案系統,只要使用者的 IAM 角色映射具有存取它們的許可。

在下列虛擬結構範例中,當使用者登入 AWS SFTP 時,他們位於具有 /pics/reporting/doc和 子目錄的根目錄中/anotherpath/subpath/financials

注意

除非您選擇最佳化 Amazon S3 目錄的效能 (當您建立或更新伺服器時),否則如果 Amazon S3 目錄尚不存在,使用者或管理員都需要建立目錄。避免此問題是考慮最佳化 Amazon S3 效能的原因。

對於 Amazon EFS,您仍然需要管理員來建立邏輯映射或 / 目錄。

[ {"Entry": "/pics", "Target": "/amzn-s3-demo-bucket1/pics"}, {"Entry": "/doc", "Target": "/amzn-s3-demo-bucket1/anotherpath/docs"}, {"Entry": "/reporting", "Target": "/amzn-s3-demo-bucket2/Q1"}, {"Entry": "/anotherpath/subpath/financials", "Target": "/amzn-s3-demo-bucket2/financials"}]

注意

您只能將檔案上傳至您映射的特定資料夾。這表示在先前的範例中,您無法上傳到 /anotherpathanotherpath/subpath 目錄;只有 anotherpath/subpath/financials。您也無法直接映射到這些路徑,因為不允許重疊路徑。

例如,假設您建立下列映射:

{ "Entry": "/pics", "Target": "/amzn-s3-demo-bucket/pics" }, { "Entry": "/doc", "Target": "/amzn-s3-demo-bucket/mydocs" }, { "Entry": "/temp", "Target": "/amzn-s3-demo-bucket2/temporary" }

您只能將檔案上傳至這些儲存貯體。當您第一次透過 連線時sftp,系統會將您放入根目錄 /。如果您嘗試將檔案上傳至該目錄,上傳會失敗。下列命令顯示範例序列:

sftp> pwd Remote working directory: / sftp> put file Uploading file to /file remote open("/file"): No such file or directory

若要上傳至任何 directory/sub-directory,您必須明確地將路徑映射至 sub-directory

如需chroot為使用者設定邏輯目錄和 的詳細資訊,包括您可以下載和使用的 AWS CloudFormation 範本,請參閱 AWS 儲存部落格中的使用 chroot 和邏輯目錄簡化 AWS SFTP 結構