如何配置S3存储桶权限,让EC2 Image Builder执行S3Download操作?
解决EC2 Image Builder S3Download 403权限问题
核心原因
Image Builder构建实例使用的IAM角色缺少S3对象的s3:HeadObject和s3:GetObject权限,导致无法读取目标脚本文件。
配置步骤
1. 定位Image Builder使用的IAM角色
- 打开Image Builder控制台,进入你的流水线详情页
- 找到「基础设施配置」中的实例配置文件,记录关联的IAM角色名称
2. 为IAM角色添加S3权限
编辑该IAM角色的权限策略,添加以下JSON内容(替换为你的桶名和对象路径):
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:HeadObject", "s3:GetObject" ], "Resource": "arn:aws:s3:::nimbus3-scripts-2/SetEnvironmentVariables.ps1" } ] }
若需要允许访问桶内所有脚本,可将Resource改为arn:aws:s3:::nimbus3-scripts-2/*
3. 检查S3桶公共访问设置
- 进入S3控制台,打开目标桶的「权限」标签
- 确认「阻止公共访问」设置未限制IAM角色的合法访问(默认的公共访问阻止规则不会影响IAM角色,但若有自定义拒绝规则需调整)
4. 配置S3桶策略(可选)
若IAM角色权限添加后仍报错,需在桶策略中明确允许该角色访问:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::你的AWS账户ID:role/ImageBuilder使用的角色名" }, "Action": [ "s3:HeadObject", "s3:GetObject" ], "Resource": "arn:aws:s3:::nimbus3-scripts-2/SetEnvironmentVariables.ps1" } ] }
注意替换其中的AWS账户ID和角色ARN。
5. 验证权限
使用IAM控制台的「策略模拟」工具,测试该角色是否拥有指定的S3操作权限,确保资源路径匹配无误。
内容的提问来源于stack exchange,提问作者Salman Banani
相关产品推荐
相关产品推荐

