사용자 풀에 고급 보안 기능 추가 - Amazon Cognito

사용자 풀에 고급 보안 기능 추가

사용자 풀을 생성한 후에는 Amazon Cognito 콘솔의 탐색 모음에서 [고급 보안(Advanced security)]에 액세스할 수 있습니다. 사용자 풀 고급 보안 기능을 켜고 여러 위험에 대응하여 취하는 조치를 사용자 지정할 수 있습니다. 또는 감사 모드를 사용하여 보안 완화를 적용하지 않고 탐지된 위험에 대한 지표를 수집할 수 있습니다. 감사 모드에서 고급 보안 기능은 Amazon CloudWatch에 지표를 게시합니다. 고급 보안 지표 보기 섹션을 참조하세요.

고려 사항 및 제한

  • Amazon Cognito 고급 보안 기능에는 추가 요금이 적용됩니다. Amazon Cognito 요금 페이지를 참조하세요.

  • Amazon Cognito는 표준 인증 흐름인 USER_PASSWORD_AUTH, ADMIN_USER_PASSWORD_AUTH, USER_SRP_AUTHADMIN_USER_SRP_AUTH와 함께 고급 보안 기능을 지원합니다. 고급 보안은 CUSTOM_AUTH 흐름과 사용자 정의 인증 챌린지 Lambda 트리거 또는 페더레이션 로그인과 함께 사용할 수 없습니다.

  • 전체 기능(Full function) 모드의 Amazon Cognito 고급 보안 기능을 사용하면 IP 주소 항상 차단(Always block)항상 허용(Always allow) 예외를 생성할 수 있습니다. 항상 차단(Always block) 예외 목록에 있는 IP 주소의 세션에는 조정 인증별 위험 수준이 할당되지 않으며 이러한 세션은 사용자 풀에 로그인할 수 없습니다.

  • 사용자 풀의 항상 차단(Always block) 예외 목록에 있는 IP 주소의 차단된 요청은 사용자 풀에 대한 요청 비율 할당량에 기여합니다. Amazon Cognito 고급 보안 기능은 분산 서비스 거부(DDoS) 공격을 차단하지 않습니다. Amazon Cognito 엔드포인트에 대한 원치 않는 트래픽을 방지하는 방법에 대한 자세한 내용은 AWS Security blog (AWS 보안 블로그그)에서 Protect public clients for Amazon Cognito by using an Amazon CloudFront proxy(Amazon CloudFront 프록시를 사용하여 Amazon Cognito에 대한 퍼블릭 클라이언트 보호)를 참조하세요.

사전 조건

시작하려면 다음이 필요합니다.

  • 앱 클라이언트가 포함된 사용자 풀. 자세한 내용은 사용자 풀 시작하기 섹션을 참조하세요.

  • Amazon Cognito 콘솔에서 멀티 팩터 인증(MFA)을 [선택 사항(Optional)]으로 설정하여 위험 기반 조정 인증 기능을 사용합니다. 자세한 내용은 사용자 풀에 MFA 추가 섹션을 참조하세요.

  • 이메일 알림을 사용하고 있는 경우에는 Amazon SES 콘솔로 이동하여 이메일 알림에서 사용할 이메일 주소 또는 도메인을 구성하고 확인합니다. Amazon SES에 대한 자세한 내용은 Amazon SES에서 자격 증명 확인을 참조하세요.

고급 보안 기능 구성

AWS Management Console에서 Amazon Cognito 고급 보안 기능을 구성할 수 있습니다.

Original console

