S3 到 Redshift:复制但访问被拒绝

2023-12-01

我们以前每天使用 COPY 命令从没有特定策略的存储桶将文件从 s3 复制到 Redshift。

COPY schema.table_staging     
FROM 's3://our-bucket/X/YYYY/MM/DD/'     
CREDENTIALS 'aws_access_key_id=xxxxxx;aws_secret_access_key=xxxxxx'     
CSV     
GZIP     
DELIMITER AS '|'     
TIMEFORMAT 'YYYY-MM-DD HH24:MI:SS';  

由于我们需要提高 S3 存储桶的安全性,因此我们添加了一项策略来授权来自 VPC(我们用于 Redshift 集群的 VPC)或特定 IP 地址的连接。

{
"Version": "2012-10-17",
"Id": "S3PolicyId1",
"Statement": [
    {
        "Sid": "DenyAllExcept",
        "Effect": "Deny",
        "Principal": "*",
        "Action": "s3:*",
        "Resource": [
            "arn:aws:s3:::our-bucket/*",
            "arn:aws:s3:::our-bucket"
        ],
        "Condition": {
            "StringNotEqualsIfExists": {
                "aws:SourceVpc": "vpc-123456789"
            },
            "NotIpAddressIfExists": {
                "aws:SourceIp": [
                    "12.35.56.78/32"
                ]
            }
        }
    }
]
}

此策略非常适合使用 AWS CLI 或 boto Python 库从 EC2、EMR 或我们的特定地址访问文件。

这是我们在 Redshift 上遇到的错误:

ERROR: S3ServiceException:Access Denied,Status 403,Error AccessDenied,Rid xxxxxx,CanRetry 1
Détail : 
-----------------------------------------------
error:  S3ServiceException:Access Denied,Status 403,Error AccessDenied,Rid xxxxxx,CanRetry 1
code:      8001
context:   Listing bucket=our-bucket prefix=X/YYYY/MM/DD/
query:     1587954
location:  s3_utility.cpp:552
process:   padbmaster [pid=21214]
-----------------------------------------------

如果您能在这方面帮助我们,非常感谢,

Damien

ps:这个问题与这个问题非常相似:将数据从 S3 复制到 Redshift - 访问被拒绝


您需要使用 Redshift 的“增强型 VPC 路由”功能。从文档中here:

  1. When you use Amazon Redshift Enhanced VPC Routing, Amazon Redshift forces all COPY and UNLOAD traffic between your cluster and your data repositories through your Amazon VPC.

  2. If Enhanced VPC Routing is not enabled, Amazon Redshift routes traffic through the Internet, including traffic to other services within the AWS network.

  3. For traffic to an Amazon S3 bucket in the same region as your cluster, you can create a VPC endpoint to direct traffic directly to the bucket.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

S3 到 Redshift:复制但访问被拒绝 的相关文章

