AWS實戰 利用IAM對S3做訪問控制

2021-09-13 00:07:53 字數 3284 閱讀 8486

要對s3的訪問許可權做控制,既可以使用基於身份的策略(iam使用者策略),也可以使用基於資源的策略(acl和儲存桶策略)。

訪問乙個儲存桶的許可權控制流程如圖所示:

訪問儲存桶中的物件的許可權控制流程如圖所示:

當 amazon s3 收到物件操作請求時,它會將基於資源的所有相關許可權(物件訪問控制列表 (acl)、儲存桶策略、儲存桶 acl)和iam使用者策略轉換為將在執行時進行評估的策略集。然後它會通過一系列步驟評估生成的策略集。在每個步驟中,它會在三個特定上下文 (使用者上下文、儲存桶上下文和物件上下文) 中評估乙個策略子集。
簡單來說就是先判斷使用者許可權,然後判斷儲存桶許可權,最後判斷物件許可權。目前我們都是通過同乙個aws賬戶下的多個iam使用者去訪問s3的,因此可以只使用iam使用者策略去做訪問許可權控制,這也基本能滿足絕大部分常規的許可權控制需求,如果無法滿足的情況再考慮使用儲存桶處理和acl。

準備工作

建立測試使用者和儲存桶

配置iam使用者策略

s3_common_policy

,,}

},}},,

]}

解釋一下各條statements:statement1:對所有的s3資源賦予s3:listallmybuckets和s3:getbucketlocation,這兩個許可權是給控制台使用的,通過控制台訪問s3時,需要這兩個許可權來正常列出所有儲存桶,如果通過cli訪問則不需要;

statement2:賦予所有derek-public開頭的儲存桶列出儲存桶物件的許可權(s3:listbucket);

statement3:允許列出derek-bucket3第一層路徑下的物件,這個寫法可以在s3的官方文件中找到;

statement4:允許列出derek-bucket3/public下的所有物件;

statement5:允許對derek-public1和derek-bucket3/public中的物件讀寫、複製操作;

statement6:允許對derek-public2中的物件讀取操作;

解釋一下各條statements:statement1:允許列出derek-bucket1和derek-bucket2中的所有物件;

statement2:允許對derek-bucket1和derek-bucket3/user1中的物件讀寫、複製操作;

statement3:允許對derek-bucket2中的物件讀取操作;

statement4:允許列出derek-bucket3/user1下的所有物件;

user2_policy

,,}}]}

解釋一下各條statements:statement1:允許列出derek-bucket2中的所有物件;

statement2:允許對derek-bucket2derek-bucket3/user2中的物件讀寫、複製操作;

statement3:允許列出derek-bucket3/user2下的所有物件;

user3_policy

,]}

user4_policy
,,}

},]}

解釋一下各條statements:statement1:允許列出derek-bucket4中的所有物件;

statement2:允許對derek-bucket4中的物件讀寫、複製操作;

statement3:未通過mfa驗證時禁止寫derek-bucket4/mfa下的所有物件

statement4:允許讀取derek-bucket4/mfa下的所有物件;

在使用user1時,在derek-bucket1中建立資料夾沒有問題,但是上傳檔案卻失敗,提示optionsrequestdenied,經谷歌查詢猜測可能和瀏覽器的adblock相關外掛程式有關,於是換火狐瀏覽器、或者使用cli上傳,都沒有問題。

AWS實戰 IAM角色的簡單使用

簡單來說,iam角色是一組許可權的集合,iam使用者或者aws服務可以臨時性代入這個角色,獲得角色所擁有的許可權 aws官方定義如下 iam角色類似於使用者,因為它是乙個aws實體,該實體具有確定其在aws中可執行和不可執行的操作的許可權策略。但是,角色旨在讓需要它的任何人代入,而不是唯一地與某個人...

AWS 之 IAM 協助AWS 內的使用者和使用者許可權

aws identity and access management 是指 web 服務,能夠協助 amazon web services aws 客戶管理 aws 內的使用者和使用者許可權。該服務面向具有多個使用 amazon ec2 amazon rds 和 aws 管理控制台等 aws 產品的...

AWS實戰 對S3資料加密方式的總結

名詞解釋 介紹 aws s3的資料加密分為伺服器端加密和客戶端加密兩大類 客戶端加密 可以在客戶端加密資料並將加密的資料上傳到amazon s3。在這種情況下,您需要管理加密過程 加密金鑰和相關的工具。伺服器端加密不會修改現有的s3訪問方式,客戶端加密則需要配合各種語言的aws開發工具包來完成訪問。...