Amazon web services AWS服务(通过ARN定位)之间的通信是否始终使用SSL?

Amazon web services AWS服务(通过ARN定位)之间的通信是否始终使用SSL?,amazon-web-services,ssl,Amazon Web Services,Ssl,正如标题中所问,AWS服务之间的通信是否默认使用SSL?例如,Lambda函数将对象写入S3,或Lambda函数从Kinesis读取数据。您可以在中检查AWS的服务及其支持的协议 除非另有规定,否则SDK将始终选择HTTPS流量。您可以通过更改正在使用的服务的端点属性来指定。只需检查上面的链接就可以为您正在寻找的服务获取正确的端点 您可以在SDK的官方文档中看到如何执行此操作,如下所示: const s3 = new AWS.S3({endpoint: 'https://s3.us-east-1

正如标题中所问,AWS服务之间的通信是否默认使用SSL?例如,Lambda函数将对象写入S3,或Lambda函数从Kinesis读取数据。

您可以在中检查AWS的服务及其支持的协议

除非另有规定,否则SDK将始终选择HTTPS流量。您可以通过更改正在使用的服务的
端点
属性来指定。只需检查上面的链接就可以为您正在寻找的服务获取正确的端点

您可以在SDK的官方文档中看到如何执行此操作,如下所示:

const s3 = new AWS.S3({endpoint: 'https://s3.us-east-1.amazonaws.com'});
下面是S3的Javascript SDK的链接:

您还可以通过将
sslEnabled
属性设置为
true
false
来启用/禁用SSL。尽管文档没有为其默认值声明任何内容,但我确实相信该标志会自动设置为
true
。只有在
端点
属性中未指定协议时,设置此标志才会生效

这是从Java SDK中提取的:

调用方可以只传入端点(例如:“ec2.amazonaws.com”)或 完整URL,包括协议(例如:“”)。如果 此处未指定协议,默认协议来自此 将使用客户端的ClientConfiguration,默认情况下为HTTPS

我在AWS的论坛上发现了一个声明,声明始终为SDK的请求启用SSL:

如果指定AWS.config.sslEnabled=true,则所有端点都将使用 默认情况下使用SSL。如果HTTPS不起作用,就不存在HTTP的“回退” 或者诸如此类的

在创建端点时,可以覆盖此项,例如通过新建 S3({sslEnabled:false})-这就是为什么它只是一个默认值 背景如果在代码中没有显式地说sslEnabled:false, 您可以放心,SSL到处都在使用。最后,即使 如果显式创建新端点,则指定sslEnabled:true 使用完整的URL,例如,will 覆盖sslEnabled设置。用另一种方式说,斯莱纳 仅在自动将http://或https://添加到主机时才生效 指定而不指定协议

默认情况下,所有Amazon服务都使用SSL,所以 添加将连接限制为仅使用SSL的bucket策略 将仅阻止不使用HTTPS(或用户)访问S3的显式尝试 使用不同的SDK:s或其他访问方法)

希望这有帮助


谢谢在您的示例中,资源是通过URL定位的。我真的很想知道资源是何时使用ARNs定位的(因此没有指定https或任何协议)。ARN只是查找资源的标识符,而不是其他标识符。