Google Security Operations의 서드 파티 ID 공급업체 구성

Google 직원 ID 제휴를 사용하면 서비스 계정 키를 사용할 필요 없이 온프레미스 또는 멀티 클라우드 워크로드에 Google Cloud 리소스에 대한 액세스 권한을 부여할 수 있습니다. 직원 ID 제휴는 Microsoft Azure, Okta, SAML 2.0을 포함하여 OpenID Connect(OIDC)를 지원하는 ID 공급업체(IdP)에 사용할 수 있습니다.

Google Security Operations에서는 다음에 대한 기본 SSO 브로커로 Google 직원 ID 제휴를 사용해야 합니다.

  • FedRAMP 규정 준수 요구사항이 높음(또는 그 이상)인 고객
  • Google Security Operations에서 Identity and Access Management(IAM)를 사용하여 데이터 및 기능 역할 기반 액세스 제어(RBAC)를 비롯하여 Google Cloud에서 사용 설정된 엔터프라이즈급 제어에 액세스하는 고객
  • Google Security Operations API의 프로그래매틱 액세스를 위해 셀프 서비스 사용자 인증 정보 관리를 사용하는 고객

Google Security Operations는 사용자에게 서비스 제공업체에서 시작된(SP에서 시작) SAML SSO를 지원합니다. 이 기능을 통해 사용자가 Google Security Operations로 직접 이동할 수 있습니다. Google Security Operations는 Google Cloud Identity and Access Management(IAM) 직원 ID 제휴를 통해 서드 파티 ID 공급업체(IdP)에 요청을 실행합니다.

IdP가 사용자 ID를 인증한 후에는 인증 어설션과 함께 Google Security Operations로 사용자가 반환됩니다. Google Cloud 직원 ID 제휴는 인증 흐름에서 중간 단계 역할을 수행합니다.

Google Security Operations, Google Cloud IAM 직원 ID 제휴, IdP 사이의 통신

Google Security Operations, IAM 직원 ID 제휴, IdP 사이의 통신

개략적으로 통신은 다음과 같이 수행됩니다.

  1. 사용자가 Google Security Operations로 이동합니다.
  2. Google Security Operations가 Google Cloud 직원 ID 풀에서 IdP 정보를 찾습니다.
  3. 요청이 IdP로 전송됩니다.
  4. SAML 어설션이 Google Cloud 직원 ID 풀로 전송됩니다.
  5. 인증에 성공하면 사용자가 직원 ID 풀에서 직원 공급업체를 구성할 때 정의한 SAML 속성만 Google Security Operations에 수신됩니다.

IdP에서 시작하는 로그인(IdP 대시보드에서 로그인 시작)은 지원되지 않습니다. 조직에 이 기능이 필요한 경우 Google Security Operations 담당자에게 연락해서 이 기능을 요청하세요.

이 문서에서는 Google Cloud 직원 ID 제휴를 사용하여 서드 파티 ID 공급업체(IdP)를 통해 인증을 설정하는 대략적인 단계를 설명합니다. 이 문서의 단계를 수행한 후 서드 파티 IdP를 사용하여 Google Security Operations에 액세스하고 직원 ID 제휴를 통해 SAML SSO를 사용하여 Google Security Operations에 대한 액세스를 관리할 수 있습니다.

시작하기 전에

다음 단계에서는 gcloud 명령어를 사용해서 구성을 수행하는 방법을 설명합니다. Google Cloud 콘솔에서 한 단계를 수행할 수 있으면 관련된 IAM 문서 링크가 제공됩니다.

구현 계획

다음 섹션에서는 이 문서의 단계를 수행하기 전에 수행하는 결정과 정의하는 정보에 대해 설명합니다.

직원 ID 풀 및 직원 제공업체 정의

이 프로세스에서는 인증 흐름의 중간 단계로 Google Cloud 직원 ID 제휴를 구성합니다. 이를 수행하기 위해 다음 Google Cloud 리소스를 만듭니다.

  • 직원 풀: 직원 ID 풀을 사용하면 직원에게 Google Security Operations에 대한 액세스 권한을 부여할 수 있습니다.
  • 직원 제공업체: 직원 제공업체는 직원 ID 풀의 하위 리소스입니다. 여기에는 단일 IdP에 대한 세부정보가 저장됩니다.

