웹사이트용 Google Cloud Armor와 통합

이 문서에서는 웹사이트에서 WAF용 reCAPTCHA를 Google Cloud Armor와 통합하는 방법을 보여줍니다.

통합을 완료하려면 WAF용 reCAPTCHA 기능을 하나 이상 구현하고 Google Cloud Armor 보안 정책을 구성해야 합니다.

시작하기 전에

  1. reCAPTCHA Enterprise API를 사용 설정합니다.

    Enable the API

  2. WAF용 reCAPTCHA 기능을 구현하여 웹사이트를 보호하는 방법을 계획합니다.

    1. 사용 사례에 가장 적합한 WAF 기능을 하나 이상 선택합니다.
    2. 보호하려는 페이지와 이러한 페이지에서 구현하려는 WAF 기능 유형을 식별합니다.

WAF용 reCAPTCHA 기능 구현

요구사항에 따라 단일 애플리케이션에서 WAF용 reCAPTCHA 기능을 하나 이상 사용할 수 있습니다.

기능을 두 개 이상 사용하려면 기능마다 reCAPTCHA 키를 만들고 애플리케이션에서 사용해야 합니다. 예를 들어 reCAPTCHA 작업 토큰과 reCAPTCHA 테스트 페이지를 사용하려면 작업 토큰 키와 테스트 페이지 키를 만들고 애플리케이션에서 사용해야 합니다.

reCAPTCHA 작업 토큰 구현

작업 토큰을 생성하려면 웹페이지에서 reCAPTCHA를 실행해야 합니다. reCAPTCHA에서 작업 토큰을 생성한 후에는 checkout과 같은 사용자 작업을 보호해야 하는 사전 정의된 요청 헤더에 작업 토큰을 연결합니다. 기본적으로 작업 토큰은 30분 동안 유효하지만 트래픽에 따라 달라질 수 있습니다. Google Cloud Armor가 토큰 속성을 평가할 수 있도록 토큰이 만료되기 전에 사전 정의된 요청 헤더에 작업 토큰을 연결해야 합니다.

