昨天我們花了一點時間介紹 S3
今天我們就要實際上使用 IAM User 上傳檔案到 S3
到 S3 的頁面中建立一個 Bucket
Bucket 的名稱
必須要世界上獨一無二的
不可以和其他人的名稱衝到
取名時建議可以取 公司名-組織名/部門名-專案名
記得 S3 的權限都先禁止公開存取
且記得要 Block all public access
aws 的區域主要是分成
aws(標準區域)
、aws-cn(中國區域)
和aws-us-gov (AWS GovCloud (US))
因此可以理解成我們使用的區域就是aws(標準區域)
在建立 IAM User 之前
建議先自行建立權限政策
雖然在建立 IAM User 的過程
也可以自行建立政策
不過 inline policy 能夠撰寫的長度比較短
因此會比較建議另外建立政策
在建立 IAM User 時再關聯上
{
"Statement": [
{
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:ListBucket",
"s3:DeleteObject"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::{s3 bucket 名稱}/*",
"arn:aws:s3:::{s3 bucket 名稱}"
]
},
{
"Action": "s3:ListAllMyBuckets",
"Effect": "Allow",
"Resource": "*"
},
{
"Action": "*",
"Condition": {
"Bool": {
"aws:ViaAWSService": "false"
},
"NotIpAddress": {
"aws:SourceIp": [
"IP 的 CIDR 格式"
]
}
},
"Effect": "Deny",
"Resource": "*"
}
],
"Version": "2012-10-17"
}
ListAllMyBuckets 是需要加的,不然在使用 Client 端工具時,可能會無法存取上層目錄
NotIpAddress 這個主要是設定 IP 白名單
不勾選 Provide user access to the AWS Management Console
(也可以視單位的情況決定要不要勾選)
第二步關聯前一個步驟建立的 IAM Policy
然後再按下建立就可以了
點選剛剛建立好的 IAM User
進入頁面後選擇 Security credentials 分類
Access keys 的群組中點按 Create access key
就可以新增上傳用的 Token
需要 Access key 只會當下顯示
記得要儲存或下載
否則就只能溝將原本的 disable、delete 再重新建立
一個 IAM User 最多也只能建立兩個 Access Keys
AWS 官方是建議使用 S3 Browser
不過除了 S3 Browser 以外
也可以使用 WinSCP 或是 Command Line 的方式進行上傳
以下會簡單說明 WinSCP 上傳的
打開 WinSCP 後
點按設定站台
檔案協定選擇 Amazon S3
並將前一步 建立 Access Key
的 Credentials 依序填入 存取金鑰 ID
和 保密存取金鑰
就可以連上
如果只是要將本地端的檔案備份的雲端
才會比較推薦是使用 Command Line
可以參考 s3 sync 這個指令
可以快速將本地檔案備份到 Amazon S3
$ aws s3 sync <source> <target> [--options]
如果是要從 A Bucket 搬移到 B Bucket
實際行為是真的複製過去再刪除
與我們在自己電腦上作的同硬碟移動檔案原理比較不同
比較接近是跨硬碟搬移
這點則是需要特別注意的
參考資料: