자주 묻는 질문(FAQ) 및 문제해결

이 문서에는 IAP(Identity-Aware Proxy)에 대한 자주 묻는 질문(FAQ)이 포함되어 있습니다.

IAP로 어떤 앱을 보호할 수 있나요?

IAP는 다음 항목에 사용할 수 있습니다.

  • App Engine 표준 환경 및 App Engine 가변형 환경 앱
  • HTTP(S) 부하 분산 백엔드 서비스가 포함된 Compute Engine 인스턴스
  • Google Kubernetes Engine 컨테이너

현재까지 Cloud CDN에는 IAP를 사용할 수 없습니다.

앱에 로그인한 후 URL 끝에 #이 표시되는 이유는 무엇인가요?

일부 브라우저 및 특정 조건에서는 인증 후 URL에 #이 추가될 수 있습니다. 이것은 정상 동작이며, 로그인할 때 어떤 문제도 일으키지 않습니다.

내 URL 끝에서 #... 조각 식별자가 삭제된 이유는 무엇인가요?

URL의 이 부분은 보안을 위해 로그인 프로세스 중에 삭제됩니다. 로그인 후에는 URL을 다시 방문해도 예상 대로 작동합니다.

요청이 실패하고 405 Method Not Allowed 상태 코드가 반환되는 이유는 무엇인가요?

요청에 쿠키를 연결하지 않아서 발생할 수 있습니다. 기본적으로 자바스크립트 메서드는 요청에 쿠키를 연결하지 않습니다.

쿠키를 포함하는 방법은 요청 메소드마다 다릅니다. 예를 들어 XMLHttpRequest 객체로 전송된 요청은 withCredentials 속성이 true로 설정되어야 하지만, Fetch API로 전송된 요청은 credentials 옵션이 include 또는 same-origin으로 설정되어야 합니다.

일정 시간이 지난 후에만 발생하는 오류 처리에 대한 내용은 IAP 세션 관리를 참조하세요.

HTTP 302 리디렉션 대신 HTTP 401 Unauthorized 상태 코드가 표시되는 이유는 무엇인가요?

클라이언트가 리디렉션을 처리하도록 구성된 경우 IAP는 302 Redirect 상태 코드로 응답합니다. 클라이언트가 리디렉션을 처리할 수 있음을 나타내려면 HTTP Accept="text/html,*/*"가 요청 헤더에 있는지 확인하세요.

POST 요청이 리디렉션을 트리거하지 않는 이유는 무엇인가요?

리디렉션을 트리거하려면 IAP 호출이 POST 요청이 아닌지 확인하세요. 브라우저는 POST 요청에 대한 응답으로 리디렉션되지 않습니다. 따라서 IAP는 302 Redirect 대신 401 Unauthorized 상태 코드로 응답합니다.

POST 요청을 처리하기 위해 IAP가 필요한 경우 ID 토큰 또는 유효한 쿠키가 요청 헤더에 전달되는지 확인합니다.

IAP 보안 리소스에 인증된 요청을 하려면 Authorization: Bearer 헤더에 ID 토큰을 포함합니다. 세션 새로고침으로 유효한 쿠키를 얻으세요.

IAP에는 다음과 같은 쿠키 프리픽스가 필요합니다.

  • GCP_IAAP_AUTH_TOKEN_<random_string>
  • GCP_IAP_UID

이러한 쿠키는 일반적으로 요청 헤더에 여러 번 표시됩니다.

API를 사용 중지한 경우 IAP를 사용할 수 있나요?

예. IAP로 보호되는 리소스에 대한 액세스는 API가 사용 중지된 상태에서 작동하지만 Cloud IAM 권한을 변경할 수 없습니다.

소유자 역할을 가진 사용자가 TCP에 IAP를 사용하지 못하도록 제한하려면 어떻게 해야 하나요?

