本实验旨在通过 AWS 管理控制台为 Amazon S3 存储桶配置访问控制列表(ACL),验证其权限控制功能。实验将演示如何通过 ACL 授权特定 AWS 账户或公开访问权限,确保用户能理解 S3 存储桶级 ACL 的应用场景与限制,并掌握通过控制台快速配置权限的方法。
Amazon S3 的访问控制列表(ACL)是一种基于资源的权限管理机制,允许用户为存储桶或对象定义细粒度的访问规则。与存储桶策略(Bucket Policy)或 IAM 策略不同,ACL 的核心特点包括:
层级支持:可单独为存储桶或对象配置 ACL,本实验聚焦存储桶级 ACL。
权限粒度:支持授予读取(READ)、写入(WRITE)、读取 ACP(READ_ACP,查看 ACL 权限)、写入 ACP(WRITE_ACP,修改 ACL 权限) 四种基础权限。
授权对象:权限可分配给:
AWS 账户:通过 Canonical User ID(如 123456789012)或预定义的组(如 Authenticated Users 所有认证用户)。
公开访问:通过 http://acs.amazonaws.com/groups/global/AllUsers 授权所有互联网用户。
继承性:存储桶 ACL 默认不继承到对象,需单独配置对象 ACL。
步骤一:创建存储桶登录 AWS 控制台,导航至 S3 服务,点击创建存储桶。
输入唯一名称(如 acl-demo-bucket-2024),选择区域(如 us-east-1),其他选项保持默认,点击创建存储桶。
步骤二:配置存储桶 ACL
在存储桶列表中,点击目标存储桶名称,进入权限选项卡。
向下滚动至访问控制列表(ACL) 部分,点击编辑。
在存储桶 ACL 编辑页面:
默认权限:初始状态下,存储桶所有者(当前账户)拥有完全控制权(FULL_CONTROL)。
添加授权对象:
在 Grantee 输入框中,粘贴目标 AWS 账户的 Canonical User ID(可从目标账户的 S3 控制台获取,或使用 Authenticated Users 授权所有认证用户)。
勾选权限(如 READ 和 READ_ACP),点击保存更改。
可选公开访问:若需公开读取,在 Everyone (public access) 部分勾选 READ,但需注意安全风险。
步骤三:验证 ACL 继承(可选)
上传一个测试文件到存储桶,进入文件详情页的权限选项卡,检查其 ACL 是否默认继承存储桶设置(通常不继承,需单独配置)。
1. 测试授权账户访问使用被授权的 AWS 账户(或通过 Authenticated Users 模拟),尝试通过 AWS CLI 或控制台访问存储桶。如果配置了 READ 权限,应能列出存储桶内容;若未授权,则返回 Access Denied。
2. 检查 ACL 权限返回存储桶的权限选项卡,确认 ACL 列表中显示目标账户及权限,且无意外公开访问配置。
3. 清理环境删除测试存储桶及文件,避免产生存储费用:
通过本实验,可掌握 S3 存储桶 ACL 的基础配置方法,理解其与存储桶策略的差异,并学会通过控制台快速验证权限效果。ACL 适用于简单场景,复杂权限建议使用存储桶策略或 IAM 角色。