![3261942b1008b4c8ec8375d672395670.png](https://i-blog.csdnimg.cn/blog_migrate/dbf8046fd18d1b8ce3eea0fdc31ad743.jpeg)
PS:文章一般都会先首发于我的个人Blog上:S3 pre-signed URL 与 KMS 加密那些事 ,有需要的小伙伴可以直接订阅我的Blog,获取最新内容。
0x00 前言
在这篇文章中,我会记录一下关于S3 pre-signed url和KMS加密交互的一些玩法。比如说:
- 简单介绍一下什么是S3 pre-signed URL
- 经过KMS加密之后还能直接公开访问object吗?
- 经过KMS加密之后还能通过pre-signed URL的方式将object公开访问吗?
- 访问S3 pre-signed URL报认证错误应该怎么处理?
0x01 S3 pre-signed URL 概述
简单理解,就是我们想将一个S3桶中的对象临时公开,可以通过presign命令生成一个临时有效期的链接,而用户可以通过这个临时的URL下载并访问对象。
话不多说了,先来个命令看看咋回事,正常情况下我们使用有权限的AKSK访问指定对象时会通过如下命令:
[root@ip-10-0-0-64 ~]# aws s3 cp s3://aaabbbccc/webwxgeticon.jpg webwxgetion.jpg --profile root
download: s3://aaabbbccc/webwxgeticon.jpg to ./webwxgetion.jpg
如果我们没有登录去下载的话,通常会报一个访问禁止的403错误,如下:
[root@ip-10-0-0-64 ~]# aws s3 cp s3://aaabbbccc/webwxgeticon.jpg webwxgetion.jpg --no-sign-request
fatal error: An error occurred (403) when calling the HeadObject operation: Forbidden
使用浏览器或者wget直接下载的话,会报如下错误:
[root@ip-10-0-0-64 ~]# wget https://aaabbbccc.s3.cn-north-1.amazonaws.com.cn/webwxgeticon.jpg
--2019-11-23 13:33:05-- https://aaabbbccc.s3.cn-north-1.amazonaws.com.cn/webwxgeticon.jpg
Resolving aaabbbccc.s3.cn-north-1.amazonaws.com.cn (aaabbbccc.s3.cn-north-1.amazonaws.com.cn)... 54.222.49.142
Connecting to aaabbbccc.s3.cn-north-1.amazonaws.com.cn (aaabbbccc.s3.cn-north-1.amazonaws.com.cn)|54.222.49.142|:443... connected.
HTTP request sent, awaiting response... 403 Forbidden
2019-11-23 13:33:05 ERROR 403: Forbidden.
[root@ip-10-0-0-64 ~]# curl https://aaabbbccc.s3.cn-north-1.amazonaws.com.cn/webwxgeticon.jpg
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>39231AA211436AF7</RequestId><HostId>a7athzq0DU1D11oBpMF9ZeNziPz9sjw1ZLY0Ga+xUmpMN1ZkhnITDci7zisSfDa+nyTcw/sbSkk=</HostId></Error>[root@ip-10-0-0-64 ~]#