특정 도메인에 대한 리소스 액세스 제한

전체 보안을 개선하기 위해 IAP는 기본적으로 일치하는 서버 이름 표시(SNI)가 없는 요청에 대한 액세스를 거부합니다. 이렇게 하면 IAP가 악성 도메인으로 URL 리디렉션을 제한할 수 있습니다. IAP 허용 도메인 기능은 IAP 보호 리소스에 추가 보안 레이어를 제공합니다. 리소스 소유자 또는 IAP 관리자는 허용된 도메인 기능을 구성하여 IAP로 보호되는 리소스에 대한 액세스를 특정 도메인으로 제한할 수 있습니다.

다음 시나리오에서는 IAP 허용 도메인을 구성할 수도 있습니다.

  • 브라우저 또는 중간 프록시가 연결 풀링을 강제로 실행함: 이 시나리오에서는 HTTP 응답 429 및 오류 코드 51이 발생합니다. 이 문제를 해결하려면 IAP 관리자가 호스트 이름을 포함하도록 허용된 도메인 목록을 업데이트하면 됩니다.
  • 제공된 호스트 이름이 서버의 SSL 인증서와 일치하지 않음: 이 시나리오에서는 오류 코드 52가 수신됩니다. 이 문제를 해결하려면 IAP 관리자가 호스트 이름을 포함하도록 허용된 도메인 목록을 업데이트하면 됩니다.

허용된 도메인 구성

gcloud 또는 API를 사용하여 허용된 도메인 설정을 구성할 수 있습니다. 허용된 도메인을 구성하려면 다음 필드를 사용합니다.

  • enable: 불리언입니다. 허용된 도메인 기능을 사용 또는 사용 중지합니다.
  • Domains: 문자열입니다. 허용된 도메인 목록입니다. 도메인에는 와일드 카드 프리픽스(예: *.example.com.)가 포함될 수 있습니다. 도메인 이름은 공개 서픽스 또는 최상위 도메인에서 와일드 카드를 직접 포함할 수 없습니다. 예시: *.com, *.co.in.

자세한 내용은 IapSettings를 참조하세요.

IAP 허용 도메인을 구성하려면 다음 단계를 완료하세요.

콘솔

  1. IAP 페이지로 이동합니다.
    IAP(Identity-Aware Proxy)로 이동
  2. 프로젝트를 선택한 다음 허용된 도메인 기능을 사용 설정할 리소스를 선택합니다.
  3. 리소스의 설정을 엽니다. 허용된 도메인에서 허용된 도메인 사용 설정을 선택합니다.
  4. 허용된 도메인 목록을 지정한 후 저장을 클릭합니다.

gcloud

다음은 허용된 도메인을 지정하는 명령어의 예시입니다.

자세한 내용은 gcloud iap settings set를 참조하세요.

다음 명령어를 실행합니다.

gcloud iap settings set SETTING_FILE [--folder=FOLDER --organization=ORGANIZATION --project=/PROJECT --resource-type=RESOURCE_TYPE --service=SERVICE --version=VERSION

여기서 SETTING_FILE은 다음과 같습니다.

accessSettings:
  allowed_domains_settings:
    enable: true
    domains: ["*.example.com", "*.example.net"]

다음을 바꿉니다.

  • FOLDER: 폴더 ID
  • ORGANIZATION: 조직 ID
  • PROJECT: 프로젝트 ID
  • RESOURCE_TYPE: IAP 리소스 유형. app-engine, iap_web, compute, organization, folder이어야 합니다.
  • SERVICE: 서비스 이름. resource-typecompute 또는 app-engine인 경우 선택사항입니다.
  • VERSION: 버전 이름. compute에는 적용되지 않으며 resource-typeapp-engine인 경우 선택사항입니다.

API

허용된 도메인을 구성하려면 다음 단계를 완료하세요. API를 사용하여 허용된 도메인을 구성하는 방법에 대한 자세한 내용은 IapSettings를 참조하세요.

  1. 다음 명령어를 실행하여 iap_settings.json 파일을 준비합니다. 필요에 따라 값을 업데이트합니다.
 {
     "access_settings":{
         "allowed_domains_settings":{
             "enable": true
             "domains": [
                 "*.example.com",
                 "*.exampe.net"
             ]
         }
     }
 }
  1. gcloud iap settings get 명령어를 실행하여 리소스 이름을 가져옵니다. 출력에서 이름 필드를 복사합니다. 다음 단계에서 이름이 필요합니다.
gcloud iap settings get [--organization=ORGANIZATION --folder=FOLDER --project=/PROJECT --resource-type=RESOURCE_TYPE --service=SERVICE --version=VERSION]
  1. 다음 명령어의 RESOURCE_NAME을 이전 단계의 이름으로 바꿉니다. IapSettings가 업데이트됩니다.
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d @iap_settings.json \
"https://iap.googleapis.com/v1/RESOURCE_NAME:iapSettings?updateMask=iapSettings.accessSettings.allowedDomainsSettings.enable,iapSettings.accessSettings.allowedDomainsSettings.domains"

문제 해결

허용된 도메인 액세스 문제
오류 코드 53이 표시되면 IAP 관리자에게 문의하여 호스트 이름을 허용된 도메인 목록에 추가하세요.