사용자 풀에서 고급 보안 기능을 구성하는 방법

  1. 왼쪽의 탐색 모음에서 Advanced security(고급 보안)를 선택합니다.

  2. 해당 사용자 풀의 고급 보안 기능을 활성화하시겠습니까?(Do you want to enable advanced security features for this user pool?)에서 예(Yes)를 선택하여 고급 보안을 설정합니다. 또는 감사 전용(Audit only)을 선택하여 정보를 수집하고 사용자 풀 데이터를 CloudWatch에 보냅니다.

    작업을 활성화하기 전에 고급 보안 기능을 2주 동안 감사 모드로 유지하는 것이 좋습니다. 이 경우 Amazon Cognito가 앱 사용자의 사용 패턴을 학습할 수 있습니다.

  3. 드롭다운 목록에서 설정을 사용자 지정하려는 앱 클라이언트는 무엇입니까?를 선택합니다. 기본값은 설정을 모든 앱 클라이언트에 대해 전역 설정으로 유지하는 것입니다.

  4. Which action do you want to take with the compromised credentials?(손상된 자격 증명에 대해 어떤 조치를 취하시겠습니까?)에서 허용 또는 Block use(사용 차단)를 선택합니다.

  5. 손상된 자격 증명이 차단된 경우 사용자 지정(Customize when compromised credentials are blocked)을 선택하여 다음 중 어느 이벤트에서 손상된 자격 증명 확인을 시작해야 하는지 선택합니다.

    • 로그인

    • 가입

    • 암호 변경

  6. How do you want to use adaptive authentication for sign-in attempts rated as low, medium and high risk?(위험도 낮음, 중간, 높음 등급의 로그인 시도에 대해 조정 인증을 어떻게 사용하고 싶으십니까?)에서 악의적인 로그인 시도에 어떻게 대응할 것인지 선택합니다. 로그인 시도를 허용 또는 차단하거나 로그인을 허용하기 앞서 추가 챌린지를 요구할 수 있습니다.

    비정상적인 로그인 시도가 탐지될 때 이메일 알림을 보내려면 Notify users(사용자 알림)를 선택합니다.

    
                    사용자 알림
  7. 이전 단계에서 Notify users(사용자 알림)를 선택한 경우에는 Notification message customization(알림 메시지 사용자 지정) 양식을 사용하여 이메일 알림 메시지를 사용자 지정할 수 있습니다.

  8. 사용자 지정(Customize)을 선택하여 HTML 버전의 이메일 메시지와 일반 텍스트 버전의 이메일 메시지 모두에서 조정 인증 알림을 사용자 지정합니다. 이메일 메시지 템플릿에 대한 자세한 내용은 메시지 템플릿 섹션을 참조하세요.

  9. 고급 보안 위험 평가에 관계 없이 Always allow(항상 허용) 또는 Always block(항상 차단)을 적용하고 싶은 IP 주소를 입력합니다. CIDR 표기법(예: 192.168.100.0/24)으로 IP 주소 범위를 지정합니다.

  10. [Save changes]를 선택합니다.

New console

