GSS 技術部落格
在這個園地裡我們將從技術、專案管理、客戶對談面和大家分享我們多年的經驗,希望大家不管是喜歡或是有意見,都可以回饋給我們,讓我們有機會和大家對話並一起成長!
若有任何問題請來信:gss_crm@gss.com.tw
字體大小: +
2 分鐘閱讀時間 (418 個字)

IIS Application Pool 檔案目錄權限解析:為什麼不用加帳號也能運作?

IIS Application Pool 檔案目錄權限解析:為什麼不用加帳號也能運作?

在將 ASP.NET Core 網站部署到 IIS 的過程中,許多人都遇過這個疑問:

1.部署網站目錄時,是否一定要手動加上 IIS AppPool\YourAppPool 帳號的權限?

2.為什麼很多時候沒加也能正常執行?

這篇文章將徹底解析 IIS Application Pool Identity 的目錄權限運作原理,分享實際測試、設定流程,以及安全性最佳實踐,幫助你徹底搞懂這個主題!

IIS Application Pool Identity

IIS 預設會使用 Application Pool Identity(IIS AppPool\YourAppPool)來執行網站程序。它有以下特點:

  • 只要目錄權限有 BUILTIN\Users 或 NT AUTHORITY\Authenticated Users,IIS AppPool Identity 預設就能正常存取。
  • 如果這些群組被移除,就必須**明確加入 IIS AppPool\YourAppPool**,否則會遇到 500 錯誤。

這樣的設計,雖然方便,但不符合「最小權限原則」(Least Privilege Principle)。
建議為生產環境明確只授權給實際需要的 AppPool Identity,移除其他不必要的群組帳號

ASP.NET Core 網站在 IIS 部署與最小權限設定

以下是一套完整、符合最佳實踐的 IIS 目錄權限設定步驟:

1.在部署的 Server 上安裝 ASP.NET Core Hosting Bundle 後,執行 iisreset

2.在 IIS 中建立一個新的應用程式集區(假設名稱為webdemo),如下圖:

3.在 IIS 中建立一個新的應用程式(假設名稱為webdemo),並將應用程式集區指定到上面建立的集區,設定檔案所在目錄

4.在 IIS 站台,點擊webdemo,設定HTTP 回應標頭(移除不必要的標頭,加入 Security 的一些標頭),如下圖:

5.在檔案總管中,點選部署目錄->內容->安全性->SYSTEM 的權限(P)->點擊「進階」Button->點擊「停用繼承(I)」 Button 後,按下「確定」,如下圖:

6.在檔案總管中,點選部署目錄->內容->安全性->群組或使用者名稱(G)->點擊「編輯」Button->移除Authenticated Users 及 Users 群組帳號,如下圖:

7.在檔案總管中,點選部署目錄->內容->安全性->群組或使用者名稱(G)->點擊「編輯」Button->加入 IIS AppPool\webdemo 帳號(允許讀取與執行列出資料夾內容 及 讀取 權限),如下圖:


8.針對特定子目錄(如 uploads、logs)加「寫入」或「寫入 + 修改」(有要刪除檔案) 權限,如下圖:

參考資源

應用程式集區身分識別

×
Stay Informed

When you subscribe to the blog, we will send you an e-mail when there are new updates on the site so you wouldn't miss them.

GPT API 圖片輸入:Base64 vs URL,Token 成本差多大?
從零開始學 RPA:AutoIt、Power Automate、Automation Anywher...

相關文章

 

評論

尚無評論
已經注冊了? 這裡登入
2025年9月26日, 星期五

Captcha 圖像