Amazon Cognito 的配額 - Amazon Cognito

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

Amazon Cognito 的配額

對於您可在帳戶中執行的操作數目上限,Amazon Cognito 有預設配額 (先前稱為限制)。Amazon Cognito 也具有 Amazon Cognito 資源數目上限和大小的配額。

每個 Amazon Cognito 配額代表一合一的請求數量 AWS 區域 上限。 AWS 帳戶例如,您的應用程式可以針對美國東部 (維吉尼亞北部) 中所有使用者集區的 UserAuthentication 操作提出最多預設配額 (RPS) 速率的 API 請求。您在亞太區域 (東京) 的應用程式可以針對自己區域中的所有使用者集區產生相同數量的請求。 AWS 一次只能在一個地區授予配額增加要求。在美國東部 (維吉尼亞北部) 成功增加配額,不會影響您在亞太區域 (東京) 的最大請求率。

了解 API 請求率配額

配額分類

Amazon Cognito 會強制執行 API 作業的最高請求率。如需 Amazon Cognito 提供之 API 操作的詳細資訊,請參閱 Amazon Cognito API 和端點參考 對於使用者集區,這些操作會分為常見使用案例類別,例如 UserAuthenticationUserCreation。如需按類別分類的使用者集區 API 作業清單,請參閱Amazon Cognito 使用者集區 API 操作類別和請求率配額

在 Ser vice Quotas 主控台中,您可以按類別使用者集區和身分集區來追蹤配額使用情況。如果 Amazon Cognito 使用者集區的請求率或超過配額,則可以購買額外容量。您可以在 Service Quotas 主控台中,依類別追蹤使用者集區配額使用情況,以及購買配額增加情況。

操作配額的定義為同一類別中,所有操作的每秒請求 (RPS) 數目上限。Amazon Cognito 使用者集區服務會將配額套用於每個類別中的所有操作。例如,UserCreation 類別包括四個操作:SignUpConfirmSignUpAdminCreateUserAdminConfirmSignUp。它會分配到 50 個 RPS 的合併配額。若同時進行多個操作,此類別中的每個操作最多可呼叫 50 個 RPS (單獨或合併計算)。

注意

類別配額僅適用於使用者集區。Amazon Cognito 會將每個身分集區配額套用至單一操作。對於每個類別和每個操作的請求率配額, AWS 測量來自您 AWS 帳戶 在一個區域中所有用戶集區或身份集區的所有請求的總計速率。

適用特殊請求率處理的 Amazon Cognito 使用者集區 API 操作

操作配額是針對類別層級的合併請求總數計算並強制套用,但 AdminRespondToAuthChallengeRespondToAuthChallenge 操作除外,這兩者適用特殊處理規則。

UserAuthentication類別包括 Amazon Cognito 使用者集區 API 中的四項操作:AdminInitiateAuthInitiateAuthAdminRespondToAuthChallenge、和RespondToAuthChallenge。此外,託管 UI 中的使用者驗證也有助於此配額。InitiateAuthAdminInitiateAuth 操作會根據每個類別配額計算和強制執行。相符的 RespondToAuthChallengeAdminRespondToAuthChallenge 操作適用另外的配額,是 UserAuthentication 類別限制的三倍。這種提高的配額可滿足您在應用程式中設定的多個驗證挑戰。此配額足以涵蓋大多數使用案例。在您的應用程序對身份驗證挑戰提出最多三個響應後,其他請求將計入UserAuthentication類別配額中。多重要素驗證 (MFA)裝置驗證自訂驗證都是挑戰提示的範例,您可能會設計到使用者集區中。

例如,如果您的UserAuthentication類別配額為 80 RPS,您可以撥打電話RespondToAuthChallengeAdminRespondToAuthChallenge以高達 240 RPS (3* 80 RPS) 的速率撥打電話。如果您的使用者集區提示每個驗證進行四輪挑戰,而每秒有 70 個使用者登入,則總計RespondToAuthChallenge為 280 RPS (70 x 4),這比配額高出 40 個 RPS。額外 40 個 RPS 將新增至 70 個 InitiateAuth 呼叫,使 UserAuthentication 類別的總用量成為 110 (40 + 70) 個 RPS。由於這個值超過設定為 80 RPS 的類別配額,因此 Amazon Cognito 會從您的應用程式調節請求。

