首页 > 解决方案 > 如何在将数据从 S3 存储桶(使用 kms 密钥)复制到 Redshift 时删除访问被拒绝错误。(S3 存储桶在跨账户中)?

问题描述

我有两个帐户:Account AAccount B

我正在尝试将跨账户 S3 存储桶(账户 B)中的数据加载到 Redshift 表(位于账户 A 中)。

copy employee 
from 's3://test-data/sampledata1.csv' 
region 'eu-west-1'
iam_role 'arn:aws:iam::446633115643:role/redshift-test'
delimiter ',';

我在账户 A 中启动的 Redshift 集群有一个单独的 VPC,没有公共访问权限。

我保存数据的 S3 存储桶使用 KMS 密钥加密。

我也更改了存储桶策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "DelegateS3Access",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::446633115643:root"
            },
            "Action": [
                "s3:Get*",
                "s3:List*"
            ],
            "Resource": [
                "arn:aws:s3:::test-data",
                "arn:aws:s3:::test-data/*"
            ]
        }
    ]
}

这种情况的输出应该是:数据必须加载到 Redshift 表中。但我面临这个错误:

无效操作:S3ServiceException:Access Denied,Status 403,Error AccessDenied

标签: amazon-web-servicesamazon-s3amazon-redshift

解决方案


推荐阅读