新增群組至使用者集區 - Amazon Cognito

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

新增群組至使用者集區

Amazon Cognito 使用者集區中的群組支援可讓您建立和管理群組、新增使用者至從群組,以及從群組移除使用者。使用群組來建立使用者集合,以管理其許可,或代表不同類型的使用者。您可以將 AWS Identity and Access Management (IAM) 角色指派給群組,以定義群組成員的許可。

您可以在使用者集區中使用群組來建立使用者集合,通常這麼做以為這些使用者設定許可。例如,您可以針對網站和應用程式的讀者、參與者和編輯者,建立個別的使用者群組。若是使用與群組相關聯的 IAM 角色,您還可以為這些不同的群組設定不同的權限,這樣就只有參與者可以在 Amazon S3 中輸入內容,且只有編輯者可以透過 Amazon API Gateway 中的 API 發佈內容。

您可以從 API 和 CLI 建立和管理使用者集區中的群組。 AWS Management Console身為開發人員 (使用 AWS 認證),您可以建立、讀取、更新、刪除和列出使用者集區的群組。您也可以新增使用者,以及從群組移除使用者。

在使用者集區中使用群組不會產生額外成本。如需詳細資訊,請參閱 Amazon Cognito 定價

指派 IAM 角色給群組

您可以使用 IAM 角色透過群組來控制資源的許可。IAM 角色包含信任政策和許可政策。角色信任政策指定誰可以使用該角色。許可政策指定群組成員可以存取的動作和資源。建立 IAM 角色時,請設定角色信任政策讓群組使用者可以擔任該角色。在角色許可政策中,指定您希望群組擁有的許可。

在 Amazon Cognito 中建立群組時,您可以透過提供角色的 ARN 來指定 IAM 角色。當群組成員使用 Amazon Cognito 登入時,可以從身分集區接收暫時性登入資料。其許可由相關聯 IAM 角色決定。

個別使用者可以在多個群組中。身為開發人員,當一個使用者在多個群組中時,您有下列選項可以自動選擇 IAM 角色:

  • 您可以為每個群組指派優先順序值。系統會選擇優先順序較高 (值較小) 的群組,並套用其相關聯的 IAM 角色。

  • 透過身分集區要求使用者 AWS 認證時,您的應用程式也可以從可用角色中選擇,方法是在GetCredentialsForIdentityCustomRoleARN參數中指定角色 ARN。指定的 IAM 角色必須符合使用者可用的角色。

指定優先順序值給群組

一個使用者可以隸屬於多個群組。在使用者的存取權和 ID 權杖中,cognito:groups 會宣告包含使用者隸屬的所有群組清單。cognito:roles宣告包含對應群組的角色清單。

由於一個使用者可以隸屬於多個群組,因此可以為每個群組各指派一個優先順序。此為非負數,指定在使用者集區中,此群組相對於使用者可隸屬之其他群組的優先順序。零是最高優先順序值。優先順序值較小的群組,優先順序高於較大值或空值的群組。如果使用者隸屬於兩個以上群組,優先順序值最小的群組會將其 IAM 角色套用至使用者 ID 權杖的 cognito:preferred_role 宣告。

兩個群組可以有相同的優先順序值。如果發生這種情況,則兩個群組的優先順序相等。如果優先順序值相同的兩個群組具有相同的角色 ARN,則會為每個群組中的使用者,在 ID 權杖的 cognito:preferred_role宣告中使用該角色。如果這兩個群組有不同的角色 ARN,則不會在使用者的 ID 權杖中設定 cognito:preferred_role宣告。

使用群組來控制 Amazon API Gateway 許可

您可以在使用者集區中使用群組來控制 Amazon API Gateway 許可。使用者隸屬的群組會包含在來自 cognito:groups 宣告之使用者集區的 ID 權杖和存取權杖中。您可以將具有請求的 ID 或存取權杖提交到 Amazon API Gateway,並使用 Amazon Cognito 使用者集區授權方來執行 REST API。如需詳細資訊,請參閱《API Gateway 開發人員指南》中的使用 Amazon Cognito 使用者集區作為授權方來控制對 REST API 的存取

您也可以使用自訂 JWT 授權方授權對 Amazon API Gateway HTTP API 的存取。如需詳細資訊,請參閱《API Gateway 開發人員指南》中的使用 JWT 授權方控制對 HTTP API 的存取

群組的限制

使用者群組具有下列限制:

  • 您可以建立的群組數目受 Amazon Cognito 服務配額的限制。

  • 群組不能巢狀組合。

  • 您不能在群組中搜尋使用者。

  • 您不能依名稱來搜尋群組,但您可以列出群組。

在 AWS Management Console中建立新群組

使用下列程序以建立新的群組。

建立新群組
  1. 前往 Amazon Cognito 主控台。如果出現提示,請輸入您的 AWS 認證。

  2. 選擇 User Pools (使用者集區)。

  3. 從清單中選擇現有的使用者集區。

  4. 選擇 Groups (群組) 索引標籤,然後選擇 Create a group (建立群組)。

  5. Create a group (建立群組) 頁面,Group name (群組名稱) 中,輸入新群組的易記名稱。

  6. 您可以選擇性地使用下列任一欄位,提供有關此群組的其他資訊:

    • Description (描述) – 輸入有關此新群組之用途的詳細資訊。

    • Precedence (優先順序) – Amazon Cognito 根據使用者所屬的群組具有較低的優先順序值,評估並套用指定使用者的所有群組許可。系統會選擇優先順序較低的群組,並套用其相關聯的 IAM 角色。如需詳細資訊,請參閱 指定優先順序值給群組

    • IAM role (IAM 角色) – 需要控制資源的許可時,您可以將 IAM 角色指派給群組。如果您要將使用者集區與身分集區整合,IAM role (IAM 角色) 設定會決定要在使用者的 ID 權杖中指派哪個角色 (如果身分集區設定為從該權杖中選擇角色)。如需詳細資訊,請參閱 指派 IAM 角色給群組

    • Add users to this group (將使用者新增至此群組) – 建立後,將現有使用者新增為此群組的成員。

  7. 選擇 Create (建立) 以確認。