AWS S3 上傳下載權限管理
本篇文章說明 AWS S3 的上傳下載方式,使用 postman 作為範例,設定限定上傳的權限,開放所有下載的權限
建立 Bucket
建立 Bucket
填入名稱、區域
其他使用預設值
建立資料夾
建立資料夾
填入名稱
BUCKET_FOLDER
(e.g. images)建立成功
建立 IAM 使用者
到 IAM 儀表板
點擊使用者
填入使用者名稱
IAM_UESRNAME
(e.g. vis-trainet),並選擇 Access Key附加現有的 Policy,選擇 S3 Full Access
Tag 留空
下一步
成功後會取得
Access key ID
和Secret access key
,後續會使用到
修改權限
修改 bucket setting,後面兩個選項關閉
修改 bucket policy
回到 IAM 取得
USER_ARN
貼上 statement 並取代為自己的 User ARN,上面是開啟 Get 權限給匿名使用者,下面是開啟 Put 權限給 IAM 使用者,更多設定 Principal 參考
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "GetObjectStatement",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::BUCKET_NAME/BUCKET_FOLDER/*"
}, {
"Sid": "PutObjectStatement",
"Effect": "Allow",
"Principal": {
"AWS": "USER_ARN"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::BUCKET_NAME/BUCKET_FOLDER/*"
}
]
}
上傳下載測試
- 使用 Postman 上傳,選擇
PUT
方法 - 上傳網址
https://BUCKET_NAME.s3.amazonaws.com/BUCKET_FOLDER/20200524_006.png
- Auth 選擇型態 AWS Signature 填入 IAM 使用者的
Access key ID
和Secret access key
Body 選擇檔案後進行上傳
測試剛才上傳位置
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.