

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

# 中的安全性 AWS Transfer Family
<a name="security"></a>

的雲端安全性 AWS 是最高優先順序。身為 AWS 客戶，您可以受益於資料中心和網路架構，這些架構是為了滿足最安全敏感組織的需求而建置。

安全性是 AWS 與您之間的共同責任。[‬共同責任模型‭](https://aws.amazon.com/compliance/shared-responsibility-model/)‬ 將此描述為雲端*‬的‭*‬安全和雲端*‬內*‬的安全：

若要了解 AWS 服務 是否在特定合規計劃範圍內，請參閱[AWS 服務 合規計劃範圍內](https://aws.amazon.com/compliance/services-in-scope/)然後選擇您感興趣的合規計劃。如需一般資訊，請參閱[AWS 合規計劃](https://aws.amazon.com/compliance/programs/)。

您可以使用 下載第三方稽核報告 AWS Artifact。如需詳細資訊，請參閱[下載報告下載 AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html)。

您使用 時的合規責任 AWS 服務 取決於資料的機密性、您公司的合規目標，以及適用的法律和法規。如需使用 時合規責任的詳細資訊 AWS 服務，請參閱 [AWS 安全文件](https://docs.aws.amazon.com/security/)。

本文件可協助您了解如何在使用 時套用共同責任模型 AWS Transfer Family。下列主題說明如何設定 AWS Transfer Family 以符合您的安全與合規目標。您也會了解如何使用其他 AWS 服務來協助您監控和保護 AWS Transfer Family 資源。

我們提供一個研討會，提供規範性指導和實作實驗室，說明如何在 上建置可擴展且安全的檔案傳輸架構， AWS 而不需要修改現有的應用程式或管理伺服器基礎設施。您可以在[此](https://catalog.workshops.aws/basic-security-workshop-transfer-family/en-US)檢視此研討會的詳細資訊。

**Topics**
+ [VPC 連線安全優點](#vpc-connectivity-security)
+ [AWS Transfer Family 伺服器的安全政策](security-policies.md)
+ [AWS Transfer Family SFTP 連接器的安全政策](security-policies-connectors.md)
+ [搭配 使用混合式後量子金鑰交換 AWS Transfer Family](post-quantum-security-policies.md)
+ [資料保護和加密](encryption-at-rest.md)
+ [管理 Transfer 系列中的 SSH 和 PGP 金鑰](key-management.md)
+ [的身分和存取管理 AWS Transfer Family](security-iam.md)
+ [的合規驗證 AWS Transfer Family](transfer-compliance.md)
+ [中的彈性 AWS Transfer Family](disaster-recovery-resiliency.md)
+ [在 VPC 和 AWS Transfer Family APIs之間建立私有連線](vpc-api-endpoints.md)
+ [中的基礎設施安全 AWS Transfer Family](infrastructure-security.md)
+ [新增 Web 應用程式防火牆](web-application-firewall.md)
+ [預防跨服務混淆代理人](confused-deputy.md)
+ [AWS AWS Transfer Family 的 受管政策](security-iam-awsmanpol.md)

## VPC 連線安全優點
<a name="vpc-connectivity-security"></a>

具有 VPC 輸出類型的 SFTP 連接器透過跨 VPC 資源存取提供增強的安全優勢：
+ **網路隔離**：所有流量都會保留在您的 VPC 環境中，為私有端點連線提供與公有網際網路的完整網路隔離。
+ **來源 IP 控制**：遠端 SFTP 伺服器只會看到 VPC CIDR 範圍中的 IP 地址，讓您完全控制用於連線的來源 IP 地址。
+ **私有端點存取**：使用私有 IP 地址直接連線至 VPC 中的 SFTP 伺服器，消除公有網際網路的暴露。
+ **混合連線**：透過已建立的 VPN 或 Direct Connect 連線安全地存取內部部署 SFTP 伺服器，無需額外的網際網路暴露。
+ **VPC 安全控制**：利用現有的 VPC 安全群組、NACLs 和路由政策來控制和監控 SFTP 連接器流量。

### VPC Lattice 安全模型
<a name="vpc-lattice-security-model"></a>

SFTP 連接器的 VPC 連線使用 AWS VPC Lattice 與服務網路，以提供安全的多租戶存取：
+ **預防混淆代理人**：身分驗證和授權檢查可確保連接器只能存取其設定的特定資源，防止未經授權的跨租用戶存取。
+ **IPv6-only 服務網路**：使用 IPv6 定址以避免潛在的 IP 地址衝突，並增強安全隔離。
+ **轉送存取工作階段 (FAS)**：暫時憑證處理不需要長期憑證儲存或手動資源共用。
+ **資源層級存取控制**：每個連接器都與特定資源組態相關聯，以確保對個別 SFTP 伺服器的精細存取控制。

### VPC 連線的安全最佳實務
<a name="vpc-security-best-practices"></a>

使用 VPC 輸出類型連接器時，請遵循下列安全最佳實務：
+ **安全群組**：設定安全群組，僅允許必要資源之間的 SFTP 流量 （連接埠 22)。將來源和目的地 IP 範圍限制在所需的最低範圍內。
+ **資源閘道置放**：盡可能在私有子網路中部署資源閘道，並確保它們至少跨越兩個可用區域，以實現高可用性。
+ **網路監控**：使用 VPC 流程日誌和 Amazon CloudWatch 來監控網路流量模式並偵測異常活動。
+ **存取記錄**：啟用連接器記錄以追蹤檔案傳輸活動，並維護稽核追蹤以符合合規要求。
+ **資源組態管理**：定期檢閱和更新資源組態，以確保它們指向正確的 SFTP 伺服器，並使用適當的網路設定。

# AWS Transfer Family 伺服器的安全政策
<a name="security-policies"></a>

中的伺服器安全政策 AWS Transfer Family 可讓您限制與伺服器相關聯的一組密碼編譯演算法 （訊息驗證碼 (MACs)、金鑰交換 (KEXs)、密碼套件、內容加密密碼和雜湊演算法）。

AWS Transfer Family 支援使用混合金鑰交換演算法的後量子安全政策，結合傳統密碼編譯方法與後量子演算法，以針對未來的量子運算威脅提供增強的安全性。詳細資訊提供於 [搭配 使用混合式後量子金鑰交換 AWS Transfer Family](post-quantum-security-policies.md)。

如需支援的加密演算法清單，請參閱 [密碼編譯演算法](#cryptographic-algorithms)。如需支援與伺服器主機金鑰和服務受管使用者金鑰搭配使用的金鑰演算法清單，請參閱 [管理 Transfer 系列中的 SSH 和 PGP 金鑰](key-management.md)。

**注意**  
我們強烈建議將您的伺服器更新為最新的安全政策。  
`TransferSecurityPolicy-2024-01` 是使用主控台、API 或 CLI 建立伺服器時連接到伺服器的預設安全政策。
如果您使用 CloudFormation 建立 Transfer Family 伺服器並接受預設安全政策，則會指派伺服器 `TransferSecurityPolicy-2018-11`。
如果您擔心用戶端相容性，請明確陳述您希望在建立或更新伺服器時使用的安全政策，而不是使用預設政策，該政策可能會有所變更。若要變更伺服器的安全政策，請參閱 [編輯安全政策](edit-server-config.md#edit-cryptographic-algorithm)。

如需 Transfer Family 安全性的詳細資訊，請參閱下列部落格文章：
+ [改善 AWS Transfer Family 伺服器安全性的六個秘訣](https://aws.amazon.com/blogs/security/six-tips-to-improve-the-security-of-your-aws-transfer-family-server/)
+ [Transfer Family 如何協助您建置安全、合規的受管檔案傳輸解決方案](https://aws.amazon.com/blogs/security/how-transfer-family-can-help-you-build-a-secure-compliant-managed-file-transfer-solution/)

**Topics**
+ [密碼編譯演算法](#cryptographic-algorithms)
+ [TransferSecurityPolicy-2024-01](#security-policy-transfer-2024-01)
+ [TransferSecurityPolicy-SshAuditCompliant-2025-02](#security-policy-transferSecurityPolicy-SshAuditCompliant-2025-02)
+ [TransferSecurityPolicy-2023-05](#security-policy-transfer-2023-05)
+ [TransferSecurityPolicy-2022-03](#security-policy-transfer-2022-03)
+ [TransferSecurityPolicy-2020-06 和 TransferSecurityPolicy-Restricted-2020-06](#security-policy-transfer-2020-06)
+ [TransferSecurityPolicy-2018-11 月和 TransferSecurityPolicy-Restricted-2018-11](#security-policy-transfer-2018-11)
+ [TransferSecurityPolicy-FIPS-2024-01/TransferSecurityPolicy-FIPS-2024-05](#security-policy-transfer-fips-2024-01)
+ [TransferSecurityPolicy-FIPS-2023-05](#security-policy-transfer-fips-2023-05)
+ [TransferSecurityPolicy-FIPS-2020-06](#security-policy-transfer-fips-2020-06)
+ [TransferSecurityPolicy-AS2Restricted-2025-07](#as2-restricted-policy)
+ [Post Quantum 安全政策](#pq-policies)

## 密碼編譯演算法
<a name="cryptographic-algorithms"></a>

對於主機金鑰，我們支援下列演算法：
+ `rsa-sha2-256`
+ `rsa-sha2-512`
+ `ecdsa-sha2-nistp256`
+ `ecdsa-sha2-nistp384`
+ `ecdsa-sha2-nistp521`
+ `ssh-ed25519`

此外，下列安全政策允許 `ssh-rsa`：
+ TransferSecurityPolicy-2018-11
+ TransferSecurityPolicy-2020-06
+ TransferSecurityPolicy-FIPS-2020-06
+ TransferSecurityPolicy-FIPS-2023-05
+ TransferSecurityPolicy-FIPS-2024-01
+ TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04

**注意**  
請務必了解 RSA 金鑰類型與 `ssh-rsa`RSA 主機金鑰演算法之間的區別，這可以是任何支援的演算法。

以下是每個安全政策支援的加密演算法清單。

**注意**  
在下表和政策中，請注意下列演算法類型的使用方式。  
SFTP 伺服器僅在 **SshCiphers**、**SshKexs** 和 **SshMacs** 區段中使用演算法。
FTPS 伺服器僅在 **TlsCiphers** 區段中使用演算法。
FTP 伺服器不會使用加密，因此請勿使用任何這些演算法。
AS2 伺服器僅在 **ContentEncryptionCiphers** 和**HashAlgorithms**區段中使用演算法。這些區段定義用於加密和簽署檔案內容的演算法。
FIPS-2024-05 和 FIPS-2024-01 安全政策完全相同，但 FIPS-2024-05 不支援`ssh-rsa`演算法。
Transfer Family 已推出新的限制政策，以密切平行現有的政策：  
TransferSecurityPolicy-Restricted-2018-11 和 TransferSecurityPolicy-2018-11 安全政策完全相同，但受限制政策不支援`chacha20-poly1305@openssh.com`加密。
TransferSecurityPolicy-Restricted-2020-06 和 TransferSecurityPolicy-2020-06 安全政策完全相同，但受限制政策不支援`chacha20-poly1305@openssh.com`加密。
\$1在下表中，`chacha20-poly1305@openssh.com`密碼僅包含在非限制政策中，


| 安全政策 | 2024-01 | SshAuditCompliant-2025-02 | 2023-05 | 2022-03 |  **2020 年 6 月** **2020 年 6 月受限制**  |  **FIPS-2024-05** **FIPS-2024-01**  | FIPS-2023-05 | FIPS-2020-06 |  **2018 年 11 月** **2018 年 11 月受限制**  | TransferSecurityPolicy-AS2Restricted-2025-07 | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |--- |--- |
|  **SshCiphers**  | 
| --- |
|  aes128-ctr  | ♦ |  ♦  |  |     |  ♦  | ♦ |  |  ♦  |  ♦  |  ♦  | 
|  aes128-gcm@openssh.com  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | ♦ |  ♦   |  ♦  |  ♦  |  ♦  | 
|  aes192-ctr  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | ♦ |  ♦   |  ♦  |  ♦  |  ♦  | 
|  aes256-ctr  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | ♦ |  ♦   |  ♦  |  ♦  |  ♦  | 
|  aes256-gcm@openssh.com  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | ♦ |  ♦   |  ♦  |  ♦  |  ♦  | 
|  chacha20-poly1305@openssh.com  |  |  |  |     |  ♦\$1  |  |  |  |  ♦\$1  |  | 
|  **SshKexs**  | 
| --- |
|  mlkem768x25519-sha256  |  |  |  |  |  |  |  |  |  |  ♦  | 
|  mlkem768nistp256-sha256  |  |  |  |  |  |  |  |  |  |  ♦  | 
|  mlkem1024nistp384-sha384  |  |  |  |  |  |  |  |  |  |  ♦  | 
|  curve25519-sha256  | ♦ |  ♦  |  ♦  |  ♦  |     |  |  |     |  ♦  |  ♦  | 
|  curve25519-sha256@libssh.org  | ♦ |  ♦  |  ♦  |  ♦  |     |  |  |     |  ♦  |  ♦  | 
|  diffie-hellman-group14-sha1  |  |  |  |     |     |  |  |     |  ♦  |  | 
|  diffie-hellman-group14-sha256  |  |  |  |     |  ♦  |  |  |  ♦  |  ♦  |  | 
|  diffie-hellman-group16-sha512  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | 
| diffie-hellman-group18-sha512  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | 
|  diffie-hellman-group-exchange-sha256  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  |  |  ♦  |  ♦  |  ♦  |  ♦  | 
|  ecdh-sha2-nistp256  | ♦ |  |  |     |  ♦  | ♦ |  |  ♦  |  ♦  |  ♦  | 
|  ecdh-sha2-nistp384  | ♦ |  |  |     |  ♦  | ♦ |  |  ♦  |  ♦  |  ♦  | 
|  ecdh-sha2-nistp521  | ♦ |  |  |     |  ♦  | ♦ |  |  ♦  |  ♦  |  ♦  | 
|  **SshMacs**  | 
| --- |
|  hmac-sha1  |  |  |  |     |     |  |  |     |  ♦  |  | 
|  hmac-sha1-etm@openssh.com  |  |  |  |     |     |  |  |     |  ♦  |  | 
|  hmac-sha2-256  |  |  |  |  ♦  |  ♦  |  |  |  ♦  |  ♦  |  | 
|  hmac-sha2-256-etm@openssh.com  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | 
|  hmac-sha2-512  |  |  |  |  ♦  |  ♦  |  |  |  ♦  |  ♦  |  | 
|  hmac-sha2-512-etm@openssh.com  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | 
|  umac-128-etm@openssh.com  |  |  |  |     |  ♦  |  |  |     |  ♦  |  | 
|  umac-128@openssh.com  |  |  |  |     |  ♦  |  |  |     |  ♦  |  | 
|  umac-64-etm@openssh.com  |  |  |  |     |     |  |  |     |  ♦  |  | 
|  umac-64@openssh.com  |  |  |  |     |     |  |  |     |  ♦  |  | 
|  **ContentEncryptionCiphers**  | 
| --- |
|  aes256-cbc  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | ♦ |  ♦  |  ♦  |  ♦  |  ♦   | 
|  aes192-cbc  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | ♦ |  ♦  |  ♦  |  ♦  |  ♦   | 
|  aes128-cbc  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | ♦ |  ♦  |  ♦  |  ♦  | ♦ | 
|  3des-cbc  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | ♦ |  ♦  |  ♦  |  ♦  |  | 
|  **HashAlgorithms**  | 
| --- |
|  sha256  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | ♦ |  ♦  |  ♦  |  ♦  |  ♦   | 
|  sha384  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | ♦ |  ♦  |  ♦  |  ♦  |  ♦   | 
|  sha512  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | ♦ |  ♦  |  ♦  |  ♦  |  ♦   | 
|  sha1  | ♦ |  ♦  |  ♦  |  ♦  |  ♦  | ♦ |  ♦  |  ♦  |  ♦  |  | 
|  **TlsCiphers**  | 
| --- |
|  TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256  |  ♦  |  ♦  |  ♦  |  ♦  |  ♦  |  ♦  |  ♦  |  ♦  |  ♦  |  ♦  | 
| TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1128\$1GCM\$1SHA256 |  ♦  |  ♦  |  ♦  |  ♦  |  ♦  |  ♦  |  ♦  |  ♦  |  ♦  |  ♦  | 
|  TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384  |  ♦  |  ♦  |  ♦  |  ♦  |  ♦  |  ♦  |  ♦  |  ♦  |  ♦  |  ♦  | 
|  TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384  | ♦  |  ♦  |  ♦  |  ♦  |  ♦  | ♦  |  ♦  |  ♦  |  ♦  |  ♦  | 
|  TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256  | ♦  |  ♦  |  ♦  |  ♦  |  ♦  | ♦  |  ♦  |  ♦  |  ♦  |  ♦  | 
|  TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1GCM\$1SHA256  | ♦  |  ♦  |  ♦  |  ♦  |  ♦  | ♦  |  ♦  |  ♦  |  ♦  |  ♦  | 
|  TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384  | ♦  |  ♦  |  ♦  |  ♦  |  ♦  | ♦  |  ♦  |  ♦  |  ♦  |  ♦  | 
|  TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384  | ♦  |  ♦  |  ♦  |  ♦  |  ♦  | ♦  |  ♦  |  ♦  |  ♦  |  ♦  | 
|  TLS\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256  |  |  |     |     |     |  |     |     |  ♦  |  | 
|  TLS\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA256  |  |  |     |     |     |  |     |     |  ♦  |  | 

## TransferSecurityPolicy-2024-01
<a name="security-policy-transfer-2024-01"></a>

以下顯示 TransferSecurityPolicy-2024-01 安全政策。

```
{
    "SecurityPolicy": {
        "Fips": false,
        "SecurityPolicyName": "TransferSecurityPolicy-2024-01",
        "SshCiphers": [
            "aes128-gcm@openssh.com",
            "aes256-gcm@openssh.com",
            "aes128-ctr",
            "aes256-ctr",
            "aes192-ctr"
        ],
        "SshKexs": [
            "ecdh-sha2-nistp256",
            "ecdh-sha2-nistp384",
            "ecdh-sha2-nistp521",
            "curve25519-sha256",
            "curve25519-sha256@libssh.org",
            "diffie-hellman-group18-sha512",
            "diffie-hellman-group16-sha512",
            "diffie-hellman-group-exchange-sha256"
        ],
        "SshMacs": [
            "hmac-sha2-256-etm@openssh.com",
            "hmac-sha2-512-etm@openssh.com"
        ],
        "ContentEncryptionCiphers": [
            "aes256-cbc",
            "aes192-cbc",
            "aes128-cbc",
            "3des-cbc"
        ],
        "HashAlgorithms": [
            "sha256",
            "sha384",
            "sha512",
            "sha1"
        ],
        "TlsCiphers": [
            "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
            "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
            "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384",
            "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"
        ]
    }
}
```

## TransferSecurityPolicy-SshAuditCompliant-2025-02
<a name="security-policy-transferSecurityPolicy-SshAuditCompliant-2025-02"></a>

以下顯示 TransferSecurityPolicy-SshAuditCompliant-2025-02 安全政策。

**注意**  
此安全政策的設計是以`ssh-audit`工具提供的建議為依據，且 100% 符合該工具。

```
{
  "SecurityPolicy": {
    "Fips": false,
    "Protocols": [
      "SFTP",
      "FTPS"
    ],
    "SecurityPolicyName": "TransferSecurityPolicy-SshAuditCompliant-2025-02",
    "SshCiphers": [
      "aes128-gcm@openssh.com",
      "aes256-gcm@openssh.com",
      "aes128-ctr",
      "aes256-ctr",
      "aes192-ctr"
    ],
    "SshKexs": [
      "curve25519-sha256",
      "curve25519-sha256@libssh.org",
      "diffie-hellman-group18-sha512",
      "diffie-hellman-group16-sha512",
      "diffie-hellman-group-exchange-sha256"
    ],
    "SshMacs": [
      "hmac-sha2-256-etm@openssh.com",
      "hmac-sha2-512-etm@openssh.com"
    ],
    "ContentEncryptionCiphers": [
      "aes256-cbc",
      "aes192-cbc",
      "aes128-cbc",
      "3des-cbc"
    ],
    "HashAlgorithms": [
      "sha256",
      "sha384",
      "sha512",
      "sha1"
    ],
    "TlsCiphers": [
      "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
      "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
      "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
      "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
      "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
      "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
      "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384",
      "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"
    ],
    "Type": "SERVER"
  }
}
```

## TransferSecurityPolicy-2023-05
<a name="security-policy-transfer-2023-05"></a>

以下顯示 TransferSecurityPolicy-2023-05 安全政策。

```
{
    "SecurityPolicy": {
        "Fips": false,
        "SecurityPolicyName": "TransferSecurityPolicy-2023-05",
        "SshCiphers": [
            "aes256-gcm@openssh.com",
            "aes128-gcm@openssh.com",
            "aes256-ctr",
            "aes192-ctr"
        ],
        "SshKexs": [
            "curve25519-sha256",
            "curve25519-sha256@libssh.org",
            "diffie-hellman-group16-sha512",
            "diffie-hellman-group18-sha512",
            "diffie-hellman-group-exchange-sha256"
        ],
        "SshMacs": [
            "hmac-sha2-512-etm@openssh.com",
            "hmac-sha2-256-etm@openssh.com"
        ],
        "ContentEncryptionCiphers": [
            "aes256-cbc",
            "aes192-cbc",
            "aes128-cbc",
            "3des-cbc"
        ],
        "HashAlgorithms": [
            "sha256",
            "sha384",
            "sha512",
            "sha1"
        ],
        "TlsCiphers": [
            "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
            "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
            "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384",
            "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"
        ]
    }
}
```

## TransferSecurityPolicy-2022-03
<a name="security-policy-transfer-2022-03"></a>

以下顯示 TransferSecurityPolicy-2022-03 安全政策。

```
{
  "SecurityPolicy": {
    "Fips": false,
    "SecurityPolicyName": "TransferSecurityPolicy-2022-03",
    "SshCiphers": [
      "aes256-gcm@openssh.com",
      "aes128-gcm@openssh.com",
      "aes256-ctr",
      "aes192-ctr"
    ],
    "SshKexs": [
      "curve25519-sha256",
      "curve25519-sha256@libssh.org",
      "diffie-hellman-group16-sha512",
      "diffie-hellman-group18-sha512",
      "diffie-hellman-group-exchange-sha256"
    ],
    "SshMacs": [
      "hmac-sha2-512-etm@openssh.com",
      "hmac-sha2-256-etm@openssh.com",
      "hmac-sha2-512",
      "hmac-sha2-256"
    ],
    "ContentEncryptionCiphers": [
      "aes256-cbc",
      "aes192-cbc",
      "aes128-cbc"
      "3des-cbc",
    ],
    "HashAlgorithms": [
      "sha256",
      "sha384",
      "sha512"
      "sha1"
    ],
    "TlsCiphers": [
      "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", 
      "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", 
      "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
      "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256", 
      "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", 
      "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", 
      "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384", 
      "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"
    ]
  }
}
```

## TransferSecurityPolicy-2020-06 和 TransferSecurityPolicy-Restricted-2020-06
<a name="security-policy-transfer-2020-06"></a>

以下顯示 TransferSecurityPolicy-2020-06 安全政策。

**注意**  
TransferSecurityPolicy-Restricted-2020-06 和 TransferSecurityPolicy-2020-06 安全政策完全相同，但限制政策不支援`chacha20-poly1305@openssh.com`加密。

```
{
  "SecurityPolicy": {
    "Fips": false,
    "SecurityPolicyName": "TransferSecurityPolicy-2020-06",
    "SshCiphers": [
      "chacha20-poly1305@openssh.com", //Not included in TransferSecurityPolicy-Restricted-2020-06
      "aes128-ctr",
      "aes192-ctr",
      "aes256-ctr",
      "aes128-gcm@openssh.com",
      "aes256-gcm@openssh.com"
    ],
    "SshKexs": [
      "ecdh-sha2-nistp256",
      "ecdh-sha2-nistp384",
      "ecdh-sha2-nistp521",
      "diffie-hellman-group-exchange-sha256",
      "diffie-hellman-group16-sha512",
      "diffie-hellman-group18-sha512",
      "diffie-hellman-group14-sha256"
    ],
    "SshMacs": [
      "umac-128-etm@openssh.com",
      "hmac-sha2-256-etm@openssh.com",
      "hmac-sha2-512-etm@openssh.com",
      "umac-128@openssh.com",
      "hmac-sha2-256",
      "hmac-sha2-512"
    ],
    "ContentEncryptionCiphers": [
      "aes256-cbc",
      "aes192-cbc",
      "aes128-cbc"
            "3des-cbc",
    ],
    "HashAlgorithms": [
      "sha256",
      "sha384",
      "sha512"
      "sha1"
    ],
    "TlsCiphers": [
      "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
      "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
      "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
      "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
      "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
      "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
      "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384",
      "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"
    ]
  }
}
```

## TransferSecurityPolicy-2018-11 月和 TransferSecurityPolicy-Restricted-2018-11
<a name="security-policy-transfer-2018-11"></a>

以下顯示 TransferSecurityPolicy-2018-11 安全政策。

**注意**  
TransferSecurityPolicy-Restricted-2018-11 和 TransferSecurityPolicy-2018-11 安全政策完全相同，但受限制政策不支援`chacha20-poly1305@openssh.com`加密。

```
{
  "SecurityPolicy": {
    "Fips": false,
    "SecurityPolicyName": "TransferSecurityPolicy-2018-11",
    "SshCiphers": [
      "chacha20-poly1305@openssh.com", //Not included in TransferSecurityPolicy-Restricted-2018-11
      "aes128-ctr",
      "aes192-ctr",
      "aes256-ctr",
      "aes128-gcm@openssh.com",
      "aes256-gcm@openssh.com"
    ],
    "SshKexs": [
      "curve25519-sha256",
      "curve25519-sha256@libssh.org",
      "ecdh-sha2-nistp256",
      "ecdh-sha2-nistp384",
      "ecdh-sha2-nistp521",
      "diffie-hellman-group-exchange-sha256",
      "diffie-hellman-group16-sha512",
      "diffie-hellman-group18-sha512",
      "diffie-hellman-group14-sha256",
      "diffie-hellman-group14-sha1"
    ],
    "SshMacs": [
      "umac-64-etm@openssh.com",
      "umac-128-etm@openssh.com",
      "hmac-sha2-256-etm@openssh.com",
      "hmac-sha2-512-etm@openssh.com",
      "hmac-sha1-etm@openssh.com",
      "umac-64@openssh.com",
      "umac-128@openssh.com",
      "hmac-sha2-256",
      "hmac-sha2-512",
      "hmac-sha1"
    ],
    "ContentEncryptionCiphers": [
      "aes256-cbc",
      "aes192-cbc",
      "aes128-cbc"
            "3des-cbc",
    ],
    "HashAlgorithms": [
      "sha256",
      "sha384",
      "sha512",
      "sha1"
    ],
    "TlsCiphers": [
      "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
      "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
      "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
      "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
      "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
      "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
      "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384",
      "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384",
      "TLS_RSA_WITH_AES_128_CBC_SHA256",
      "TLS_RSA_WITH_AES_256_CBC_SHA256"
    ]
  }
}
```

## TransferSecurityPolicy-FIPS-2024-01/TransferSecurityPolicy-FIPS-2024-05
<a name="security-policy-transfer-fips-2024-01"></a>

以下顯示 TransferSecurityPolicy-FIPS-2024-01 和 TransferSecurityPolicy-FIPS-2024-05 安全政策。

**注意**  
FIPS 服務端點和 TransferSecurityPolicy-FIPS-2024-01 和 TransferSecurityPolicy-FIPS-2024-05 安全政策僅適用於某些 AWS 區域。如需詳細資訊，請參閱 *AWS 一般參考* 中的 [AWS Transfer Family 端點和配額](https://docs.aws.amazon.com/general/latest/gr/transfer-service.html)。  
這兩個安全政策的唯一區別是 TransferSecurityPolicy-FIPS-2024-01 支援`ssh-rsa`演算法，而 TransferSecurityPolicy-FIPS-2024-05 則不支援。

```
{
    "SecurityPolicy": {
        "Fips": true,
        "SecurityPolicyName": "TransferSecurityPolicy-FIPS-2024-01",
        "SshCiphers": [
            "aes128-gcm@openssh.com",
            "aes256-gcm@openssh.com",
            "aes128-ctr",
            "aes256-ctr",
            "aes192-ctr"
        ],
        "SshKexs": [
            "ecdh-sha2-nistp256",
            "ecdh-sha2-nistp384",
            "ecdh-sha2-nistp521",
            "diffie-hellman-group18-sha512",
            "diffie-hellman-group16-sha512",
            "diffie-hellman-group-exchange-sha256"
        ],
        "SshMacs": [
            "hmac-sha2-256-etm@openssh.com",
            "hmac-sha2-512-etm@openssh.com"
        ],
        "ContentEncryptionCiphers": [
            "aes256-cbc",
            "aes192-cbc",
            "aes128-cbc"
            "3des-cbc"
        ],
        "HashAlgorithms": [
            "sha256",
            "sha384",
            "sha512"
            "sha1"
        ],
        "TlsCiphers": [
            "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
            "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
            "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384",
            "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"
        ]
    }
}
```

## TransferSecurityPolicy-FIPS-2023-05
<a name="security-policy-transfer-fips-2023-05"></a>

如需 的 FIPS 認證詳細資訊 AWS Transfer Family ，請參閱 [https://csrc.nist.gov/projects/cryptographic-module-validation-program/validated-modules/search/all](https://csrc.nist.gov/projects/cryptographic-module-validation-program/validated-modules/search/all)

以下顯示 TransferSecurityPolicy-FIPS-2023-05 安全政策。

**注意**  
FIPS 服務端點和 TransferSecurityPolicy-FIPS-2023-05 安全政策僅適用於某些 AWS 區域。如需詳細資訊，請參閱 *AWS 一般參考* 中的 [AWS Transfer Family 端點和配額](https://docs.aws.amazon.com/general/latest/gr/transfer-service.html)。

```
{
    "SecurityPolicy": {
        "Fips": true,
        "SecurityPolicyName": "TransferSecurityPolicy-FIPS-2023-05",
        "SshCiphers": [
            "aes256-gcm@openssh.com",
            "aes128-gcm@openssh.com",
            "aes256-ctr",
            "aes192-ctr"
        ],
        "SshKexs": [
            "diffie-hellman-group16-sha512",
            "diffie-hellman-group18-sha512",
            "diffie-hellman-group-exchange-sha256"
        ],
        "SshMacs": [
            "hmac-sha2-256-etm@openssh.com",
            "hmac-sha2-512-etm@openssh.com"
        ],
        "ContentEncryptionCiphers": [
            "aes256-cbc",
            "aes192-cbc",
            "aes128-cbc"
            "3des-cbc"
        ],
        "HashAlgorithms": [
            "sha256",
            "sha384",
            "sha512"
            "sha1"
        ],
        "TlsCiphers": [
            "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
            "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
            "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384",
            "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"
        ]
    }
}
```

## TransferSecurityPolicy-FIPS-2020-06
<a name="security-policy-transfer-fips-2020-06"></a>

如需 的 FIPS 認證詳細資訊 AWS Transfer Family ，請參閱 [https://csrc.nist.gov/projects/cryptographic-module-validation-program/validated-modules/search/all](https://csrc.nist.gov/projects/cryptographic-module-validation-program/validated-modules/search/all)

以下顯示 TransferSecurityPolicy-FIPS-2020-06 安全政策。

**注意**  
FIPS 服務端點和 TransferSecurityPolicy-FIPS-2020-06 安全政策僅適用於某些 AWS 區域。如需詳細資訊，請參閱 *AWS 一般參考* 中的 [AWS Transfer Family 端點和配額](https://docs.aws.amazon.com/general/latest/gr/transfer-service.html)。

```
{
  "SecurityPolicy": {
    "Fips": true,
    "SecurityPolicyName": "TransferSecurityPolicy-FIPS-2020-06",
    "SshCiphers": [
      "aes128-ctr",
      "aes192-ctr",
      "aes256-ctr",
      "aes128-gcm@openssh.com",
      "aes256-gcm@openssh.com"
    ],
    "SshKexs": [
      "ecdh-sha2-nistp256",
      "ecdh-sha2-nistp384",
      "ecdh-sha2-nistp521",
      "diffie-hellman-group-exchange-sha256",
      "diffie-hellman-group16-sha512",
      "diffie-hellman-group18-sha512",
      "diffie-hellman-group14-sha256"
    ],
    "SshMacs": [
      "hmac-sha2-256-etm@openssh.com",
      "hmac-sha2-512-etm@openssh.com",
      "hmac-sha2-256",
      "hmac-sha2-512"
    ],
    "ContentEncryptionCiphers": [
      "aes256-cbc",
      "aes192-cbc",
      "aes128-cbc"
            "3des-cbc",
    ],
    "HashAlgorithms": [
      "sha256",
      "sha384",
      "sha512"
            "sha1",
    ],
    "TlsCiphers": [
      "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
      "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
      "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
      "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
      "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
      "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
      "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384",
      "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"
    ]
  }
}
```

## TransferSecurityPolicy-AS2Restricted-2025-07
<a name="as2-restricted-policy"></a>

此安全政策專為需要透過排除舊版密碼編譯演算法增強安全性的 AS2 檔案傳輸而設計。它支援現代 AES 加密和 SHA-2 雜湊演算法，同時移除對 3DES 和 SHA-1 等較弱演算法的支援。

```
{
    "SecurityPolicy": {
        "Fips": false,
        "SecurityPolicyName": "TransferSecurityPolicy-AS2Restricted-2025-07",
        "SshCiphers": [
            "aes256-gcm@openssh.com",
            "aes128-gcm@openssh.com",
            "aes128-ctr",
            "aes256-ctr",
            "aes192-ctr"
        ],
        "SshKexs": [
            "mlkem768x25519-sha256",
            "mlkem768nistp256-sha256",
            "mlkem1024nistp384-sha384",
            "ecdh-sha2-nistp256",
            "ecdh-sha2-nistp384",
            "ecdh-sha2-nistp521",
            "curve25519-sha256",
            "curve25519-sha256@libssh.org",
            "diffie-hellman-group16-sha512",
            "diffie-hellman-group18-sha512",
            "diffie-hellman-group-exchange-sha256"
        ],
        "SshMacs": [
            "hmac-sha2-256-etm@openssh.com",
            "hmac-sha2-512-etm@openssh.com"
        ],
        "ContentEncryptionCiphers": [
            "aes256-cbc",
            "aes192-cbc",
            "aes128-cbc"
        ],
        "HashAlgorithms": [
            "sha256",
            "sha384",
            "sha512"
        ],
        "TlsCiphers": [
            "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
            "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
            "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384",
            "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"
        ],
        "Type": "SERVER",
        "Protocols": [
            "AS2"
        ]
    }
}
```

## Post Quantum 安全政策
<a name="pq-policies"></a>

此資料表列出 Transfer Family 後量子安全政策的演算法。這些政策會在 中詳細說明[搭配 使用混合式後量子金鑰交換 AWS Transfer Family](post-quantum-security-policies.md)。

政策清單遵循資料表。

**注意**  
較早的後量子政策 (**TransferSecurityPolicy-PQ-SSH-Experimental-2023-04** 和 **TransferSecurityPolicy-PQ-SSH-FIPS-Experimental-2023-04** 已棄用。我們建議您改用新的政策。


| 安全政策 | TransferSecurityPolicy-2025-03 | TransferSecurityPolicy-FIPS-2025-03 | 
| --- |--- |--- |
|  **SSH ciphers**  | 
| --- |
|  aes128-ctr  |  ♦  |  ♦  | 
|  aes128-gcm@openssh.com  |  ♦  |  ♦  | 
|  aes192-ctr  |  ♦  |  ♦  | 
|  aes256-ctr  |  ♦  |  ♦  | 
|  aes256-gcm@openssh.com  |  ♦  |  ♦  | 
|  **KEXs**  | 
| --- |
| mlkem768x25519-sha256 |  ♦  |  ♦  | 
| mlkem768nistp256-sha256 |  ♦  |  ♦  | 
| mlkem1024nistp384-sha384 |  ♦  |  ♦  | 
|  diffie-hellman-group14-sha256  | ♦ | ♦ | 
|  diffie-hellman-group16-sha512  |  ♦  |  ♦  | 
|  diffie-hellman-group18-sha512  |  ♦  |  ♦  | 
|  ecdh-sha2-nistp384  |  ♦  |  ♦  | 
|  ecdh-sha2-nistp521  |  ♦  |  ♦  | 
|  ecdh-sha2-nistp256  |  ♦  |  ♦  | 
|  diffie-hellman-group-exchange-sha256  |  ♦  |  ♦  | 
|  curve25519-sha256@libssh.org  |  ♦  |     | 
|  curve25519-sha256  |  ♦  |     | 
|  **MACs**  | 
| --- |
|  hmac-sha2-256-etm@openssh.com  |  ♦  |  ♦  | 
|  hmac-sha2-512-etm@openssh.com  |  ♦  |  ♦  | 
|  **ContentEncryptionCiphers**  | 
| --- |
|  aes256-cbc  |  ♦  |  ♦  | 
|  aes192-cbc  |  ♦  |  ♦  | 
|  aes128-cbc |  ♦  |  ♦  | 
|  3des-cbc |  ♦  |  ♦  | 
|  **HashAlgorithms**  | 
| --- |
|  sha256  |  ♦  |  ♦  | 
|  sha384  |  ♦  |  ♦  | 
|  sha512  |  ♦  |  ♦  | 
|  sha1  |  ♦  |  ♦  | 
|  **TLS ciphers**  | 
| --- |
|  TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256  |  ♦  |  ♦  | 
| TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1128\$1GCM\$1SHA256 |  ♦  |  ♦  | 
|  TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384  |  ♦  |  ♦  | 
|  TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384  |  ♦  |  ♦  | 
|  TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256  |  ♦  |  ♦  | 
|  TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1GCM\$1SHA256  |  ♦  |  ♦  | 
|  TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384  |  ♦  |  ♦  | 
|  TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384  |  ♦  |  ♦  | 

### TransferSecurityPolicy-2025-03
<a name="security-policy-transfer-2025-03"></a>

以下顯示 TransferSecurityPolicy-2025-03 安全政策。

```
{
    "SecurityPolicy": {
        "Fips": false,
        "SecurityPolicyName": "TransferSecurityPolicy-2025-03",
        "SshCiphers": [
            "aes256-gcm@openssh.com",
            "aes128-gcm@openssh.com",
            "aes128-ctr",
            "aes256-ctr",
            "aes192-ctr"
        ],
        "SshKexs": [
            "mlkem768x25519-sha256",
            "mlkem768nistp256-sha256",
            "mlkem1024nistp384-sha384",
            "ecdh-sha2-nistp256",
            "ecdh-sha2-nistp384",
            "ecdh-sha2-nistp521",
            "curve25519-sha256",
            "curve25519-sha256@libssh.org",
            "diffie-hellman-group16-sha512",
            "diffie-hellman-group18-sha512",
            "diffie-hellman-group-exchange-sha256"
        ],
        "SshMacs": [
            "hmac-sha2-256-etm@openssh.com",
            "hmac-sha2-512-etm@openssh.com"
        ],
        "ContentEncryptionCiphers": [
            "aes256-cbc",
            "aes192-cbc",
            "aes128-cbc"
            "3des-cbc"
        ],
        "HashAlgorithms": [
            "sha256",
            "sha384",
            "sha512"
            "sha1"
        ],
        "TlsCiphers": [
            "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
            "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
            "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384",
            "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"
        ],
        "Type": "SERVER",
        "Protocols": [
           "SFTP",
           "FTPS"
        ]
    }
}
```

### TransferSecurityPolicy-FIPS-2025-03
<a name="security-policy-transfer-2025-03-fips"></a>

以下顯示 TransferSecurityPolicy-FIPS-2025-03 安全政策。

```
{
    "SecurityPolicy": {
        "Fips": true,
        "SecurityPolicyName": "TransferSecurityPolicy-FIPS-2025-03",
        "SshCiphers": [
            "aes256-gcm@openssh.com",
            "aes128-gcm@openssh.com",
            "aes256-ctr",
            "aes192-ctr",
            "aes128-ctr"
        ],
        "SshKexs": [
            "mlkem768x25519-sha256",
            "mlkem768nistp256-sha256",
            "mlkem1024nistp384-sha384",
            "ecdh-sha2-nistp256",
            "ecdh-sha2-nistp384",
            "ecdh-sha2-nistp521",
            "diffie-hellman-group-exchange-sha256",
            "diffie-hellman-group16-sha512",
            "diffie-hellman-group18-sha512"
        ],
        "SshMacs": [
            "hmac-sha2-512-etm@openssh.com",
            "hmac-sha2-256-etm@openssh.com"            
        ],
        "ContentEncryptionCiphers": [
            "aes256-cbc",
            "aes192-cbc",
            "aes128-cbc"
            "3des-cbc"
        ],
        "HashAlgorithms": [
            "sha256",
            "sha384",
            "sha512"
            "sha1"
        ],
        "TlsCiphers": [
            "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
            "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
            "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384",
            "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"
        ],
        "Type": "SERVER",
        "Protocols": [
           "SFTP",
           "FTPS"
        ]
    }
}
```

### TransferSecurityPolicy-AS2Restricted-2025-07
<a name="security-policy-transfer-as2restricted-2025-07"></a>

以下顯示 TransferSecurityPolicy-AS2Restricted-2025-07 安全政策。

**注意**  
此安全政策與 TransferSecurityPolicy-2025-03 相同，但它不支援 3DES （在 ContentEncryptionCiphers 中） 且不支援 SHA1 （在 HashAlgorithms 中）。它包含 2025 年 3 月的所有演算法，包括量子後密碼編譯演算法 (mlkem\$1 KEXs)。

```
{
    "SecurityPolicy": {
        "Fips": false,
        "SecurityPolicyName": "TransferSecurityPolicy-AS2Restricted-2025-07",
        "SshCiphers": [
            "aes256-gcm@openssh.com",
            "aes128-gcm@openssh.com",
            "aes128-ctr",
            "aes256-ctr",
            "aes192-ctr"
        ],
        "SshKexs": [
            "mlkem768x25519-sha256",
            "mlkem768nistp256-sha256",
            "mlkem1024nistp384-sha384",
            "ecdh-sha2-nistp256",
            "ecdh-sha2-nistp384",
            "ecdh-sha2-nistp521",
            "curve25519-sha256",
            "curve25519-sha256@libssh.org",
            "diffie-hellman-group16-sha512",
            "diffie-hellman-group18-sha512",
            "diffie-hellman-group-exchange-sha256"
        ],
        "SshMacs": [
            "hmac-sha2-256-etm@openssh.com",
            "hmac-sha2-512-etm@openssh.com"
        ],
        "ContentEncryptionCiphers": [
            "aes256-cbc",
            "aes192-cbc",
            "aes128-cbc"
        ],
        "HashAlgorithms": [
            "sha256",
            "sha384",
            "sha512"
        ],
        "TlsCiphers": [
            "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
            "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
            "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384",
            "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"
        ],
        "Type": "SERVER",
        "Protocols": [
           "SFTP",
           "FTPS"
        ]
    }
}
```

# AWS Transfer Family SFTP 連接器的安全政策
<a name="security-policies-connectors"></a>

中的 SFTP 連接器安全政策 AWS Transfer Family 可讓您限制與 SFTP 連接器相關聯的一組密碼編譯演算法 （訊息驗證碼 (MACs)、金鑰交換 (KEXs) 和密碼套件）。以下是每個 SFTP 連接器安全政策支援的加密演算法清單。

**注意**  
`TransferSFTPConnectorSecurityPolicy-2024-03` 是套用至 SFTP 連接器的預設安全政策。

您可以變更連接器的安全政策。從 Transfer Family 左側導覽窗格中選取**連接器**，然後選取連接器。然後在 **Sftp 組態**區段中選取**編輯**。在**密碼編譯演算法選項**區段中，從安全政策欄位中的下拉式清單中選擇任何可用的**安全政策**。

## 密碼編譯演算法
<a name="connector-cryptographic-algorithms"></a>

對於主機金鑰，SFTP 連接器支援 Transfer Family 伺服器支援的所有演算法，但 ed25519 除外：
+ `rsa-sha2-256`
+ `rsa-sha2-512`
+ `ecdsa-sha2-nistp256`
+ `ecdsa-sha2-nistp384`
+ `ecdsa-sha2-nistp521`

此外，對於主機金鑰，我們支援 `ssh-rsa`，但僅適用於 `TransferSFTPConnectorSecurityPolicy-2023-07`。

對於身分驗證，SFTP 連接器支援下列金鑰類型：
+ `ssh-rsa`
+ `ecdsa`

## SFTP 連接器安全政策詳細資訊
<a name="connector-policy-details"></a>

下表顯示每個 SFTP 連接器安全政策支援的特定密碼編譯演算法。


| 安全政策 | TransferSFTPConnectorSecurityPolicy-FIPS-2024-10 | TransferSFTPConnectorSecurityPolicy-2024-03 | TransferSFTPConnectorSecurityPolicy-2023-07  | 
| --- |--- |--- |--- |
|  **Ciphers**  | 
| --- |
|  aes128-ctr  |  |  |  ♦  | 
|  aes128-gcm@openssh.com  |  ♦  | ♦ |  ♦  | 
|  aes192-ctr  |  | ♦ |  ♦  | 
|  aes256-ctr  |  | ♦ |  ♦  | 
|  aes256-gcm@openssh.com  |  ♦  | ♦ |  ♦  | 
|  **Kexs**  | 
| --- |
|  curve25519-sha256  |  | ♦ |  ♦  | 
|  curve25519-sha256@libssh.org  |  | ♦ |  ♦  | 
|  diffie-hellman-group14-sha1  |  |  |  ♦  | 
|  diffie-hellman-group16-sha512  |  | ♦ |  ♦  | 
|  diffie-hellman-group18-sha512  |  | ♦ |  ♦  | 
|  diffie-hellman-group-exchange-sha256  |  |  ♦  |  ♦  | 
| ecdh-sha2-nistp256 |  ♦   |  |  | 
| ecdh-sha2-nistp384 |  ♦   |  |  | 
| ecdh-sha2-nistp521 |  ♦   |  |  | 
|  **Macs**  | 
| --- |
|  hmac-sha2-512-etm@openssh.com  |  |  ♦  |  ♦  | 
|  hmac-sha2-256-etm@openssh.com  |  |  ♦  |  ♦  | 
| hmac-sha2-512 |  ♦  |  ♦  |  ♦  | 
|  hmac-sha2-256  |  ♦  | ♦ |  ♦  | 
|  hmac-sha1  |  |  |  ♦  | 
|  hmac-sha1-96  |  |  |  ♦  | 
|  **Host Key Algorithms**  | 
| --- |
| rsa-sha2-256 |  ♦  |  ♦  |  ♦  | 
| rsa-sha2-512 |  ♦  |  ♦  |  ♦  | 
| ecdsa-sha2-nistp256 |  ♦  |  ♦  |  ♦  | 
| ecdsa-sha2-nistp384 |  | ♦  |  ♦  | 
| ecdsa-sha2-nistp521 |  | ♦  |  ♦  | 
| ssh-rsa |  |   |  ♦  | 

# 搭配 使用混合式後量子金鑰交換 AWS Transfer Family
<a name="post-quantum-security-policies"></a>

 Transfer Family 支援 Secure Shell (SSH) 通訊協定的混合式後量子金鑰建立選項。需要建立後量子金鑰，因為已經可以記錄網路流量，並儲存它以供量子電腦未來解密，這稱為 *store-now-harvest-later* 攻擊。

當您連線至 Transfer Family 時，您可以使用此選項，以安全傳輸傳入和傳出 Amazon Simple Storage Service (Amazon S3) 儲存體或 Amazon Elastic File System (Amazon EFS) 的檔案。SSH 中的後量子混合金鑰建立引入後量子金鑰建立機制，它與傳統金鑰交換演算法搭配使用。使用傳統密碼套件建立的 SSH 金鑰可安全防範採用目前技術的暴力破解攻擊。不過，未來出現大規模量子運算之後，傳統加密並不預期會保持安全。

如果您的組織依賴透過 Transfer Family 連線傳遞的資料的長期機密性，您應該考慮在大規模量子電腦可供使用之前遷移到量子後密碼編譯的計劃。

為了保護今天加密的資料免受潛在的未來攻擊， AWS 正與密碼編譯社群參與開發量子抗性或後量子演算法。我們已在 Transfer Family 中實作混合式後量子金鑰交換密碼套件，結合傳統元素和後量子元素。

這些混合密碼套件可在大多數 AWS 區域中用於您的生產工作負載。不過，由於混合密碼套件的效能特性和頻寬需求與傳統金鑰交換機制不同，我們建議您在 Transfer Family 連線上測試這些套件。

在後量子密碼編譯安全部落格文章中進一步了解[後量子密碼編譯](https://aws.amazon.com/security/post-quantum-cryptography/)。

**Contents**
+ [關於 SSH 中的後量子混合金鑰交換](#pq-about-key-exchange)
+ [後量子混合金鑰建立如何在 Transfer Family 中運作](#pqtls-details)
  + [為什麼選擇 ML-KEM？](#why-mlkem)
  + [量子後混合 SSH 金鑰交換和密碼編譯要求 (FIPS 140)](#pq-alignment)
+ [在 Transfer Family 中測試後量子混合金鑰交換](#pq-policy-testing)
  + [在 SFTP 端點上啟用後量子混合金鑰交換](#pq-enable-policy)
  + [設定支援後量子混合金鑰交換的 SFTP 用戶端](#pq-client-openssh)
  + [在 SFTP 中確認後量子混合金鑰交換](#pq-verify-exchange)

## 關於 SSH 中的後量子混合金鑰交換
<a name="pq-about-key-exchange"></a>

Transfer Family 支援後量子混合金鑰交換密碼套件，其同時使用傳統[橢圓曲線 Diffie-Hellman (ECDH) ](https://csrc.nist.gov/publications/detail/sp/800-56a/rev-3/final)金鑰交換演算法和 ML-KEM。ML-KEM 是一種後量子公有金鑰加密和金鑰建立演算法，由[國家標準技術研究所 (NIST)](https://csrc.nist.gov/projects/post-quantum-cryptography) 指定為第一個標準後量子金鑰協議演算法。

用戶端和伺服器仍會執行 ECDH 金鑰交換。此外，伺服器會將後量子共用秘密封裝至用戶端的後量子 KEM 公有金鑰，該金鑰會在用戶端的 SSH 金鑰交換訊息中公告。此策略結合了傳統金鑰交換的高保證與建議的後量子金鑰交換的安全性，以協助確保只要 ECDH 或後量子共用秘密無法中斷，交握都會受到保護。

## 後量子混合金鑰建立如何在 Transfer Family 中運作
<a name="pqtls-details"></a>

AWS 最近宣布支援 SFTP 檔案傳輸中的後量子金鑰交換 AWS Transfer Family。Transfer Family 使用 SFTP 和其他通訊協定，安全地將business-to-business檔案傳輸擴展至 AWS 儲存服務。SFTP 是更安全的檔案傳輸通訊協定 (FTP) 版本，可透過 SSH 執行。Transfer Family 的後量子金鑰交換支援提高透過 SFTP 進行資料傳輸的安全標準。

Transfer Family 中的後量子混合金鑰交換 SFTP 支援包括結合後量子演算法 ML-KEM-768 和 ML-KEM-1024，以及透過 P256, P384 或 Curve25519 曲線的 ECDH。下列對應的 SSH 金鑰交換方法會在[後量子混合 SSH 金鑰交換草案](https://datatracker.ietf.org/doc/draft-kampanakis-curdle-ssh-pq-ke/)中指定。
+ `mlkem768nistp256-sha256`
+ `mlkem1024nistp384-sha384`
+ `mlkem768x25519-sha256`

### 為什麼選擇 ML-KEM？
<a name="why-mlkem"></a>

AWS 致力於支援標準化、可互通的演算法。ML-KEM 是唯一經過 [NIST 後量子密碼編譯專案標準化和核准的後量子](https://csrc.nist.gov/projects/post-quantum-cryptography)金鑰交換演算法。標準內文已將 ML-KEM 整合到 protocol。在某些 AWS API 端點中 AWS ， 已在 TLS 中支援 ML-KEM。

作為此承諾的一部分， AWS 已向 IETF 提交了量子後密碼編譯的提案草案，該提案結合了 ML-KEM 和 NIST 核准的曲線，例如 P256 for SSH。為了協助增強客戶的安全性，SFTP 和 SSH 中的後量子金鑰交換 AWS 實作遵循該草案。我們計劃支援未來的更新，直到 IETF 採用我們的提案並成為標準。

新的金鑰交換方法 （列於第 節[後量子混合金鑰建立如何在 Transfer Family 中運作](#pqtls-details)) 可能會隨著草稿朝向標準化發展而變更。

**注意**  
目前， TLS 中的後量子演算法支援用於後量子混合金鑰交換 AWS KMS （請參閱[搭配 使用混合後量子 TLS AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/pqtls.html))AWS Certificate Manager、 和 AWS Secrets Manager API 端點。

### 量子後混合 SSH 金鑰交換和密碼編譯要求 (FIPS 140)
<a name="pq-alignment"></a>

對於需要 FIPS 合規的客戶，Transfer Family 使用 FIPS 140 認證的開放原始碼密碼編譯程式庫 AWS-LC，在 SSH 中提供 AWS FIPS 核准的密碼編譯。TransferSecurityPolicy-FIPS-2025-03 in Transfer Family 中支援的後量子混合金鑰交換方法是根據 [NIST 的 SP 800-56Cr2 （第 2 節）](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Cr2.pdf) 核准的 FIPS。德國聯邦資訊安全辦公室 ([ BSI](https://www.bsi.bund.de/EN/Themen/Unternehmen-und-Organisationen/Informationen-und-Empfehlungen/Quantentechnologien-und-Post-Quanten-Kryptografie/quantentechnologien-und-post-quanten-kryptografie_node.html)) 和法國的 Agence nationale de la sécurité des systémes d'information ([ANSSI](https://www.ssi.gouv.fr/en/publication/anssi-views-on-the-post-quantum-cryptography-transition/)) 也建議採用此類後量子混合金鑰交換方法。

## 在 Transfer Family 中測試後量子混合金鑰交換
<a name="pq-policy-testing"></a>

本節說明您測試量子後混合金鑰交換所採取的步驟。

1. [在 SFTP 端點上啟用後量子混合金鑰交換](#pq-enable-policy).

1. 遵循上述草案規格中的指引，使用支援量子後混合金鑰交換的 SFTP 用戶端 （例如 [設定支援後量子混合金鑰交換的 SFTP 用戶端](#pq-client-openssh))。

1. 使用 Transfer Family 伺服器傳輸檔案。

1. [在 SFTP 中確認後量子混合金鑰交換](#pq-verify-exchange).

### 在 SFTP 端點上啟用後量子混合金鑰交換
<a name="pq-enable-policy"></a>

您可以在 Transfer Family 中建立新的 SFTP 伺服器端點時選擇 SSH 政策，或在現有的 SFTP 端點中編輯密碼編譯演算法選項。下列快照顯示 AWS 管理主控台 您更新 SSH 政策的 範例。

![\[顯示為密碼編譯演算法選項選取的後量子政策。\]](http://docs.aws.amazon.com/zh_tw/transfer/latest/userguide/images/post-quantum-policy-choose.png)


支援後量子金鑰交換的 SSH 政策名稱為 **TransferSecurityPolicy-2025-03** 和 **TransferSecurityPolicy-FIPS-2025-03**。如需 Transfer Family 政策的詳細資訊，請參閱 [AWS Transfer Family 伺服器的安全政策](security-policies.md)。

### 設定支援後量子混合金鑰交換的 SFTP 用戶端
<a name="pq-client-openssh"></a>

在 SFTP Transfer Family 端點中選取正確的後量子 SSH 政策後，您可以在 Transfer Family 中實驗後量子 SFTP。在本機系統上安裝要測試的最新 OpenSSH 用戶端 （例如 9.9 版）。

**注意**  
請確定您的用戶端支援先前列出的一或多個 ML-KEM 演算法。您可以執行此命令來檢視 OpenSSH 版本的支援演算法：`ssh -Q kex`。

您可以使用後量子混合金鑰交換方法，執行範例 SFTP 用戶端以連線至 SFTP 端點 （例如 `s-1111aaaa2222bbbb3.server.transfer.us-west-2.amazonaws.com`)，如下列命令所示。

```
sftp -v -o \
   KexAlgorithms=mlkem768x25519-sha256 \
   -i username_private_key_PEM_file \
   username@server-id.server.transfer.region-id.amazonaws.com
```

在上一個命令中，將下列項目取代為您自己的資訊：
+ 使用 SFTP 使用者的私有金鑰 PEM 編碼檔案取代 *username\$1private\$1key\$1PEM\$1file* 
+ 將*使用者名稱*取代為 SFTP 使用者名稱
+ 將 *server-id* 取代為 Transfer Family 伺服器 ID
+ 將 *region-id* 取代為 Transfer Family 伺服器所在的實際區域

### 在 SFTP 中確認後量子混合金鑰交換
<a name="pq-verify-exchange"></a>

若要確認在 SFTP 到 Transfer Family 的 SSH 連線期間使用後量子混合金鑰交換，請檢查用戶端輸出。或者，您可以使用封包擷取程式。如果您使用 OpenSSH 9.9 用戶端，輸出看起來應該類似以下內容 （為了簡潔起見而省略不相關的資訊）：

```
% sftp -o KexAlgorithms=mlkem768x25519-sha256 -v -o IdentitiesOnly=yes -i username_private_key_PEM_file username@s-1111aaaa2222bbbb3.server.transfer.us-west-2.amazonaws.com
OpenSSH_9.9p2, OpenSSL 3.4.1 11 Feb 2025
debug1: Reading configuration data /Users/username/.ssh/config
debug1: /Users/username/.ssh/config line 146: Applying options for *
debug1: Reading configuration data /Users/username/.ssh/bastions-config
debug1: Reading configuration data /opt/homebrew/etc/ssh/ssh_config
debug1: Connecting to s-1111aaaa2222bbbb3.server.transfer.us-west-2.amazonaws.com [xxx.yyy.zzz.nnn] port 22.
debug1: Connection established.
[...]
debug1: Local version string SSH-2.0-OpenSSH_9.9
debug1: Remote protocol version 2.0, remote software version AWS_SFTP_1.1
debug1: compat_banner: no match: AWS_SFTP_1.1
debug1: Authenticating to s-1111aaaa2222bbbb3.server.transfer.us-west-2.amazonaws.com:22 as 'username'
debug1: load_hostkeys: fopen /Users/username/.ssh/known_hosts2: No such file or directory
[...]
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: mlkem768x25519-sha256
debug1: kex: host key algorithm: ssh-ed25519
debug1: kex: server->client cipher: aes128-ctr MAC: hmac-sha2-256-etm@openssh.com compression: none
debug1: kex: client->server cipher: aes128-ctr MAC: hmac-sha2-256-etm@openssh.com compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: SSH2_MSG_KEX_ECDH_REPLY received
debug1: Server host key: ssh-ed25519 SHA256:Ic1Ti0cdDmFdStj06rfU0cmmNccwAha/ASH2unr6zX0
[...]
debug1: rekey out after 4294967296 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: rekey in after 4294967296 blocks
[...]
Authenticated to s-1111aaaa2222bbbb3.server.transfer.us-west-2.amazonaws.com ([xxx.yyy.zzz.nnn]:22) using "publickey".
debug1: channel 0: new session [client-session] (inactive timeout: 0)
[...]
Connected to s-1111aaaa2222bbbb3.server.transfer.us-west-2.amazonaws.com.
sftp>
```

輸出顯示使用後量子混合`mlkem768x25519-sha256`方法進行用戶端交涉，並成功建立 SFTP 工作階段。

# 資料保護和加密
<a name="encryption-at-rest"></a>

 AWS [共同責任模型](https://aws.amazon.com/compliance/shared-responsibility-model/)適用於 AWS Transfer Family (Transfer 系列） 中的資料保護。如此模型所述， AWS 負責保護執行所有 AWS 雲端的 全球基礎設施。您負責維護在此基礎設施上託管內容的控制權。此內容包含您使用之 AWS 服務的安全組態和管理任務。如需資料隱私權的詳細資訊，請參閱[資料隱私權常見問答集](https://aws.amazon.com/compliance/data-privacy-faq)。如需歐洲資料保護的相關資訊，請參閱安全部落格上的[AWS 共同責任模型和 GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) *AWS 部落格*文章。

基於資料保護目的，我們建議您保護 AWS 帳戶登入資料，並使用 設定個別使用者帳戶 AWS IAM Identity Center。如此一來，每個使用者都只會獲得授予完成其任務所必須的許可。我們也建議您採用下列方式保護資料：
+ 每個帳戶均要使用多重要素驗證 (MFA)。
+ 使用 SSL/TLS 與 AWS 資源通訊。我們支援 TLS 1.2。
+ 使用 設定 API 和使用者活動記錄 AWS CloudTrail。
+ 使用 AWS 加密解決方案，以及 AWS 服務中的所有預設安全控制。
+ 使用進階的受管安全服務 (例如 Amazon Macie)，協助探索和保護儲存在 Simple Storage Service (Amazon Simple Storage Service (Amazon S3)) 的個人資料。
+ 如果您在透過命令列介面或 API 存取 AWS 時，需要 FIPS 140-2 驗證的加密模組，請使用 FIPS 端點。如需有關 FIPS 和 FIPS 端點的詳細資訊，請參閱[聯邦資訊處理標準 (FIPS) 140–2 概觀](https://aws.amazon.com/compliance/fips/)。

我們強烈建議您絕對不要將客戶帳戶號碼等敏感的識別資訊，放在自由格式的欄位中，例如**名稱**欄位。這包括當您使用 Transfer Family 或使用主控台 AWS CLI、API 或 AWS SDKs的其他 AWS 服務時。您在 Transfer Family 服務組態或其他服務組態中輸入的任何組態資料，都可能被選入診斷日誌中。當您提供外部伺服器的 URL 時，請勿在驗證您對該伺服器請求的 URL 中包含憑證資訊。

相反地，從上傳和下載操作進出 Transfer Family 伺服器的資料會視為完全私有，絕不存在於加密通道之外，例如 SFTP 或 FTPS 連線。只有獲得授權的人員才能存取此資料。

## Transfer 系列中的資料加密
<a name="tf-data-encryption"></a>

AWS Transfer Family 使用您為 Amazon S3 儲存貯體設定的預設加密選項來加密您的資料。當您在儲存貯體上啟用加密時，存放於儲存貯體中的所有物件都會加密。透過使用伺服器端加密搭配 Amazon S3 受管金鑰 (SSE-S3) 或 AWS Key Management Service (AWS KMS) 受管金鑰 (SSE-KMS) 來加密物件。如需有關伺服器端加密的資訊，請參閱《*Amazon Simple Storage Service 使用者指南*》中的[使用伺服器端加密保護資料](https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html)。

下列步驟說明如何加密 中的資料 AWS Transfer Family。

**在 中允許加密 AWS Transfer Family**

1. 為您的 Amazon S3 儲存貯體啟用預設加密。如需說明，請參閱[《Amazon S3 Simple Storage Service 使用者指南》中的 S3 儲存貯體的 Amazon S3 預設加密](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html)。 **

1. 更新連接至使用者的 AWS Identity and Access Management (IAM) 角色政策，以授予必要的 AWS Key Management Service (AWS KMS) 許可。

1. 如果您為使用者使用工作階段政策，則工作階段政策必須授予必要的 AWS KMS 許可。

下列範例顯示 IAM 政策，授予使用 AWS Transfer Family 搭配已啟用 AWS KMS 加密的 Amazon S3 儲存貯體時所需的最低許可。如果您使用的是 ，請在使用者 IAM 角色政策和工作階段政策中包含此範例政策。

```
{
   "Sid": "Stmt1544140969635",
   "Action": [
      "kms:Decrypt",
      "kms:Encrypt",
      "kms:GenerateDataKey",
      "kms:GetPublicKey",
      "kms:ListKeyPolicies"
   ],
   "Effect": "Allow",
   "Resource": "arn:aws:kms:region:account-id:key/kms-key-id"
}
```

**注意**  
您在此政策中指定的 KMS 金鑰 ID 必須與步驟 1 中為預設加密指定的 KMS 金鑰 ID 相同。  
 AWS KMS 金鑰政策中必須允許根角色或用於使用者的 IAM 角色。如需 AWS KMS 金鑰政策的相關資訊，請參閱《 *AWS Key Management Service 開發人員指南*》中的[在 AWS KMS 中使用金鑰政策](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)。

## AWS Transfer Family 靜態加密
<a name="encrypting-data"></a>

由於 AWS Transfer Family 是檔案傳輸服務，因此不會管理您的靜態儲存資料。 AWS Transfer Family 支援的儲存服務和系統負責保護該狀態的資料。不過，有一些服務相關資料會 AWS Transfer Family 管理靜態。

### 加密的內容為何？
<a name="what-is-encrypted"></a>

唯一 AWS Transfer Family 處理靜態資料與操作檔案傳輸伺服器和處理傳輸所需的詳細資訊相關。 會在 Amazon DynamoDB 中使用完整靜態加密來 AWS Transfer Family 存放下列資料：
+ 伺服器組態 （例如，伺服器設定、通訊協定組態和端點詳細資訊）。
+ 使用者身分驗證資料，包括 SSH 公有金鑰和使用者中繼資料。
+ 工作流程執行詳細資訊和步驟組態。
+ 第三方系統的連接器組態和身分驗證登入資料。這些登入資料會使用 AWS Transfer Family 受管加密金鑰進行加密。

#### 金鑰管理
<a name="encrypting-data-key-management"></a>

您無法管理 AWS Transfer Family 用來在 DynamoDB 中存放與執行伺服器和處理傳輸相關資訊的加密金鑰。此資訊包括您的伺服器組態、使用者身分驗證資料、工作流程詳細資訊和連接器憑證。

### 哪些項目未加密？
<a name="what-is-not-encrypted"></a>

雖然 AWS Transfer Family 無法控制儲存資料的靜態加密方式，但仍建議使用其支援的最高安全性來設定儲存位置。例如，您可以使用 Amazon S3 受管加密金鑰 (SSE-S3) 或 AWS KMS 金鑰 (SSE-KMS) 來加密物件。

進一步了解 AWS 儲存服務如何加密靜態資料：
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html)
+ [Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/encryption-at-rest.html)

# 管理 Transfer 系列中的 SSH 和 PGP 金鑰
<a name="key-management"></a>

在本節中，您可以找到 SSH 金鑰的相關資訊，包括如何產生金鑰以及如何輪換金鑰。如需使用 Transfer Family 搭配 AWS Lambda 來管理金鑰的詳細資訊，請參閱部落格文章[使用 AWS Transfer Family 和 啟用使用者自助式金鑰管理 AWS Lambda](https://aws.amazon.com/blogs/storage/enabling-user-self-service-key-management-with-aws-transfer-family-and-aws-lambda/)。如需具有多個 SSH 金鑰之使用者的自動化部署和管理，請參閱 [Transfer 系列 Terraform 模組](terraform.md)。

**注意**  
AWS Transfer Family 接受 RSA、ECDSA 和 ED25519 金鑰進行 SSH 身分驗證。

本節也涵蓋如何產生和管理 Pretty Good Privacy (PGP) 金鑰。

如需所有支援的加密和金鑰演算法的完整概觀，包括不同使用案例的建議，請參閱 [加密和金鑰演算法概觀](#encryption-algorithms-overview)。

## 加密和金鑰演算法概觀
<a name="encryption-algorithms-overview"></a>

AWS Transfer Family 支援不同類型的演算法用於不同的用途。了解要用於特定使用案例的演算法，有助於確保安全且相容的檔案傳輸。


**演算法快速參考**  

| 使用案例 | 建議的演算法 | 符合 FIPS 規範 | 備註 | 
| --- | --- | --- | --- | 
| SSH/SFTP 身分驗證 | RSA (rsa-sha2-256/512)、ECDSA 或 ED25519 | RSA：是，ECDSA：是，ED25519：否 | 與所有 SSH 用戶端和伺服器相容 | 
| PGP 金鑰產生 | RSA 或 ECC (NIST) | 是 | 對於工作流程解密 | 
| PGP 檔案加密 | AES-256 | 是 | 由 PGP 軟體決定 | 

## SSH 身分驗證演算法
<a name="ssh-authentication-algorithms"></a>

這些演算法用於用戶端和 AWS Transfer Family 伺服器之間的 SSH/SFTP 身分驗證。為使用者身分驗證或伺服器主機金鑰產生 SSH 金鑰對時，請選擇其中一項。

RSA （建議）  
**與所有 SSH 用戶端和伺服器相容，且符合 FIPS 規範。**搭配 SHA-2 雜湊使用 可增強安全性：  
+ `rsa-sha2-256` - 建議大多數使用案例使用
+ `rsa-sha2-512` - 更高的安全選項

ED25519  
**現代化且高效率。**具有強大安全性的較小金鑰大小：  
+ `ssh-ed25519` - 快速且安全，但不符合 FIPS

ECDSA  
**橢圓曲線選項。**安全與效能的良好平衡：  
+ `ecdsa-sha2-nistp256` - 標準曲線
+ `ecdsa-sha2-nistp384` - 更高的安全曲線
+ `ecdsa-sha2-nistp521` - 最高安全性曲線

**注意**  
我們支援`ssh-rsa`舊版安全政策的 SHA1。如需詳細資訊，請參閱[密碼編譯演算法](security-policies.md#cryptographic-algorithms)。

**選擇正確的 SSH 演算法**
+ **對於大多數使用者：**搭配 `rsa-sha2-256`或 使用 RSA `rsa-sha2-512`
+ **針對 FIPS 合規：**使用 RSA 或 ECDSA 演算法
+ **對於現代環境：**ED25519 提供卓越的安全性和效能

## PGP 加密和解密演算法
<a name="pgp-encryption-algorithms"></a>

PGP (Pretty Good Privacy) 使用兩種類型的演算法，共同加密和解密工作流程中的檔案：

1. **金鑰對演算法** - 用來產生加密和數位簽章的公有/私有金鑰對

1. **對稱演算法** - 用於加密實際檔案資料 （金鑰對演算法加密對稱金鑰）

### PGP 金鑰對演算法
<a name="pgp-key-algorithms"></a>

為工作流程解密產生 PGP 金鑰對時，請選擇下列其中一種演算法：

RSA （建議）  
**建議大多數使用者使用。**廣泛支援、建立良好且符合 FIPS 規範。在安全性和相容性之間取得良好的平衡。

ECC （橢圓曲線密碼編譯）  
**比具有較小金鑰大小的 RSA 更有效率**，同時保持強大的安全性：  
+ **NIST 曲線** - 廣泛支援且符合 FIPS 標準曲線
+ **BrainPool 曲線** - 特定合規要求的替代曲線
+ **Curve25519** - 現代高效能曲線提供強大的安全性和高效率的運算

ElGamal  
**舊版演算法。**支援與舊版系統相容。使用 RSA 或 ECC 進行新實作。

如需產生 PGP 金鑰的詳細說明，請參閱 [產生 PGP 金鑰](generate-pgp-keys.md)。

### PGP 對稱加密演算法
<a name="pgp-symmetric-algorithms"></a>

這些演算法會加密您的實際檔案資料。使用的演算法取決於 PGP 軟體如何建立 PGP 檔案：

**FIPS 相容演算法 （建議用於受管制的環境）**
+ **AES-128, AES-192, AES-256** - 進階加密標準 （建議）
+ **3DES** - 三重資料加密標準 （舊版，盡可能使用 AES)

**其他支援的演算法**
+ IDEA、CAST5、Blowfish、DES、TwoFish、CAMELLIA-128, CAMELLIA-192, CAMELLIA-256

**注意**  
您不 AWS Transfer Family 在使用工作流程時直接選擇對稱演算法 - 由用來建立加密檔案的 PGP 軟體決定。不過，您可以將 PGP 軟體設定為偏好符合 FIPS 的演算法，例如 AES-256。

如需支援的對稱演算法的詳細資訊，請參閱 [支援的對稱加密演算法](nominal-steps-workflow.md#symmetric-algorithms)。

# 為服務受管使用者產生 SSH 金鑰
<a name="sshkeygen"></a>

您可以設定伺服器，以使用服務受管身分驗證方法對使用者進行身分驗證，其中使用者名稱和 SSH 金鑰存放在服務中。使用者的公有 SSH 金鑰會以使用者的 屬性上傳到伺服器。伺服器會使用此金鑰做為標準金鑰型身分驗證程序的一部分。每個使用者都可以針對個別伺服器上的檔案擁有多個公有 SSH 金鑰。如需每個使用者可存放的金鑰數量限制，請參閱 中的[AWS Transfer Family 端點和配額](https://docs.aws.amazon.com//general/latest/gr/transfer-service.html)*Amazon Web Services 一般參考*。

做為服務受管身分驗證方法的替代方案，您可以使用自訂身分提供者對使用者進行身分驗證，或者 AWS Directory Service for Microsoft Active Directory。如需詳細資訊，請參閱 [使用自訂身分提供者](custom-idp-intro.md) 或 [使用 AWS Directory Service for Microsoft Active Directory](directory-services-users.md) 。

伺服器只能使用一種方法 （服務受管、目錄服務或自訂身分提供者） 來驗證使用者，且該方法無法在建立伺服器之後變更。

**Topics**
+ [在 macOS、Linux 或 Unix 上建立 SSH 金鑰](macOS-linux-unix-ssh.md)
+ [在 Microsoft Windows 上建立 SSH 金鑰](windows-ssh.md)
+ [將 SSH2 金鑰轉換為 SSH 公有金鑰格式](convert-ssh2-public-key.md)

# 在 macOS、Linux 或 Unix 上建立 SSH 金鑰
<a name="macOS-linux-unix-ssh"></a>

在 macOS、Linux 或 Unix 作業系統上，您可以使用 `ssh-keygen`命令來建立 SSH 公有金鑰和 SSH 私有金鑰，也稱為金鑰對。

**注意**  
在下列範例中，我們不會指定密碼短語：在此情況下，工具會要求您輸入密碼短語，然後重複它進行驗證。建立密碼短語可為您的私有金鑰提供更好的保護，也可能改善整體系統安全性。您無法復原密碼短語：如果您忘記密碼短語，則必須建立新的金鑰。  
不過，如果您要產生伺服器主機金鑰，*則必須*在命令中指定 `-N ""`選項 （或在出現提示時按**Enter**兩次） 來指定空密碼，因為 Transfer Family 伺服器無法在啟動時請求密碼。

**在 macOS、Linux 或 Unix 作業系統上建立 SSH 金鑰**

1. 在 macOS、Linux 或 Unix 作業系統上，開啟命令終端機。

1. AWS Transfer Family 接受 RSA-、ECDSA- 和 ED25519-formatted的金鑰。根據您要產生的金鑰對類型選擇適當的命令。

   **秘訣**：`key_name`將 取代為 SSH 金鑰對檔案的實際名稱。
   + 若要產生 RSA 4096 位元金鑰對：

     ```
     ssh-keygen -t rsa -b 4096 -f key_name
     ```
   + 若要產生 ECDSA 521 位元金鑰對 (ECDSA 的位元大小為 256、384 和 521)：

     ```
     ssh-keygen -t ecdsa -b 521 -f key_name
     ```
   + 若要產生 ED25519 金鑰對：

     ```
     ssh-keygen -t ed25519 -f key_name
     ```

   以下顯示`ssh-keygen`輸出的範例。

   ```
   ssh-keygen -t rsa -b 4096 -f key_name
   Generating public/private rsa key pair.
   
   Enter passphrase (empty for no passphrase): 
   Enter same passphrase again:
   Your identification has been saved in key_name.
   Your public key has been saved in key_name.pub.
   The key fingerprint is:
   SHA256:8tDDwPmanTFcEzjTwPGETVWOGW1nVz+gtCCE8hL7PrQ bob.amazon.com
   The key's randomart image is:
   +---[RSA 4096]----+
   |    . ....E      |
   | .   = ...       |
   |. . . = ..o      |
   | . o +  oo =     |
   |  + =  .S.= *    |
   | . o o ..B + o   |
   |     .o.+.* .    |
   |     =o*+*.      |
   |    ..*o*+.      |
   +----[SHA256]-----+
   ```

   **秘訣**：執行上述`ssh-keygen`命令時，它會將公有金鑰和私有金鑰建立為目前目錄中的檔案。

   您的 SSH 金鑰對現在已準備好可供使用。請依照步驟 3 和 4 來存放服務受管使用者的 SSH 公有金鑰。這些使用者會在 Transfer Family 伺服器端點上傳輸檔案時使用金鑰。

1. 導覽至 `key_name.pub` 檔案並開啟。

1. 複製文字並將其貼到服務受管使用者的 **SSH 公有金鑰**中。

   1. 在 https：//[https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/) 開啟 AWS Transfer Family 主控台，然後從導覽窗格中選取**伺服器**。

   1. 在**伺服器**頁面上，選取包含您要更新之使用者之伺服器的伺服器 **ID**。

   1. 選取您要為其新增公有金鑰的使用者。

   1. 在 **SSH 公有金鑰**窗格中，選擇**新增 SSH 公有金鑰**。  
![\[AWS Transfer Family 主控台，顯示所選使用者的使用者詳細資訊。\]](http://docs.aws.amazon.com/zh_tw/transfer/latest/userguide/images/edit-user-add-key-01.png)

   1. 將產生的公有金鑰文字貼到 SSH 公有金鑰文字方塊，然後選擇**新增金鑰**。  
![\[AWS Transfer Family 主控台，顯示用於新增公有金鑰的新增金鑰頁面。\]](http://docs.aws.amazon.com/zh_tw/transfer/latest/userguide/images/edit-user-add-key-02.png)

      新金鑰會列在 SSH 公有金鑰窗格中。  
![\[AWS Transfer Family 主控台，顯示在 SSH 公有金鑰區段中新增的公有金鑰。\]](http://docs.aws.amazon.com/zh_tw/transfer/latest/userguide/images/edit-user-add-key-03.png)

# 在 Microsoft Windows 上建立 SSH 金鑰
<a name="windows-ssh"></a>

Windows 包含 OpenSSH 作為內建功能，您可以使用它在 Linux 或 macOS 上產生相同格式的 SSH 金鑰。或者，您可以使用第三方工具，例如 PuTTY 的金鑰產生器 (PuTTYgen)。

## 使用 Windows 內建 OpenSSH
<a name="windows-openssh"></a>

根據預設，Windows 的最近版本包括 OpenSSH。您可以使用與 macOS/Linux 章節所述的相同`ssh-keygen`命令：

1. 開啟 Windows PowerShell 或命令提示字元。

1. 根據您要產生的金鑰類型執行下列其中一個命令：
   + 若要產生 RSA 4096 位元金鑰對：

     ```
     ssh-keygen -t rsa -b 4096 -f key_name
     ```
   + 若要產生 ECDSA 521 位元金鑰對：

     ```
     ssh-keygen -t ecdsa -b 521 -f key_name
     ```
   + 若要產生 ED25519 金鑰對：

     ```
     ssh-keygen -t ed25519 -f key_name
     ```

1. 請依照與 macOS/Linux 區段相同的步驟，將公有金鑰上傳至其中 AWS Transfer Family。

## 使用 PuTTYgen （第三方工具）
<a name="windows-puttygen"></a>

某些適用於 Windows 的第三方 SSH 用戶端，例如 PuTTY，會使用不同的金鑰格式。PuTTY 使用私有金鑰的`PPK`格式。如果您使用的是 PuTTY 或 WinSCP 等相關工具，您可以使用 PuTTYgen 以此格式建立金鑰。

**注意**  
如果您使用非 `.ppk` 格式的私有金鑰檔案呈現 WinSCP，該用戶端會為您提供將金鑰轉換為 `.ppk` 格式的 。

如需使用 PuTTYgen 建立 SSH 金鑰的教學課程，請參閱 [SSH.com：// 網站](https://www.ssh.com/ssh/putty/windows/puttygen)。

# 將 SSH2 金鑰轉換為 SSH 公有金鑰格式
<a name="convert-ssh2-public-key"></a>

 AWS Transfer Family 僅接受 SSH 格式的公有金鑰。如果您有 SSH2 公有金鑰，則需要進行轉換。SSH2 公有金鑰的格式如下：

```
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20160402"
AAAAB3NzaC1yc2EAAAABJQAAAgEAiL0jjDdFqK/kYThqKt7THrjABTPWvXmB3URI
:
:
---- END SSH2 PUBLIC KEY ----
```

SSH 公有金鑰的格式如下：

```
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAA...
```

執行下列命令，將 SSH2-formatted的公有金鑰轉換為 SSH 格式的公有金鑰。將 *ssh2-key* 取代為您的 SSH2 金鑰名稱，將 *ssh-key* 取代為您的 SSH 金鑰名稱。

```
ssh-keygen -i -f ssh2-key.pub > ssh-key.pub
```

# 輪換 SSH 金鑰
<a name="keyrotation"></a>

為了安全起見，我們建議輪換 SSH 金鑰的最佳實務。通常，此輪換會指定為安全政策的一部分，並以某種自動化方式實作。根據安全性層級，對於高度敏感的通訊，SSH 金鑰對只能使用一次。這樣做可消除任何因存放金鑰所帶來的風險。不過，將 SSH 登入資料存放一段時間，並設定不會對使用者造成過度負擔的間隔，會更為常見。常見的間隔是三個月。

**注意**  
如需使用基礎設施做為程式碼的自動 SSH 金鑰輪換，請參閱 [Transfer 系列 Terraform 模組](terraform.md)。

執行 SSH 金鑰輪換的方法有兩種：
+ 在 主控台上，您可以上傳新的 SSH 公有金鑰，並刪除現有的 SSH 公有金鑰。
+ 您可以使用 API 更新現有的使用者，方法是使用 [DeleteSshPublicKey](https://docs.aws.amazon.com//transfer/latest/APIReference/API_DeleteSshPublicKey.html) API 刪除使用者的 Secure Shell (SSH) 公有金鑰，以及使用 [ImportSshPublicKey](https://docs.aws.amazon.com/transfer/latest/APIReference/API_ImportSshPublicKey.html) API 將新的 Secure Shell (SSH) 公有金鑰新增至使用者帳戶。

------
#### [ Console ]

**在主控台中執行金鑰輪換**

1. 在 https：//[https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/) 開啟 AWS Transfer Family 主控台。

1. 導覽至**伺服器**頁面。

1. 在**伺服器 ID** 欄中選擇識別符，以查看**伺服器詳細資訊**頁面。

1. 在**使用者**下，選取您要輪換其 SSH 公有金鑰之使用者的核取方塊，然後選擇**動作**，然後選擇**新增金鑰**以查看**新增金鑰**頁面。

   或

   選擇使用者名稱以查看**使用者詳細資訊**頁面，然後選擇**新增 SSH 公有金鑰**以查看**新增金鑰**頁面。

1. 輸入新的 SSH 公有金鑰，然後選擇**新增金鑰**。
**重要**  
SSH 公有金鑰的格式取決於您產生的金鑰類型。  
對於 RSA 金鑰，格式為 `ssh-rsa string`。
對於 ED25519 金鑰，格式為 `ssh-ed25519 string`。
對於 ECDSA 金鑰，金鑰開頭為 `ecdsa-sha2-nistp256`、 `ecdsa-sha2-nistp384`或 `ecdsa-sha2-nistp521`，取決於您產生的金鑰大小。開始字串後面接著 `string`，類似於其他金鑰類型。

   您會返回**使用者詳細資訊**頁面，而您剛輸入的新 SSH 公有金鑰會顯示在 **SSH 公有金鑰**區段中。

1. 選取您要刪除之舊金鑰的核取方塊，然後選擇**刪除**。

1. 輸入字詞 確認刪除操作`delete`，然後選擇**刪除**。

------
#### [ API ]

**使用 API 執行金鑰輪換**

1. 在 macOS、Linux 或 Unix 作業系統上，開啟命令終端機。

1.  輸入下列命令，擷取您要刪除的 SSH 金鑰。若要使用此命令，請將 `serverID`取代為 Transfer Family 伺服器的伺服器 ID，並將 取代`username`為您的使用者名稱。

   ```
   aws transfer describe-user --server-id='serverID' --user-name='username'
   ```

   命令會傳回使用者的詳細資訊。複製 `"SshPublicKeyId":` 欄位的內容。您稍後需要在此程序中輸入此值。

   ```
   "SshPublicKeys": [ { "SshPublicKeyBody": "public-key", "SshPublicKeyId": "keyID",
      "DateImported": 1621969331.072 } ],
   ```

1.  接著，為您的使用者匯入新的 SSH 金鑰。在 提示中輸入下列命令。若要使用此命令，請將 `serverID`取代為 Transfer Family 伺服器的伺服器 ID、將 取代`username`為使用者名稱，並將 取代`public-key`為新公有金鑰的指紋。

   ```
   aws transfer import-ssh-public-key --server-id='serverID' --user-name='username'
      --ssh-public-key-body='public-key'
   ```

   ``如果命令成功，則不會傳回任何輸出。

1.  最後，執行下列命令來刪除舊金鑰。若要使用此命令，請將 `serverID`取代為 Transfer Family 伺服器的伺服器 ID、將 取代`username`為使用者名稱，並將 取代`keyID-from-step-2`為您在此程序的步驟 2 中複製的金鑰 ID 值 

   ```
   aws transfer delete-ssh-public-key --server-id='serverID' --user-name='username'
      --ssh-public-key-id='keyID-from-step-2'
   ```

1. （選用） 若要確認舊金鑰不再存在，請重複步驟 2。

------

# 產生 PGP 金鑰
<a name="generate-pgp-keys"></a>

您可以搭配 Transfer Family 使用工作流程處理的檔案，使用 Pretty Good Privacy (PGP) 解密。若要在工作流程步驟中使用解密，請提供 PGP 金鑰。如需 PGP 金鑰演算法的詳細資訊，包括建議和 FIPS 合規，請參閱 [PGP 金鑰對演算法](key-management.md#pgp-key-algorithms)。

 AWS 儲存部落格有一篇文章，說明如何簡單地解密檔案，而無需使用 Transfer Family Managed 工作流程撰寫任何程式碼、[使用 PGP 和 加密和解密檔案 AWS Transfer Family](https://aws.amazon.com/blogs/storage/encrypt-and-decrypt-files-with-pgp-and-aws-transfer-family/)。

您用來產生 PGP 金鑰的運算子取決於您的作業系統和您正在使用的金鑰產生軟體版本。

如果您使用的是 Linux 或 Unix，請使用您的套件安裝程式來安裝 `gpg`。根據您的 Linux 發行版本，下列其中一個命令應該適用於您。

```
sudo yum install gnupg
```

```
sudo apt-get install gnupg
```

對於 Windows 或 macOS，您可以從 [https://gnupg.org/download/](https://gnupg.org/download/)：// 下載所需的內容。

安裝 PGP 金鑰產生器軟體之後，您可以執行 `gpg --full-gen-key`或 `gpg --gen-key`命令來產生金鑰對。

**注意**  
如果您使用的是 2`GnuPG`.3.0 版或更新版本，則必須執行 `gpg --full-gen-key`。當系統提示要建立的金鑰類型時，請選擇 RSA 或 ECC。如果您選擇 **ECC**，您可以從 中選擇NIST橢圓曲線Curve25519的 BrainPool和 。

**有用的`gpg`子命令**

以下是一些適用於 的實用子命令`gpg`：
+ `gpg --help` – 此命令會列出可用的選項，並可能包含一些範例。
+ `gpg --list-keys` – 此命令會列出您已建立的所有金鑰對的詳細資訊。
+ `gpg --fingerprint` – 此命令會列出所有金鑰對的詳細資訊，包括每個金鑰的指紋。
+ `gpg --export -a user-name` – 此命令會針對產生金鑰時使用的 `user-name`，匯出金鑰的公有金鑰部分。

# 管理 PGP 金鑰
<a name="manage-pgp-keys"></a>

若要管理您的 PGP 金鑰，請使用 AWS Secrets Manager。

**注意**  
您的秘密名稱包含 Transfer Family 伺服器 ID。這表示在存放 PGP 金鑰資訊*之前*，您應該已識別或建立伺服器 AWS Secrets Manager。

如果您想要為所有使用者使用一個金鑰和複雜密碼，您可以將 PGP 金鑰區塊資訊存放在秘密名稱 下`aws/transfer/server-id/@pgp-default`，其中 `server-id`是 Transfer Family 伺服器的 ID。如果沒有 `user-name` 符合執行工作流程之使用者的金鑰，Transfer Family 會使用此預設金鑰。

您可以為特定使用者建立金鑰。在此情況下，秘密名稱的格式為 `aws/transfer/server-id/user-name`，其中 `user-name`符合執行 Transfer Family 伺服器工作流程的使用者。

**注意**  
每個使用者每個 Transfer Family 伺服器最多可存放 3 個 PGP 私有金鑰。

**設定 PGP 金鑰以搭配解密使用**

1. 根據您使用的 GPG 版本，執行下列其中一個命令來產生 PGP 金鑰對。
   + 如果您使用的是 2.3.0 **GnuPG**版或更新版本，請執行下列命令：

     ```
     gpg --full-gen-key
     ```

     您可以選擇 **RSA**，或者，如果您選擇 **ECC**，則可以**Curve25519**為橢圓曲線選擇 **NIST****BrainPool**或 。如果您`gpg --gen-key`改為執行 ，您可以建立使用 ECC Curve 25519 加密演算法的金鑰對。
   + 對於 2.3.0 **GnuPG**之前的 版本，您可以使用下列命令，因為 RSA 是預設加密類型。

     ```
     gpg --gen-key
     ```
**重要**  
在金鑰產生過程中，您必須提供密碼短語和電子郵件地址。請務必記下這些值。當您在此程序 AWS Secrets Manager 稍後的 中輸入金鑰的詳細資訊時，必須提供密碼短語。而且，您必須提供相同的電子郵件地址，才能在下一個步驟中匯出私有金鑰。

1. 執行下列命令以匯出私有金鑰。若要使用此命令，請將 `private.pgp`取代為儲存私有金鑰區塊的檔案名稱，並將 `marymajor@example.com`取代為您產生金鑰對時使用的電子郵件地址。

   ```
   gpg --output private.pgp --armor --export-secret-key marymajor@example.com
   ```

1. <a name="store-pgp-key-details"></a>使用 AWS Secrets Manager 來存放 PGP 金鑰。

   1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/) 開啟 AWS Secrets Manager 主控台。

   1. 在左側導覽窗格中，選擇**秘密**。

   1. 在**秘密**頁面上，選擇**儲存新的秘密**。

   1. 在**選擇秘密類型**頁面上，針對**秘密類型**，選取**其他類型的秘密**。

   1. 在**鍵/值對**區段中，選擇**鍵/值**索引標籤。
      + **金鑰** – 輸入 **PGPPrivateKey**。
**注意**  
您必須完全輸入**PGPPrivateKey**字串：請勿在字元之前或之間新增任何空格。
      + **value** – 將私有金鑰的文字貼到值欄位中。您可以在稍早在此程序中匯出金鑰時指定的 檔案 （例如 `private.pgp`) 中找到私有金鑰的文字。金鑰開頭為 `-----BEGIN PGP PRIVATE KEY BLOCK-----`，結尾為 `-----END PGP PRIVATE KEY BLOCK-----`。
**注意**  
請確定文字區塊只包含私有金鑰，也不包含公有金鑰。

   1. 選取**新增資料列**，然後在**鍵/值對**區段中，選擇**鍵/值**索引標籤。
      + **金鑰** – 輸入 **PGPPassphrase**。
**注意**  
您必須完全輸入**PGPPassphrase**字串：請勿在字元之前或之間新增任何空格。
      + **value** – 輸入您在產生 PGP 金鑰對時使用的密碼短語。  
![\[\]](http://docs.aws.amazon.com/zh_tw/transfer/latest/userguide/images/pgp-secrets-01.png)
**注意**  
您最多可以新增 3 組金鑰和密碼片語。若要新增第二組，請新增兩個新資料列，並為金鑰輸入 **PGPPassphrase2** **PGPPrivateKey2**和 ，然後貼上另一個私有金鑰和密碼片語。若要新增第三個集合，索引鍵值必須為 **PGPPrivateKey3**和 **PGPPassphrase3**。

   1. 選擇**下一步**。

   1. 在**設定秘密**頁面上，輸入秘密的名稱和描述。
      + 如果您要建立預設金鑰，也就是任何 Transfer Family 使用者都可以使用的金鑰，請輸入 **aws/transfer/*server-id*/@pgp-default**。`server-id` 將 取代為包含具有解密步驟之工作流程的伺服器 ID。
      + 如果您要建立要供特定 Transfer Family 使用者使用的金鑰，請輸入 **aws/transfer/*server-id*/*user-name***。`server-id` 將 取代為包含具有解密步驟之工作流程的伺服器 ID，並將 取代`user-name`為執行工作流程的使用者名稱。`user-name` 存放在 Transfer Family 伺服器正在使用的身分提供者中。

   1. 選擇**下一步**，並接受**設定輪換**頁面上的預設值。然後選擇**下一步**。

   1. 在**檢閱**頁面上，選擇**存放**以建立和存放秘密。

下列螢幕擷取畫面顯示特定 Transfer Family 伺服器**marymajor**的使用者詳細資訊。此範例顯示三個金鑰及其對應的密碼短語。

![\[\]](http://docs.aws.amazon.com/zh_tw/transfer/latest/userguide/images/pgp-secrets-02.png)


# 支援的 PGP 用戶端
<a name="pgp-key-clients"></a>

下列用戶端已使用 Transfer Family 進行測試，可用於產生 PGP 金鑰，以及加密您想要使用工作流程解密的檔案。
+ **Gpg4win \$1 Kleopatra**。
**注意**  
當您選取**簽署/加密檔案**時，請務必清除**簽署為**：我們目前不支援加密檔案的簽署。  

![\[\]](http://docs.aws.amazon.com/zh_tw/transfer/latest/userguide/images/workflows-step-decrypt-kleopatra.png)

如果您簽署加密的檔案並嘗試使用解密工作流程將其上傳至 Transfer Family 伺服器，您會收到下列錯誤：  

  ```
  Encrypted file with signed message unsupported
  ```
+ 主要 **GnuPG** 版本：2.4、2.3、2.2、2.0 和 1.4。

請注意，其他 PGP 用戶端也可以運作，但只有此處提及的用戶端已經過 Transfer Family 測試。

# 的身分和存取管理 AWS Transfer Family
<a name="security-iam"></a>

AWS Identity and Access Management (IAM) 是 AWS 服務 ，可協助管理員安全地控制對 AWS 資源的存取。IAM 管理員可控制誰可以進行*驗證 *（登入） 和*授權* （具有許可） 來使用 AWS Transfer Family 資源。IAM 是您可以免費使用 AWS 服務 的 。

**Topics**
+ [目標對象](#security_iam_audience)
+ [使用身分驗證](#security_iam_authentication)
+ [使用政策管理存取權](#security_iam_access-manage)
+ [AWS Transfer Family 如何使用 IAM](security_iam_service-with-iam.md)
+ [AWS Transfer Family 身分型政策範例](security_iam_id-based-policy-examples.md)
+ [AWS Transfer Family 標籤型政策範例](security_iam_tag-based-policy-examples.md)
+ [對 AWS Transfer Family 身分和存取進行故障診斷](security_iam_troubleshoot.md)
+ [組織控管的 IAM 條件索引鍵](transfer-condition-keys.md)

## 目標對象
<a name="security_iam_audience"></a>

使用方式 AWS Identity and Access Management (IAM) 會根據您的角色而有所不同：
+ **服務使用者** — 若無法存取某些功能，請向管理員申請所需許可 (請參閱 [對 AWS Transfer Family 身分和存取進行故障診斷](security_iam_troubleshoot.md))
+ **服務管理員** — 負責設定使用者存取權並提交相關許可請求 (請參閱 [AWS Transfer Family 如何使用 IAM](security_iam_service-with-iam.md))
+ **IAM 管理員** — 撰寫政策以管理存取控制 (請參閱 [AWS Transfer Family 身分型政策範例](security_iam_id-based-policy-examples.md))

## 使用身分驗證
<a name="security_iam_authentication"></a>

身分驗證是您 AWS 使用身分憑證登入 的方式。您必須以 AWS 帳戶根使用者、IAM 使用者或擔任 IAM 角色身分進行身分驗證。

您可以使用身分來源的登入資料，例如 AWS IAM Identity Center (IAM Identity Center)、單一登入身分驗證或 Google/Facebook 登入資料，以聯合身分的形式登入。如需有關登入的詳細資訊，請參閱《AWS 登入 使用者指南》**中的[如何登入您的 AWS 帳戶](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)。

對於程式設計存取， AWS 提供 SDK 和 CLI 以密碼編譯方式簽署請求。如需詳細資訊，請參閱《IAM 使用者指南》**中的 [API 請求的AWS 第 4 版簽署程序](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html)。

### AWS 帳戶根使用者
<a name="security_iam_authentication-rootuser"></a>

 當您建立 時 AWS 帳戶，您會從一個名為 AWS 帳戶 *theroot 使用者的*登入身分開始，該身分可完整存取所有 AWS 服務 和資源。強烈建議不要使用根使用者來執行日常任務。有關需要根使用者憑證的任務，請參閱《IAM 使用者指南》**中的[需要根使用者憑證的任務](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)。

### 聯合身分
<a name="security_iam_authentication-federateduser"></a>

最佳實務是要求人類使用者使用聯合身分提供者，以 AWS 服務 使用臨時憑證存取 。

*聯合身分*是來自您企業目錄、Web 身分提供者的使用者，或使用來自身分來源的 AWS 服務 登入資料存取 Directory Service 的使用者。聯合身分會擔任角色，而該角色會提供臨時憑證。

若需集中化管理存取權限，建議使用 AWS IAM Identity Center。如需詳細資訊，請參閱 *AWS IAM Identity Center 使用者指南*中的[什麼是 IAM Identity Center？](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)。

### IAM 使用者和群組
<a name="security_iam_authentication-iamuser"></a>

*IAM 使用者*[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)是一種身分具備單人或應用程式的特定許可權。建議以臨時憑證取代具備長期憑證的 IAM 使用者。如需詳細資訊，請參閱《*IAM 使用者指南*》中的[要求人類使用者使用聯合身分提供者來 AWS 使用臨時憑證存取](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) 。

[IAM 群組](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html)**會指定 IAM 使用者集合，使管理大量使用者的許可權更加輕鬆。如需詳細資訊，請參閱《IAM 使用者指南》**中的 [IAM 使用者的使用案例](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html)。

### IAM 角色
<a name="security_iam_authentication-iamrole"></a>

*IAM 角色*[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)的身分具有特定許可權，其可以提供臨時憑證。您可以透過[從使用者切換到 IAM 角色 （主控台） ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html)或呼叫 AWS CLI 或 AWS API 操作來擔任角色。如需詳細資訊，請參閱《IAM 使用者指南》**中的[擔任角色的方法](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html)。

IAM 角色適用於聯合身分使用者存取、臨時 IAM 使用者許可、跨帳戶存取權與跨服務存取，以及在 Amazon EC2 執行的應用程式。如需詳細資訊，請參閱《*IAM 使用者指南*》中的 [IAM 中的快帳戶資源存取](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)。

## 使用政策管理存取權
<a name="security_iam_access-manage"></a>

您可以透過建立政策並將其連接到身分或資源 AWS 來控制 AWS 中的存取。政策定義與身分或資源相關聯的許可。當委託人提出請求時 AWS ， 會評估這些政策。大多數政策會以 JSON 文件 AWS 的形式存放在 中。如需進一步了解 JSON 政策文件，請參閱《*IAM 使用者指南*》中的 [JSON 政策概觀](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json)。

管理員會使用政策，透過定義哪些**主體**可在哪些**條件**下對哪些**資源**執行**動作**，以指定可存取的範圍。

預設情況下，使用者和角色沒有許可。IAM 管理員會建立 IAM 政策並將其新增至角色，供使用者後續擔任。IAM 政策定義動作的許可，無論採用何種方式執行。

### 身分型政策
<a name="security_iam_access-manage-id-based-policies"></a>

身分型政策是附加至身分 (使用者、使用者群組或角色) 的 JSON 許可政策文件。這類政策控制身分可對哪些資源執行哪些動作，以及適用的條件。如需了解如何建立身分型政策，請參閱《*IAM 使用者指南*》中的[透過客戶管理政策定義自訂 IAM 許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)。

身分型政策可分為*內嵌政策* (直接內嵌於單一身分) 與*受管政策* (可附加至多個身分的獨立政策)。如需了解如何在受管政策及內嵌政策之間做選擇，請參閱《IAM 使用者指南》**中的[在受管政策與內嵌政策之間選擇](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html)。

### 資源型政策
<a name="security_iam_access-manage-resource-based-policies"></a>

資源型政策是附加到資源的 JSON 政策文件。範例包括 IAM *角色信任政策*與 Amazon S3 *儲存貯體政策*。在支援資源型政策的服務中，服務管理員可以使用它們來控制對特定資源的存取權限。您必須在資源型政策中[指定主體](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)。

資源型政策是位於該服務中的內嵌政策。您無法在資源型政策中使用來自 IAM 的 AWS 受管政策。

### 存取控制清單 (ACL)
<a name="security_iam_access-manage-acl"></a>

存取控制清單 (ACL) 可控制哪些主體 (帳戶成員、使用者或角色) 擁有存取某資源的許可。ACL 類似於資源型政策，但它們不使用 JSON 政策文件格式。

Amazon S3 AWS WAF和 Amazon VPC 是支援 ACLs的服務範例。如需進一步了解 ACL，請參閱《Amazon Simple Storage Service 開發人員指南》**中的[存取控制清單 (ACL) 概觀](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html)。

### 其他政策類型
<a name="security_iam_access-manage-other-policies"></a>

AWS 支援其他政策類型，可設定更多常見政策類型授予的最大許可：
+ **許可界限** — 設定身分型政策可授與 IAM 實體的最大許可。如需詳細資訊，請參閱《 IAM 使用者指南》**中的 [IAM 實體許可界限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)。
+ **服務控制政策 (SCP)** — 為 AWS Organizations中的組織或組織單位指定最大許可。如需詳細資訊，請參閱《AWS Organizations 使用者指南》**中的[服務控制政策](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)。
+ **資源控制政策 (RCP)** — 設定您帳戶中資源可用許可的上限。如需詳細資訊，請參閱《AWS Organizations 使用者指南》**中的[資源控制政策 (RCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html)。
+ **工作階段政策** — 在以程式設計方式為角色或聯合身分使用者建立臨時工作階段時，以參數形式傳遞的進階政策。如需詳細資訊，請參《*IAM 使用者指南*》中的[工作階段政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)。

### 多種政策類型
<a name="security_iam_access-manage-multiple-policies"></a>

當多種類型的政策適用於請求時，產生的許可會更複雜而無法理解。若要了解如何 AWS 在涉及多個政策類型時決定是否允許請求，請參閱《*IAM 使用者指南*》中的[政策評估邏輯](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html)。

# AWS Transfer Family 如何使用 IAM
<a name="security_iam_service-with-iam"></a>

在您使用 AWS Identity and Access Management (IAM) 來管理 的存取權之前 AWS Transfer Family，您應該了解可使用哪些 IAM 功能 AWS Transfer Family。若要全面了解 AWS Transfer Family 和其他 AWS 服務如何與 IAM 搭配使用，請參閱《[AWS IAM 使用者指南》中的與 IAM 搭配使用的 服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)。 **

**Topics**
+ [AWS Transfer Family 身分型政策](#security_iam_service-with-iam-id-based-policies)
+ [AWS Transfer Family 資源型政策](#security_iam_service-with-iam-resource-based-policies)
+ [以 AWS Transfer Family 標籤為基礎的授權](#security_iam_service-with-iam-tags)
+ [AWS Transfer Family IAM 角色](#security_iam_service-with-iam-roles)

## AWS Transfer Family 身分型政策
<a name="security_iam_service-with-iam-id-based-policies"></a>

使用 IAM 身分類型政策，您可以指定允許或拒絕的動作和資源，以及在何種條件下會允許或拒絕動作。 AWS Transfer Family 支援特定動作、資源及條件索引鍵。若要了解您在 JSON 政策中使用的所有元素，請參閱*AWS Identity and Access Management 《 使用者指南*》中的 [IAM JSON 政策元素參考](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)。

### 動作
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

管理員可以使用 AWS JSON 政策來指定誰可以存取內容。也就是說，哪個**主體**在什麼**條件**下可以對什麼**資源**執行哪些**動作**。

JSON 政策的 `Action` 元素描述您可以用來允許或拒絕政策中存取的動作。政策會使用動作來授予執行相關聯動作的許可。

中的政策動作在動作之前 AWS Transfer Family 使用下列字首：`transfer:`。例如，若要授予某人建立伺服器的許可，使用 Transfer Family `CreateServer` API 操作，您可以在其政策中包含 `transfer:CreateServer`動作。政策陳述式必須包含 `Action` 或 `NotAction` 元素。 AWS Transfer Family 會定義一組自己的動作，來描述您可以使用此服務執行的任務。

若要在單一陳述式中指定多個  動作，請用逗號分隔，如下所示。

```
"Action": [
      "transfer:action1",
      "transfer:action2"
```

您也可以使用萬用字元 (\$1) 來指定多個動作。例如，如需指定開頭是 `Describe` 文字的所有動作，請包含以下動作：

```
"Action": "transfer:Describe*"
```

若要查看 AWS Transfer Family 動作清單，請參閱《*服務授權參考*》中的 [定義的動作 AWS Transfer Family](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html#awstransferfamily-actions-as-permissions)。

### Resources
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

管理員可以使用 AWS JSON 政策來指定誰可以存取內容。也就是說，哪個**主體**在什麼**條件**下可以對什麼**資源**執行哪些**動作**。

`Resource` JSON 政策元素可指定要套用動作的物件。最佳實務是使用其 [Amazon Resource Name (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) 來指定資源。若動作不支援資源層級許可，使用萬用字元 (\$1) 表示該陳述式適用於所有資源。

```
"Resource": "*"
```

Transfer Family 伺服器資源具有下列 ARN。

```
arn:aws:transfer:${Region}:${Account}:server/${ServerId}
```

例如，若要在陳述式中指定 `s-01234567890abcdef` Transfer Family 伺服器，請使用下列 ARN。

```
"Resource": "arn:aws:transfer:us-east-1:123456789012:server/s-01234567890abcdef"
```

如需 ARNs 格式的詳細資訊，請參閱*服務授權參考*中的 [Amazon Resource Name (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)，或 IAM **[使用者指南中的 IAM ARNs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns)。

如需指定屬於特定帳戶的所有執行個體，請使用萬用字元 (\$1)。

```
"Resource": "arn:aws:transfer:us-east-1:123456789012:server/*"
```

有些 AWS Transfer Family 動作會在多個資源上執行，例如 IAM 政策中使用的資源。在這些情況下，您必須使用萬用字元 (\$1)。

```
"Resource": "arn:aws:transfer:*:123456789012:server/*"
```

在某些情況下，您需要指定一種以上的資源類型，例如，如果您建立允許存取 Transfer Family 伺服器和使用者的政策。若要在單一陳述式中指定多項資源，請使用逗號分隔 ARN。

```
"Resource": [
      "resource1",
      "resource2"
            ]
```

若要查看 AWS Transfer Family 資源清單，請參閱*《服務授權參考*》中的 [定義的資源類型 AWS Transfer Family](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html#awstransferfamily-resources-for-iam-policies)。

### 條件索引鍵
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

管理員可以使用 AWS JSON 政策來指定誰可以存取內容。也就是說，哪個**主體**在什麼**條件**下可以對什麼**資源**執行哪些**動作**。

`Condition` 元素會根據定義的條件，指定陳述式的執行時機。您可以建立使用[條件運算子](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)的條件運算式 (例如等於或小於)，來比對政策中的條件和請求中的值。若要查看所有 AWS 全域條件索引鍵，請參閱《*IAM 使用者指南*》中的[AWS 全域條件內容索引鍵](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)。

AWS Transfer Family 會定義自己的一組條件金鑰，也支援使用一些全域條件金鑰。若要查看 AWS Transfer Family 條件索引鍵的清單，請參閱《*服務授權參考*》中的 [的條件索引鍵 AWS Transfer Family](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html#awstransferfamily-policy-keys)。

### 範例
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>

若要檢視 AWS Transfer Family 身分型政策的範例，請參閱 [AWS Transfer Family 身分型政策範例](security_iam_id-based-policy-examples.md)。如需 VPC 端點特定的 IAM 政策，請參閱 [限制 Transfer Family 伺服器的 VPC 端點存取](create-server-in-vpc.md#limit-vpc-endpoint-access)。

## AWS Transfer Family 資源型政策
<a name="security_iam_service-with-iam-resource-based-policies"></a>

以資源為基礎的政策是 JSON 政策文件，指定指定委託人可以在 AWS Transfer Family 資源上執行的動作，以及在哪些條件下執行的動作。Amazon S3 支援 Amazon S3 *儲存貯體*的資源型許可政策。資源型政策可讓您依資源將使用許可授予至其他帳戶。您也可以使用資源型政策，允許 AWS 服務存取您的 Amazon S3 *儲存貯體*。

若要啟用跨帳戶存取，您可以指定在其他帳戶內的所有帳戶或 IAM 實體，作為[資源型政策的委託人](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)。新增跨帳戶主體至資源型政策，只是建立信任關係的一半。當委託人和資源位於不同的 AWS 帳戶中時，您還必須授予委託人實體存取資源的許可。透過將身分型政策連接到實體來授予許可。不過，如果資源型政策會為相同帳戶中的委託人授予存取，這時就不需要額外的身分型政策。如需詳細資訊，請參閱*AWS Identity and Access Management 《 使用者指南*》中的 [IAM 角色與以資源為基礎的政策有何不同](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_compare-resource-policies.html)。

Amazon S3 服務僅支援一種資源型政策，稱為儲存**貯*體政策*，連接到儲存*貯體*。此政策定義哪些主體實體 （帳戶、使用者、角色和聯合身分使用者） 可以對物件執行動作。

### 範例
<a name="security_iam_service-with-iam-resource-based-policies-examples"></a>



若要檢視以 AWS Transfer Family 資源為基礎的政策範例，請參閱 [AWS Transfer Family 標籤型政策範例](security_iam_tag-based-policy-examples.md)。

## 以 AWS Transfer Family 標籤為基礎的授權
<a name="security_iam_service-with-iam-tags"></a>

您可以將標籤連接至 AWS Transfer Family 資源，或在請求中傳遞標籤 AWS Transfer Family。如需根據標籤控制存取，請使用 `transfer:ResourceTag/key-name`、`aws:RequestTag/key-name` 或 `aws:TagKeys` 條件索引鍵，在政策的[條件元素](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)中，提供標籤資訊。如需如何使用標籤控制 AWS Transfer Family 資源存取的資訊，請參閱 [AWS Transfer Family 標籤型政策範例](security_iam_tag-based-policy-examples.md)。

## AWS Transfer Family IAM 角色
<a name="security_iam_service-with-iam-roles"></a>

[IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)是您 AWS 帳戶中具有特定許可的實體。

### 搭配 使用臨時登入資料 AWS Transfer Family
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

您可以搭配聯合使用暫時憑證、擔任 IAM 角色，或是擔任跨帳戶角色。您可以透過呼叫 [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) 或 [GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html) 等 AWS STS API 操作來取得臨時安全登入資料。

AWS Transfer Family 支援使用臨時登入資料。

# AWS Transfer Family 身分型政策範例
<a name="security_iam_id-based-policy-examples"></a>

根據預設，IAM 使用者和角色不具備建立或修改 AWS Transfer Family 資源的許可。他們也無法使用 AWS 管理主控台 AWS CLI或 AWS API 執行任務。IAM 管理員必須建立 IAM 政策，授予使用者和角色在指定資源上執行特定 API 作業的所需許可。管理員接著必須將這些政策連接至需要這些許可的 IAM 使用者或群組。

若要了解如何使用這些範例 JSON 政策文件建立 IAM 身分型政策，請參閱*AWS Identity and Access Management 《 使用者指南*》中的[在 JSON 標籤上建立政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor)。

**Topics**
+ [政策最佳實務](#security_iam_service-with-iam-policy-best-practices)
+ [使用 AWS Transfer Family 主控台](#security_iam_id-based-policy-examples-console)
+ [允許使用者檢視他們自己的許可](#security_iam_id-based-policy-examples-view-own-permissions)

## 政策最佳實務
<a name="security_iam_service-with-iam-policy-best-practices"></a>

身分型政策會判斷您帳戶中的某個人員是否可以建立、存取或刪除 AWS Transfer Family 資源。這些動作可能會讓您的 AWS 帳戶產生費用。當您建立或編輯身分型政策時，請遵循下列準則及建議事項：
+ **開始使用 AWS 受管政策並轉向最低權限許可** – 若要開始將許可授予您的使用者和工作負載，請使用將許可授予許多常見使用案例的 *AWS 受管政策*。它們可在您的 中使用 AWS 帳戶。我們建議您定義特定於使用案例 AWS 的客戶受管政策，以進一步減少許可。如需更多資訊，請參閱《*IAM 使用者指南*》中的 [AWS 受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)或[任務職能的AWS 受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)。
+ **套用最低權限許可** – 設定 IAM 政策的許可時，請僅授予執行任務所需的許可。為實現此目的，您可以定義在特定條件下可以對特定資源採取的動作，這也稱為*最低權限許可*。如需使用 IAM 套用許可的更多相關資訊，請參閱《*IAM 使用者指南*》中的 [IAM 中的政策和許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)。
+ **使用 IAM 政策中的條件進一步限制存取權** – 您可以將條件新增至政策，以限制動作和資源的存取。例如，您可以撰寫政策條件，指定必須使用 SSL 傳送所有請求。如果透過特定 例如 使用服務動作 AWS 服務，您也可以使用條件來授予其存取權 CloudFormation。如需詳細資訊，請參閱《*IAM 使用者指南*》中的 [IAM JSON 政策元素：條件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)。
+ **使用 IAM Access Analyzer 驗證 IAM 政策，確保許可安全且可正常運作** – IAM Access Analyzer 驗證新政策和現有政策，確保這些政策遵從 IAM 政策語言 (JSON) 和 IAM 最佳實務。IAM Access Analyzer 提供 100 多項政策檢查及切實可行的建議，可協助您撰寫安全且實用的政策。如需詳細資訊，請參閱《*IAM 使用者指南*》中的[使用 IAM Access Analyzer 驗證政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html)。
+ **需要多重要素驗證 (MFA)** – 如果您的案例需要 IAM 使用者或 中的根使用者 AWS 帳戶，請開啟 MFA 以提高安全性。如需在呼叫 API 操作時請求 MFA，請將 MFA 條件新增至您的政策。如需詳細資訊，請參閱《*IAM 使用者指南*》中的[透過 MFA 的安全 API 存取](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html)。

如需 IAM 中最佳實務的相關資訊，請參閱《*IAM 使用者指南*》中的 [IAM 安全最佳實務](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)。

## 使用 AWS Transfer Family 主控台
<a name="security_iam_id-based-policy-examples-console"></a>

若要存取 AWS Transfer Family 主控台，您必須擁有一組最低許可。這些許可必須允許您列出和檢視 AWS 帳戶中 AWS Transfer Family 資源的詳細資訊。如果您建立比最基本必要許可更嚴格的身分型政策，則對於具有該政策的實體 (IAM 使用者或角色) 而言，主控台就無法如預期運作。如需詳細資訊，請參閱*AWS Identity and Access Management 《 使用者指南*》中的[新增許可給使用者](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)。

對於僅呼叫 AWS CLI 或 AWS API 的使用者，您不需要允許最低主控台許可。反之，只需允許存取符合您嘗試執行之 API 操作的動作就可以了。

## 允許使用者檢視他們自己的許可
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

此範例會示範如何建立政策，允許 IAM 使用者檢視附加到他們使用者身分的內嵌及受管政策。此政策包含在主控台或使用 或 AWS CLI AWS API 以程式設計方式完成此動作的許可。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

# AWS Transfer Family 標籤型政策範例
<a name="security_iam_tag-based-policy-examples"></a>

以下是如何根據標籤控制 AWS Transfer Family 資源存取的範例。

## 使用標籤控制對 AWS Transfer Family 資源的存取
<a name="tag-access-control"></a>

IAM 政策中的條件是您用來指定 AWS Transfer Family 資源許可的語法的一部分。您可以根據這些 AWS Transfer Family 資源上的標籤來控制對資源 （例如使用者、伺服器、角色和其他實體） 的存取。標籤均為金鑰值對。如需標記資源的詳細資訊，請參閱《》中的[標記 AWS 資源](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)*AWS 一般參考*。

在 中 AWS Transfer Family，資源可以有標籤，有些動作可以包含標籤。建立 IAM 政策時，可使用標籤條件索引鍵來控制以下項目：
+ 哪些使用者可以根據 AWS Transfer Family 資源擁有的標籤，對資源執行動作。
+ 可在動作請求中傳遞的標記。
+ 請求中是否可使用特定的標籤鍵。

透過使用標籤型存取控制，您可以套用比 API 層級更精細的控制。您也可以套用比使用資源型存取控制更多的動態控制。您可以建立 IAM 政策，根據請求中提供的標籤 （請求標籤） 來允許或拒絕 操作。您也可以根據正在操作的資源 （資源標籤） 上的標籤建立 IAM 政策。一般而言，資源標籤適用於已存在於資源上的標籤，當您將標籤新增至資源或從中移除標籤時，請求標籤適用於 。

如需標籤條件索引鍵的完整語法和語意，請參閱《*IAM 使用者指南*》中的[使用資源標籤控制 AWS 對資源的存取](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html)。如需使用 API Gateway 指定 IAM 政策的詳細資訊，請參閱《[API Gateway 開發人員指南》中的使用 IAM 許可控制對 API 的存取](https://docs.aws.amazon.com/apigateway/latest/developerguide/permissions.html)。 **

### 範例 1：根據資源標籤拒絕動作
<a name="transfer-deny-actions-resource-tag"></a>

您可以拒絕根據標籤對資源執行動作。如果使用者或伺服器資源以金鑰 和值 標記，則下列範例政策會拒絕 `DescribeServer`、、`TagResource``UntagResource``StartServer``StopServer`、 `stage` 和 `DescribeUser`操作`prod`。

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "transfer:TagResource",
                "transfer:UntagResource",
                "transfer:StartServer",
                "transfer:StopServer",
                "transfer:DescribeServer",
                "transfer:DescribeUser"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/stage": "prod"
                }
            }
        }
    ]
}
```

### 範例 2：根據資源標籤允許動作
<a name="transfer-allow-actions-resource-tag"></a>

您可以允許根據標籤對資源執行動作。如果使用者或伺服器資源以金鑰 `TagResource`和值 標記，則下列範例政策允許 `UntagResource` `StartServer``DescribeServer`、、`StopServer`、 `stage`和 `DescribeUser`操作`prod`。

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "transfer:TagResource",
                "transfer:UntagResource",
                "transfer:StartServer",
                "transfer:StopServer",
                "transfer:DescribeServer",
                "transfer:DescribeUser"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/stage": "prod"
                }
            }
        }
    ]
}
```

### 範例 3：拒絕根據請求標籤建立使用者或伺服器
<a name="transfer-deny-server-creation-tag"></a>

下列範例政策包含兩個陳述式。如果標籤的成本中心金鑰沒有值，則第一個陳述式會拒絕對所有資源執行 `CreateServer` 操作。

如果標籤的成本中心索引鍵包含除 1、2 或 3 以外的任何其他值，則第二個陳述式會拒絕`CreateServer`操作。

**注意**  
此政策允許建立或刪除資源，其中包含名為 的金鑰`costcenter`和 `1`、 `2`或 的值`3`。

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        { 
            "Effect": "Deny",
            "Action": [
                "transfer:CreateServer"
            ],
            "Resource": [
                "*"
            ],
            "Condition": {
                "Null":  {
                    "aws:RequestTag/costcenter": "true"
                }
            }
        },
        {
            "Effect": "Deny",
            "Action": "transfer:CreateServer",
            "Resource": [
                "*"
            ],
            "Condition": {
                "ForAnyValue:StringNotEquals": {
                    "aws:RequestTag/costcenter": [
                        "1",
                        "2",
                        "3"
                    ]
                }
            }
        }           
    ]
}
```

# 對 AWS Transfer Family 身分和存取進行故障診斷
<a name="security_iam_troubleshoot"></a>

使用以下資訊來協助您診斷和修正使用 AWS Transfer Family 和 IAM 時可能遇到的常見問題。

**Topics**
+ [我無權在 中執行動作 AWS Transfer Family](#security_iam_troubleshoot-no-permissions)
+ [我未獲得執行 iam:PassRole 的授權](#security_iam_troubleshoot-passrole)
+ [我想要允許 AWS 帳戶外的人員存取我的 AWS Transfer Family 資源](#security_iam_troubleshoot-cross-account-access)

## 我無權在 中執行動作 AWS Transfer Family
<a name="security_iam_troubleshoot-no-permissions"></a>

如果 AWS 管理主控台 告訴您無權執行 動作，則必須聯絡您的管理員尋求協助。您的管理員是為您提供簽署憑證的人員。

以下範例錯誤會在 `mateojackson` IAM 使用者嘗試使用主控台檢視 *widget* 的詳細資訊，但卻沒有 `transfer:GetWidget` 許可時發生。

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: transfer:GetWidget on resource: my-example-widget
```

在此情況下，Mateo 會請求管理員更新他的政策，允許他使用 `my-example-widget` 動作存取 `transfer;:GetWidget` 資源。

## 我未獲得執行 iam:PassRole 的授權
<a name="security_iam_troubleshoot-passrole"></a>

如果您收到錯誤，告知您未獲授權執行 `iam:PassRole` 動作，您的政策必須更新，允許您將角色傳遞給 AWS Transfer Family。

有些 AWS 服務 可讓您將現有角色傳遞給該服務，而不是建立新的服務角色或服務連結角色。如需執行此作業，您必須擁有將角色傳遞至該服務的許可。

名為 `marymajor` 的 IAM 使用者嘗試使用主控台在 AWS Transfer Family中執行動作時，發生下列範例錯誤。但是，動作要求服務具備服務角色授予的許可。Mary 沒有將角色傳遞給服務的許可。

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

在這種情況下，Mary 的政策必須更新，允許她執行 `iam:PassRole` 動作。

如果您需要協助，請聯絡您的 AWS 管理員。您的管理員提供您的簽署憑證。

下列範例政策包含傳遞角色的許可 AWS Transfer Family。**123456789012** 將 取代為您的 AWS 帳戶 ID，並將 **MyTransferRole**取代為您的實際 IAM 角色名稱。

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      { "Action": "iam:PassRole",
        "Resource": "arn:aws:iam::123456789012:role/MyTransferRole",
        "Effect": "Allow"
      } 
   ]
}
```

## 我想要允許 AWS 帳戶外的人員存取我的 AWS Transfer Family 資源
<a name="security_iam_troubleshoot-cross-account-access"></a>

您可以建立一個角色，讓其他帳戶中的使用者或您組織外部的人員存取您的資源。您可以指定要允許哪些信任物件取得該角色。針對支援基於資源的政策或存取控制清單 (ACL) 的服務，您可以使用那些政策來授予人員存取您的資源的許可。

如需進一步了解，請參閱以下內容：
+ 若要了解 是否 AWS Transfer Family 支援這些功能，請參閱 [AWS Transfer Family 如何使用 IAM](security_iam_service-with-iam.md)。
+ 若要了解如何提供您擁有 AWS 帳戶 的資源存取權，請參閱《[IAM 使用者指南》中的在您擁有 AWS 帳戶 的另一個 中為 IAM 使用者提供存取權](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html)。 **
+ 若要了解如何將資源的存取權提供給第三方 AWS 帳戶，請參閱《*IAM 使用者指南*》中的[將存取權提供給第三方 AWS 帳戶 擁有](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html)。
+ 如需了解如何透過聯合身分提供存取權，請參閱《*IAM 使用者指南*》中的[將存取權提供給在外部進行身分驗證的使用者 (聯合身分)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html)。
+ 如需了解使用角色和資源型政策進行跨帳戶存取之間的差異，請參閱《*IAM 使用者指南*》中的 [IAM 中的跨帳戶資源存取](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)。

# 組織控管的 IAM 條件索引鍵
<a name="transfer-condition-keys"></a>

AWS Transfer Family 提供 IAM 條件金鑰，可讓您限制任何 IAM 政策中的資源組態。這些條件金鑰可用於連接到使用者或角色的身分型政策，或用於組織控管的服務控制政策 SCPs)。

服務控制政策是適用於整個 AWS 組織的 IAM 政策，可為多個帳戶提供預防性護欄。在 SCPs 中使用時，這些條件金鑰有助於在整個組織範圍內強制執行安全和合規要求。

**另請參閱**
+ [Transfer 系列的動作、資源和條件索引鍵](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html)
+ [服務控制政策 (SCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)
+ 說明如何使用服務控制政策強制執行預防性護欄的影片  
[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/mEO05mmbSms/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/mEO05mmbSms)

## 可用的條件索引鍵
<a name="scp-condition-keys"></a>

AWS Transfer Family 支援下列條件金鑰，可用於 IAM 政策：

`transfer:RequestServerEndpointType`  
根據端點類型 (PUBLIC、VPC、VPC\$1ENDPOINT) 限制伺服器建立和更新。通常用於防止公開端點。

`transfer:RequestServerProtocols`  
根據支援的通訊協定 (SFTP、FTPS、FTP、AS2) 限制伺服器建立和更新。

`transfer:RequestServerDomain`  
根據網域類型 (S3、EFS限制伺服器建立。

`transfer:RequestConnectorProtocol`  
根據通訊協定 (AS2、SFTP) 限制連接器的建立。

## 支援的動作
<a name="scp-supported-actions"></a>

條件索引鍵可套用至下列 AWS Transfer Family 動作：
+ `CreateServer`：支援 `RequestServerEndpointType`、 `RequestServerProtocols`和 `RequestServerDomain`條件金鑰
+ `UpdateServer`：支援`RequestServerEndpointType`和`RequestServerProtocols`條件索引鍵
+ `CreateConnector`：支援`RequestConnectorProtocol`條件金鑰

## 範例 SCP 政策
<a name="scp-example-policy"></a>

下列範例 SCP 可防止整個組織的公有 AWS Transfer Family 伺服器建立：

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Sid": "DenyPublicTransferServers",
        "Effect": "Deny",
        "Action": ["transfer:CreateServer", "transfer:UpdateServer"],
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "transfer:RequestServerEndpointType": "PUBLIC"
            }
        }
    }]
}
```

# 的合規驗證 AWS Transfer Family
<a name="transfer-compliance"></a>

在多個合規計畫 AWS Transfer Family 中，第三方稽核人員會評估 的安全與 AWS 合規。這些包括 SOC、PCI、HIPAA 等。如需完整清單，請參閱[AWS 合規計劃範圍內的服務](https://aws.amazon.com/compliance/services-in-scope)。

如需特定合規計劃範圍內 AWS 的服務清單，請參閱[AWS 合規計劃範圍內的服務](https://aws.amazon.com/compliance/services-in-scope/)。如需一般資訊，請參閱 [AWS 合規計劃](https://aws.amazon.com/compliance/programs/)。

您可以使用 下載第三方稽核報告 AWS Artifact。如需詳細資訊，請參閱[在 中下載報告 AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html)。

您使用 時的合規責任 AWS Transfer Family 取決於資料的機密性、您公司的合規目標，以及適用的法律和法規。 AWS 提供下列資源來協助合規：
+ [安全與合規快速入門指南](https://aws.amazon.com/quickstart/?awsf.quickstart-homepage-filter=categories%23security-identity-compliance) – 這些部署指南討論架構考量，並提供在其中部署以安全與合規為重心的基準環境的步驟 AWS。
+ [HIPAA 安全與合規架構白皮書 ](https://docs.aws.amazon.com/whitepapers/latest/architecting-hipaa-security-and-compliance-on-aws/introduction.html) – 此白皮書說明公司如何使用 AWS 來建立符合 HIPAA 規範的應用程式。
+ [AWS 合規資源](https://aws.amazon.com/compliance/resources/) – 這組手冊和指南可能適用於您的產業和位置。
+ [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html) – AWS 此服務會評估資源組態符合內部實務、產業準則和法規的程度。
+ [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html) – AWS 此服務提供 內安全狀態的全方位檢視 AWS ，可協助您檢查是否符合安全產業標準和最佳實務。

# 中的彈性 AWS Transfer Family
<a name="disaster-recovery-resiliency"></a>

 AWS 全球基礎設施是以 AWS 區域和可用區域為基礎建置。 AWS 區域提供多個實體分隔和隔離的可用區域，這些可用區域以低延遲、高輸送量和高備援聯網連接。透過可用區域，您所設計與操作的應用程式和資料庫，就能夠在可用區域之間自動容錯移轉，而不會發生中斷。可用區域的可用性、容錯能力和擴充能力，均較單一或多個資料中心的傳統基礎設施還高。

AWS Transfer Family 支援最多 3 個可用區域，並由 自動擴展、備援機群支援您的連線和傳輸請求。

對於所有 Transfer Family 端點：
+  可用區域層級備援內建在 服務中。
+ 每個 AZ 都有備援機群。
+ 此備援會自動提供。

**注意**  
對於虛擬私有雲端 (VPC) 中的端點，可以提供單一子網路。不過，我們建議您在 VPC 內的多個可用區域中建立端點，以降低在可用區域中斷期間服務中斷的風險。

**另請參閱**
+ 如需如何在 VPC 中建立 Transfer Family 伺服器的詳細資訊，請參閱 [在虛擬私有雲端中建立伺服器](create-server-in-vpc.md)。
+ 如需 AWS 區域 和可用區域的詳細資訊，請參閱 [AWS 全球基礎設施](https://aws.amazon.com/about-aws/global-infrastructure/)。
+ 如需如何使用以延遲為基礎的路由來建置更高備援和將網路延遲降至最低的範例，請參閱部落格文章[將 AWS Transfer Family 伺服器的網路延遲降至最低](https://aws.amazon.com/blogs/storage/minimize-network-latency-with-your-aws-transfer-for-sftp-servers/)。

# 在 VPC 和 AWS Transfer Family APIs之間建立私有連線
<a name="vpc-api-endpoints"></a>

您可以透過建立採用 [AWS PrivateLink](https://aws.amazon.com/privatelink/) 技術的*介面 VPC 端點*，在 VPC 和 AWS Transfer Family APIs 之間建立私有連線。您可以像在 VPC 中一樣存取 AWS Transfer Family APIs，無需使用網際網路閘道、NAT 裝置、VPN 連接或 AWS Direct Connect 連接。VPC 中的執行個體不需要公有 IP 地址，即能與 AWS Transfer Family API 通訊。​

我們會在您為介面端點啟用的每個子網中建立端點網路介面。如需詳細資訊，請參閱《 [AWS PrivateLink 指南》中的透過 PrivateLink 存取 AWS 服務](https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-access-aws-services.html)。 *AWS PrivateLink * 在為 AWS Transfer Family APIs 設定介面 VPC 端點之前，請檢閱 *AWS PrivateLink 指南*中的[考量事項](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#considerations-interface-endpoints)。

## 使用 VPC 端點政策控制存取
<a name="vpc-endpoint-considerations"></a>

根據預設，允許透過端點完整存取 AWS Transfer Family APIs。您可以使用 VPC 端點政策控制對介面端點的存取。您可以將端點政策連接至控制 API AWS Transfer Family APIs VPC 端點。此政策會指定下列資訊：
+ 可執行動作的**委託人**。
+ 可執行**的動作**。
+ 可以對其執行動作**的資源**。

如需詳細資訊，請參閱 *Amazon VPC 使用者指南*中的[使用 VPC 端點控制對服務的存取](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html)。

以下是 AWS Transfer Family APIs 端點政策的範例。連接至端點時，此政策會授予所有資源上所有 AWS Transfer Family APIs動作的存取權，但已標記索引鍵 `Environment` 和值 的 資源除外`Test`。

```
{
    "Statement": [{
        "Effect": "Deny",
        "Action": "transfer:StartFileTransfer",
        "Principal": "*",
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "aws:ResourceTag/Environment": "Test"
            }
        }
    }, {
        "Effect": "Allow",
        "Action": "transfer:*",
        "Principal": "*",
        "Resource": "*"
    }]
}
```

## 建立介面 VPC 端點 AWS Transfer Family APIs
<a name="create-vpc-endpoint"></a>

您可以使用 Amazon VPC 主控台或 AWS 命令列界面 () 來建立適用於 AWS Transfer Family APIs 的 VPC 端點AWS CLI。如需詳細資訊，請參閱 *AWS PrivateLink 指南*中的[建立 VPC 端點](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws)。

使用下列其中一個服務名稱建立 VPC 端點 AWS Transfer Family APIs：
+ `com.amazonaws.region.transfer`
+ `com.amazonaws.region.transfer-fips` — 建立符合聯邦資訊處理標準 (FIPS) 出版物 140-3 美國政府標準的介面 VPC 端點。

如果您為端點啟用私有 DNS，您可以使用區域的預設 DNS 名稱向 AWS Transfer Family APIs 提出 API 請求，例如 `transfer.us-east-1.amazonaws.com`。

# 中的基礎設施安全 AWS Transfer Family
<a name="infrastructure-security"></a>

作為受管服務， AWS Transfer Family 受到 AWS 全球網路安全的保護。如需 AWS 安全服務以及 如何 AWS 保護基礎設施的相關資訊，請參閱[AWS 雲端安全](https://aws.amazon.com/security/)。若要使用基礎設施安全的最佳實務設計您的 AWS 環境，請參閱*安全支柱 AWS Well-Architected Framework* 中的[基礎設施保護](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html)。

您可以使用 AWS 發佈的 API 呼叫， AWS Transfer Family 透過網路存取 。使用者端必須支援下列專案：
+ Transport Layer Security (TLS)。我們需要 TLS 1.2 並建議使用 TLS 1.3。
+ 具備完美轉送私密(PFS)的密碼套件，例如 DHE (Ephemeral Diffie-Hellman)或 ECDHE (Elliptic Curve Ephemeral Diffie-Hellman)。現代系統(如 Java 7 和更新版本)大多會支援這些模式。

## 避免將 NLBs和 NATs放在 AWS Transfer Family 伺服器前面
<a name="nlb-considerations"></a>

**注意**  
使用 FTP 和 FTPS 通訊協定設定的伺服器只允許使用 VPC 的組態：沒有可用於 FTP/FTPS 的公有端點。

許多客戶設定 Network Load Balancer (NLB) 將流量路由到其 AWS Transfer Family 伺服器。他們通常會這麼做，因為他們在 AWS 提供方法從 VPC 內部和網際網路存取伺服器，或支援網際網路上的 FTP。此組態不僅會增加客戶的成本，還可能導致其他問題，我們將在本節中說明。

當用戶端從企業防火牆後方的客戶私有網路連線時，NAT 閘道是強制性元件。不過，您應該知道，當許多用戶端位於相同的 NAT 閘道之後，這可能會影響效能和連線限制。如果從用戶端到 FTP 或 FTPS 伺服器的通訊路徑中有 NLB 或 NAT，則伺服器無法準確識別用戶端的 IP 地址，因為 只會 AWS Transfer Family 看到 NLB 或 NAT 的 IP 地址。

如果您使用的是 NLB 後方 Transfer Family 伺服器的組態，建議您移至 VPC 端點並使用彈性 IP 地址，而不是使用 NLB。使用 NAT 閘道時，請注意以下所述的連線限制。

如果您使用的是 FTPS 通訊協定，則此組態不僅會降低您稽核誰存取您伺服器的能力，還會影響效能。 AWS Transfer Family 會使用來源 IP 地址將您的連線分片到我們的資料平面。對於 FTPS，這表示與 10，000 個同時連線不同，通訊路由上具有 NLB 或 NAT 閘道的 Transfer Family 伺服器僅限於 300 個同時連線。

雖然我們建議避免在 AWS Transfer Family 伺服器前面使用 Network Load Balancer，但如果您的 FTP 或 FTPS 實作在來自用戶端的通訊路由中需要 NLB 或 NAT，請遵循下列建議：
+ 對於 NLB，請使用連接埠 21 進行運作狀態檢查，而不是連接埠 8192-8200。
+ 對於 AWS Transfer Family 伺服器，請設定 來啟用 TLS 工作階段恢復`TlsSessionResumptionMode = ENFORCED`。
**注意**  
這是建議的模式，因為它提供增強的安全性：  
要求用戶端對後續連線使用 TLS 工作階段恢復。
透過確保一致的加密參數，提供更強大的安全性保證。
有助於防止潛在的降級攻擊。
保持符合安全標準，同時最佳化效能。
+ 如果可能，請遷移離開使用 NLB，以充分利用 AWS Transfer Family 效能和連線限制。

如需 NLB 替代方案的其他指引，請透過 AWS Support 聯絡 AWS Transfer Family 產品管理團隊。如需改善安全狀態的詳細資訊，請參閱部落格文章 [六個改善 AWS Transfer Family 伺服器安全性的秘訣](https://aws.amazon.com/blogs/security/six-tips-to-improve-the-security-of-your-aws-transfer-family-server/)。

## VPC 連線基礎設施安全性
<a name="vpc-connectivity-infrastructure-security"></a>

具有 VPC 輸出類型的 SFTP 連接器透過網路隔離和私有連線提供增強的基礎設施安全性：

### 網路隔離的優點
<a name="network-isolation-benefits"></a>
+ **私有網路流量**：私有 SFTP 伺服器的所有連接器流量都會保留在您的 VPC 中，絕不會周遊公有網際網路。
+ **控制輸出**：對於透過 VPC 存取的公有端點，流量會透過 NAT 閘道路由，讓您控制輸出 IP 地址和網路政策。
+ **VPC 安全控制**：利用現有的 VPC 安全群組、網路 ACLs 和路由表來控制連接器網路存取。
+ **混合連線**：透過已建立的 VPN 或 Direct Connect 連線存取內部部署 SFTP 伺服器，無需額外的網際網路暴露。

### 資源閘道安全性考量事項
<a name="resource-gateway-security"></a>

資源閘道提供跨 VPC 資源存取的安全輸入點：
+ **異地同步備份部署**：資源閘道需要至少兩個可用區域中的子網路，以實現高可用性和容錯能力。
+ **安全群組控制**：設定安全群組以限制只能從授權來源存取 SFTP 連接埠 （通常是連接埠 22)。
+ **私有子網路置放**：連線至私有 SFTP 伺服器以維持網路隔離時，在私有子網路中部署資源閘道。
+ **連線限制**：每個資源閘道支援最多 350 個並行連線，以及 TCP 連線的 350 秒閒置逾時。

# 新增 Web 應用程式防火牆
<a name="web-application-firewall"></a>

AWS WAF 是一種 Web 應用程式防火牆，可協助保護 Web 應用程式和 APIs免受攻擊。您可以使用它來設定一組稱為 *Web 存取控制清單* (Web ACL) 的規則，根據您定義的可自訂 Web 安全規則和條件來允許、封鎖或計數 Web 請求。如需詳細資訊，請參閱[使用 AWS WAF 來保護您的 APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-control-access-aws-waf.html)。

**若要新增 AWS WAF**

1. 在以下網址開啟 API Gateway 主控台：[https://console.aws.amazon.com/apigateway/](https://console.aws.amazon.com/apigateway/)。

1. 在 **APIs**導覽窗格中，然後選擇您的自訂身分提供者範本。

1. 選擇 **Stages** (階段)。

1. 在 **Stages (階段)** 窗格中，選擇階段的名稱。

1. 在 **Stage Editor (階段編輯器)** 窗格中，選擇 **Settings (設定)** 標籤。

1. 執行以下任意一項：
   + 在 **Web Application Firewall (WAF)** 下，針對 **Web ACL**，選擇您要與此階段建立關聯的 Web ACL。
   + 如果您需要的 Web ACL 不存在，則需要執行下列動作來建立一個：

     1. 選擇**建立 Web ACL**。

     1. 在 AWS WAF 服務首頁上，選擇**建立 Web ACL**。

     1. 在 **Web ACL 詳細資訊**中，針對**名稱**輸入 Web ACL 的名稱。

     1. 在**規則**中，選擇**新增規則**，然後選擇**新增我自己的規則和規則群組**。

     1. 針對**規則類型**，選擇 IP 集以識別 IP 地址的特定清單。

     1. 在**規則**中，輸入規則的名稱。

     1. 針對 **IP 集**，選擇現有的 IP 集。若要建立 IP 集，請參閱[建立 IP 集](https://docs.aws.amazon.com/waf/latest/developerguide/waf-ip-set-creating.html)。

     1. 若要**使用 IP 地址做為原始地址**，請在 **標頭中選擇 IP 地址**。

     1. 針對**標頭欄位名稱**，輸入 `SourceIP`。

     1. 針對**標頭內的位置**，選擇**第一個 IP 地址**。

     1. 對於**遺失 IP 地址的備用**，根據您希望如何處理標頭中的無效 （或遺失） IP 地址，選擇相符****或不相符。 ** **

     1. 針對**動作**，選擇 IP 集的動作。

     1. 針對**不符合任何規則之請求的預設 Web ACL 動作**，選擇**允許**或**封鎖**，然後按一下**下一步**。

     1. 對於步驟 4 和 5，選擇**下一步**。

     1. 在**檢閱和建立**中，檢閱您的選擇，然後選擇**建立 Web ACL**。

1. 選擇 **Save Changes** (儲存變更)。

1. 選擇**資源**。

1. 針對**動作**，選擇**部署 API**。

 如需有關使用 AWS Web 應用程式防火牆的 Transfer Family 安全程度的資訊，請參閱 AWS 儲存部落格中的[使用 AWS 應用程式防火牆和 Amazon API Gateway 保護 Transfer Family](https://aws.amazon.com/blogs/storage/securing-aws-transfer-family-with-aws-web-application-firewall-and-amazon-api-gateway/)。

# 預防跨服務混淆代理人
<a name="confused-deputy"></a>

混淆代理人問題屬於安全性議題，其中沒有執行動作許可的實體可以強制具有更多許可的實體執行該動作。在 中 AWS，跨服務模擬可能會導致混淆代理人問題。在某個服務 (*呼叫服務*) 呼叫另一個服務 (*被呼叫服務*) 時，可能會發生跨服務模擬。可以操縱呼叫服務，以使用其許可來對其他客戶的資源採取不應具有存取許可的方式。為了預防這種情況， AWS 提供的工具可協助您保護所有服務的資料，而這些服務主體已獲得您帳戶中資源的存取權。如需此問題的詳細說明，請參閱[《IAM 使用者指南》中的混淆代理人問題](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html)。 **

我們建議在資源政策中使用 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)和 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)全域條件內容金鑰，以限制 AWS Transfer Family 對資源具有的許可。如果同時使用全域條件內容金鑰，則在相同政策陳述式中使用 `aws:SourceAccount` 值和 `aws:SourceArn` 值中的帳戶時，必須使用相同的帳戶 ID。

防範混淆代理人問題的最有效方法是精確使用您允許的資源 Amazon Resource Name (ARN) 資源。如果您要指定多個資源，請將`aws:SourceArn`全域內容條件金鑰與萬用字元 (`*`) 用於 ARN 的未知部分。例如 `arn:aws:transfer::region::account-id:server/*`。

AWS Transfer Family 使用以下類型的角色：
+ **使用者角色** – 允許服務受管使用者存取必要的 Transfer Family 資源。 AWS Transfer Family 會在 Transfer Family 使用者 ARN 的內容中擔任此角色。
+ **存取角色** – 僅提供正在傳輸的 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 的內容中擔任此角色。

如需詳細資訊，請參閱「 IAM 使用者指南」**中的 [IAM 中的政策和許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)。

**注意**  
在下列範例中，將每個*使用者輸入預留位置*取代為您自己的資訊。

**注意**  
在我們的範例中，我們同時使用 `ArnLike`和 `ArnEquals`。它們的功能相同，因此您可以在建構政策時使用。Transfer Family 文件會在條件包含萬用字元`ArnLike`時使用，`ArnEquals`並指出完全相符的條件。

## AWS Transfer Family 使用者角色跨服務混淆代理人預防
<a name="user-role-cross-service"></a>

下列範例政策允許帳戶中任何伺服器的任何使用者擔任該角色。

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Principal": {
                "Service": "transfer.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:transfer:us-east-1:123456789012:user/*"
                }
            }
        }
    ]
}
```

下列範例政策允許特定伺服器的任何使用者擔任該角色。

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": "transfer.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "123456789012"
        },
        "ArnEquals": {
          "aws:SourceArn": "arn:aws:transfer:us-east-1:123456789012:user/server-id/*"
        }
      }
    }
  ]
}
```

下列範例政策允許特定伺服器的特定使用者擔任該角色。

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Principal": {
                "Service": "transfer.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:transfer:us-east-1:123456789012:user/server-id/user-name"
                }
            }
        }
    ]
}
```

## AWS Transfer Family 工作流程角色跨服務混淆代理人預防
<a name="workflow-role-cross-service"></a>

下列範例政策允許 帳戶中的任何工作流程擔任該角色。

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Principal": {
                "Service": "transfer.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:transfer:us-west-2:111122223333:workflow/*"
                }
            }
        }
    ]
}
```

下列範例政策允許特定工作流程擔任該角色。

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Principal": {
                "Service": "transfer.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:transfer:us-west-2:111122223333:workflow/workflow-id"
                }
            }
        }
    ]
}
```

## AWS Transfer 系列連接器角色跨服務混淆代理人預防
<a name="connector-role-cross-service"></a>

下列範例政策允許 帳戶中的任何連接器擔任該角色。

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Principal": {
                "Service": "transfer.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:transfer:us-east-1:123456789012:connector/*"
                }
            }
        }
    ]
}
```

下列範例政策允許特定連接器擔任該角色。

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Principal": {
                "Service": "transfer.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:transfer:us-east-1:123456789012:connector/connector-id"
                }
            }
        }
    ]
}
```

## AWS Transfer 系列記錄和調用角色跨服務混淆代理人預防
<a name="logging-role-cross-service"></a>

**注意**  
下列範例可用於記錄和調用角色。  
在這些範例中，如果您的伺服器沒有連接任何工作流程，您可以移除工作流程的 ARN 詳細資訊。

下列範例記錄/調用政策允許帳戶中的任何伺服器 （和工作流程） 擔任該角色。

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowAllServersWithWorkflowAttached",
            "Effect": "Allow",
            "Principal": {
                "Service": "transfer.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333"
                },
                "ArnLike": {
                   "aws:SourceArn": [
                     "arn:aws:transfer:us-west-2:111122223333:server/*",
                     "arn:aws:transfer:us-west-2:111122223333:workflow/*"
                   ]
                }
            }
        }
    ]
}
```

下列範例記錄/調用政策允許特定伺服器 （和工作流程） 擔任該角色。

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowSpecificServerWithWorkflowAttached",
            "Effect": "Allow",
            "Principal": {
                "Service": "transfer.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333"
                },
                "ArnEquals": {
                   "aws:SourceArn": [
                       "arn:aws:transfer:us-west-2:111122223333:server/server-id",
                       "arn:aws:transfer:us-west-2:111122223333:workflow/workflow-id"
                   ]
                }
            }
        }
    ]
}
```

# AWS AWS Transfer Family 的 受管政策
<a name="security-iam-awsmanpol"></a>

若要新增許可給使用者、群組和角色，使用 AWS 受管政策比自行撰寫政策更容易。[建立 AWS Identity and Access Management (IAM) 客戶受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)需要時間和專業知識，為您的團隊提供他們所需的許可。若要快速開始使用，您可以使用我們的 AWS 受管政策。這些政策涵蓋常見的使用案例，並可在您的 AWS 帳戶中使用。如需 AWS 受管政策的更多相關資訊，請參閱「IAM 使用者指南」**中的 [AWS 受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)。如需所有 AWS 受管政策的詳細清單，請參閱 [AWS 受管政策參考指南](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/about-managed-policy-reference.html)。

AWS 服務會維護和更新 AWS 受管政策。您無法變更 AWS 受管政策中的許可。服務偶爾會在 AWS 受管政策中新增其他許可以支援新功能。此類型的更新會影響已連接政策的所有身分識別 (使用者、群組和角色)。當新功能啟動或新操作可用時，服務很可能會更新 AWS 受管政策。服務不會從 AWS 受管政策移除許可，因此政策更新不會破壞您現有的許可。

此外， AWS 支援跨多個 服務之任務函數的受管政策。例如， `ReadOnlyAccess` AWS 受管政策提供所有 AWS 服務和資源的唯讀存取權。當服務啟動新功能時， 會為新操作和資源 AWS 新增唯讀許可。如需任務職能政策的清單和說明，請參閱 *IAM 使用者指南*中[有關任務職能的AWS 受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)。

## AWS 受管政策：AWSTransferConsoleFullAccess
<a name="security-iam-awsmanpol-transferconsolefullaccess"></a>

此`AWSTransferConsoleFullAccess`政策透過 AWS 管理主控台提供 Transfer Family 的完整存取權。如需詳細資訊，請參閱 [AWS Transfer Family 的服務連結角色](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSTransferConsoleFullAccess.html)。

## AWS 受管政策：AWSTransferFullAccess
<a name="security-iam-awsmanpol-transferfullaccess"></a>

 此`AWSTransferFullAccess`政策提供 Transfer Family 服務的完整存取權。如需詳細資訊，請參閱 [AWS Transfer Family 的服務連結角色](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSTransferFullAccess.html)。

## AWS 受管政策：AWSTransferLoggingAccess
<a name="security-iam-awsmanpol-transferloggingaccess"></a>

 `AWSTransferLoggingAccess` 政策授予 AWS Transfer Family 建立日誌串流和群組的完整存取權，並將日誌事件放入您的帳戶。如需詳細資訊，請參閱 [AWS Transfer Family 的服務連結角色](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSTransferLoggingAccess.html)。

## AWS 受管政策：AWSTransferReadOnlyAccess
<a name="security-iam-awsmanpol-transferreadonlyaccess"></a>

 此`AWSTransferReadOnlyAccess`政策提供 Transfer Family 服務的唯讀存取權。如需詳細資訊，請參閱 [AWS Transfer Family 的服務連結角色](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSTransferReadOnlyAccess.html)。

## AWS 將系列更新轉移至 AWS 受管政策
<a name="security-iam-awsmanpol-updates"></a>

檢視自 Transfer Family 開始追蹤這些變更以來， AWS 受 AWS 管政策更新的詳細資訊。如需有關此頁面變更的自動提醒，請訂閱 [的文件歷史記錄 AWS Transfer Family](doc-history.md) 頁面的 RSS 摘要。




| 變更 | 描述 | Date | 
| --- | --- | --- | 
|   文件更新   |  新增每個 Transfer Family 受管政策的區段。  |  2022 年 1 月 27 日  | 
|   [AWSTransferReadOnlyAccess](#security-iam-awsmanpol-transferreadonlyaccess) – 更新現有政策   |  AWS Transfer Family 新增了允許政策讀取 的許可 AWS Managed Microsoft AD。  |  2021 年 9 月 30 日  | 
|  AWS Transfer Family 已開始追蹤變更  |  AWS Transfer Family 已開始追蹤其 AWS 受管政策的變更。  | 2021 年 6 月 15 日 | 