Amazon Cognito 사용자 풀을 권한 부여자로 사용하여 REST API에 대한 액세스 제어
IAM 역할 및 정책 또는 Lambda 권한 부여자(이전에는 사용자 지정 권한 부여자라고 함)를 사용하는 것 말고도 Amazon Cognito 사용자 풀을 사용하여 Amazon API Gateway에서 API에 액세스할 수 있는 사람을 제어할 수도 있습니다.
API에 Amazon Cognito 사용자 풀을 사용하려면 먼저 COGNITO_USER_POOLS
유형의 권한 부여자를 생성한 다음 해당 권한 부여자를 사용하도록 API 메서드를 구성해야 합니다. API가 배포된 후 클라이언트는 먼저 사용자 풀에 사용자를 로그인하고, 해당 사용자의 자격 증명 또는 액세스 토큰을 획득한 다음 일반적으로 요청의 Authorization
헤더로 설정되는 토큰 1개를 사용하여 API 메서드를 호출해야 합니다. API 호출은 필요한 토큰이 제공되고 제공된 토큰이 유효한 경우에만 성공하며, 그렇지 않으면 권한이 부여될 수 있는 자격 증명이 클라이언트에게 없기 때문에 호출할 권한이 클라이언트에게 부여되지 않습니다.
자격 증명 토큰은 로그인한 사용자의 자격 증명 클레임을 기반으로 API 호출 권한을 부여하는 데 사용됩니다. 액세스 토큰은 지정된 액세스 보호 리소스의 사용자 지정 범위를 기반으로 API 호출 권한을 부여하는 데 사용됩니다. 자세한 내용은 사용자 풀에 토큰 사용과 리소스 서버 및 사용자 지정 범위를 참조하세요.
API를 위한 Amazon Cognito 사용자 풀을 생성하고 구성하려면 다음 작업을 수행하세요.
-
Amazon Cognito 콘솔, CLI/SDK 또는 API를 사용하여 사용자 풀을 생성하거나 다른 AWS 계정이 소유한 사용자 풀을 사용합니다.
-
API Gateway 콘솔, CLI/SDK 또는 API를 사용하여 선택한 사용자 풀이 포함된 API Gateway 권한 부여자를 생성합니다.
-
선택한 API 메서드에서 API Gateway 콘솔, CLI/SDK 또는 API를 사용하여 권한 부여자를 활성화합니다.
사용자 풀이 활성화된 상태에서 API 메서드를 호출하기 위해 API 클라이언트는 다음 작업을 수행합니다.
-
Amazon Cognito CLI/SDK
또는 API를 사용하여 선택한 사용자 풀에 사용자를 로그인하고 자격 증명 토큰 또는 액세스 토큰을 획득합니다. SDK 사용에 대한 자세히 내용은 AWS SDK를 사용한 Amazon Cognito 코드 예시를 참조하세요. -
클라이언트별 프레임워크를 사용하여 배포된 API Gateway API를 호출하고
Authorization
헤더에서 적절한 토큰을 제공합니다.
API 개발자는 클라이언트 개발자에게 사용자 풀 ID와 클라이언트 ID 및 가능한 경우, 사용자 풀의 일부로 정의되는 연결된 클라이언트 비밀번호를 제공해야 합니다.
참고
사용자가 Amazon Cognito 자격 증명을 사용하여 로그인하고 IAM 역할 권한과 함께 사용할 임시 자격 증명도 획득하게 하려면 Amazon Cognito 연동 ID를 사용합니다. 각 API 리소스 엔드포인트 HTTP 메서드에 대해 권한 부여 유형을 설정하고 Method Execution
범주를 AWS_IAM
으로 설정합니다.
이 단원에서는 사용자 풀을 생성하고, API Gateway API를 사용자 풀과 통합하고, 사용자 풀에 통합된 API를 호출하는 방법을 설명합니다.