액세스 제한이있는 GCS에서 정적 페이지 제공
Google 클라우드 저장소에서 정적 페이지를 제공하고 있습니다. 공개되어있는 한 완벽하게 잘 작동합니다. 이제 한 그룹의 사용자 만 저장소를 읽을 수 있고 인증되지 않은 사용자는 Google 인증으로 리디렉션되도록 acl을 설정했습니다. 문제는 이제 javascript 및 CSS와 같은 웹 사이트의 정적 콘텐츠를 더 이상 찾을 수 없으며 거기에서 404 오류가 발생한다는 것입니다. 정적 콘텐츠도 저장소 버킷에 있으며 공개 URL에서 제대로 작동합니다. 인증 된 URL을 사용하면 더 이상 작동하지 않습니다.
액세스 제어 페이지를 제공하려는 시도가 맞습니까? 정적 콘텐츠를 제외하고 작동하기 때문에 그렇게 생각합니다. 그래서 내가 여기서 놓친 아이디어가 있습니까?
답변
App Engine에 배포 해보세요. 이를 위해
- 정적 파일의 동일한 루트 디렉토리
app.yaml
에서이 콘텐츠 로 파일을 만듭니다.
runtime: nodejs10
env: standard
instance_class: F1
handlers:
- url: /
static_files: index.html
require_matching_file: false
upload: index.html
- url: /(.*)
static_files: /\1
require_matching_file: false
upload: /.*
- url: .*
script: auto
- App Engine에 배포
gcloud app deploy
- 제공된 URL에서 작동하는지 확인하십시오.
그렇다면:
- 보안-> IAP (Identity Aware Proxy)로 이동합니다.
- App Engine 용 IAP 활성화 이 단계에서 OAuth 동의 화면을 구성해야 할 수 있습니다.
- 루트 서비스 왼쪽의 확인란을 선택하고 페이지 오른쪽의 정보 패널로 이동합니다.
- 역할이있는 구성원, 그룹 또는 도메인 추가
IAP-secured Web app user
테스트하고 즐기십시오!
다음 해결 방법을 사용하여 버킷을 기반으로하는 GCS 정적 페이지에 사용자 인증을 추가 할 수 있습니다.
먼저 redirect.html 이라는 공개 파일을 만들어야합니다. 이 파일은 정적 웹 페이지의 진입 점이 될 것이며 다음 콘텐츠를 추가해야합니다.
<html>
<head>
<meta http-equiv="Refresh" content="0; url=https://storage.cloud.google.com/[yourbucketname]/index.html">
</head>
Redirecting to your site..
index.html
다른 파일은 선택한 사용자에게 읽기 권한이 부여 된 개인 파일이어야합니다.
이 마법은 브라우저에 활성 Google 계정이없는 경우 브라우저에서 Google 계정을 선택하라는 메시지가 표시된다는 것입니다.
독자 권한 (또는 읽기 권한이있는 다른 역할)이있는 사용자 만 정적 웹 사이트에 액세스합니다.
참고로, 브라우저에 Google 계정이 2 개 이상있는 경우 브라우저의 기본 Google 계정 이 사용됩니다. 시크릿 창을 사용하는 경우 인증 문제가 발생할 수 있습니다 .
이 매체 기사 에서 더 많은 정보를 찾을 수 있습니다.
추가 단계
데이터 액세스 로그를 활성화 한 경우이 해결 방법으로 인해 일부 인증 문제가 발생하므로 인증 된 사이트를 사용할 사용자에게 예외를 추가해야합니다.
이렇게하려면 Cloud Console에서 IAM 및 관리자> 감사 로그로 이동 합니다. 목록을 살펴 보거나 Google Cloud Storage
. 행을 클릭하십시오.
오른쪽 정보 패널의 면제 된 사용자 탭 에서 면제 된 사용자 추가를 클릭합니다.