Knative Backstage 安全性 ¶
發佈於:2024-09-23
Knative Backstage 安全性¶
作者:Ali Ok,Red Hat 首席軟體工程師
有什麼新功能?¶
在之前的部落格文章中,我們討論了如何將 Knative 與 Backstage 整合。在這篇部落格文章中,我們將討論如何保護 Knative Event Mesh 外掛程式和後端之間的通訊。
先前,後端以具有完整 Kubernetes 叢集存取權的服務帳戶執行。這並不安全,因為後端可以存取叢集中的任何資源。此外,後端沒有任何身份驗證機制,因此任何可以存取後端的人都可以存取 Kubernetes 資源,儘管它們僅是唯讀的。
為了解決這些問題,我們做了兩件事
- 後端現在使用具有有限權限的服務帳戶。
- 後端現在需要一個權杖來驗證(將其傳遞到 API 伺服器),以便處理來自外掛程式的每個請求。
它是如何運作的?¶
Backstage 安全性
與其他 Backstage 外掛程式類似,我們希望外掛程式管理員透過設定必要的項目(如後端 URL 和權杖)來設定外掛程式。這與Backstage Kubernetes 外掛程式類似,使用者需要提供 URL 和權杖。
權杖儲存在 Backstage 組態中,並隨每個請求傳遞到後端。後端使用此權杖向 Kubernetes API 伺服器進行身份驗證。權杖是具有在叢集中列出 Knative 事件資源的必要權限的服務帳戶權杖。
...
catalog:
providers:
knativeEventMesh:
dev:
token: '${KNATIVE_EVENT_MESH_TOKEN}'
baseUrl: "http://eventmesh-backend.knative-eventing.svc:8080"
schedule: # optional; same options as in TaskScheduleDefinition
# supports cron, ISO duration, "human duration" as used in code
frequency: { minutes: 1 }
# supports ISO duration, "human duration" as used in code
timeout: { minutes: 1 }
token
從 KNATIVE_EVENT_MESH_TOKEN
環境變數取得。Backstage 支援組態檔案中的環境變數,因此您可以在啟動 Backstage 實例之前將權杖設定為環境變數。實際上,Backstage 還有其他機制,包括組態檔案、檔案包含等等。您可以查看Backstage 文件以獲取更多資訊。
如何在外掛程式的讀我檔案中記錄如何建立 ServiceAccount
、ClusterRole
、ClusterRoleBinding
、Secret
和該 Secret
的權杖。
示範和快速入門¶
如果您想查看外掛程式的實際運作情況,您可以在您的 Kubernetes 叢集中安裝後端,並在您的 Backstage 實例中安裝外掛程式。
但是,為了更快地了解外掛程式,您可以查看示範影片。示範影片是使用 Ali Ok 的示範儲存庫中提供的快速入門錄製的。
歡迎投稿¶
我們正在尋找貢獻者來幫助我們改進外掛程式和後端。如果您有興趣貢獻,請查看外掛程式儲存庫的讀我檔案。如何在其中記錄啟動後端、安裝外掛程式以及修改外掛程式。
有一些問題被標記為適合新手入門,我們正在尋求協助。如果您有興趣貢獻,請查看適合新手入門的問題。
聯絡方式¶
如果您有任何問題或意見回饋,請隨時與我們聯繫。您可以在CNCF Slack 的 #knative 頻道中找到我們。