

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

# 多重租用戶應用程式最佳實務
<a name="multi-tenant-application-best-practices"></a>

Amazon Cognito 使用者集區可搭配多租用戶應用程式運作，這些應用程式會產生必須保留在 Amazon Cognito 配額內的請求量。若要在客戶群成長時擴展此容量，您可以[購買額外的配額容量](quotas.md#managing-request-rate-quotas.title)。

**注意**  
Amazon Cognito [配額](https://docs.aws.amazon.com/cognito/latest/developerguide/limits.html)會依 AWS 帳戶 和 套用 AWS 區域。應用程式中的所有租用戶會共用這些配額。檢閱 Amazon Cognito 服務配額，並確保配額符合您應用程式中的預期數量和預期租用戶數量。

本節說明您可以實作的方法，以在相同 區域中的 Amazon Cognito 資源與 之間分隔租用戶 AWS 帳戶。您也可以將租用戶分割到多個 AWS 帳戶 或 區域，並為每個租用戶提供自己的配額。多區域多租戶的其他優點包括最高層級的隔離、全球分散式使用者最短的網路傳輸時間，以及組織中現有的分發模型。

單一區域多租戶也可以為您的客戶和管理員帶來優勢。

下列清單涵蓋具有共用資源的多租戶的一些優點。多租戶的優點

**常用使用者目錄**  
多租戶支援客戶在多個應用程式中擁有帳戶的模型。您可以將[第三方供應商的身分連結至](cognito-user-pools-identity-federation.md#cognito-user-pools-identity-federation.title)單一一致的使用者集區設定檔。如果使用者設定檔對其租用戶是唯一的，則具有單一使用者集區的任何多租用戶策略都有一個使用者管理進入點。

**常見安全性**  
在共用使用者集區中，您可以為安全性建立單一標準，並將相同的[威脅防護](cognito-user-pool-settings-threat-protection.md#cognito-user-pool-settings-threat-protection.title)、[多重要素驗證](user-pool-settings-mfa.md#user-pool-settings-mfa.title) (MFA) 和[AWS WAF](user-pool-waf.md#user-pool-waf.title)標準套用至所有租戶。由於 AWS WAF Web ACL 必須與您建立關聯的資源 AWS 區域 位於相同的 中，因此多租用戶會提供複雜資源的共用存取權。當您想要在多區域 Amazon Cognito 應用程式中維持一致的安全組態時，您必須套用在資源之間複寫組態的操作標準。

**常見自訂**  
您可以使用 自訂使用者集區和身分集區 AWS Lambda。使用者集區中的 [Lambda 觸發](cognito-user-pools-working-with-lambda-triggers.md#cognito-user-pools-working-with-lambda-triggers.title)組態和身分集區中的 [Amazon Cognito 事件](cognito-events.md#cognito-events.title)可能會變得複雜。Lambda 函數必須與使用者集區或身分集區 AWS 區域 位於相同的 中。共用 Lambda 函數可以強制執行自訂身分驗證流程、使用者遷移、權杖產生和區域內其他函數的標準。

**常見訊息**  
Amazon Simple Notification Service (Amazon SNS) 需要區域中的其他組態，才能傳送 [SMS 訊息](user-pool-sms-settings.md#user-pool-sms-settings.title)給使用者。您可以使用 Amazon Simple Email Service (Amazon SES) 驗證的身分和區域內包含的網域[來傳送電子郵件訊息](user-pool-email.md#user-pool-email.title)。  
透過多租用戶，您可以在所有租用戶之間共用此組態和維護開銷。由於並非所有 都提供 Amazon SNS 和 Amazon SES AWS 區域，因此在區域之間分割您的資源需要額外考量。  
當您使用[自訂訊息提供者](user-pool-lambda-custom-sender-triggers.md#user-pool-lambda-custom-sender-triggers.title)時，您可以取得單一 Lambda 函數的*常見自訂，*以管理您的訊息傳遞。

[受管登入](cognito-user-pools-managed-login.md#cognito-user-pools-managed-login.title)會在瀏覽器中設定工作階段 Cookie，以便識別已驗證的使用者。當您在使用者集區中驗證*本機使用者*時，其工作階段 Cookie 會針對相同使用者集區中的所有應用程式用戶端進行驗證。本機使用者僅存在於您的使用者集區目錄中，不會透過外部 IdP 進行聯合。工作階段 Cookie 的有效期為一小時。您無法變更工作階段 Cookie 持續時間。

有兩種方式可以防止使用託管 UI 工作階段 Cookie 跨應用程式用戶端登入。
+ 將您的使用者分隔為每個租戶的使用者集區。
+ 將託管 UI 登入取代為 Amazon Cognito 使用者集區 API 登入。

**Topics**
+ [使用者集區多租戶最佳實務](bp_user-pool-based-multi-tenancy.md)
+ [應用程式用戶端多租戶最佳實務](application-client-based-multi-tenancy.md)
+ [使用者群組多租戶最佳實務](group-based-multi-tenancy.md)
+ [自訂屬性多租戶最佳實務](custom-attribute-based-multi-tenancy.md)
+ [自訂範圍多租戶最佳實務](scope-based-multi-tenancy.md)
+ [多重租用安全建議](multi-tenancy-security-recommendations.md)