首页 > 解决方案 > 有没有办法在 Heroku Private Space 和 AWS S3 之间建立私有连接?

问题描述

有没有办法从 Heroku 私人空间私下(而不是通过互联网)访问 S3?

使用 Private Space Peering 和 HTTP 代理不是一种选择。

标签: amazon-web-servicessecurityherokuamazon-s3

解决方案


Heroku Private Spaces 通过 AWS PrivateLink 连接到 AWS S3。因此,与 AWS S3 的连接是私有的(而不是通过 Internet)。

要将 AWS S3 存储桶策略中的 Heroku 私有空间列入白名单,请将私有空间的 AWS VPC id 列入白名单。VPC id 可以通过命令找到heroku spaces:peering:info --space <your space's name>。这是一个示例存储桶策略:

{
    "Version": "2012-10-17",
    "Id": "example-policy",
    "Statement": [
        {
            "Sid": "AllowHerokuPrivateSpaceVpcAccess",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "*",
            "Resource": "arn:aws:s3:::example-bucket/*",
            "Condition": {
                "StringEquals": {
                    "aws:sourceVpc": "<your space's VPC id>"
                }
            }
        }
    ]
}

对存储桶的请求将被记录为来自私有 IP(例如10.0.0.0/16)。

资料来源:Heroku 支持。Heroku 文档中没有记录此行为。


推荐阅读