안녕하세요, 오늘은 AWS의 대표적인 인증 서비스인 Amazon Cognito에 대해 함께 알아보려고 합니다.
Cognito를 간단하게 얘기하면 사용자 인증 서비스라고 얘기할 수 있어요. 이를 통해 사용자는 손쉽게 회원 가입하고 로그인할 수 있어요.
AWS 서비스에 접근할 때, 보안을 유지하기 위해 직접 액세스 키를 코드에 작성하는 것은 권장되지 않습니다. 특히 모바일 및 서버리스 환경에서 이러한 문제가 중요한데, Cognito를 사용하면 보안 취약점을 크게 줄일 수 있어요.
사용자 풀(User Pools)과 자격 증명 풀(Identity Pools)
Cognito는 사용자 풀(user pool)과 자격 증명 풀(identity pool)으로 구성되어 있는데, 이 둘을 조합하거나 또는 각각 별개의 형태로 사용할 수 있습니다
즉 사용자 풀은 인증(자격 증명 확인), 자격 증명 풀은 권한 부여(액세스 제어)라고 정리할 수 있습니다.
이 포스팅에서는 Identity Pools에 대해 더 다루겠습니다!
Identity Pools는 앱 사용자들에게 임시로 AWS 자격 증명을 부여해줘요. 이를 통해 사용자들이 AWS 리소스에 접근할 수 있고, 인증된 사용자와 비인증 사용자를 구분해서 다른 권한을 부여할 수도 있어요.
Identity Pools은 IAM을 이용하여, 인증된 사용자와 인증되지 않은 사용자의 역할을 정의할 수 있어요. 각 역할 별로 액세스 권한이 다르답니다.
정리하자면, Cognito를 사용하면 앱 사용자들은 AWS 서비스에 대한 특정 권한을 얻을 수 있습니다! aws에서 사용자 인증을 관리하고, 임시로 권한을 주기 때문에 더 안전하고 간편하다는 장점이 있어요.
공식 문서는 말이 어려워서 조금 더 쉽게 풀어보려 했는데, 의도대로 됐는지 모르겠네요.
다음 글에서는 비인증 사용자 권한을 설정하고, 안드로이드 앱에서 Cognito를 활용하여 AWS SDK를 통해 S3에 접근하는 방법에 대해 알아볼게요.