Amazon S3 中的存儲(chǔ)桶及其中的對(duì)象是私有的,只有在明確授予訪問(wèn)權(quán)限時(shí)才可以訪問(wèn)。AWS 提供豐富的訪問(wèn)控制策略,包括存儲(chǔ)桶策略、AWS Identity and Access Management(IAM)策略、訪問(wèn)控制列表(ACL)和 S3 接入點(diǎn)管理訪問(wèn)。
1. 存儲(chǔ)桶策略
存儲(chǔ)桶策略是基于資源的 AWS Identity and Access Management (IAM) 策略,可以使用該策略向存儲(chǔ)桶及其中對(duì)象授予訪問(wèn)權(quán)限。只有存儲(chǔ)桶擁有者才能將策略與存儲(chǔ)桶關(guān)聯(lián),附加到存儲(chǔ)桶的權(quán)限適用于存儲(chǔ)桶擁有者擁有的存儲(chǔ)桶中所有對(duì)象。
存儲(chǔ)桶策略根據(jù)策略中的元素允許或拒絕請(qǐng)求,包括請(qǐng)求者、S3 操作、資源以及請(qǐng)求的方面或條件;存儲(chǔ)桶策略的大小限制為 20 KB。
2. AWS Identity and Access Management(IAM)策略
借助 AWS IAM全地控制對(duì) Amazon S3 資源的訪問(wèn),可以快捷地集中管理控制用戶可訪問(wèn)哪些 Amazon S3 資源的權(quán)限,也可以方便地控制誰(shuí)通過(guò)了身份驗(yàn)證(準(zhǔn)許登錄)并獲得授權(quán)(具有相應(yīng)權(quán)限)來(lái)使用資源。
3. 訪問(wèn)控制列表(ACL)
使用 ACL 向已授權(quán)的用戶授予對(duì)單個(gè)存儲(chǔ)桶和對(duì)象的讀寫權(quán)限。每個(gè)存儲(chǔ)桶和對(duì)象都有一個(gè)作為子資源而附加的 ACL。ACL 定義了哪些 AWS 賬戶 或組將被授予訪問(wèn)權(quán)限以及訪問(wèn)的類型。ACL 是一種訪問(wèn)控制機(jī)制,它的出現(xiàn)要早于 IAM 策略。 S3 對(duì)象所有權(quán)是 Amazon S3 存儲(chǔ)桶級(jí)別的設(shè)置,可以使用該設(shè)置來(lái)控制上傳到存儲(chǔ)桶的對(duì)象的所有權(quán),以及禁用或啟用 ACL。
4. S3 接入點(diǎn)管理訪問(wèn)
每個(gè)接入點(diǎn)都有自己的接入點(diǎn)策略。可以為每個(gè)接入點(diǎn)配置阻止公有訪問(wèn)設(shè)置。為了限制 Amazon S3 數(shù)據(jù)訪問(wèn)提供網(wǎng)絡(luò),可以將任何接入點(diǎn)配置為僅接受來(lái)自私有云(VPC)的請(qǐng)求。
1. 如果可行,盡可能使用存儲(chǔ)桶策略、接入點(diǎn)策略、 IAM 用戶策略進(jìn)行訪問(wèn)控制
2. 大多數(shù)現(xiàn)代使用案例不再需要使用 ACL,建議將 ACL 保持為禁用狀態(tài),除非有需要單獨(dú)控制每個(gè)對(duì)象的訪問(wèn)權(quán)限的特殊情況。