Amazon Aurora 1.8从S3加载数据-无法实例化S3客户端

阿伯

在最新的Aurora更新(1.8)中,LOAD DATA FROM S3引入了该命令有没有人得到这个工作?升级到1.8后,我按照此处的安装指南创建了角色,以允许从RDS到S3的访问。

重新引导服务器并尝试运行命令后

LOAD DATA FROM S3 PREFIX 's3://<bucket_name>/prefix' INTO TABLE table_name

在SQL Workbench / J中,出现以下错误:

Warnings:
S3 API returned error: Missing Credentials: Cannot instantiate S3 Client
S3 API returned error: Failed to instantiate S3 Client
Internal error: Unable to initialize S3Stream

是否需要其他步骤?我只能从SDK运行它吗?我看不到文件中的任何地方

丹·卡灵顿

我遇到过同样的问题。我尝试将AmazonS3FullAccess添加到我的RDS实例正在使用的IAM角色中...不高兴。

闲逛之后,我进入了RDS控制台,进入集群。选择我的Aurora群集,然后单击“管理IAM角色”。它给了我一个下拉菜单,我选择了IAM角色(与各个实例使用的角色相同)。

一旦我做完,一切都很好,数据加载又快又好。

因此,(对我们而言)有5个步骤/组件:

1)S3存储桶和存储桶策略,允许用户上传对象

{
    "Version": "2012-10-17",
    "Id": "Policy1453918146601",
    "Statement": [
        {
            "Sid": "Stmt1453917898368",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::<account id>:<user/group/role>/<IAM User/Group/Role>"
            },
            "Action": [
                "s3:DeleteObject",
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::<bucket name>/*"
        }
    ]
}

IAM用户,组或角色将把数据文件上载到存储桶的任何人都是“ Principal”,以便RDS实例可以导入数据。

2)IAM政策:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1486490368000",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::<bucket name>/*"
            ]
        }
    ]
}

使用策略生成器,这非常简单。

3)创建IAM角色:

该角色应在上面分配IAM策略。如果您不打算将此策略用于其他角色,那么您可能也可以执行内联策略,但是我喜欢具有已定义策略的想法,如果需要的话可以稍后参考。

4)配置一个参数组,您的集群/实例将使用该参数组将aws_default_s3_role值设置为上述#3中角色的ARN。

5)通过转到群集,选择您的群集,选择管理IAM角色并为数据库群集设置IAM角色来配置Aurora群集

至少对我而言,这些步骤像个魅力一样起作用。

希望有帮助!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章