reCAPTCHA 작업 토큰을 구현하려면 다음 안내를 따르세요.

  1. 웹사이트용 작업 토큰 키를 만듭니다.

    콘솔

    1. Google Cloud 콘솔에서 reCAPTCHA 페이지로 이동합니다.

      reCAPTCHA로 이동

    2. 페이지 상단의 리소스 선택기에 프로젝트 이름이 표시되는지 확인합니다.

      프로젝트 이름이 표시되지 않으면 리소스 선택기를 클릭한 다음 프로젝트를 선택합니다.

    3. 키 만들기를 클릭합니다.
    4. 표시 이름 필드에 키의 표시 이름을 입력합니다.
    5. WAF용 reCAPTCHA 키를 만들려는 플랫폼에 따라 적절한 작업을 수행합니다.
      1. 플랫폼 유형 선택 메뉴에서 웹사이트를 선택합니다.

        도메인 목록 섹션이 표시됩니다.

      2. 웹사이트의 도메인 이름을 입력합니다.

        1. 도메인 목록 섹션에서 도메인 추가를 클릭합니다.
        2. 도메인 필드에 도메인 이름을 입력합니다.
        3. 선택사항: 도메인을 더 추가하려면 도메인 추가를 클릭하고 도메인 필드에 다른 도메인의 이름을 입력합니다. 도메인을 최대 250개까지 추가할 수 있습니다.

          웹사이트의 경우 reCAPTCHA 키는 지정한 도메인과 하위 도메인에 고유합니다. 여러 도메인에서 웹사이트를 제공할 경우 도메인을 2개 이상 지정할 수 있습니다. 도메인을 지정할 때(예: examplepetstore.com)는 하위 도메인(예: subdomain.examplepetstore.com)을 지정할 필요가 없습니다.

      3. 웹 애플리케이션 방화벽(WAF), 도메인 확인, AMP 페이지, 챌린지 섹션을 펼칩니다.
      4. 웹 애플리케이션 방화벽(WAF) 전환을 사용 설정합니다.
      5. 기능 메뉴에서 작업 토큰을 선택합니다.

      6. 선택사항: 체크박스 테스트 사용을 사용 설정합니다.

      7. 키 만들기를 클릭합니다.
      8. reCAPTCHA 키 페이지에 새로 생성된 키가 나열됩니다.

    gcloud

    reCAPTCHA 키를 만들려면 gcloud recaptcha keys create 명령어를 사용합니다.

    아래의 명령어 데이터를 사용하기 전에 다음을 바꿉니다.

    • DISPLAY_NAME: 키 이름입니다. 일반적으로 사이트 이름입니다.
    • INTEGRATION_TYPE: 통합 유형입니다. score 또는 checkbox를 지정하세요.
    • DOMAIN_NAME: 키를 사용할 수 있는 웹사이트의 도메인이나 하위 도메인입니다.

      여러 도메인을 쉼표로 구분된 목록으로 지정합니다. 선택사항: --allow-all-domains를 지정하여 도메인 확인을 중지합니다.

      도메인 확인을 사용 중지하면 사이트에 제한이 없으므로 reCAPTCHA 키를 누구나 액세스하고 사용할 수 있어서 보안 위험이 발생합니다.

    • WAF_FEATURE: WAF 기능 이름입니다. action-token를 지정하세요.
    • WAF_SERVICE: WAF 서비스 제공업체의 이름입니다. Google Cloud Armor에 CA를 지정합니다.

    gcloud recaptcha keys create 명령어를 실행합니다.

    Linux, macOS 또는 Cloud Shell

    gcloud recaptcha keys create \
    --web \
    --display-name=DISPLAY_NAME  \
    --integration-type=INTEGRATION_TYPE \
    --domains=DOMAIN_NAME \
    --waf-feature=WAF_FEATURE \
    --waf-service=WAF_SERVICE

    Windows(PowerShell)

    gcloud recaptcha keys create `
    --web `
    --display-name=DISPLAY_NAME  `
    --integration-type=INTEGRATION_TYPE `
    --domains=DOMAIN_NAME `
    --waf-feature=WAF_FEATURE `
    --waf-service=WAF_SERVICE

    Windows(cmd.exe)

    gcloud recaptcha keys create ^
    --web ^
    --display-name=DISPLAY_NAME  ^
    --integration-type=INTEGRATION_TYPE ^
    --domains=DOMAIN_NAME ^
    --waf-feature=WAF_FEATURE ^
    --waf-service=WAF_SERVICE

    응답에 새로 생성된 reCAPTCHA 키가 포함됩니다.

    REST

    키 유형 및 통합 유형에 대한 API 참조 정보는 통합 유형을 참조하세요.

    요청 데이터를 사용하기 전에 다음을 바꿉니다.

    • DISPLAY_NAME: 키 이름입니다. 일반적으로 사이트 이름입니다.
    • INTEGRATION_TYPE: 통합 유형입니다. score 또는 checkbox를 지정하세요.
    • DOMAIN_NAME: 키를 사용할 수 있는 웹사이트의 도메인이나 하위 도메인입니다.

      여러 도메인을 쉼표로 구분된 목록으로 지정합니다. 선택사항: --allow-all-domains를 지정하여 도메인 확인을 중지합니다.

      도메인 확인을 사용 중지하면 사이트에 제한이 없으므로 reCAPTCHA 키를 누구나 액세스하고 사용할 수 있어서 보안 위험이 발생합니다.

    • WAF_FEATURE: WAF 기능 이름입니다. action-token를 지정하세요.
    • WAF_SERVICE: WAF 서비스 제공업체의 이름입니다. Google Cloud Armor에 CA를 지정합니다.

    HTTP 메서드 및 URL:

    POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys

    JSON 요청 본문:

    
    {
      "displayName": "DISPLAY_NAME",
       'wafSettings': "  {
           "wafService": "WAF_SERVICE",
      
    "wafFeature": "WAF_FEATURE"
      }
      "webSettings": {
        "allowedDomains": "DOMAINS",
        "integrationType": "TYPE_OF_INTEGRATION"
       }
       
    }
    

    요청을 보내려면 다음 옵션 중 하나를 선택합니다.

    curl

    요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys"

    PowerShell

    요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys" | Select-Object -Expand Content

    다음과 비슷한 JSON 응답이 표시됩니다.

    
    {
      "name": "projects/project-id/keys/7Ldqgs0UBBBBBIn4k7YxEB-LwEh5S9-Gv6QQIWB8m",
    "displayName": "DISPLAY_NAME,
    
    "webSettings": {
      "allowAllDomains": true,
      "allowedDomains": [
        "localhost"
      ],
    
     "integrationType": "SCORE",
    
    
    },
    "wafSettings": {
      "wafService": "CA",
    
      "wafFeature": "ACTION_TOKEN"
      
    
    }
    }
    
    

  2. 웹페이지에서 만든 작업 토큰 키와 reCAPTCHA JavaScript를 통합합니다. 자세한 내용은 작업 토큰 키 통합 유형에 해당하는 문서를 참조하세요.

  3. reCAPTCHA에서 토큰을 받은 후 이 토큰을 사전 정의된 요청 헤더에 다음 형식으로 연결합니다.

     X-Recaptcha-Token: value-of-your-action-token
    

    XHR, Ajax 또는 Fetch API와 같은 언어를 사용하여 사전 정의된 요청 헤더에 토큰을 연결할 수 있습니다.

    다음 샘플 스크립트에서는 execute 작업을 보호하고 JavaScript 및 XHR을 사용하여 사전 정의된 요청 헤더에 토큰을 연결하는 방법을 보여줍니다.

      
      <script>
        src="https://www.google.com/recaptcha/enterprise.js?render=ACTION_TOKEN_KEY"></script>
    
        <script>
        function onSuccess(action_token) {
             const xhr = new XMLHttpRequest();
             xhr.open('GET','YOUR_URL', false);
             // Attach the action-token to the predefined request header
             xhr.setRequestHeader("X-Recaptcha-Token", action_token);
             xhr.send(null);
           }
           function onError(reason) {
             alert('Response promise rejected: ' + reason);
           grecaptcha.enterprise.ready(function () {
             document.getElementById("execute-button").onclick = () => {
               grecaptcha.enterprise.execute('ACTION_TOKEN_KEY', {
               }).then(onSuccess, onError);
             };
           });
          }
        </script>
      
      

