전체 보안을 개선하기 위해 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 허용 도메인을 구성하려면 다음 단계를 완료하세요.
콘솔
- IAP 페이지로 이동합니다.
IAP(Identity-Aware Proxy)로 이동 - 프로젝트를 선택한 다음 허용된 도메인 기능을 사용 설정할 리소스를 선택합니다.
- 리소스의 설정을 엽니다. 허용된 도메인에서 허용된 도메인 사용 설정을 선택합니다.
- 허용된 도메인 목록을 지정한 다음 저장을 클릭합니다.
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-type
이compute
또는app-engine
인 경우 선택사항입니다. - VERSION: 버전 이름.
compute
에는 적용되지 않으며resource-type
이app-engine
인 경우 선택사항입니다.
API
허용된 도메인을 구성하려면 다음 단계를 완료하세요. API를 사용하여 허용된 도메인을 구성하는 방법에 대한 자세한 내용은 IapSettings를 참조하세요.
- 다음 명령어를 실행하여
iap_settings.json
파일을 준비합니다. 필요에 따라 값을 업데이트합니다.
{ "access_settings":{ "allowed_domains_settings":{ "enable": true "domains": [ "*.example.com", "*.exampe.net" ] } } }
gcloud iap settings get
명령어를 실행하여 리소스 이름을 가져옵니다. 출력에서 이름 필드를 복사합니다. 다음 단계에서 이름이 필요합니다.
gcloud iap settings get [--organization=ORGANIZATION --folder=FOLDER --project=/PROJECT --resource-type=RESOURCE_TYPE --service=SERVICE --version=VERSION]
- 다음 명령어의
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 관리자에게 문의하여 호스트 이름을 허용된 도메인 목록에 추가하세요.