首页 文章

将数据从S3复制到Redshift - 拒绝访问

提问于
浏览
0

我们无法将文件从S3复制到Redshift . 有问题的S3存储桶只允许从我们拥有Redshift集群的VPC进行访问 . 从公共S3存储桶复制没有问题 . 我们尝试了基于密钥和基于IAM角色的方法,但结果是相同的:我们继续通过S3获得403拒绝访问 . 知道我们缺少什么吗?谢谢 .

编辑:我们使用的查询:1 . (使用IAM角色):

copy redshift_table from 's3://bucket/file.csv.gz' credentials 'aws_iam_role=arn:aws:iam::123456789:role/redshift-copyunload' delimiter '|' gzip;
  • (使用访问键):

从's3://bucket/file.csv.gz'凭证'复制redshift_table'aws_access_key_id = xxx; aws_secret_access_key = yyy'分隔符'|' gzip的;

IAM角色(第一个查询)和IAM用户(第二个查询)的S3策略是:

{
    "Version": "2012-10-17",
    "Statement": [
        {
     "Sid": "Stmt123456789",
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws:s3:::bucket/*"
            ]
        }
    ]
}

Bucket有一个策略拒绝从VPC以外的任何地方访问(红色群集在此VPC中):

{
    "Version": "2012-10-17",
    "Id": "VPCOnlyPolicy",
    "Statement": [
        {
            "Sid": "Access-to-specific-VPC-only",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::bucket/*",
                "arn:aws:s3:::bucket"
            ],
            "Condition": {
                "StringNotEquals": {
                    "aws:sourceVpc": "vpc-123456"
                }
            }
        }
    ]
}

从公共可访问的存储桶加载没有问题,如果我们删除此存储桶策略,我们可以毫无问题地复制数据 .

存储桶与红移群集位于同一区域 .

当我们通过策略模拟器运行IAM角色(redshift-copyunload)时,它返回“允许的权限” .

1 回答

相关问题