본문 바로가기

자격증/AWS Certified Security - Specialty

[AWS SCS] Cognito User Pool User Groups

728x90
반응형

Cognito User Pool Groups: 사용자 그룹 관리와 권한 부여

Amazon Cognito의 User Pool은 사용자를 관리하는 중요한 서비스입니다. 이 User Pool 내에서 사용자를 논리적으로 그룹화하여 권한을 효율적으로 부여할 수 있는 기능이 바로 Cognito User Pool Groups입니다. 이 기능은 AWS IAM(Identity and Access Management)에서 제공하는 그룹 관리 개념과 유사하며, 사용자에게 역할(Role)을 부여하고 세부적인 권한을 설정할 수 있는 강력한 도구입니다.

1. Cognito User Pool Groups 개념

Cognito User Pool Groups는 사용자들을 논리적으로 묶는 그룹으로, 각 그룹에 특정 IAM 역할을 연결하여 해당 그룹에 속한 사용자에게 권한을 부여하는 방식으로 작동합니다. 예를 들어, 특정 그룹에 속한 사용자들이 DynamoDB에 접근할 수 있도록 하거나, 데이터베이스에 대한 읽기/쓰기 권한을 설정할 수 있습니다.

2. 그룹에 IAM 역할 연결

  • 예시 1: Readers라는 그룹을 생성하고, 해당 그룹에 DynamoDB를 읽을 수 있는 권한을 가진 IAM 역할(ReadersIAMRole)을 연결합니다. 그룹에 속한 사용자는 이 역할을 통해 DynamoDB에서 데이터를 읽을 수 있습니다.
  • 예시 2: 또 다른 그룹인 Editors를 생성하고, DynamoDB에 데이터를 쓸 수 있는 권한을 가진 IAM 역할(EditorsIAMRole)을 연결합니다. 이 그룹에 속한 사용자는 데이터를 수정할 수 있는 권한을 부여받습니다.

이처럼 Cognito User Pool Groups는 그룹별로 역할을 분리하여 사용자의 권한을 효과적으로 관리할 수 있게 해줍니다.

3. 우선순위(Precedence)

Cognito User Pool Groups에서는 각 그룹에 **우선순위 값(Precedence)**을 설정할 수 있습니다. 이 우선순위 값은 그룹에 할당된 IAM 역할이 적용되는 순서를 결정합니다. 낮은 숫자의 우선순위를 가진 그룹에 속한 사용자가 적용받는 IAM 역할이 우선적으로 적용됩니다.

  • 예시: 만약 Readers 그룹(우선순위 1)과 Editors 그룹(우선순위 2)에 속한 Bob이 있다면, 기본적으로 Readers 그룹의 IAM 역할이 적용됩니다. 그러나 특정 상황에서 Bob이 명시적으로 다른 그룹의 역할을 선택할 수도 있습니다.

4. 중첩 그룹(Nested Groups) 제한

Cognito User Pool Groups는 중첩 그룹을 지원하지 않습니다. 즉, 그룹 내에 다른 그룹을 포함시키는 구조는 허용되지 않으며, 그룹은 단일 사용자 권한을 정의하는 단위로만 사용됩니다. 이는 보안을 단순화하고, 그룹 관리의 복잡성을 줄이기 위한 설계입니다.

5. 결론

Cognito User Pool Groups는 사용자에게 세밀한 권한을 부여하고, IAM 역할을 그룹별로 효과적으로 관리할 수 있게 해주는 중요한 기능입니다. 그룹 우선순위 설정 및 역할 연결을 통해 권한을 정확히 설정할 수 있으며, 각 그룹에 속한 사용자는 해당 그룹의 IAM 역할에 따른 권한을 받습니다. 다만, 중첩 그룹을 지원하지 않으므로 그룹 구조를 설계할 때 이를 염두에 두어야 합니다.

Cognito User Pool Groups는 사용자 관리 및 권한 설정을 단순화하고, 보안을 강화하는 유용한 도구입니다. 이를 통해 보다 효율적이고 안전한 애플리케이션을 구축할 수 있습니다.

728x90
반응형