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

전체 보안을 개선하기 위해 IAP는 기본적으로 일치하는 서버 이름 표시(SNI)가 없는 요청에 대한 액세스를 거부합니다. 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 관리자에게 문의하여 호스트 이름을 허용된 도메인 목록에 추가하세요.