[英]Serving static page from GCS with access restrictions
我在谷歌雲存儲上提供一個 static 頁面。 只要它是公開的,它就可以很好地工作。 現在我設置了 acl,這樣只有一組用戶才能讀取存儲,而未經身份驗證的用戶將被重定向到谷歌身份驗證。 現在的問題是,網站的 static 內容,如 javascript 和 css 再也找不到了,我在那里收到 404 錯誤。 static 內容也在存儲桶中,並且可以與公共 URL 一起正常工作。 使用經過身份驗證的網址時,它不再起作用。
我提供訪問控制頁面的嘗試是否正確? 我猜是這樣,因為它有效,除了 static 內容。 那么你知道我在這里缺少什么嗎?
嘗試在您提交的 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
gcloud app deploy
如果是這樣:
IAP-secured Web app user
的成員、組或域測試並享受!
您可以使用以下解決方法將用戶身份驗證添加到基於存儲桶的 GCS static 頁面。
首先你需要創建一個名為redirect.html的public文件,這個文件將作為你static網頁的入口,你需要添加以下內容
<html>
<head>
<meta http-equiv="Refresh" content="0; url=https://storage.cloud.google.com/[yourbucketname]/index.html">
</head>
Redirecting to your site..
index.html
和其他文件必須是私有文件,並授予選定用戶讀取權限
這背后的神奇之處在於,如果您的瀏覽器沒有任何活動的谷歌帳戶,您的瀏覽器會提示選擇一個谷歌帳戶。
並且只有具有讀者權限(或具有讀取權限的其他角色)的用戶才能訪問您的 static 網站。
友情提醒,如果您的瀏覽器有超過 1 個 Google 帳戶,這將使用瀏覽器中的主要 Google 帳戶,這可能會導致身份驗證問題,如果發生這種情況,請使用隱身 window。
您可以在這篇Medium 文章中找到更多信息
額外的步驟
如果您啟用了數據訪問日志,此解決方法將引發一些身份驗證問題,您需要為將使用經過身份驗證的站點的用戶添加例外
為此,請在 Cloud Console 中導航至IAM & Admin > Audit Logs 。 查看列表或過濾器以查找Google Cloud Storage
。 單擊該行。
在右側信息面板的免除用戶選項卡上,單擊添加免除用戶。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.