每月作用中使用者

Amazon Cognito 計算使用者集區帳單時,會向您收取每個月作用中使用者 (MAU) 的費率。在規劃配額增加請求時,考慮您目前和預計的 MAU 計數。如果在一個日曆月內,存在與該使用者相關的身分操作,則該使用者計為 MAU。使用者處於作用中的活動包括以下內容。

  • 使用者的註冊或管理之建立

  • 登入

  • 登出

  • 使用者帳戶確認或屬性驗證

  • 密碼重設

  • 變更使用者屬性、群組成員資格或 MFA 偏好設定

  • 查詢使用者的詳細屬性

  • 使用者啟用、停用或刪除

注意

用戶的類別查詢詳細屬性包括 API 操作 AdminGetUser,但不包括ListUsers。大型使用者集區中的詳細 user-by-user 查詢可能會對您的 AWS 帳單產生重大影響。為避免超額費用,請使用外部資料庫收集使用者資料ListUsers或將使用者資訊儲存在外部資料

管理 API 請求速率配額

確認配額需求

重要

如果您增加、或等類別的 Amazon Cognito 配額 UserAuthentication UserCreationAccountRecovery,您可能需要增加其他 AWS 服務類別的配額。例如,如果這些服務的請求率配額不足,則 Amazon Cognito 使用 Amazon Simple Notification Service (Amazon SNS) 和 Amazon Simple Email Service (Amazon SES) 傳送的訊息可能會失敗。

若要計算配額需求,請決定在特定時段內與您應用程式互動的作用中使用者數量。舉例來說,如果您預期應用程式在八小時內平均有 100 萬個作用中使用者登入,則您必須能每秒平均對 35 個使用者進行身分驗證。

此外,如果您假設使用者工作階段平均為兩個小時,且權杖設定為一小時後過期,則每位使用者必須在此工作階段期間重新整理其權杖一次。於是,支援此負載的 UserAuthentication 類別所需平均配額為 70 個 RPS。

如果您假設 peak-to-average 比率為 3:1,計算八小時期間內使用者登入頻率的差異,則需要 200 RPS 所需的UserAuthentication配額。

注意

如果您為每個使用者動作呼叫多個操作,必須在類別層級加總個別操作呼叫速率。

針對配額限制最佳化請求率

由於提高 API 費率限制會增加帳 AWS 單成本,因此請先考慮調整使用模式,然後再請求提高配額。以下是優化請求率的應用程序體系結構的一些示例。

在退避等候期間後重試

您可以在每次 API 呼叫時擷取錯誤,然後在退避期間後重試。您可以根據業務需求和負載,調整退避演算法。Amazon 開發套件有內建重試邏輯。如需詳細資訊,請參閱建置在其上的工具 AWS。

為經常更新的屬性使用外部資料庫

如果您的應用程式需要多次呼叫使用者集區來讀取或寫入自訂屬性,請使用外部儲存空間。您可以使用偏好的資料庫來存放自訂屬性,或使用快取層在登入期間載入使用者描述檔。您可以在需要時從快取參考此設定檔,而不必從使用者集區重新載入使用者描述檔。

在客戶端驗證 JSON 網絡令牌(JWT)

應用程式必須先驗證 JWT 權杖,才能信任該權杖。您可以在客戶端驗證令牌的簽名和有效性,而無需向用戶池發送 API 請求。驗證權杖後,您可以信任權杖中的宣告,並使用該宣告,而無需發出更多 getUser API 呼叫。如需詳細資訊,請參閱驗證 JSON Web 權杖

使用等候室調節 Web 應用程式的流量

如果您預期在限時事件期間 (例如應試或參加即時活動) 會有大量使用者登入流量,可以使用自我調節機制來最佳化請求流量。例如,您可以設定等候室,讓使用者在工作階段可供使用之前先行等待,以利您在有可用容量時處理請求。如需等候室的參考架構,請參閱 AWS 虛擬等候室解決方案