reCAPTCHA 세션 토큰 구현

reCAPTCHA JavaScript는 평가 후 최종 사용자 브라우저에서 reCAPTCHA 세션 토큰을 쿠키로 설정합니다. reCAPTCHA JavaScript가 활성 상태로 유지되는 동안 최종 사용자 브라우저는 쿠키를 연결하고 새로고침합니다.

세션 토큰을 쿠키로 제공하려면 다음 요구사항을 충족하는 웹페이지 최소 하나 이상에 세션 토큰 키를 설치합니다.

  • 웹페이지는 보호해야 하는 페이지 이전에 최종 사용자가 탐색하는 페이지여야 합니다. 예를 들어 결제 페이지를 보호하려면 홈페이지나 제품 페이지에 세션 토큰 키를 설치합니다.
  • 웹페이지는 Google Cloud Armor 보안 정책으로 보호됩니다.

이 쿠키를 사용하여 특정 도메인에서 최종 사용자의 후속 요청 및 페이지 로드를 보호할 수 있습니다. 세션 토큰은 기본적으로 30분 동안 유효합니다. 하지만 세션 토큰을 구현한 페이지에 최종 사용자가 머무르면 세션 토큰이 만료되지 않도록 reCAPTCHA가 세션 토큰을 주기적으로 새로고침합니다.

reCAPTCHA로 보호해야 하는 각 페이지에 세션 토큰을 설치합니다. reCAPTCHA로 모든 페이지를 보호하고 Google Cloud Armor 규칙을 사용하여 최종 사용자가 탐색하는 첫 번째 페이지를 제외한 모든 페이지에 액세스 권한을 적용하는 것이 좋습니다.

다음은 reCAPTCHA 세션 토큰의 샘플입니다.
   recaptcha-ca-t=value-of-your-session-token;domain=domain;expires=expiration_time

