你本週在值班。一個排程的函式 report-archiver 每天早上會把報表複製到歸檔 bucket,但在你輪值的每一天都失敗。團隊的第一反應是附加更寬鬆的政策就繼續往下做。
report-archiver
在任何人這麼做之前,先使用 AccessDenied 調查工具來判斷是哪一種拒絕。執行該函式並閱讀失敗訊息,接著開啟角色並查看評估追蹤(evaluation trace)。
有兩種拒絕會產生相同訊息,而且需要相反的修正。請說出你現在看到的是哪一種。
本練習屬於課程
將理論付諸實踐,立即體驗我們的互動練習
在本章中,你會建立保護真實 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 代理。