Redshift复制和卸载安全性

时间:2017-08-16 21:29:20

标签: amazon-web-services amazon-s3 amazon-redshift amazon-vpc

我的Redshift群集位于一个完全锁定的私有子网中。我想在Redshift中运行COPYUNLOAD命令,它们将与S3存储桶交互。我知道我会想要使用VPC端点来连接S3存储桶,但是在文档中我没有看到如何打开正确的端口到正确的IP范围以允许COPYUNLOAD到发生了,我现在唯一能让它工作的方法就是保持入站和出站网络ACL和安全组的开放性。我不习惯在生产中运行它,并且必须有更好的方法来保护Redshift用于这些操作。

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:1)

假设Redshift将S3作为Web服务访问(就像其他所有操作一样),那么打开443出站就足够了。安全组不会阻止返回流量,因此无需打开入站端口(当然,5439除外,对于指定的源)。

但是你为什么要关注阻止来自Redshift的出站流量?通常,如果担心不受控制的程序将在服务器上运行,则只会阻止出站流量。您可能会过度考虑网络配置。

答案 1 :(得分:1)

安全组足以保护Amazon Redshift群集。

由于系统通信的方式,很难在资源上配置NACL。例如,Amazon EC2实例可以在端口5439上向Redshift发送请求。该数据包包含返回地址,其在EC2实例上具有随机选择的端口,其中应发送响应。这是计算机在向系统发送多个请求时处理响应的方式。

缺点是您不知道将发回响应所需的端口。这就是您在配置NACL时遇到问题的原因。

然而,安全组有状态并自动允许出站响应返回原始请求中指定的端口。只需将它们视为智能NACL即可。

底线:使用安全组,而不是NACL。

答案 2 :(得分:1)

另一个可能原因是增强型VPC路由 https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html

如果启用此功能,并且您的群集没有公共IP,并且您的VPC被锁定为外部流量,则您需要为S3创建 VPC端点以保留所有您的VPC内部的流量。

参考:https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-working-with-endpoints.html