使用MySQL Workbench从S3导入CSV到Aurora时遇凭证缺失错误求助
解决Aurora通过S3导入CSV时的「missing credentials」错误
这个问题的核心在于AWSServiceRoleForRDS是AWS托管的服务角色,你无法直接修改它的权限策略——这就是为什么你没法给它附加S3访问权限,导致Aurora没法访问你的S3桶。下面是具体的解决步骤:
1. 创建自定义IAM角色,让RDS可以扮演它
- 打开IAM控制台,进入「角色」页面,点击「创建角色」。
- 信任实体类型选择「AWS服务」,然后选择「RDS」作为服务,再选择「RDS - Add Role to Database」用例,点击「下一步」。
- 暂时不需要附加权限策略,直接点击「下一步」,给角色起个好记的名字(比如
AuroraS3AccessRole),完成创建。
2. 给自定义角色附加S3访问权限
- 找到刚创建的角色,进入「权限」标签页,点击「添加权限」→「创建内联策略」。
- 选择「JSON」编辑模式,粘贴以下策略(替换
<your-s3-bucket-name>为你的桶名):
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::<your-s3-bucket-name>", "arn:aws:s3:::<your-s3-bucket-name>/*" ] } ] }
- 保存策略,给策略起个名字(比如
AuroraS3BucketAccess)。
3. 将自定义角色关联到Aurora集群
- 打开RDS控制台,找到你的Aurora集群,进入「配置」标签页,点击「修改」。
- 在「IAM角色」部分,添加你刚创建的
AuroraS3AccessRole角色,点击「继续」,选择「立即应用」完成修改。
4. 确认DB集群参数组配置
- 进入Aurora集群的「配置」标签页,找到关联的「集群参数组」,点击进入编辑(如果是默认参数组,需要先创建自定义参数组再关联)。
- 找到
rds.iam_role参数,设置为你自定义角色的ARN(格式类似arn:aws:iam::123456789012:role/AuroraS3AccessRole)。 - 保存参数组,然后重启Aurora集群让参数生效。
额外检查点
- 确保你的S3桶没有拒绝该角色访问的桶策略(如果桶有自定义策略,要允许该角色的
GetObject和ListBucket操作)。 - 确认CSV文件的路径正确,执行
LOAD DATA FROM S3命令时,路径格式要正确(比如s3://<your-s3-bucket-name>/path/to/your/file.csv)。
按照这些步骤操作后,Aurora就能通过自定义角色获取S3的访问凭证,应该就能成功导入CSV文件了。
内容的提问来源于stack exchange,提问作者Jamie28
相关产品推荐
相关产品推荐

