3

我正在尝试使用亚马逊在此处推广的“ SELECT INTO OUTFILE S3 ”命令将数据从 Aurora 数据库中的表导出到我在 S3 中创建的存储桶。

Select * from testauroradb.'table1' into outfile S3 's3://data-dump-bucket/Data';

当我尝试运行上述行时,我收到以下错误:

Error Code: 1045. Access denied for user 'username'@'%' (using password: YES)

根据某些形式,这是由于用户没有权限并且需要由 root 用户授予权限。然而,这是 root 用户,根据 Amazon 提供的一些文档,root 用户可以执行“ SELECT INTO S3 ”命令。我还检查并可以验证用户确实有能力运行“ SELECT INTO S3 ”命令。(我知道使用 root 用户不是一个好习惯,但这只是一个测试数据库)。

我还创建了一个 IAM 角色和策略来访问 S3 并将其链接到 Aurora 数据库。访问 S3 的策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:AbortMultipartUpload",
                "s3:ListBucket",
                "s3:DeleteObject",
                "s3:ListMultipartUploadParts"
            ],
            "Resource": [
                "arn:aws:s3:::data-dump-bucket/Data"
            ]
        }
    ]
}

我将该策略附加到 IAM 角色。然后,我将角色 ARN 添加到附加到 Aurora 集群的参数组中的参数aws_default_s3_role 。

仅在一些论坛之后,有人成功地将安全组的出站规则更改为“ TYPE:SSH, Port:22, Destination:0.0.0.0/0 ”。但这对我也不起作用。如果有人能告诉我该做什么或我做错了什么,我将不胜感激。

4

2 回答 2

1

我遇到了同样的问题。我将 AmazonS3FullAccess 策略添加到我的 IAM 角色中并且它有效。

于 2018-08-09T16:27:56.043 回答
0

在您的数据库上运行此命令

从 S3 开始授予负载TO“用户”@“域或 IP 地址”

于 2019-06-11T11:19:58.733 回答