reCAPTCHA 세션 토큰을 구현하려면 다음 안내를 따르세요.

  1. 웹사이트용 세션 토큰 키를 만듭니다.

    콘솔

    1. Google Cloud 콘솔에서 reCAPTCHA 페이지로 이동합니다.

      reCAPTCHA로 이동

    2. 페이지 상단의 리소스 선택기에 프로젝트 이름이 표시되는지 확인합니다.

      프로젝트 이름이 표시되지 않으면 리소스 선택기를 클릭한 다음 프로젝트를 선택합니다.

    3. 키 만들기를 클릭합니다.
    4. 표시 이름 필드에 키의 표시 이름을 입력합니다.
    5. WAF용 reCAPTCHA 키를 만들려는 플랫폼에 따라 적절한 작업을 수행합니다.
      1. 플랫폼 유형 선택 메뉴에서 웹사이트를 선택합니다.

        도메인 목록 섹션이 표시됩니다.

      2. 웹사이트의 도메인 이름을 입력합니다.

        1. 도메인 목록 섹션에서 도메인 추가를 클릭합니다.
        2. 도메인 필드에 도메인 이름을 입력합니다.
        3. 선택사항: 도메인을 더 추가하려면 도메인 추가를 클릭하고 도메인 필드에 다른 도메인의 이름을 입력합니다. 도메인을 최대 250개까지 추가할 수 있습니다.

          웹사이트의 경우 reCAPTCHA 키는 지정한 도메인과 하위 도메인에 고유합니다. 여러 도메인에서 웹사이트를 제공할 경우 도메인을 2개 이상 지정할 수 있습니다. 도메인을 지정할 때(예: examplepetstore.com)는 하위 도메인(예: subdomain.examplepetstore.com)을 지정할 필요가 없습니다.

      3. 웹 애플리케이션 방화벽(WAF), 도메인 확인, AMP 페이지, 챌린지 섹션을 펼칩니다.
      4. 웹 애플리케이션 방화벽(WAF) 전환을 사용 설정합니다.
      5. 기능 메뉴에서 세션 토큰을 선택합니다.

      6. 선택사항: 도메인 확인 사용 중지를 사용 설정합니다.

        도메인 확인을 사용 중지하면 사이트에 제한이 없으므로 reCAPTCHA 키를 누구나 액세스하고 사용할 수 있어서 보안 위험이 발생합니다.

      7. 키 만들기를 클릭합니다.
      8. reCAPTCHA 키 페이지에 새로 생성된 키가 나열됩니다.

    gcloud

    reCAPTCHA 키를 만들려면 gcloud recaptcha keys create 명령어를 사용합니다.

    아래의 명령어 데이터를 사용하기 전에 다음을 바꿉니다.

    • DISPLAY_NAME: 키 이름입니다. 일반적으로 사이트 이름입니다.
    • INTEGRATION_TYPE: 통합 유형입니다. score를 지정하세요.
    • DOMAIN_NAME: 키를 사용할 수 있는 웹사이트의 도메인이나 하위 도메인입니다.

      여러 도메인을 쉼표로 구분된 목록으로 지정합니다. 선택사항: --allow-all-domains를 지정하여 도메인 확인을 중지합니다.

      도메인 확인을 사용 중지하면 사이트에 제한이 없으므로 reCAPTCHA 키를 누구나 액세스하고 사용할 수 있어서 보안 위험이 발생합니다.

    • WAF_FEATURE: WAF 기능 이름입니다. session-token를 지정하세요.
    • WAF_SERVICE: WAF 서비스 제공업체의 이름입니다. Google Cloud Armor에 CA를 지정합니다.

    gcloud recaptcha keys create 명령어를 실행합니다.

    Linux, macOS 또는 Cloud Shell

    gcloud recaptcha keys create \
    --web \
    --display-name=DISPLAY_NAME  \
    --integration-type=INTEGRATION_TYPE \
    --domains=DOMAIN_NAME \
    --waf-feature=WAF_FEATURE \
    --waf-service=WAF_SERVICE

    Windows(PowerShell)

    gcloud recaptcha keys create `
    --web `
    --display-name=DISPLAY_NAME  `
    --integration-type=INTEGRATION_TYPE `
    --domains=DOMAIN_NAME `
    --waf-feature=WAF_FEATURE `
    --waf-service=WAF_SERVICE

    Windows(cmd.exe)

    gcloud recaptcha keys create ^
    --web ^
    --display-name=DISPLAY_NAME  ^
    --integration-type=INTEGRATION_TYPE ^
    --domains=DOMAIN_NAME ^
    --waf-feature=WAF_FEATURE ^
    --waf-service=WAF_SERVICE

    응답에 새로 생성된 reCAPTCHA 키가 포함됩니다.

    REST

    키 유형 및 통합 유형에 대한 API 참조 정보는 통합 유형을 참조하세요.

    요청 데이터를 사용하기 전에 다음을 바꿉니다.

    • DISPLAY_NAME: 키 이름입니다. 일반적으로 사이트 이름입니다.
    • INTEGRATION_TYPE: 통합 유형입니다. score를 지정하세요.
    • DOMAIN_NAME: 키를 사용할 수 있는 웹사이트의 도메인이나 하위 도메인입니다.

      여러 도메인을 쉼표로 구분된 목록으로 지정합니다. 선택사항: --allow-all-domains를 지정하여 도메인 확인을 중지합니다.

      도메인 확인을 사용 중지하면 사이트에 제한이 없으므로 reCAPTCHA 키를 누구나 액세스하고 사용할 수 있어서 보안 위험이 발생합니다.

    • WAF_FEATURE: WAF 기능 이름입니다. session-token를 지정하세요.
    • WAF_SERVICE: WAF 서비스 제공업체의 이름입니다. Google Cloud Armor에 CA를 지정합니다.

    HTTP 메서드 및 URL:

    POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys

    JSON 요청 본문:

    
    {
      "displayName": "DISPLAY_NAME",
       'wafSettings': "  {
           "wafService": "WAF_SERVICE",
      
    "wafFeature": "WAF_FEATURE"
      }
      "webSettings": {
        "allowedDomains": "DOMAINS",
        "integrationType": "TYPE_OF_INTEGRATION"
       }
       
    }
    

    요청을 보내려면 다음 옵션 중 하나를 선택합니다.

    curl

    요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys"

    PowerShell

    요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys" | Select-Object -Expand Content

    다음과 비슷한 JSON 응답이 표시됩니다.

    
    {
      "name": "projects/project-id/keys/7Ldqgs0UBBBBBIn4k7YxEB-LwEh5S9-Gv6QQIWB8m",
    "displayName": "DISPLAY_NAME,
    
    "webSettings": {
      "allowAllDomains": true,
      "allowedDomains": [
        "localhost"
      ],
    
     "integrationType": "SCORE",
    
    
    },
    "wafSettings": {
      "wafService": "CA",
    
      "wafFeature": "SESSION_TOKEN"
    
    
    }
    }
    
    

  2. 세션 토큰 키와 waf=session을 reCAPTCHA JavaScript에 추가합니다.

    다음 샘플 스크립트는 웹페이지에 세션 토큰을 구현하는 방법을 보여줍니다.

    <!DOCTYPE html>
    <html lang="en">
    <head>
     <meta charset="UTF-8">
     <title>reCAPTCHA WAF Session Token</title>
     <script src="https://www.google.com/recaptcha/enterprise.js?render=SESSION_TOKEN_KEY&waf=session" async defer></script>
     <body></body>
    </head>
    </html>
    
    
    

