跳到主要內容

這些題目為學習目的而獨立製作,並非 AWS 官方考題、實際考題、外流題或考題庫。

SAA-C03Secure Architectures難度:標準

SAA-005

希望讓內部使用者僅能讀取 S3 儲存貯體中的特定前置詞(prefix)。從最小權限的觀點來看,最為適切的設計為何?

選項

解析與正確答案

閱讀解析與正確答案(劇透:建議先自行作答)

正確答案:B. 授予僅允許對目標前置詞下的物件執行 s3:GetObject 的 IAM 政策

解析

在僅需讀取特定前置詞的要求下,將 Resource 限定於目標前置詞、Action 限定於 s3:GetObject 才符合最小權限。

各選項解析

A. 將 S3 儲存貯體公開

錯誤。公開會產生非必要的公開範圍。

B. 授予僅允許對目標前置詞下的物件執行 s3:GetObject 的 IAM 政策

正確。已限定目標範圍與操作。

C. 共用 AWS 帳戶的 root 使用者認證資訊

錯誤。共用 root 使用者認證資訊應絕對避免。

D. 對整個目標儲存貯體允許 s3:*

錯誤。s3:* 包含讀取以外的操作,屬於權限過多。

實際使用情境

S3 的存取控制,藉由將 Resource 限縮至前置詞單位、Action 僅限必要的操作,可實現最小權限。若需求為讓內部使用者僅讀取特定前置詞下的物件,IAM 政策中將 Resource 限定為 `arn:aws:s3:::bucket/prefix/*`、Action 僅限定為 `s3:GetObject` 即為適切設定。儲存貯體內的其他前置詞,以及寫入或刪除操作,於政策上仍維持拒絕狀態,因此可從結構上縮小誤操作或權限濫用的影響範圍。 設計上,IAM 政策(身分為基礎)與 S3 儲存貯體政策(資源為基礎)的區分使用也很重要。若要將權限交給同一帳戶內的特定 IAM 使用者/角色,IAM 政策較容易處理;若是跨帳戶存取或需強制「對儲存貯體的共通方針」,則儲存貯體政策較為適合。當兩者同時存在時,需依據明確 Deny 最優先的評估邏輯來組合政策。此外,ListBucket 部分可於 `s3:ListBucket` 權限的 Condition 中限定 `s3:prefix`,即可控制使前置詞外的物件清單不被看見。 SAA-C03 中,在「僅讀取特定前置詞」「以最小公開達成」的情境中,本模式經常出題。誤答則為授予 `s3:*`、共用 root 認證資訊、將儲存貯體整體公開等典型 3 種模式,分別對應「權限過多」「公開設計的誤用」「直接使用 root」,皆違反 IAM 最佳實務。

相關連結

相關服務