快取 JWT

重複使用訪問令牌直到它們過期。如需在 API Gateway 中具有權杖快取的範例架構,請參閱快取權杖。而不是生成 API 請求來查詢用戶信息,而是緩存 ID 令牌直到它們過期,並從緩存中讀取用戶屬性。

如需中使用 API 要求率的詳細資訊 AWS,請參閱管理和監控工作負載中的 API 節流。如需最佳化 Amazon Cognito 操作以增加 AWS 帳單成本的相關資訊,請參閱管理成本

追蹤配額使用量

Amazon Cognito 會針對帳戶層級的每 CloudWatch 個 API 操作類別在 Amazon 產生CallCountThrottleCount指標。您可以使用 CallCount 追蹤客戶所發出與類別相關的呼叫總數。您可以使用 ThrottleCount 追蹤與類別相關的調節呼叫總數。您可以使用具 Sum 統計數字的 CallCountThrottleCount 指標,計算一個類別的呼叫總數。如需詳細資訊,請參閱CloudWatch 使用量度

監控服務配額時,使用率是指使用中的服務配額百分比。舉例來說,如果配額值為 200 個資源,其中 150 個資源正在使用中,則使用率為 75%。使用量是指服務配額中使用的資源或操作數量。

透過指標追蹤使用 CloudWatch 量

您可以使用追蹤和收集 Amazon Cognito 使用者集區使用率指標 CloudWatch。 CloudWatch儀表板會顯示您使用的每個項目 AWS 服務 的相關指標。使用 CloudWatch,您可以建立指標警示,以通知您或變更您正在監視的特定資源。如需有關 CloudWatch 指標的詳細資訊,請參閱追蹤您的 CloudWatch 使用量度

透過 Service Quotas 指標追蹤使用率

Amazon Cognito 使用者集區與 Service Quotas 整合,這是一個主控台界面,用於顯示和管理您的服務配額使用情況。在 Service Quotas 主控台中,您可以查詢特定配額的值、檢視監視資訊、要求增加配額或設定 CloudWatch 警示。在您的帳號有效一段時間後,您可以檢視資源使用率圖表。

Amazon Cognito 使用者集區的 Service Quotas 主控台和 Amazon Cognito 身分集區的已套用帳戶層級配額值欄會顯示您目前的配額。「使用」欄會顯示您目前的配額使用率。可調整的 Amazon Cognito 使用者集區 requests-per-second (RPS) 配額會顯示其目前的使用量。「Service Quotas」主控台也可以導覽至 CloudWatch 指標,以進一步查看選取的配額指標。如需在 Service Quotas 主控台中檢視配額的詳細資訊,請參閱檢視 Service Quotas

追蹤每月作用中使用者 (MAU)

使用者集區中的每月作用中使用者 (MAU) 數量會為您的規劃提供重要資料,以提高請求率配額。您可以將 API 請求率與指定時間段內活躍的用戶數進行比較。有了這些知識,您就可以計算應用程式作用中使用者的增加將如何影響使用模式中的配額。例如,假設您在美國西部 (奧勒岡) 的合併應用程式在一個月內產生 200 萬活躍使用者,而且您的UserAuthentication類別偶爾會收到限制錯誤,預設配額為每秒 120 個請求 (RPS)。在上個月,在您成功的廣告活動之前,您擁有 100 萬個 MAU,而您的應用程式從未超過 80 RPS。如果您預計會因為新的電視節目而產生類似的峰值,則可以額外購買 40 RPS,以容納下一百萬名使用者,調整後的配額為 160 RPS。

若要檢視您的 MAU

存取主AWS Billing 控台並檢閱最近的帳單。在「依服務收費」下方,您可以篩選 Cognito,以檢視該帳單週期內 MAU 的明細。

請求提高配額