Implement a reCAPTCHA challenge page

When you implement a reCAPTCHA challenge page, reCAPTCHA redirects to an interstitial page where it determines if it's necessary to show a CAPTCHA challenge to a user. Therefore, CAPTCHA challenges might not be visible to all users.

To implement a reCAPTCHA challenge page, create a challenge-page key for your website.

Console

  1. In the Google Cloud console, go to the reCAPTCHA page.

    Go to reCAPTCHA

  2. Verify that the name of your project appears in the resource selector at the top of the page.

    If you don't see the name of your project, click the resource selector, then select your project.

  3. Click Create key.
  4. In the Display name field, enter a display name for the key.
  5. Depending on the platform for which you want to create reCAPTCHA keys for WAF, perform the appropriate action:
    1. From the Choose platform type menu, select Website.
    2. Expand the Web application firewall (WAF), Domain verification, AMP pages, and challenge section.
    3. Turn on the Web application firewall (WAF) toggle.
    4. From the Feature menu, select Challenge page.

    5. Turn on Disable domain verification.

      When you disable domain verification for challenge-page keys, Google Cloud Armor verifies the domain.

    6. Click Create key.
    7. The newly created key is listed on the reCAPTCHA keys page.

gcloud

To create reCAPTCHA keys, use the gcloud recaptcha keys create command.

