

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

# Amazon Cognito 的資料保護
<a name="data-protection"></a>

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

基於資料保護目的，我們建議您保護 AWS 帳戶登入資料，並使用 AWS Identity and Access Management (IAM) 設定個別使用者帳戶。如此一來，每個使用者都只會獲得授予完成其任務所必須的許可。我們也建議您採用下列方式保護資料：
+ 每個帳戶均要使用多重要素驗證 (MFA)。
+ 使用 SSL/TLS 與 AWS 資源通訊。
+ 使用 設定 API 和使用者活動記錄 AWS CloudTrail。
+ 使用 AWS 加密解決方案，以及 服務中的所有 AWS 預設安全控制。
+ 使用進階的受管安全服務 (例如 Amazon Macie)，協助探索和保護儲存在 Simple Storage Service (Amazon Simple Storage Service (Amazon S3)) 的個人資料。

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

## 資料加密
<a name="data-encryption"></a>

資料加密通常分為兩類：靜態加密和傳輸中加密。

**靜態加密**

Amazon Cognito 中的資料會依照業界標準進行靜態加密。

Amazon Cognito 支援使用[可搜尋加密](https://docs.aws.amazon.com/database-encryption-sdk/latest/devguide/searchable-encryption.html)的使用者屬性搜尋中個人身分識別資訊的機密性、完整性和可用性。這些雜湊型訊息驗證碼 (HMAC) 函數針對使用者集區資料集進行效能最佳化，在純文字和使用者屬性的加密值之間進行映射。Amazon Cognito 會使用加密使用者集區的 KMS 金鑰來計算 HMAC 值。此保護適用於下列屬性：
+ sub
+ email
+ phone\$1number
+ given\$1name
+ family\$1name
+ name
+ 使用者名稱
+ preferred\$1username
+ cognito：user\$1status

**傳輸中加密**

Amazon Cognito 是受管服務，受到 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 呼叫，透過網路存取 Amazon Cognito。使用者端必須支援下列專案：
+ Transport Layer Security (TLS)。我們需要 TLS 1.2 並建議使用 TLS 1.3。
+ 具備完美轉送私密(PFS)的密碼套件，例如 DHE (Ephemeral Diffie-Hellman)或 ECDHE (Elliptic Curve Ephemeral Diffie-Hellman)。現代系統(如 Java 7 和更新版本)大多會支援這些模式。

Amazon Cognito 使用者集區和身分集區具有經過 IAM 驗證、未驗證和權杖授權的 API 操作。未經驗證和權杖授權的 API 操作旨在供您的客戶 (應用程式的最終用戶) 使用。未經驗證及權杖授權的 API 操作於靜態及傳輸中加密。如需詳細資訊，請參閱[依授權模型分組的 API 操作清單](authentication-flows-public-server-side.md#user-pool-apis-auth-unauth)。

**注意**  
Amazon Cognito 會在內部加密您的內容，且不支援客戶提供的金鑰。