Amazon Cognito 擁有每秒可在每個 AWS 區域使用者集區和身分集區中執行的最大操作數量的配額。您可以購買可調整的 Amazon Cognito 使用者集區 API 請求率配額的增加金額。透過 Service Quotas 主控台或 Service Quotas API 作業和,檢查您目前的配額ListAWSDefaultServiceQuotas並增加購買額度RequestServiceQuotaIncrease

  • 若要使用 Service Quotas 主控台購買配額增加,請參閱《Service Quotas 使用者指南》中的要求增加 API 額。

  • AWS 目標是在 10 天內完成配額增加要求。不過,有幾項考量可能會導致要求處理時間超過 10 天。例如,某些請求可能需要 Amazon Cognito 佈建額外的硬體容量,而請求數量的季節性增加可能會導致延遲。

  • 如果 Service Quotas 中沒有提供配額,請使用增加服務配額表單

重要

只能增加可調整的配額。您必須購買增加配額容量。如需加價的定價資訊,請參閱 Amazon Cognito 定價。

Amazon Cognito 使用者集區 API 操作類別和請求率配額

由於 Amazon Cognito 對於不同的授權模型具有重疊的 API 操作類別,因此每個操作都屬於一個類別。每個類別都有自己的集區配額,用於所有成員 API 操作,橫跨您帳戶中一個 AWS 區域 的所有使用者集區。您只能請求增加可調整類別配額。如需詳細資訊,請參閱 請求提高配額。配額調整會套用至您帳戶單一區域中的使用者集區。Amazon Cognito 限制某些類別 3 的操作為每個使用者集區每秒 5 個請求 (RPS)。預設配額 (RPS) 還適用於. AWS 帳戶

注意

每個類別的配額測量單位為每月作用中使用者 (MAU) 數量。MAU 少於 200 萬的 AWS 帳戶 可以在預設配額內操作。如果您有少於一百萬個 MAU,而 Amazon Cognito 正在調節請求,請考慮最佳化您的應用程式。如需詳細資訊,請參閱 針對配額限制最佳化請求率

類別操作配額會套用於一個 AWS 區域的使用者集區中所有使用者。Amazon Cognito 也會為您的應用程式可針對一個使用者產生的請求數量維護配額。您必須用下表顯示的方式,限制各使用者 API 請求。

Amazon Cognito 使用者集區各使用者請求率配額

作業 每使用者每秒操作數
讀取使用者描述檔

範例: GetUser, GetDevice

10
寫入使用者描述檔

範例: UpdateUserAttributes, SetUserSettings

10

您必須用下表顯示的方式,限制分類 API 請求。

Amazon Cognito 使用者集區 分類請求率配額

類別 描述 預設配額 (RPS) 可調整
UserAuthentication
驗證 (登入) 使用者的操作。

這些操作受 適用特殊請求率處理的 Amazon Cognito 使用者集區 API 操作 規範。

120
UserCreation 建立或確認 Amazon Cognito 本機使用者的操作。原生使用者是您的 Amazon Cognito 使用者集區直接建立和驗證的使用者。 50
UserFederation

透過第三方身分提供者將使用者聯合 (驗證) 至您 Amazon Cognito 使用者集區的操作。

將 IdP 回應提交至使用者集區聯合端點的操作。產生 IdP 權杖的 OIDC 或社交供應商操作,以及所有 SAML 請求都會計入此配額。 25
UserAccountRecovery 復原使用者帳戶,或者變更或更新使用者密碼的操作。 30
UserRead 從使用者集區擷取使用者的操作。 120
UserUpdate 用來管理使用者和使用者屬性的操作。 25
UserToken 權杖管理操作 120
UserResourceRead 從 Amazon Cognito 擷取使用者資源資訊 (例如記住的裝置或群組成員資格) 的操作。 50
UserResourceUpdate 更新使用者資源資訊 (例如記住的裝置或群組成員資格) 的操作。 25
UserList 傳回使用者清單的操作。 30
UserPoolRead 讀取使用者集區的操作。 15
UserPoolUpdate 建立、更新或刪除使用者集區的操作。 15
UserPoolResourceRead 從使用者集區擷取資源 (例如群組或資源伺服器) 相關資訊的操作。3 20
UserPoolResourceUpdate 修改使用者集區中資源 (例如群組或資源伺服器) 的操作。3 15
UserPoolClientRead 擷取使用者集區用戶端相關資訊的操作。3 15
UserPoolClientUpdate 建立、更新和刪除使用者集區用戶端的操作。3 15
ClientAuthentication