Before using any of the command data below, make the following replacements:

  • DISPLAY_NAME: Name for the key. Typically a site name.
  • INTEGRATION_TYPE: Type of integration. Specify invisible.
  • DOMAIN_NAME: Domains or subdomains of websites allowed to use the key. Specify --allow-all-domains.
  • WAF_FEATURE: Name of the WAF feature. Specify challenge-page.
  • WAF_SERVICE: Name of the WAF service provider. Specify CA for Google Cloud Armor.

Execute the gcloud recaptcha keys create command:

Linux, macOS, or Cloud Shell

gcloud recaptcha keys create \
--web \
--display-name=DISPLAY_NAME  \
--integration-type=INTEGRATION_TYPE \
--domains=DOMAIN_NAME \
--waf-feature=WAF_FEATURE \
--waf-service=WAF_SERVICE

Windows(PowerShell)

gcloud recaptcha keys create `
--web `
--display-name=DISPLAY_NAME  `
--integration-type=INTEGRATION_TYPE `
--domains=DOMAIN_NAME `
--waf-feature=WAF_FEATURE `
--waf-service=WAF_SERVICE

Windows(cmd.exe)

gcloud recaptcha keys create ^
--web ^
--display-name=DISPLAY_NAME  ^
--integration-type=INTEGRATION_TYPE ^
--domains=DOMAIN_NAME ^
--waf-feature=WAF_FEATURE ^
--waf-service=WAF_SERVICE

응답에 새로 생성된 reCAPTCHA 키가 포함됩니다.

REST

키 유형 및 통합 유형에 대한 API 참조 정보는 통합 유형을 참조하세요.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • DISPLAY_NAME: 키 이름입니다. 일반적으로 사이트 이름입니다.
  • INTEGRATION_TYPE: 통합 유형입니다. invisible를 지정하세요.
  • DOMAIN_NAME: 키를 사용할 수 있는 웹사이트의 도메인이나 하위 도메인입니다. --allow-all-domains를 지정하세요.
  • WAF_FEATURE: WAF 기능 이름입니다. challenge-page를 지정하세요.
  • WAF_SERVICE: WAF 서비스 제공업체의 이름입니다. Google Cloud Armor에 CA를 지정합니다.

HTTP 메서드 및 URL:

POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys

JSON 요청 본문:


{
  "displayName": "DISPLAY_NAME",
   'wafSettings': "  {
       "wafService": "WAF_SERVICE",
  
"wafFeature": "WAF_FEATURE"
  }
  "webSettings": {
    "allowedDomains": "DOMAINS",
    "integrationType": "TYPE_OF_INTEGRATION"
   }
   
}

요청을 보내려면 다음 옵션 중 하나를 선택합니다.

curl

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys"

PowerShell

요청 본문을 request.json 파일에 저장하고 다음 명령어를 실행합니다.

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys" | Select-Object -Expand Content

다음과 비슷한 JSON 응답이 표시됩니다.


{
  "name": "projects/project-id/keys/7Ldqgs0UBBBBBIn4k7YxEB-LwEh5S9-Gv6QQIWB8m",
"displayName": "DISPLAY_NAME,

"webSettings": {
  "allowAllDomains": true,
  "allowedDomains": [
    "localhost"
  ],

  "integrationType": "INVISIBLE",
 

},
"wafSettings": {
  "wafService": "CA",

  "wafFeature": "CHALLENGE_PAGE"
  

}
}

Google Cloud Armor 보안 정책 구성

WAF용 reCAPTCHA 기능을 구현한 후에는 봇 관리를 위해 Google Cloud Armor 보안 정책을 구성해야 합니다.

reCAPTCHA 테스트 페이지를 구현한 경우 다음을 수행해야 합니다.

  1. 챌린지 페이지 키를 보안 정책과 연결합니다.
  2. reCAPTCHA 평가 요청을 리디렉션하도록 보안 정책 규칙을 구성합니다.

reCAPTCHA 작업 토큰 또는 세션 토큰을 구현한 경우 reCAPTCHA 토큰을 평가하는 보안 정책 규칙을 구성해야 합니다.

Google Cloud Armor 보안 정책을 구성하기 전에 Google Cloud Armor의 reCAPTCHA 토큰 속성을 이해합니다.

Google Cloud Armor 보안 정책을 구성하고 보안 정책에서 WAF용 reCAPTCHA 키를 사용하는 방법은 봇 관리 규칙 구성을 참조하세요.

다음 단계