S3 存储桶可以通过两种方式进行保护:
ACL(访问控制列表)
- ACL 用于管理资源对存储桶和对象的访问。每个存储桶的一个对象与 ACL 相关联。它定义了哪些 AWS 账户已授予访问权限以及访问权限的类型。当用户发送对资源的请求时,将检查其相应的 - ACL 以验证用户是否已授予对该资源的访问权限。
- 当创建存储桶时,Amazon S3 会创建一个默认 ACL,它提供对 AWS 资源的完全控制。
存储桶策略
- 存储桶策略仅适用于 S3 存储桶。存储桶策略定义允许或拒绝哪些操作。存储桶策略附加到存储桶而不是 S3 对象,但存储桶策略中定义的权限适用于 S3 存储桶中的所有对象。
以下是 Bucket 策略的主要元素:
Sid
- Sid 决定策略将做什么。例如,如果需要执行的操作是将新用户添加到访问控制列表 (ACL),则 Sid 将是 AddCannedAcl。如果将策略定义为评估 IP 地址,则 Sid 将为 IPAllow。
效果 - 效果定义了应用策略后的操作。动作可以是允许动作或拒绝动作。
主要/Principal - Principal 是一个字符串,用于确定策略适用于谁。如果我们将主体字符串设置为
*
,则该策略适用于所有人,但也可以指定单个 AWS 账户。
操作 - 操作是应用策略时发生的事情。例如,
s3:Getobject
是一个允许读取对象数据的操作。
资源 - Resource 是应用该语句的 S3 存储桶。不能输入简单的桶名,需要以特定格式指定桶名。例如,存储桶名称为
yiibai-bucket
,则资源应写为arn:aws
,s3yiibai-bucket/*
。