직원 ID 풀과 직원 제공업체, 단일 고객 하위 도메인으로 식별된 Google Security Operations 인스턴스 사이의 관계는 다음과 같습니다.

  • 직원 ID 풀은 조직 수준에서 정의됩니다.
  • 각 Google Security Operations 인스턴스에는 직원 ID 풀이 구성되고 연결되어 있습니다.
  • 직원 ID 풀은 여러 직원 제공업체를 포함할 수 있습니다.
  • 각 직원 제공업체는 타사 IdP를 직원 ID 풀과 통합합니다.
  • 이러한 단계에 따라 만드는 직원 ID 풀은 Google SecOps 전용이어야 합니다. 다른 목적으로 여러 직원 ID 풀을 관리할 수 있지만 Google SecOps용으로 만든 직원 ID 풀은 공유할 수 없습니다.
  • Google SecOps에 바인딩된 프로젝트가 포함된 동일한 Google Cloud 조직에서 직원 ID 풀을 만드는 것이 좋습니다.

그러면 직원 ID 풀 및 직원 제공업체에 대해 정보를 사전 정의할 때 시간을 절약할 수 있습니다. IdP SAML 애플리케이션 및 직원 ID 제휴를 구성할 때 이 정보를 사용합니다.

다음 식별자에 대한 값을 선택합니다.

  • 직원 풀 ID(WORKFORCE_POOL_ID): 직원 ID 풀의 범위 또는 목적을 나타내는 값을 선택합니다. 값이 다음 요구사항을 충족해야 합니다.
    • 전역적으로 고유해야 합니다.
    • 소문자 [a-z], 숫자 [0-9], 대시 [-]만 사용해야 합니다.
    • 소문자 [a-z]로 시작해야 합니다.
    • 소문자 [a-z] 또는 숫자 [0-9]로 끝나야 합니다.
    • 길이가 4~61자 사이여야 합니다.
  • 직원 풀 표시 이름(WORKFORCE_POOL_DISPLAY_NAME): 직원 ID 풀에 사용자 친화적인 이름을 정의합니다.
  • 직원 풀 설명(WORKFORCE_POOL_DESCRIPTION): 직원 ID 풀에 대한 자세한 설명을 정의합니다.
  • 직원 제공업체 ID(WORKFORCE_PROVIDER_ID): IdP가 나타내는 값을 선택합니다. 값이 다음 요구사항을 충족해야 합니다.
    • 소문자 [a-z], 숫자 [0-9], 대시 [-]만 사용해야 합니다.
    • 길이가 4~32자 사이여야 합니다.
  • 직원 제공업체 표시 이름(WORKFORCE_PROVIDER_DISPLAY_NAME): 직원 제공업체에 사용자 친화적인 이름을 정의합니다. 길이가 32자(영문 기준) 미만이어야 합니다.
  • 직원 제공업체 설명(WORKFORCE_PROVIDER_DESCRIPTION): 직원 제공업체에 대한 자세한 설명을 정의합니다.

IdP에서 사용자 속성 및 그룹 정의

IdP에서 SAML 애플리케이션을 만들기 전에 Google Security Operations에서 기능 액세스를 구성하는 데 필요한 사용자 속성 및 그룹을 식별합니다. 자세한 내용은 IAM을 사용하여 기능 액세스 제어 구성IAM의 Google Security Operations 권한을 참조하세요.

이 프로세스의 다음 단계를 수행하는 동안 이 정보가 필요합니다.

  • SAML 애플리케이션을 구성할 때 계획 중에 정의된 그룹을 만듭니다. 어설션에 그룹 멤버십을 전달하도록 IdP SAML 애플리케이션을 구성합니다.

  • 직원 제공업체를 만들 때 어설션 속성 및 그룹을 Google Cloud 속성에 매핑합니다. 이 정보는 어설션 클레임 중 사용자 ID의 일부로 전송됩니다.

  • Google Security Operations에서 역할 기반 액세스 제어를 설정할 때는 사용자 속성 및 그룹 정보를 사용해서 Google Security Operations 기능에 대한 액세스를 구성합니다.

    Google Security Operations는 여러 사전 정의된 역할을 제공합니다. 각 역할은 특정 기능에 대한 액세스를 허용합니다. IdP SAML 애플리케이션에 정의된 그룹을 이러한 사전 정의된 역할에 매핑할 수 있습니다.