먼저 소유자(roles/owner) 역할을 가능한 한 많이 사용하지 않습니다. 소유자 역할은 Google Cloud 전반에 대한 광범위한 권한을 부여합니다. 보다 세부적인 역할과 권한을 할당하면 프로젝트의 보안이 강화될 수 있습니다 자세한 내용은 Cloud IAM 권장사항을 참조하세요.

소유자 역할의 사용을 줄일 수 없는 경우 방화벽 규칙을 사용하여 TCP에 대한 IAP를 차단할 수 있습니다.

TCP용 IAP는 어떤 도메인을 사용하나요?

IAP TCP는 tunnel.cloudproxy.app 도메인을 통해 데이터를 터널링합니다. 이 도메인은 Google 소유입니다. 이 도메인으로 유입되는 트래픽을 차단해서는 안됩니다.

이 도메인에 대한 트래픽을 차단하면 TCP용 IAP를 사용할 수 없습니다. 여러 오류 메시지 중 하나가 나타날 수 있습니다.

gcloud를 사용 중인 경우 오류 메시지는 다음과 같습니다.

Error while connecting [[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed

브라우저에서 SSH를 사용하는 경우 오류 메시지는 다음과 같습니다.

Cloud Identity-Aware Proxy Failed

연관된 오류 코드가 없습니다.

오류 코드

다음 표에는 IAP를 구성하고 사용할 때 반환되는 일반적인 오류 코드와 메시지가 나와 있습니다.

오류 코드 또는 메시지 설명 문제해결
오류 코드 7 OAuth 클라이언트 ID 또는 보안 비밀번호 값이 비어 있습니다. 사용자 인증 정보 페이지를 보고 클라이언트 ID와 보안 비밀번호가 앱에 올바르게 구성되어 있는지 확인하세요. 클라이언트 ID와 보안 비밀번호가 올바르게 구성된 것으로 보이는 경우 GET 메서드를 사용하여 현재 상태를 확인하고 PATCH 메서드를 사용하여 클라이언트 ID 및 보안 비밀번호를 재설정합니다.
Compute Engine API: GET , PATCH
App Engine API: GET , PATCH
오류 코드 11 OAuth 클라이언트 ID가 잘못 구성되었습니다. 사용자 인증 정보 페이지를 보고 클라이언트 ID와 보안 비밀번호가 앱에 올바르게 구성되어 있는지 확인하세요. 클라이언트 ID와 보안 비밀번호가 올바르게 구성된 것으로 보이는 경우 GET 메서드를 사용하여 현재 상태를 확인하고 PATCH 메서드를 사용하여 클라이언트 ID 및 보안 비밀번호를 재설정합니다.
Compute Engine API: GET , PATCH
App Engine API: GET , PATCH
오류 코드 13 OIDC(OpenID Connect) 토큰이 유효하지 않습니다. 자격 증명 페이지를 보고 IAP용으로 구성된 클라이언트 ID가 삭제되지 않았는지 확인하세요.
오류 코드 4003 연결하려는 포트에서 인스턴스가 리슨하지 않거나 방화벽이 닫혀 있음을 의미할 수 있습니다. VM의 리슨 프로세스가 실행 중이고 올바른 포트에서 리슨 중인지 확인하세요. 또한 Google Cloud 방화벽이 올바르게 구성되어 있고 연결 중인 포트에서 열려 있는지 확인하세요.
오류 코드 4033 인스턴스에 액세스할 수 있는 권한이 없거나 인스턴스가 존재하지 않거나 인스턴스가 중지되었습니다. IAP(Identity-Aware Proxy) 페이지를 보고 연결 중인 리소스에 IAP 보안 터널 사용자 Cloud IAM 역할이 적용되어 있는지 확인하세요.

문제를 해결할 수 없는 경우 오류에 대한 설명과 API에 대한 GET 호출에서 받은 응답에 대해 고객지원에 문의하세요. 응답에서 클라이언트 보안 비밀번호를 삭제할 수 있습니다.