Amazon S3 的端点是什么?

What are the endpoints of Amazon S3?

我创建了一个 "Istio-enabled" Kubernetes 集群,我的容器默认为“are unable to access URLs outside of the cluster”(Istio v1.0.2)。这很好并且符合我的安全要求:

By default, Istio-enabled services are unable to access URLs outside of the cluster because the pod uses iptables to transparently redirect all outbound traffic to the sidecar proxy...

现在我正在尝试创建一个 Istio Service Entry 允许我的容器请求 Istio 服务网格之外的我的 s3 存储桶

据我所知,Amazon S3 没有特定的 "host" 或明确定义的 IP 地址范围。我怎样才能做到这一点?我需要使用什么协议?

apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: enable-access-to-s3-buckets
spec:
  hosts:
  - ????????
  ports:
  - number: ???????
    name: ??????
    protocol: ??????
  resolution: ?????

注意:Istio v1.2将默认出站流量策略更改为ALLOW_ANY

查看此处您可以获得有关 s3 终止点的列表,这可能会有所帮助:https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region

另一种解决方案是在 K8S 集群的同一 VPC 内创建一个 s3 端点,并使用该名称通过私有 IP 规则限制访问。有关详细文档,请参阅 https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-s3.html