随机推荐

  • ClearCase UCM:从 Dev-stream 获取最新版本

    我对动态视图的配置规范感到困惑 我尝试将 UCM 流的文件夹的最新版本从开发流获取到另一个 基础 动态视图 我的想法是做一个 element PathToFolder DEV STREAM NAME LATEST 但这不会给我任何东西 UC
  • 创建只读文件

    我想知道是否可以创建或模拟一个在创建时设置内容的文件 并确保没有人可以更改该文件 如果可以的话 我可以用java来做吗 将文件设置为只读并不意味着任何人都无法更改它 取消只读标志大约需要 3 秒 然后可以在十六进制编辑器或其他可以处理文件类
  • 如何在nodejs中通过TCP/IP获取传感器数据?

    我有一个带有socket io 的nodejs 应用程序 要测试这一点 请将以下列表保存为 app js 安装 Node 然后 npm install socket io 最后在命令提示符下运行 node app js var http r
  • XSLT 更改命名空间前缀

    我正在尝试将属性转换为元素 与此同时 我想更改 XML 代码的命名空间前缀 XML代码
  • 使用php/Java读取foxpro DB

    我正在寻找一个代码片段 库 用于使用 Linux 服务器上的 php Java 通过网络从第三方 Foxpro DB 读取数据 有可用的图书馆吗 有些人似乎在使用 php 的 Dbase 库 那样有用吗 除了默认值 数据库名 用户名 密码
  • 如何在已经存在于pdf.js中的canvas中绘制矩形

    我在这里使用 pdf js 在画布中渲染我的 pdf 我的代码是 div div class pdfViewer div div 上面的canvas是通过viewer js生成的 现在我试图在我的pdf上绘制矩形 但它没有显示我的矩形 我的
  • 使用 CreateProcess 函数启动时,cmd.exe 在某些情况下不会终止

    我正在通过 C 程序使用 CreateProcess 函数执行批处理命令 我通过检查进程退出代码是否等于除 STILL ACTIVE 之外的任何值来检查进程是否已使用 GetExitCodeProcess 函数终止 这适用于 cmd c e
  • 谷歌服务添加了强制关闭应用程序并显示日志猫错误

    我一直在开发一个简单的应用程序来加载地图视图 我已经遵循了API https developers google com maps documentation android start add a map BUT 执行应用程序强制关闭并出
  • 在WPF中获取数据网格中的多个选定行?

    我想在 WPF 中获得数据网格的多重选择 因为我的业务要求我在数据网格中有一个客户表 它允许多重选择和单选按钮 全部 选定 除选定之外的所有 如果单击选定的或未选定的所有客户 我必须仅提取数据网格中选定的那些客户的数据 请建议解决方案以获取
  • 从 MySQL 数据库中读取一行中的一列

    有没有一种快速而肮脏的方法来从一行中获取一列的值 现在我使用这样的东西 result mysql query SELECT value FROM table WHERE row id 1 row mysql fetch array resu
  • 默认情况下选择 ManyToManyField 中的所有选项

    默认情况下是否可以选择 Django 中 ManyToManyField 生成的多个选择中的所有选项 添加的所有新项目都应在视图中预先选择所有选项 也在添加新项目时 AnotherEntity class AnotherEntity mod
  • 根据可用性在 GPS 和网络提供商之间切换

    public void onCreate locationListener new GeoUpdateHandler locationManager LocationManager getSystemService Context LOCA
  • 在两列上使用 pandas 进行因式分解

    我在 pandas 数据框中有一些数据 如下所示 CAR TYPE MILEAGE FORD 100 FORD 100 FORD 200 FORD 300 VW 100 VW 150 VW 150 VW 300 我想对数据进行 因式分解 为
  • C# FTP 550错误

    我正在尝试通过 FTP 以编程方式下载 C 中的文件 以下是相关代码 显然带有伪造的凭据和 URI try var request FtpWebRequest Create ftp ftp mydomain com folder file
  • Zxing条码源码集成到Android项目中[重复]

    这个问题在这里已经有答案了 我想将 zxing 源代码集成到我的 Android 应用程序中 我已经下载了 zxing1 5 并将整个代码集成到我的应用程序中 并且我通过意图调用活动 CaptureActivity 它仅显示相机视图 但不扫
  • 当 WooCommerce 中有运费时如何隐藏免费送货

    我正在尝试计算乔治亚州不同城市的运费 我找到了这段代码 function ace change city to dropdown fields cities array Tbilisi city2 etc city args wp pars
  • 将类标记为final是否也会使每个函数成为final?

    正如标题所说 我想知道是否通过将类设为final 并让编译器进行速度优化 我是否还需要将函数标记为final 否则它们会自动变为final final应用于类使其不可子类化 因此在任何情况下您都不能覆盖任何函数或属性 因为为此您必须创建一个
  • 使用 COM 时,为什么 TypeName() 从 .GetType 和 TypeOf 返回不同的结果?

    我觉得了解这些函数工作原理的差异会让我受益匪浅 这样我就可以更好地理解何时使用每个函数 我在使用两种不同的互操作性 Excel 和 EPDM 时遇到了非常困难的情况 这两种互操作性都广泛使用了弱类型参数 我在使用返回的对象并将其转换为正确的
  • 防止屏幕捕获软件捕获应用程序屏幕

    我正在研究考试系统 作为系统的安全部分 我不希望任何人通过屏幕录制或使用如此多的免费应用程序进行桌面共享来远程泄露试卷 首先我搜索我可以阻止此类应用程序吗 但我不这么认为 因为记录 共享屏幕的方法有很多 然后我开始了解 HDCP 但我想它只
  • S3 到 Redshift:复制但访问被拒绝

    我们以前每天使用 COPY 命令从没有特定策略的存储桶将文件从 s3 复制到 Redshift COPY schema table staging FROM s3 our bucket X YYYY MM DD CREDENTIALS aw