AWS WAF 웹 ACL을 사용자 풀과 연결 - Amazon Cognito

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS WAF 웹 ACL을 사용자 풀과 연결

AWS WAF 웹 애플리케이션 방화벽입니다. AWS WAF 웹 액세스 제어 목록 (웹 ACL) 을 사용하면 호스팅된 UI 및 Amazon Cognito API 서비스 엔드포인트에 대한 원치 않는 요청으로부터 사용자 풀을 보호할 수 있습니다. 웹 ACL을 사용하면 사용자 풀이 응답하는 모든 HTTPS 웹 요청을 세부적으로 제어할 수 있습니다. AWS WAF 웹 ACL에 대한 자세한 내용은 개발자 안내서의 웹 액세스 제어 목록 (웹 ACL) 관리 및 사용을 참조하십시오.AWS WAF

사용자 풀과 연결된 AWS WAF 웹 ACL이 있는 경우 Amazon Cognito는 선택된 비기밀 헤더 및 사용자 요청 콘텐츠를 다음으로 전달합니다. AWS WAF AWS WAF 요청 내용을 검사하여 웹 ACL에 지정한 규칙과 비교한 다음 Amazon Cognito에 응답을 반환합니다.

AWS WAF 웹 ACL과 아마존 코그니토에 대해 알아야 할 사항

  • 에서 차단한 요청은 모든 요청 유형의 요청 속도 할당량에 포함되지 AWS WAF 않습니다. AWS WAF 핸들러는 API 레벨 스로틀링 핸들러보다 먼저 호출됩니다.

  • 웹 ACL을 생성할 때 웹 ACL이 완전히 전파되어 Amazon Cognito에서 사용할 수 있게 되기까지 약간의 시간이 걸립니다. 전파 시간은 몇 초에서 몇 분까지 걸릴 수 있습니다. AWS WAF 웹 ACL이 완전히 전파되기 전에 연결을 WAFUnavailableEntityException시도하면 a를 반환합니다.

  • 각 사용자 풀에 하나의 웹 ACL을 연결할 수 있습니다.

  • 요청으로 인해 AWS WAF 가 검사할 수 있는 한계보다 더 큰 페이로드가 발생할 수 있습니다. Amazon Cognito의 크기 초과 요청을 처리하는 방법을 구성하는 방법을 AWS WAF 알아보려면 AWS WAF 개발자 안내서의 크기 초과 요청 구성 요소 처리를 참조하십시오.

  • AWS WAF 사기 방지 계정 도용 방지 (ATP) 를 사용하는 웹 ACL을 Amazon Cognito 사용자 풀과 연결할 수 없습니다. AWS-AWSManagedRulesATPRuleSet 관리형 규칙 그룹을 추가할 때 ATP 기능을 구현합니다. 사용자 풀과 연결하기 전에 웹 ACL에서 이 관리형 규칙 그룹을 사용하지 않는지 확인하세요.

  • 사용자 풀과 연결된 AWS WAF 웹 ACL이 있고 웹 ACL의 규칙에 CAPTCHA가 표시되는 경우 호스팅된 UI TOTP 등록에서 복구할 수 없는 오류가 발생할 수 있습니다. CAPTCHA 작업이 있고 호스팅 UI TOTP에 영향을 주지 않는 규칙을 생성하려면 호스팅된 UI TOTP MFA를 위한 AWS WAF 웹 ACL 구성 단원을 참조하세요.

AWS WAF 다음 엔드포인트에 대한 요청을 검사합니다.

호스팅된 UI

사용자 풀 페더레이션 엔드포인트 및 호스팅 UI 참조의 모든 엔드포인트에 대한 요청입니다.

퍼블릭 API 작업

AWS 자격 증명을 사용하여 권한을 부여하지 않는 앱에서 Amazon Cognito API로 보내는 요청입니다. 여기에는 InitiateAuthRespondToAuthChallenge, 및 같은 API 작업이 포함됩니다. GetUser 범위 내에 있는 API 작업에는 AWS 자격 증명을 사용한 인증이 AWS WAF 필요하지 않습니다. 인증되지 않았거나 세션 문자열 또는 액세스 토큰으로 권한이 부여되었습니다. 자세한 정보는 Amazon Cognito 사용자 풀 인증 및 미인증 API 작업을 참조하세요.

Count(개수), Allow(허용), Block(차단) 또는 규칙과 일치하는 요청에 대한 응답으로 CAPTCHA를 표시하는 규칙 작업을 사용하여 웹 ACL에서 규칙을 구성할 수 있습니다. 자세한 내용은 AWS WAF 개발자 안내서AWS WAF 규칙을 참조하세요. 규칙 작업에 따라 Amazon Cognito가 사용자에게 반환하는 응답을 사용자 지정할 수 있습니다.

중요