client_credentials 會向權杖端點授予類型請求。

產生認證的作業,以用於授權 machine-to-machine 要求 150

1 A RespondToAuthChallengeAdminRespondToAuthChallenge回應,其中ChallengeName一個NEW_PASSWORD_REQUIRED計入UserAccountRecovery類別。所有其他挑戰回應都會計入該UserAuthentication類別。

2 登入期間的每個託管 UI 作業都會向配額提供一個要求。例如,登入並提供 MFA 程式碼的使用者會提供 2 個請求。授權代碼授予中的代幣兌換需要以與您在類別中的配額相同的比率進行額外配額分配。UserAuthentication

3 此分類中的任何個別作業都有限制,可防止以高於 5 RPS 的速率呼叫單一使用者集區的作業。

Amazon Cognito 身分集區 (聯合身分) API 操作請求率配額

作業 描述 預設配額 (RPS)1 可調整 配額增加資格
GetId 從身分集區擷取身分 ID。 25 請聯絡您的帳戶團隊。
GetOpenIdToken 在傳統工作流程中從使用者集區擷取 OpenID 權杖。 200 請聯絡您的帳戶團隊。
GetCredentialsForIdentity 從增強型工作流程中的身分集區擷取 AWS 認證。 200 請聯絡您的帳戶團隊。
GetOpenIdTokenForDeveloperIdentity 在開發人員工作流程中從身分集區擷取 OpenID 權杖。 50 請聯絡您的帳戶團隊。
ListIdentities 從身分池擷取身分 ID 清單。 5 請聯絡您的帳戶團隊。
DeleteIdentities 從身分池集區刪除一個或多個已註冊的身分。 10 請聯絡您的帳戶團隊。
TagResource 將索引標籤套用至身分池。 5 請聯絡您的帳戶團隊。
UntagResource 從身分池移除索引標籤。 5 請聯絡您的帳戶團隊。
ListTagsForResource 顯示套用至身分池的索引標籤清單。 10 請聯絡您的帳戶團隊。

1 預設配額是您的任 AWS 區域 一身分識別集區的最低要求率配額 AWS 帳戶。在某些地區,您的 RPS 配額可能會更高。

資源數量和大小的配額

資源配額是 Amazon Cognito 中資源、輸入欄位、持續時間和其他雜項功能的最大數量或大小。

您可以在 Service Quotas 主控台或從增加服務限制表單請求調整某些資源配額。若要從 Service Quotas 主控台要求配額,請參閱《Service Quotas 使用者指南》中的要求增加配額。如果 Service Quotas 中沒有提供配額,請使用增加服務配額表單

注意

AWS 帳戶 層級的資源配額 (例如每個 AWS 區域區域的使用者集區) 適用於每個區域中的 Amazon Cognito 資源。例如,您可以在美國東部 (維吉尼亞北部) 有 1,000 個使用者集區,在歐洲 (斯德哥爾摩) 有另外 1,000 個使用者集區。

下表說明預設資源配額,以及它們是否可調整。

Amazon Cognito 使用者集區資源配額

資源 配額 可調整 最大配額
每個使用者集區的應用程式用戶端數量 1,000 10,000
每個區域的使用者集區數量 1,000 10,000
每個使用者集區的身分提供者數量 300 1,000
每個使用者集區的資源伺服器數量 25 300
每個使用者集區的使用者數量 40,000,000 請聯絡您的帳戶團隊。
產生權杖前 Lambda 觸發程序中的合併變更總數1 5,000 請聯絡您的帳戶團隊。
每個使用者集區的自訂屬性數量 50 N/A
每個屬性的字元數 2048 個位元組 N/A
自訂屬性名稱的字元數 20 N/A
密碼政策規定的密碼字元數下限 6–99 N/A
每日傳送的電子郵件訊息 AWS 帳戶2 50 N/A
電子郵件主旨中的字元數 140 N/A
電子郵件訊息中的字元數 20,000 N/A
簡訊驗證訊息中的字元數 140 N/A
密碼中的字元數 256 N/A
身分提供者名稱中的字元數 32 N/A
每個身分提供者的識別符數量 50 N/A
連結至使用者的身分數量 5 N/A
每個應用程式用戶端的回呼 URL 數量 100 N/A
每個應用程式用戶端的登出 URL 數量 100 N/A
每個資源伺服器的範圍數量 100 N/A
每個應用程式用戶端的範圍數量 50 N/A
每個帳戶的自訂網域 4 N/A
每個使用者可隸屬的群組數量 100 N/A
每個使用者集區的群組數量 10,000 N/A

