本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立 IAM 角色和政策
本主題說明可搭配 使用的政策和角色類型 AWS Transfer Family,並逐步解說建立使用者角色的程序。它也說明工作階段政策的運作方式,並提供範例使用者角色。
AWS Transfer Family 使用下列類型的角色:
-
使用者角色 – 允許服務受管使用者存取必要的 Transfer Family 資源。 會在 Transfer Family 使用者 ARN 的內容中 AWS Transfer Family 擔任此角色。
-
存取角色 – 僅提供正在傳輸的 Amazon S3 檔案的存取權。對於傳入 AS2 傳輸,存取角色會使用協議的 Amazon Resource Name (ARN)。對於傳出 AS2 傳輸,存取角色會使用連接器的 ARN。
-
調用角色 – 與 Amazon API Gateway 搭配使用,做為伺服器的自訂身分提供者。Transfer Family 會在 Transfer Family 伺服器 ARN 的內容中擔任此角色。
-
記錄角色 – 用來將項目記錄到 Amazon CloudWatch。Transfer Family 使用此角色記錄成功和失敗詳細資訊,以及檔案傳輸的相關資訊。Transfer Family 會在 Transfer Family 伺服器 ARN 的內容中擔任此角色。對於傳出 AS2 傳輸,記錄角色會使用連接器 ARN。
-
執行角色 – 允許 Transfer Family 使用者呼叫和啟動工作流程。Transfer Family 會在 Transfer Family 工作流程 ARN 的內容中擔任此角色。
除了這些角色之外,您也可以使用工作階段政策。工作階段政策用於在必要時限制存取。請注意,這些政策是獨立的:也就是說,您不將這些政策新增至角色。相反地,您可以將工作階段政策直接新增至 Transfer Family 使用者。
注意
當您建立服務受管 Transfer Family 使用者時,您可以根據主資料夾選取自動產生政策。如果您想要限制使用者存取自己的資料夾,這是一個有用的捷徑。此外,您也可以在 中檢視工作階段政策和範例的詳細資訊工作階段政策的運作方式。您也可以在 IAM 使用者指南中的工作階段政策中找到工作階段政策的詳細資訊。
建立使用者角色
當您建立使用者時,您會對使用者存取做出許多決策。這些決策包括使用者可以存取的 Amazon S3 儲存貯體或 Amazon EFS 檔案系統、每個 Amazon S3 儲存貯體的哪些部分,以及檔案系統中可存取哪些檔案,以及使用者擁有哪些許可 (例如 PUT
或 GET
)。
若要設定存取,您可以建立身分型 AWS Identity and Access Management (IAM) 政策和角色,以提供該存取資訊。在此程序中,您可以為使用者提供存取 Amazon S3 儲存貯體或 Amazon EFS 檔案系統的權限,該系統是檔案操作的目標或來源。若要執行此作業,請遵循下列高層級步驟,稍後會詳細進行說明:
建立使用者角色
-
建立 的 IAM 政策 AWS Transfer Family。如 中所述建立適用於 AWS Transfer Family的 IAM 政策。
-
建立 IAM 角色並連接新的 IAM 政策。如需範例,請參閱「讀取/寫入存取政策範例」。
-
在 AWS Transfer Family 和 IAM 角色之間建立信任關係。如 中所述建立信任關係。
下列程序說明如何建立 IAM 政策和角色。
建立適用於 AWS Transfer Family的 IAM 政策
-
在 https://console.aws.amazon.com/iam/
中開啟 IAM 主控台。 -
在導覽窗格中,選擇 Policies (政策),然後選擇 Create policy (建立政策)。
-
在 Create Policy (建立政策) 頁面上,選擇 JSON 標籤。
-
在出現的編輯器中,將編輯器的內容取代為您要連接到 IAM 角色的 IAM 政策。
您可以授予讀取/寫入存取權,或將使用者限制為其主目錄。如需詳細資訊,請參閱讀取/寫入存取政策範例。
-
選擇檢閱政策並提供政策的名稱和描述,然後選擇建立政策。
接下來,您會建立 IAM 角色並將新的 IAM 政策連接到它。
為 建立 IAM 角色 AWS Transfer Family
-
在導覽窗格中,選擇角色,然後選擇建立角色。
在建立角色頁面上,確定已選擇 AWS 服務。
-
從服務清單選擇 Transfer (傳輸),然後選擇 Next: Permissions (下一步:許可)。這會在 AWS Transfer Family 和 之間建立信任關係 AWS。
-
在連接許可政策區段中,尋找並選擇您剛建立的政策,然後選擇下一步:標籤。
-
(選用) 輸入標籤的金鑰和值,然後選擇 Next: Review (下一步:檢閱)。
-
在 Review (檢閱) 頁面上,輸入您新角色的名稱和描述,然後選擇 Create role (建立角色)。
接著,您在 AWS Transfer Family 和 之間建立信任關係 AWS。
建立信任關係
注意
在我們的範例中,我們同時使用 ArnLike
和 ArnEquals
。它們的功能相同,因此您可以在建構政策時使用。Transfer Family 文件會在條件包含萬用字元ArnLike
時使用,ArnEquals
並指出完全相符的條件。
-
在 IAM 主控台中,選擇您剛建立的角色。
-
在 Summary (摘要) 頁面上,選擇 Trust relationships (信任關係),然後選擇 Edit trust relationship (編輯信任關係)。
-
在編輯信任關係編輯器中,確定服務為
"transfer.amazonaws.com"
。存取政策如下所示。建議您使用
aws:SourceAccount
和aws:SourceArn
條件金鑰,保護自己免受混淆代理人問題的困擾。來源帳戶是伺服器的擁有者,而來源 ARN 是使用者的 ARN。例如:"Condition": { "StringEquals": { "aws:SourceAccount": "
account_id
" }, "ArnLike": { "aws:SourceArn": "arn:aws:transfer:region
:account_id
:user/*" } }如果您想要限制特定伺服器,而不是使用者帳戶中的任何伺服器,您也可以使用
ArnLike
條件。例如:"Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:transfer:
region
:account-id
:user/server-id
/*" } }注意
在上述範例中,將每個
使用者輸入預留位置
取代為您自己的資訊。如需混淆代理人問題的詳細資訊和更多範例,請參閱 預防跨服務混淆代理人。
-
選擇更新信任政策以更新存取政策。
您現在已建立 IAM 角色, AWS Transfer Family 允許 代表您呼叫 AWS 服務。您已連接至您建立的 IAM 政策角色,以授予使用者存取權。在 AWS Transfer Family 伺服器端點入門區段中,此角色和政策會指派給您的使用者或使用者。
另請參閱
-
如需 IAM 角色的一般資訊,請參閱《IAM 使用者指南》中的建立角色以委派許可給 AWS 服務。
-
若要進一步了解 Amazon S3 資源的身分型政策,請參閱《Amazon Simple Storage Service 使用者指南》中的 Amazon S3 中的身分和存取管理。
-
若要進一步了解 Amazon EFS 資源的身分型政策,請參閱《Amazon Elastic File System 使用者指南》中的使用 IAM 控制檔案系統資料存取。
工作階段政策的運作方式
當管理員建立角色時,該角色通常包含涵蓋多個使用案例或團隊成員的廣泛許可。如果管理員設定主控台 URL,則可以使用工作階段政策來減少產生工作階段的許可。例如,如果您建立具有讀取/寫入存取權的角色,您可以設定 URL,限制使用者只能存取其主目錄。
當您以程式設計方式為角色或使用者建立臨時工作階段時,工作階段政策是做為參數傳遞的進階政策。工作階段政策有助於鎖定使用者,讓他們只能存取物件字首包含其使用者名稱的 儲存貯體部分。下圖顯示工作階段政策的許可是工作階段政策和資源型政策的交集,以及工作階段政策和身分型政策的交集。

如需詳細資訊,請參閱《IAM 使用者指南》中的工作階段政策。
在 中 AWS Transfer Family,只有在您往返 Amazon S3 傳輸時,才支援工作階段政策。下列範例政策是工作階段政策,只會限制使用者對其home
目錄的存取。注意下列事項:
-
只有在您需要啟用跨帳戶存取時,才需要
GetObjectACL
和PutObjectACL
陳述式。也就是說,您的 Transfer Family 伺服器需要存取不同帳戶中的儲存貯體。 -
工作階段政策的長度上限為 2048 個字元。如需詳細資訊,請參閱 API 參考中
CreateUser
動作的政策請求參數。 -
如果您的 Amazon S3 儲存貯體使用 AWS Key Management Service (AWS KMS) 加密,您必須在政策中指定其他許可。如需詳細資訊,請參閱資料保護和加密。
-
若要使用工作階段政策根據使用者屬性建立存取許可,而不為每個使用者建立單獨的 IAM 角色,請參閱 動態許可管理方法。
注意
上述政策範例假設使用者已將主目錄設定為包含結尾斜線,以表示它是目錄。另一方面,如果您設定的使用者HomeDirectory
沒有結尾斜線,則應該將其包含在政策中。
在先前的範例政策中,請注意 transfer:HomeFolder
、 transfer:HomeBucket
和 transfer:HomeDirectory
政策參數的使用方式。這些參數是針對為使用者設定的 HomeDirectory
所設定,如 HomeDirectory 和 中所述實作您的 API Gateway 方法。這些參數具有下列定義:
transfer:HomeBucket
參數會取代為 的第一個元件HomeDirectory
。transfer:HomeFolder
參數會取代為HomeDirectory
參數的剩餘部分。transfer:HomeDirectory
參數已移除正斜線 (/
),因此可做為Resource
陳述式中 S3 Amazon Resource Name (ARN) 的一部分使用。
注意
如果您使用的是邏輯目錄,也就是使用者的 homeDirectoryType
是 LOGICAL
,則不支援這些政策參數 (HomeBucket
、 HomeDirectory
和 HomeFolder
)。
例如,假設為 Transfer Family 使用者設定的 HomeDirectory
參數為 /home/bob/amazon/stuff/
。
transfer:HomeBucket
設定為/home
。transfer:HomeFolder
設定為/bob/amazon/stuff/
。transfer:HomeDirectory
會變成home/bob/amazon/stuff/
。
第一個"Sid"
允許使用者列出從 開始的所有目錄/home/bob/amazon/stuff/
。
第二個"Sid"
限制使用者對相同路徑 的put
和 get
存取/home/bob/amazon/stuff/
。
讀取/寫入存取政策範例
授予 Amazon S3 儲存貯體的讀取/寫入存取權
下列範例政策會 AWS Transfer Family 授予 Amazon S3 儲存貯體中物件的讀取/寫入存取權。
注意下列事項:
-
將
amzn-s3-demo-bucket
取代為您的 Amazon S3 儲存貯體的名稱。 -
只有在您需要啟用跨帳戶存取時,才需要
GetObjectACL
和PutObjectACL
陳述式。也就是說,您的 Transfer Family 伺服器需要存取不同帳戶中的儲存貯體。 -
只有在正在存取的 Amazon S3 儲存貯體上啟用版本控制時,才需要
GetObjectVersion
和DeleteObjectVersion
陳述式。注意
如果您已為儲存貯體啟用版本控制,則需要這些許可,因為您只能在 Amazon S3 中暫停版本控制,無法將其完全關閉。如需詳細資訊,請參閱「未版本控制」、「啟用版本控制」和「暫停版本控制」儲存貯體。
授予檔案系統對 Amazon EFS 檔案系統中檔案的存取權
注意
除了政策之外,您還必須確保 POSIX 檔案許可授予適當的存取權。如需詳細資訊,請參閱《Amazon Elastic File System 使用者指南》中的使用網路檔案系統 (NFS) 層級的使用者、群組和許可。
下列範例政策會授予 Amazon EFS 檔案系統中檔案的根檔案系統存取權。
注意
在下列範例中,將區域
取代為您的區域、將 account-id
取代為檔案所在的帳戶,並將 file-system-id
取代為 Amazon Elastic File System (Amazon EFS) 的 ID。
下列範例政策會授予使用者檔案系統存取 Amazon EFS 檔案系統中檔案的權限。