Heroku Private Space подключается к AWS S3 через AWS PrivateLink. Таким образом, подключение к AWS S3 является частным (не через Интернет).
Для внесения в белый список частного пространства Heroku в политике размещения AWS S3, внесите в белый список идентификатор AWS VPC Private Space. Идентификатор VPC можно найти с помощью команды 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.