IdP 구성

이 섹션에서는 Google Cloud 직원 ID 제휴 및 Google Security Operations와 통합하기 위해 IdP SAML 애플리케이션에 필요한 특정 구성에 대해서만 설명합니다.

  1. IdP에서 새로운 SAML 애플리케이션을 만듭니다.

  2. 서비스 제공업체에 따라 싱글 사인온(SSL) URL이라고도 부르는 다음 어설션 소비자 서비스(ACS) URL을 사용하여 애플리케이션을 구성합니다.

    https://auth.backstory.chronicle.security/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
    

    다음을 바꿉니다.

    • WORKFORCE_POOL_ID: 직원 ID 풀에 정의한 식별자입니다.
    • WORKFORCE_PROVIDER_ID: 직원 제공업체에 정의한 식별자입니다.

      이러한 값에 대한 설명은 구현 계획을 참조하세요.

  3. 다음 엔티티 ID(SP 엔티티 ID라고도 함)로 애플리케이션을 구성합니다.

    https://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
    

    다음을 바꿉니다.

    • WORKFORCE_POOL_ID: 직원 ID 풀에 정의한 식별자입니다.
    • WORKFORCE_PROVIDER_ID: 직원 제공업체에 정의한 식별자입니다.
  4. NameID 필드가 SAML 응답에 반환되도록 IdP에서 이름 식별자를 구성합니다.

    이메일 주소 또는 사용자 이름과 같이 조직 정책을 지원하는 값으로 설정할 수 있습니다. 이 값 구성에 대한 자세한 내용은 IdP 문서를 참조하세요. 이 요구사항에 대한 자세한 내용은 직원 ID 제휴 문제 해결을 참조하세요.

  5. 필요한 경우 SAML 애플리케이션에 그룹 속성을 만듭니다. IdP 구현을 계획할 때 이를 정의했습니다.

  6. 애플리케이션 메타데이터 XML 파일을 다운로드합니다. 다음 섹션에서는 Cloud Shell을 사용하여 로컬 시스템에서 Google Cloud 홈 디렉터리로 이 파일을 업로드합니다.

직원 ID 제휴 구성

이 섹션에서는 이전 단계에서 만든 IdP SAML 애플리케이션에 직원 ID 제휴를 구성하는 데 필요한 특정 단계에 대해서만 설명합니다. 직원 ID 풀 관리에 대한 자세한 내용은 직원 ID 풀 제공업체 관리를 참조하세요.

  1. Google Security Operations에 바인딩된 프로젝트에서 필요한 권한이 있는 사용자로 Google Cloud 콘솔을 엽니다. 앞에서 이 사용자를 식별하거나 만들었습니다. 시작하기 전에 섹션을 참조하세요.

  2. Cloud Shell 세션을 실행합니다.

  3. gcloud CLI를 사용하여 수행된 작업에 대해 비용 및 할당량이 청구되는 Google Cloud 프로젝트를 설정합니다. 다음 gcloud 명령어를 예시로 사용하세요.

    gcloud config set billing/quota_project PROJECT_ID
    

    Google Security Operations의 Google Cloud 프로젝트 구성에서 만든 Google Security Operations에 바인딩된 프로젝트의 프로젝트 ID로 PROJECT_ID를 바꿉니다. 프로젝트를 식별하는 필드에 대한 설명은 프로젝트 만들기 및 관리를 참조하세요.

    할당량에 대한 자세한 내용은 다음 문서를 참조하세요.

    오류가 발생하면 할당량 오류를 참조하세요.

직원 ID 풀 만들기 및 구성

