易百教程

19、如何保护对 S3 存储桶的访问?

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:awss3yiibai-bucket/*