ReportsExportRole 被允許執行 42 個動作。在「依活動產生政策」中,90 天的 trail 顯示它實際呼叫過的 API。
ReportsExportRole
切換反白顯示,查看 trail 使用了哪些已授權的動作,然後產生最小權限政策,觀察涵蓋範圍從 42 個縮到 3 個。
IAM Access Analyzer 也會替你做相同的比對,但它會輸出需要你填入的資源占位符,且完全看不到 S3 物件讀取。
有哪一件事是 trail 無法告訴你的?
本練習屬於課程
將理論付諸實踐,立即體驗我們的互動練習
在本章中,你會建立保護真實 AWS 工作負載的思維模型:把發動呼叫的行為者,與 AWS 實際評估的 principal 分開看待。接著,你會用 AWS 的方式閱讀 IAM policy,判斷一次呼叫是被允許、被拒絕,或是因為沒有明確規則而靜默通過。最後,你會以角色假設、臨時憑證與 pre-signed URLs 取代長期存取金鑰,徹底把金鑰從版本庫移除。
在本章中,你會清楚區分用於登入的 Cognito user pool,與用於取得 AWS 憑證的 identity pool,並在信任 token 內容之前先驗證其簽章。接著,你會釐清實際的權限來源,包含 identity policy、resource policy,以及限制其上限的 boundary,並用這張地圖在 API Gateway 端點之間選擇 IAM、Cognito,或 Lambda authorizer。最後,你會把機密從程式碼與日誌中移除,妥善選擇儲存位置、遮罩方式與輪替習慣,讓這些做法禁得起事件檢討。
在本章中,你會把加密模式對應到需求:S3 物件的 4 種加密方式,以及唯一一條能強制傳輸加密的 policy。接著,你會判斷當 key policy 與 IAM policy 同時作用時,究竟是誰在控制 KMS 金鑰,並細讀 CloudTrail,分辨它的沉默是因為沒有記錄,還是真的沒有事件發生。最後,你會把整門課的檢查清單套用到即將上線的一項服務,並看見同樣的身分、機密與加密決策如何延伸到 pipeline 與代你呼叫 AWS 的 AI 代理。
當前練習