외부 ID 공급업체(IdP)나 Google Workspace 또는 Cloud ID와 통합하도록 직원 ID 풀을 구성할 수 있습니다.

  1. 직원 ID 풀을 만듭니다.

    • 타사 IdP의 직원 ID 풀을 만듭니다.

      다음 gcloud 명령어를 예시로 사용하세요.

      gcloud iam workforce-pools create WORKFORCE_POOL_ID\
            --location="global" \
            --organization="ORGANIZATION_ID" \
            --description="WORKFORCE_POOL_DESCRIPTION" \
            --display-name="WORKFORCE_POOL_DISPLAY_NAME"
      

      다음을 바꿉니다.

      • WORKFORCE_POOL_ID: 직원 ID 풀에 정의한 식별자입니다.
      • ORGANIZATION_ID: 숫자로 된 조직 ID입니다.
      • WORKFORCE_POOL_DESCRIPTION: 직원 ID 풀에 대한 설명을 지정합니다.
      • WORKFORCE_POOL_DISPLAY_NAME: 직원 ID 풀에 사용자 친화적인 이름을 지정합니다.
    • Google Workspace 또는 Cloud ID의 직원 ID 풀을 만듭니다.

      Google Workspace 또는 Cloud ID를 IdP로 사용하는 경우 명령어에 --allowed-services domain=backstory.chronicle.security 플래그를 추가합니다.

      gcloud iam workforce-pools create WORKFORCE_POOL_ID\
            --location="global" \
            --organization="ORGANIZATION_ID" \
            --description="WORKFORCE_POOL_DESCRIPTION" \
            --display-name="WORKFORCE_POOL_DISPLAY_NAME" \
            --allowed-services domain=backstory.chronicle.security
      

    Google Cloud 콘솔을 사용해서 이 구성을 수행하려면 풀 만들기를 참조하세요.

  2. 명령줄에서 Chronicle API를 사용 설정하라는 메시지가 표시되면 Yes를 입력합니다.

직원 ID 공급업체 만들기

  1. 더보기 >를 클릭하여 Cloud Shell 홈 디렉터리에 SAML 애플리케이션 메타데이터 파일을 업로드합니다. 홈 디렉터리에만 파일을 업로드할 수 있습니다. Cloud Shell과 로컬 워크스테이션 간에 파일을 전송하는 추가 옵션은 Cloud Shell에서 파일 및 폴더 업로드 및 다운로드를 참조하세요.

  2. Cloud Shell에서 SAML 애플리케이션 메타데이터 XML 파일을 다운로드한 디렉터리 경로를 기록해 둡니다. 다음 단계에서 이 경로가 필요합니다.

  3. 직원 ID 풀 제공업체를 만들고 IdP 세부정보를 지정합니다.

    다음 gcloud 명령어를 예시로 사용하세요.

    gcloud iam workforce-pools providers create-saml WORKFORCE_PROVIDER_ID \
          --workforce-pool="WORKFORCE_POOL_ID" \
          --location="global" \
          --display-name="WORKFORCE_PROVIDER_DISPLAY_NAME" \
          --description="WORKFORCE_PROVIDER_DESCRIPTION" \
          --idp-metadata-path=PATH_TO_METADATA_XML \
          --attribute-mapping="ATTRIBUTE_MAPPINGS"
    

    이러한 값에 대한 자세한 내용은 구현 계획을 참조하세요.

    다음을 바꿉니다.

    • WORKFORCE_PROVIDER_ID: 직원 제공업체 ID에 대해 정의한 값입니다.
    • WORKFORCE_POOL_ID: 직원 풀 ID에 대해 정의한 값입니다.
    • WORKFORCE_PROVIDER_DISPLAY_NAME: 직원 제공업체에 대한 사용자 친화적인 이름입니다. 길이가 32자(영문 기준) 미만이어야 합니다.
    • WORKFORCE_PROVIDER_DESCRIPTION: 직원 제공업체에 대한 설명입니다.
    • PATH_TO_METADATA_XML: Cloud Shell을 사용하여 업로드한 애플리케이션 메타데이터 XML 파일의 Cloud Shell 디렉터리 위치입니다(예: /path/to/sso_metadata.xml).
    • ATTRIBUTE_MAPPINGS: 어설션 속성을 Google Cloud 속성에 매핑하는 방법에 대한 정의입니다. Common Expression Language는 이러한 매핑을 해석하기 위해 사용됩니다. 예를 들면 다음과 같습니다.

      google.subject=assertion.subject,google.display_name=assertion.attributes.name[0],google.groups=assertion.attributes.groups

      앞의 예시는 다음 속성을 매핑합니다.

      • assertion.subjectgoogle.subject에 매핑. 이는 최소 요구사항입니다.
      • assertion.attributes.name[0]google.display_name에 매핑
      • assertion.attributes.groupsgoogle.groups 속성에 매핑

      Google Security Operations SIEM 및 Google Security Operations SOAR을 포함하여 Google Security Operations에 대해 이 구성을 구생하는 경우에는 Google Security Operations SOAR에 필요한 다음 속성도 매핑해야 합니다.

      • attribute.first_name
      • attribute.last_name
      • attribute.user_email
      • google.groups

      자세한 내용은 Google Security Operations SOAR의 사용자 프로비저닝 및 매핑을 참조하세요.

      기본적으로 Google Security Operations는 대소문자를 구분하지 않는 어설션 속성 이름인 _assertion.attributes.groups_, _assertion.attributes.idpGroup_, _assertion.attributes.memberOf_에서 그룹 정보를 읽습니다.

      어설션에서 그룹 멤버십 정보를 전달하도록 SAML 애플리케이션을 구성할 때는 그룹 속성 이름을 _group_, _idpGroup_, _memberOf_로 설정합니다.

      예시 명령어에서는 assertion.attributes.groupsassertion.attributes.idpGroup 또는 assertion.attributes.memberOf로 바꿀 수 있습니다. 이는 IdP SAML 애플리케이션에서 구성했고 어설션의 그룹 멤버십 정보를 포함하는 그룹 속성의 이름을 나타냅니다.

      다음 예시는 여러 그룹을 google.groups 속성에 매핑합니다.

      google.groups="(has(assertion.attributes.idpGroup) ? assertion.attributes.idpGroup : []) + (has(assertion.attributes.groups) ? assertion.attributes.groups : []) + (has(assertion.attributes.memberof) ? assertion.attributes.memberof : [])"

      다음 예시는 특수 문자가 포함된 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/group 그룹을 google.groups에 매핑합니다.

      google.groups="assertion.attributes['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/group']"

      속성 매핑에 대한 자세한 내용은 속성 매핑을 참조하세요.

      Google Cloud 콘솔을 사용해서 이 구성을 수행하려면 SAML 공급업체 만들기를 참조하세요.