1 來自產生權杖前 Lambda 觸發程序的權杖中可能會遇到此配額。一個事務中現有和添加的聲明數量以及訪問權杖和身份令牌中的範圍必須加起來小於或等於此配額的數字。抑制的宣告和範圍不計入此配額。

2 此配額僅適用於為 Amazon Cognito 使用者集區使用預設的電子郵件功能。若要獲得更高的電子郵件傳送量,請將您的使用者集區設定成使用您的 Amazon SES 電子郵件組態。如需詳細資訊,請參閱 Amazon Cognito 使用者集區的電子郵件設定

Amazon Cognito 使用者集區工作階段有效性參數

權杖 配額
ID 權杖 5 分鐘 – 1 天
重新整理權杖 1 小時 – 3,650 天
存取權杖 5 分鐘 – 1 天
託管 UI 工作階段 Cookie 1 小時
身分驗證工作階段字符 3 分鐘至 15 分鐘

Amazon Cognito 使用者集區驗證碼安全性資源配額 (不可調整)

資源 配額
註冊確認碼有效期間 24 小時
使用者屬性驗證碼有效期間 24 小時
多重要素驗證 (MFA) 驗證碼有效期間 3 至 15 分鐘
忘記密碼確認碼有效期間 1 小時
每位使用者每小時的最大 ConfirmForgotPasswordForgotPassword 請求數 1 5–20
每位使用者每小時的最大 ResendConfirmationCode 請求數 5
每位使用者每小時的最大 ConfirmSignUp 請求數 15
每位使用者每小時的最大 ChangePassword 請求數 5
每位使用者每小時的最大 GetUserAttributeVerificationCode 請求數 5
每位使用者每小時的最大 VerifyUserAttribute 請求數 15

1 Amazon Cognito 會評估請求中更新密碼的風險因素,並指派與評估風險等級相關的配額。如需詳細資訊,請參閱 忘記密碼行為

Amazon Cognito 使用者集區使用者匯入任務資源配額

資源 配額 可調整 最大配額
每個使用者集區的使用者匯入任務數量 1,000 請聯絡您的帳戶團隊。
每個使用者匯入 CSV 列的字元數上限 16,000 N/A
CSV 檔案大小上限 100 MB N/A
每個 CSV 檔案的使用者數目上限 500,000 N/A

Amazon Cognito 身分集區 (聯合身分) 資源配額

資源 配額 可調整 最大配額
每個帳户的身分集區數量 1,000 N/A
每個身分集區的 Amazon Cognito 使用者集區供應商數量 50 1000
身分集區名稱的字元長度 128 位元組 N/A
登入供應商名稱的字元長度 2048 個位元組 N/A
每個身分集區的身分數量 無限制 N/A
可為其指定角色映射的身分提供者數量 10 N/A
單一列示或查閱呼叫的結果數量 60 N/A
角色型存取控制 (RBAC) 規則數量 25 N/A

Amazon Cognito Sync 資源配額

資源 配額 可調整 最大配額
每個身分的資料集數量 20 請聯絡您的帳戶團隊。
每個資料集的記錄數量 1,024 請聯絡您的帳戶團隊。
單一資料集的大小 1 MB 請聯絡您的帳戶團隊。
資料集名稱的字元數 128 位元組 N/A
請求成功之後等待大量發佈的時間 24 小時 N/A