本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon Cognito 的配額
對於您可在帳戶中執行的操作數目上限,Amazon Cognito 有預設配額 (先前稱為限制)。Amazon Cognito 也具有 Amazon Cognito 資源數目上限和大小的配額。
每個 Amazon Cognito 配額代表一個 中一個 AWS 區域 中的最大請求量 AWS 帳戶。例如,您的應用程式可以針對美國東部 (維吉尼亞北部) 中的所有使用者集區,以預設配額 () 速率提出UserAuthentication
操作API請求。 RPS您在亞太區域 (東京) 的應用程式可以針對其所在區域中的所有使用者集區產生相同的請求量。一次 AWS 只能在一個區域中授予配額增加請求。在美國東部 (維吉尼亞北部) 成功增加配額,不會影響您在亞太區域 (東京) 的最大請求率。
主題
了解API請求率配額
配額分類
Amazon Cognito 會強制執行API操作的最大請求率。如需 Amazon Cognito 提供API操作的詳細資訊,請參閱 使用者集區和身分集區參考API指南 。 https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/Welcome.html對於使用者集區,這些操作會分組為常見使用案例的類別,例如 UserAuthentication
或 UserCreation
。如需依類別的使用者集區API操作清單,請參閱 Amazon Cognito 使用者集區API操作類別和請求費率配額。
在 Service Quotas 主控台
操作配額定義為類別內所有操作的每秒請求數上限 (RPS)。Amazon Cognito 使用者集區服務會將配額套用於每個類別中的所有操作。例如,UserCreation
類別包括四個操作:SignUp
、ConfirmSignUp
、AdminCreateUser
和 AdminConfirmSignUp
。其配置的綜合配額為 50 RPS。如果同時進行多個操作,則此類別中的每個操作最多可RPS分別呼叫 50 個或合併呼叫。
注意
類別配額僅適用於使用者集區。Amazon Cognito 會將每個身分集區配額套用至單一操作。對於每個類別和每個操作請求速率配額, 會 AWS 測量 AWS 帳戶 一個區域中來自 中所有使用者集區或身分集區的所有請求的彙總速率。
具有特殊請求率處理的 Amazon Cognito 使用者集區API操作
操作配額是針對類別層級的合併請求總數計算並強制套用,但 AdminRespondToAuthChallenge
和 RespondToAuthChallenge
操作除外,這兩者適用特殊處理規則。
此UserAuthentication
類別包含 Amazon Cognito 使用者集區中的四個操作API:AdminInitiateAuth
、AdminRespondToAuthChallenge
、 InitiateAuth
和 RespondToAuthChallenge
。此外,託管 UI 中的使用者身分驗證有助於此配額。InitiateAuth
和 AdminInitiateAuth
操作會根據每個類別配額計算和強制執行。相符的 RespondToAuthChallenge
和 AdminRespondToAuthChallenge
操作適用另外的配額,是 UserAuthentication
類別限制的三倍。此提高的配額可適應應用程式中設定的多個身分驗證挑戰。此配額足以涵蓋大多數使用案例。在應用程式對身分驗證挑戰做出最多三個回應後,其他請求會計入UserAuthentication
類別配額。多重要素身分驗證 (MFA)、裝置身分驗證 和自訂身分驗證,都是您可能設計到使用者集區中的挑戰提示範例。
例如,如果您的 UserAuthentication
類別配額為 80 RPS,您可以呼叫 RespondToAuthChallenge
或 AdminRespondToAuthChallenge
,費率上限為 240 RPS(3 * 80 RPS)。如果您的使用者集區每次驗證提示四輪挑戰,且每秒有 70 位使用者登入,則總計RespondToAuthChallenge
為 280 RPS(70 x 4),高於RPS配額 40。額外的 40 RPS會新增至 70 個InitiateAuth
呼叫,使UserAuthentication
類別 110 RPS(40 + 70) 的總用量成為上限。由於此值超過設定為 80 RPS x 30 的類別配額RPS,Amazon Cognito 會從您的應用程式請求。
每月作用中使用者
當 Amazon Cognito 計算使用者集區帳單時,它會針對每個每月作用中使用者 (MAU) 向您收取費率。在規劃提高配額請求時,請考慮您目前的和預計的MAU計數。MAU 如果在一個日曆月內,有與該使用者相關的身分操作,則使用者會被視為 。當您將聯合使用者 連結至本機使用者 時,MAU計數為 1 加 n ,其中 n 是已登入的連結身分數目。使用者處於作用中的活動包括以下內容。
-
使用者的註冊或管理之建立
-
登入
-
登出
-
使用者帳戶確認或屬性驗證
-
密碼重設
-
變更使用者屬性、群組成員資格或MFA偏好設定
-
查詢使用者的詳細屬性
-
使用者啟用、停用或刪除
注意
查詢使用者詳細屬性的類別包含API操作 AdminGetUser,但不包含 ListUsers。大型使用者集區中的詳細 user-by-user查詢可能會對您的 AWS 帳單產生重大影響。為了避免超額收費,請使用 收集使用者資料,ListUsers
或將使用者資訊存放在外部資料庫中。
管理API請求率配額
確認配額需求
重要
如果您增加 UserAuthentication
、 UserCreation
或 等類別的 Amazon Cognito 配額AccountRecovery
,您可能需要增加其他 的配額 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,將使用者登入頻率在 8 小時期間內的差異列入計算,則需要 200 的所需UserAuthentication
配額RPS。
注意
如果您為每個使用者動作呼叫多個操作,必須在類別層級加總個別操作呼叫速率。
最佳化配額限制的請求率
由於提高API費率限制會增加 AWS 帳單成本,因此在請求提高配額之前,請考慮調整使用模型。以下是最佳化請求率的應用程式架構範例。
- 在退避等候期間後重試
-
您可以在每次API呼叫時發現錯誤,然後在退避期後重試嘗試。您可以根據業務需求和負載,調整退避演算法。Amazon SDKs具有內建重試邏輯。如需詳細資訊,請參閱要在 上建置的工具 AWS。
- 為經常更新的屬性使用外部資料庫
-
如果您的應用程式需要多次呼叫使用者集區來讀取或寫入自訂屬性,請使用外部儲存空間。您可以使用偏好的資料庫來存放自訂屬性,或使用快取層在登入期間載入使用者描述檔。您可以在需要時從快取參考此設定檔,而不必從使用者集區重新載入使用者描述檔。
- 驗證用戶端上的 JSON Web 權杖 (JWTs)
-
應用程式必須先驗證JWT權杖,才能信任權杖。您可以在用戶端驗證權杖的簽章和有效性,而無需將API請求傳送至使用者集區。驗證權杖之後,您可以信任權杖中的宣告,並使用宣告,而不是進行更多
getUser
API呼叫。如需詳細資訊,請參閱驗證 JSON Web 權杖。 - 使用等候室調節 Web 應用程式的流量
-
如果您預期在限時事件期間 (例如應試或參加即時活動) 會有大量使用者登入流量,可以使用自我調節機制來最佳化請求流量。例如,您可以設定等候室,讓使用者在工作階段可供使用之前先行等待,以利您在有可用容量時處理請求。如需等候室的參考架構,請參閱 AWS 虛擬等候室解決方案
。 - 快取 JWTs
-
重複使用存取權杖,直到它們過期為止。如需API閘道中具有權杖快取的範例架構,請參閱 管理使用者集區權杖過期和快取。快取 ID 權杖不會產生查詢使用者資訊的API請求,而是快取 ID 權杖直到過期,並從快取讀取使用者屬性。
如需在 中使用API請求率的詳細資訊 AWS,請參閱管理和監控工作負載中的限API流。
追蹤配額使用量
Amazon Cognito 會在 Amazon 中 CloudWatch 針對帳戶層級的每個API操作類別產生 CallCount
和 ThrottleCount
指標。您可以使用 CallCount
追蹤客戶所發出與類別相關的呼叫總數。您可以使用 ThrottleCount
追蹤與類別相關的調節呼叫總數。您可以使用具 Sum
統計數字的 CallCount
和 ThrottleCount
指標,計算一個類別的呼叫總數。如需詳細資訊,請參閱CloudWatch 用量指標 。
監控服務配額時,使用率是指使用中的服務配額百分比。舉例來說,如果配額值為 200 個資源,其中 150 個資源正在使用中,則使用率為 75%。使用量是指服務配額中使用的資源或操作數量。
透過 CloudWatch 指標追蹤用量
您可以使用 追蹤和收集 Amazon Cognito 使用者集區使用率指標 CloudWatch。 CloudWatch 儀表板會顯示您使用 AWS 服務 的每個 的指標。使用 CloudWatch,您可以建立指標警示來通知您,或變更您要監控的特定資源。如需 CloudWatch 指標的詳細資訊,請參閱追蹤您的 CloudWatch 用量指標。
透過 Service Quotas 指標追蹤使用率
Amazon Cognito 使用者集區與 Service Quotas 整合,這是主控台介面,可顯示和管理服務配額用量。在 Service Quotas 主控台中,您可以查詢特定配額的值、檢視監控資訊、請求增加配額或設定 CloudWatch 警示。在您的帳戶處於作用中狀態一段時間後,您可以檢視資源使用率的圖表。
Amazon Cognito 使用者集
追蹤每月作用中使用者 (MAUs)
您的使用者集區中的每月作用中使用者 (MAUs) 數目會為您的規劃增加請求率配額提供重要資料。您可以將API請求率與您在指定期間內啟用的使用者數量進行比較。有了這些知識,您可以計算應用程式的作用中使用者增加將如何影響使用模型中的配額。例如,假設您在美國西部 (奧勒岡) 的合併應用程式一個月產生 200 萬活躍使用者,而您的UserAuthentication
類別偶爾在預設配額為每秒 120 個請求 () 時收到限流錯誤RPS。在上個月,在您成功的廣告行銷活動之前,您有 100 萬個 MAUs,而且您的應用程式從未超過 80 個 RPS。如果您預期新電視台點的峰值類似,您可以購買額外的 40,RPS以容納調整後配額為 160 的下一個百萬使用者RPS。
若要檢閱您的 MAUs
存取AWS Billing 主控台
請求提高配額
Amazon Cognito 具有配額,表示您可以在每個 的使用者集區和身分集區中,在 中執行的每秒最大操作數 AWS 區域。您可以購買增加到可調整的 Amazon Cognito 使用者集區API請求率配額。檢查您目前的配額,並從 Service Quotas 主控台或透過 Service Quotas API操作 ListAWSDefaultServiceQuotas
和 購買增加RequestServiceQuotaIncrease
。
重要
只能增加可調整的配額。您必須購買增加的配額容量。如需提高配額定價,請參閱 Amazon Cognito 定價
Amazon Cognito 使用者集區API操作類別和請求費率配額
由於 Amazon Cognito 具有重疊的 API操作類別與不同的授權模型 ,因此每個操作都屬於一個類別。每個類別都有自己的所有成員API操作集區配額,涵蓋 AWS 區域 您帳戶中一個集區中的所有使用者集區。您只能請求增加可調整類別配額。如需詳細資訊,請參閱請求提高配額。配額調整會套用至您帳戶單一區域中的使用者集區。Amazon Cognito 將某些類別3的操作限制為每個使用者集區每秒 5 個請求 (RPS)。預設配額 (RPS) 也會套用至 中的所有使用者集區 AWS 帳戶。
注意
每個類別的配額是以每月作用中使用者 (MAUs) 來衡量。 AWS 帳戶 少於兩百萬的 MAUs可以在預設配額內操作。如果您的請求少於一百萬,MAUs且 Amazon Cognito 正在限流,請考慮最佳化您的應用程式。如需詳細資訊,請參閱最佳化配額限制的請求率。
類別操作配額會套用於一個 AWS 區域的使用者集區中所有使用者。Amazon Cognito 也會為您的應用程式可針對一個使用者產生的請求數量維護配額。您必須限制每個使用者的API請求,如下表所示。
Amazon Cognito 使用者集區各使用者請求率配額
作業 | 每使用者每秒操作數 |
---|---|
讀取使用者描述檔 範例: |
10 |
寫入使用者描述檔 範例: |
10 |
您必須限制每個類別API的請求,如下表所示。
Amazon Cognito 使用者集區 分類請求率配額
類別 | 描述 | 預設配額 (RPS) | 可調整 |
---|---|---|---|
UserAuthentication
|
驗證 (登入) 使用者的操作。 這些操作受 具有特殊請求率處理的 Amazon Cognito 使用者集區API操作 規範。 |
120 | 是 |
UserCreation |
建立或確認 Amazon Cognito 本機使用者的操作。原生使用者是您的 Amazon Cognito 使用者集區直接建立和驗證的使用者。 | 50 | 是 |
UserFederation 透過第三方身分提供者將使用者聯合 (驗證) 至您 Amazon Cognito 使用者集區的操作。 |
將 IdP 回應提交至使用者集區聯合端點的操作。OIDC 或造成 IdP 權杖的社交提供者操作,以及所有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
|
產生憑證以用於授權 machine-to-machine請求的操作 | 150 | 否 |
1 A RespondToAuthChallenge
或 AdminRespondToAuthChallenge
回應,其中 ChallengeName
a NEW_PASSWORD_REQUIRED
會計入 UserAccountRecovery
類別。所有其他挑戰回應都會計入 UserAuthentication
類別。
2 登入期間的每個託管 UI 操作都會向配額貢獻一個請求。例如,登入並提供MFA程式碼的使用者會貢獻 2 個請求。授權碼授予中的權杖兌換需要支付與UserAuthentication
類別中配額相同的額外配額分配。
3 此類別中的任何個別操作都有限制條件,可防止單一使用者集區RPS以高於 5 的速率呼叫操作。
Amazon Cognito 身分集區 (聯合身分) API操作請求率配額
作業 | 描述 | 預設配額 (RPS)1 | 可調整 | 配額增加資格 |
---|---|---|---|---|
GetId |
從身分集區擷取身分 ID。 | 25 | 是 | 請聯絡您的帳戶團隊。 |
GetOpenIdToken |
在傳統工作流程中從使用者集區擷取 OpenID 權杖。 | 200 | 是 | 請聯絡您的帳戶團隊。 |
GetCredentialsForIdentity |
從增強型工作流程中的身分集區擷取 AWS 憑證。 | 200 | 是 | 請聯絡您的帳戶團隊。 |
GetOpenIdTokenForDeveloperIdentity |
在開發人員工作流程中從身分集區擷取 OpenID 權杖。 | 50 | 是 | 請聯絡您的帳戶團隊。 |
ListIdentities |
擷取身分集區IDs中的身分清單。 | 5 | 是 | 請聯絡您的帳戶團隊。 |
DeleteIdentities |
從身分池集區刪除一個或多個已註冊的身分。 | 10 | 是 | 請聯絡您的帳戶團隊。 |
TagResource |
將索引標籤套用至身分池。 | 5 | 是 | 請聯絡您的帳戶團隊。 |
UntagResource |
從身分池移除索引標籤。 | 5 | 是 | 請聯絡您的帳戶團隊。 |
ListTagsForResource |
顯示套用至身分池的索引標籤清單。 | 10 | 是 | 請聯絡您的帳戶團隊。 |
1 預設配額是 中任何 AWS 區域 中身分集區的最小請求速率配額 AWS 帳戶。在某些區域中RPS,您的配額可能較高。
資源數量和大小的配額
資源配額是 Amazon Cognito 中資源、輸入欄位、持續時間和其他雜項功能的最大數量或大小。
您可以在 Service Quotas 主控台或從增加服務限制表單
注意
AWS 帳戶 層級的資源配額,例如每個區域 的使用者集區,會套用至每個 中的 Amazon Cognito 資源 AWS 區域。例如,您可以在美國東部 (維吉尼亞北部) 有 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 |
SMS 驗證訊息中的字元 | 140 | 否 | N/A |
密碼中的字元數 | 256 | 否 | N/A |
身分提供者名稱中的字元數 | 32 | 否 | N/A |
每個身分提供者的識別符數量 | 50 | 否 | N/A |
連結至使用者的身分數量 | 5 | 否 | N/A |
URLs 每個應用程式用戶端的回呼 | 100 | 否 | N/A |
URLs 每個應用程式用戶端的登出 | 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 小時 |
每位使用者每小時的最大 ConfirmForgotPassword 與 ForgotPassword 請求數 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 |