Google Security Operations에 로그인을 사용 설정하도록 역할 부여

다음 단계에서는 사용자가 Google Security Operations에 로그인할 수 있도록 IAM을 사용하여 특정 역할을 부여하는 방법을 설명합니다. 앞에서 만든 Google Security Operations에 바인딩된 Google Cloud 프로젝트를 사용하여 구성을 수행합니다.

이 예시에서는 gcloud 명령어를 사용합니다. Google Cloud 콘솔을 사용하려면 단일 역할 부여를 참조하세요.

  1. Google Security Operations 애플리케이션에 대해 액세스 권한을 가져야 하는 사용자 또는 그룹에 Chronicle API 뷰어(roles/chronicle.viewer) 역할을 부여합니다.

    다음 예시에서는 이전에 만든 직원 ID 풀 및 직원 제공업체를 사용해서 관리되는 ID에 Chronicle API 뷰어 역할을 부여합니다.

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --role roles/chronicle.viewer \
      --member "principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/*"
    

    다음을 바꿉니다.

    특정 그룹에 Chronicle API 뷰어 역할을 부여하려면 다음 명령어를 실행하세요.

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --role roles/chronicle.viewer \
      --member "principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"
    

    매핑된 google.groups 클레임의 그룹 GROUP_ID를 대체합니다.

  2. 조직 요구사항을 충족하도록 추가 IAM 정책을 구성합니다.

Google Security Operations 기능 액세스 제어 확인 또는 구성

속성 또는 google.groups 속성에 매핑된 그룹을 사용해서 직원 ID 제휴를 구성한 경우 Google Security Operations 기능에 대해 역할 기반 액세스 제어(RBAC)를 구성할 수 있도록 이 정보가 Google Security Operations에 전달됩니다.