오류 응답을 사용자 지정하는 옵션은 API 요청을 수행하는 방식에 따라 달라집니다.

  • 호스팅된 UI 요청의 오류 코드와 응답 본문을 사용자 지정할 수 있습니다. 호스팅된 UI에서는 사용자가 해결할 수 있는 CAPTCHA만 제시할 수 있습니다.

  • Amazon Cognito 사용자 풀 API로 요청하는 경우 차단 응답을 수신하는 요청의 응답 본문을 사용자 지정할 수 있습니다. 400~499 범위의 사용자 지정 오류 코드를 지정할 수도 있습니다.

  • AWS Command Line Interface (AWS CLI) 및 AWS SDK는 차단 또는 CAPTCHA 응답을 생성하는 요청에 ForbiddenException 오류를 반환합니다.

웹 ACL을 사용자 풀과 연결

사용자 풀에서 웹 ACL을 사용하려면 AWS Identity and Access Management (IAM) 보안 주체에 다음과 같은 Amazon Cognito 권한이 있어야 합니다. AWS WAF 권한에 대한 자세한 내용은 개발자 AWS WAF 안내서의 API 권한을 참조하십시오.AWS WAF

  • cognito-idp:AssociateWebACL

  • cognito-idp:DisassociateWebACL

  • cognito-idp:GetWebACLForResource

  • cognito-idp:ListResourcesForWebACL

IAM 권한을 부여해야 하지만 나열된 작업은 권한 전용이며 API 작업에 해당하지 않습니다.

사용자 풀을 AWS WAF 활성화하고 웹 ACL을 연결하려면

  1. Amazon Cognito 콘솔에 로그인합니다.

  2. 탐색 창에서 [사용자 풀(User Pools)]을 선택한 다음 편집할 사용자 풀을 선택합니다.

  3. User pool properties(사용자 풀 속성) 탭을 선택합니다.

  4. AWS WAF 옆에 있는 Edit(편집)을 선택합니다.

  5. 아래에서 AWS WAF사용자 AWS WAF 풀과 함께 사용을 선택합니다.

    사용자 풀이 선택된 AWS WAF 상태에서 사용을 선택한 AWS WAF 대화 상자의 스크린샷
  6. 이미 생성한 AWS WAF 웹 ACL을 선택하거나, 에서 AWS WAF웹 ACL 생성을 선택하여 새 AWS WAF 세션에 웹 ACL을 생성합니다. AWS Management Console

  7. 변경 사항 저장을 선택합니다.

프로그래밍 방식으로 웹 ACL을 AWS Command Line Interface 또는 SDK의 사용자 풀과 연결하려면 API의 ACL을 사용하십시오AssociateWeb. AWS WAF Amazon Cognito에는 웹 ACL을 연결하는 별도의 API 작업이 없습니다.

웹 ACL 테스트 및 로깅 AWS WAF

웹 ACL에서 규칙 작업을 카운트로 설정하면 규칙과 일치하는 요청 수에 요청이 AWS WAF 추가됩니다. 사용자 풀로 웹 ACL을 테스트하려면 규칙 작업을 Count(개수)로 설정하고 각 규칙과 일치하는 요청 볼륨을 고려합니다. 예를 들어 Block(차단) 작업으로 설정하려는 규칙이 일반 사용자 트래픽으로 판단되는 많은 수의 요청과 일치하는 경우 규칙을 재구성해야 할 수 있습니다. 자세한 내용은 AWS WAF 개발자 안내서의 AWS WAF 보호 기능 테스트 및 조정을 참조하십시오.

Amazon CloudWatch Logs 로그 그룹, Amazon Simple Storage Service (Amazon S3) 버킷 또는 Amazon 데이터 파이어호스에 요청 헤더를 AWS WAF 기록하도록 구성할 수도 있습니다. x-amzn-cognito-client-idx-amzn-cognito-operation-name을 통해 사용자 풀 API로 수행한 Amazon Cognito 요청을 식별할 수 있습니다. 호스팅된 UI 요청에는 x-amzn-cognito-client-id 헤더만 포함됩니다. 자세한 내용은 AWS WAF 개발자 안내서웹 ACL 트래픽 로깅을 참조하세요.

AWS WAF 웹 ACL에는 Amazon Cognito의 고급 보안 기능 요금이 적용되지 않습니다. 의 보안 기능은 Amazon Cognito의 고급 보안 기능을 AWS WAF 보완합니다. 사용자 풀에서 두 기능을 모두 활성화할 수 있습니다. AWS WAF 사용자 풀 요청 검사에 대한 요금은 별도로 청구됩니다. 자세한 내용은 AWS WAF 요금을 참조하십시오.

로깅 AWS WAF 요청 데이터에 대해서는 로그를 대상으로 하는 서비스에서 추가 요금을 청구해야 합니다. 자세한 내용은 AWS WAF 개발자 안내서웹 ACL 트래픽 정보 로깅 요금을 참조하세요.