사용자 풀에서 고급 보안 기능을 구성하는 방법

  1. Amazon Cognito 콘솔로 이동합니다. 메시지가 표시되면 AWS 자격 증명을 입력합니다.

  2. [사용자 풀(User Pools)]을 선택합니다.

  3. 목록에서 기존 사용자 풀을 선택하거나 사용자 풀을 생성합니다.

  4. [앱 통합(App integration)] 탭을 선택합니다. [고급 보안(Advanced security)]을 찾아서 [사용(Enable)]을 선택합니다. 이전에 고급 보안을 사용하도록 설정한 경우 [편집(Edit)]을 선택합니다.

  5. 손상된 자격 증명 및 조정 인증에 대한 고급 보안 응답을 구성하려면 전체 기능(Full function)을 선택합니다. 감사 전용(Audit only)을 선택하여 정보를 수집하고 사용자 풀 데이터를 CloudWatch에 보냅니다. 고급 보안 요금은 감사 전용(Audit only)전체 기능(Full function) 모드 둘 다에서 적용됩니다. 자세한 내용은 Amazon Cognito 요금을 참조하세요.

    작업을 활성화하기 전에 고급 보안 기능을 2주 동안 감사 모드로 유지하는 것이 좋습니다. 이 경우 Amazon Cognito가 앱 사용자의 사용 패턴을 학습할 수 있습니다.

  6. 감사 전용(Audit only)을 선택한 경우 변경 사항 저장(Save changes)을 선택합니다. [전체 기능(Full function)]을 선택한 경우 다음을 수행합니다.

    1. [사용자 정의(Custom)] 작업을 수행할지 또는 [Cognito 기본값(Cognito defaults)]을 사용하여 의심스러운 [손상된 자격 증명(Compromised credentials)]에 대응할지 선택합니다. [Cognito 기본값(Cognito defaults)]은 다음과 같습니다.

      1. [로그인(Sign-in)], [가입(Sign-up)], 암호 변경(Password change)]에서 손상된 자격 증명을 탐지합니다.

      2. [로그인 차단(Block sign-in)] 작업으로 손상된 자격 증명에 대응합니다.

    2. 손상된 자격 증명(Compromised credentials)에 대해 사용자 지정(Custom) 작업을 선택한 경우 Amazon Cognito가 이벤트 감지(Event detection)에 사용할 사용자 풀 작업 및 Amazon Cognito가 수행하도록 할 손상된 자격 증명 응답(Compromised credentials responses)을 선택합니다. 의심스러운 손상된 자격 증명으로 [로그인 차단(Block sign-in)] 또는 [로그인 허용(Allow sign-in)]을 선택할 수 있습니다.

    3. 조정 인증(Adaptive authentication)에서 악의적인 로그인 시도에 대응하는 방법을 선택합니다. 사용자 지정(Custom) 작업을 수행할지 또는 Cognito 기본값(Cognito defaults)을 사용하여 의심스러운 악의적인 활동에 대응할지 선택합니다. Cognito 기본값(Cognito defaults)을 선택한 경우 Amazon Cognito는 모든 위험 수준에서 로그인을 차단하고 사용자에게 알리지 않습니다.

    4. 조정 인증(Adaptive authentication)에서 사용자 지정(Custom) 작업을 선택한 경우 Amazon Cognito에서 심각도 수준에 따라 탐지된 위험에 대응하여 수행할 자동 위험 대응(Automatic risk response)을 선택합니다. 위험 수준에 대응을 할당할 때 더 높은 수준의 위험에 덜 제한적인 대응을 할당할 수는 없습니다. 위험 수준에 할당할 수 있는 대응은 다음과 같습니다.

      1. [로그인 허용(Allow sign-in)] - 예방 조치를 수행하지 않습니다.

      2. [선택적 MFA(Optional MFA)] - 사용자에 대해 MFA가 구성되어 있는 경우 Amazon Cognito는 사용자가 로그인할 때 항상 추가 SMS 또는 시간 기반 일회용 암호(TOTP) 팩터를 제공하도록 요구합니다. MFA가 구성되어 있지 않은 사용자는 정상적으로 로그인을 계속할 수 있습니다.

      3. [MFA 필요(Require MFA)] - 사용자에 대해 MFA가 구성되어 있는 경우 Amazon Cognito는 사용자가 로그인할 때 항상 추가 SMS 또는 TOTP 팩터를 제공하도록 요구합니다. MFA가 구성되어 있지 않은 사용자의 경우 Amazon Cognito에서 MFA를 설정하라는 메시지를 표시합니다. 사용자에게 MFA를 자동으로 요구하기 전에 SMS MFA용 전화 번호를 캡처하거나 TOTP MFA용 인증 앱을 등록하는 메커니즘을 앱에 구성합니다.

      4. 로그인 차단(Block sign-in) - 사용자가 로그인할 수 없도록 합니다.

      5. 사용자 알림(Notify user) - Amazon Cognito가 탐지한 위험과 수행된 대응 작업에 대한 정보가 포함된 이메일 메시지를 사용자에게 보냅니다. 보내는 메시지의 이메일 메시지 템플릿을 사용자 지정할 수 있습니다.

  7. 이전 단계에서 사용자 알림(Notify user)을 선택한 경우 조정 인증용 이메일 전송 설정 및 이메일 템플릿을 사용자 지정할 수 있습니다.

    1. 이메일 구성(Email configuration)에서 조정 인증과 함께 사용할 SES 리전(SES Region), 발신 이메일 주소(FROM email address), 발신 발신자 이름(FROM sender name)회신 이메일 주소(REPLY-TO email address)를 선택합니다. 사용자 풀 이메일 메시지를 Amazon Simple Email Service와 통합하는 방법에 대한 자세한 내용은 Amazon Cognito 사용자 풀에 대한 이메일 설정을 참조하세요.

      
                        사용자 이벤트 기록
    2. 이메일 템플릿(Email templates)을 확장하여 HTML 버전의 이메일 메시지와 일반 텍스트 버전의 이메일 메시지 모두에서 조정 인증 알림을 사용자 지정합니다. 이메일 메시지 템플릿에 대한 자세한 내용은 메시지 템플릿 섹션을 참조하세요.

  8. IP 주소 예외(IP address exceptions)를 확장하여 고급 보안 위험 평가와 관계없이 항상 허용 또는 차단되는 IPv4 또는 IPv6 주소 범위의 항상 허용(Always-allow) 또는 항상 차단(Always-block) 목록을 생성합니다. CIDR 표기법(예: 192.168.100.0/24)으로 IP 주소 범위를 지정합니다.

  9. [Save changes]를 선택합니다.