Google Security Operations 인스턴스에 기존 RBAC 구성이 있으면 원래 구성이 예상한 대로 작동하는지 확인합니다.

아직 Google Security Operations RBAC를 구성하지 않은 경우 IAM을 사용하여 기능 액세스 제어 구성에서 기능 액세스 제어 방법을 자세히 알아보세요.

직원 ID 제휴 구성 수정

직원 ID 풀 또는 직원 제공업체를 업데이트해야 하는 경우 구성 업데이트에 대한 자세한 내용은 직원 ID 풀 제공업체 관리를 참조하세요.

SAML 직원 풀 제공업체 만들기키 관리 섹션에서는 IdP 서명 키를 업데이트한 후 최신 애플리케이션 메타데이터 XML 파일을 사용해서 직원 제공업체 구성을 업데이트하는 방법을 설명합니다.

다음은 직원 제공업체 구성을 업데이트하는 예시 gcloud 명령어입니다.

gcloud iam workforce-pools providers update-saml WORKFORCE_PROVIDER_ID \
    --workforce-pool=WORKFORCE_POOL_ID \
    --location="global" \
    --display-name="WORKFORCE_PROVIDER_DISPLAY_NAME" \
    --description="WORKFORCE_PROVIDER_DESCRIPTION" \
    --idp-metadata-path=PATH_TO_METADATA_XML \
    --attribute-mapping="ATTRIBUTE_MAPPINGS"

다음을 바꿉니다.

  • WORKFORCE_PROVIDER_ID: 직원 제공업체 ID에 대해 정의한 값입니다.
  • WORKFORCE_POOL_ID: 직원 풀 ID에 대해 정의한 값입니다.
  • WORKFORCE_PROVIDER_DISPLAY_NAME: 직원 제공업체에 대한 사용자 친화적인 이름입니다. 값은 32자 미만이어야 합니다.
  • WORKFORCE_PROVIDER_DESCRIPTION: 직원 제공업체에 대한 설명입니다.
  • PATH_TO_METADATA_XML: 업데이트된 애플리케이션 메타데이터 XML 파일의 위치입니다(예: /path/to/sso_metadata_updated.xml).
  • ATTRIBUTE_MAPPINGS: Google Cloud 속성에 매핑된 어설션 속성입니다. 예를 들면 다음과 같습니다.

    google.subject=assertion.subject,google.display_name=assertion.attributes.name[0],google.groups=assertion.attributes.memberOf

Google SecOps RBAC가 예상대로 계속 작동하도록 하려면 Google SecOps에서 역할을 정의하는 데 사용되는 모든 그룹에 google.groups 특성도 매핑합니다.

구성 관련 문제 해결

이 프로세스 중에 문제가 발생하면 일반적인 문제 해결을 위해 직원 ID 제휴 문제 해결을 검토하세요. 다음 섹션에서는 이 문서의 단계를 수행할 때 발생할 수 있는 일반적인 문제들에 대한 정보를 제공합니다.

문제가 계속되면 Google SecOps 담당자에게 문의하고 Chrome 네트워크 로그 파일을 제공하세요.

직원 ID 풀 제공업체를 만들 때 command not found 오류 발생

직원 ID 풀 제공업체 만들기를 수행하고 IdP 세부정보를 지정할 때 다음 오류가 발생합니다.

Error: bash: --attribute-mapping=google.subject=assertion.subject,
google.display_name=assertion.attributes.name[0],
google.groups=assertion.attributes.groups: command not found

PATH_TO_METADATA_XML이 사용자가 Cloud Shell 홈 디렉터리에 SAML 애플리케이션 메타데이터 XML 파일을 업로드한 위치인지 확인합니다.

The caller does not have permission 오류

gcloud projects add-iam-policy-binding 명령어를 사용해서 사용자 또는 그룹에 역할을 부여할 때 다음 오류가 발생합니다.

ERROR: (gcloud.organizations.add-iam-policy-binding) User [ ] does not have
permission to access organizations instance [538073083963:getIamPolicy]
(or it may not exist): The caller does not have permission

필요한 권한이 있는지 확인합니다. 자세한 내용은 필요한 역할을 참조하세요.

다음 단계

이 문서의 단계를 완료한 후 다음을 수행합니다.