使用Pandas读取S3 Bucket中CSV文件时遭遇403 Forbidden错误求助
解决S3读取CSV时的403 Forbidden错误
可能的原因及修复方案
1. IAM角色权限不足
AWS Notebook(如SageMaker)默认使用的IAM角色需要具备S3对象的读取权限。检查该角色是否附加了包含s3:GetObject权限的策略,示例策略如下:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::bucket-name/OGTDv1.csv" } ] }
若需要访问整个桶,可将Resource设置为arn:aws:s3:::bucket-name/*。
2. S3对象ACL设置错误
即便关闭了桶的公共访问,单个对象的ACL可能仍未授权给你的IAM角色或账户。进入S3控制台找到OGTDv1.csv,检查权限标签下的对象ACL,确保你的IAM角色或AWS账户拥有读取权限。
3. 桶策略限制
检查S3桶的桶策略,确认是否存在拒绝访问的规则,或是未明确允许你的IAM角色/账户访问。若桶策略包含Deny语句覆盖了允许权限,也会触发403错误。确保桶策略中包含允许访问的规则:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::你的账户ID:role/Notebook使用的角色名" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::bucket-name/OGTDv1.csv" } ] }
4. 临时凭证过期
如果Notebook使用的是临时凭证,可能已过期。重启Notebook实例,让其重新获取有效凭证后再尝试读取。
5. 路径或桶名错误
确认代码中的bucket-name是正确的桶名,OGTDv1.csv的路径无拼写错误(S3路径区分大小写)。
内容的提问来源于stack exchange,提问作者Anna Maria Petrou
相关产品推荐
相关产品推荐

