iT邦幫忙

2023 iThome 鐵人賽

DAY 15
0

昨天我們花了一點時間介紹 S3

今天我們就要實際上使用 IAM User 上傳檔案到 S3

建立 S3 Bucket

到 S3 的頁面中建立一個 Bucket

Bucket 的名稱必須要世界上獨一無二的

不可以和其他人的名稱衝到

取名時建議可以取 公司名-組織名/部門名-專案名

記得 S3 的權限都先禁止公開存取

且記得要 Block all public access

aws 的區域主要是分成 aws(標準區域)aws-cn(中國區域)aws-us-gov (AWS GovCloud (US))
因此可以理解成我們使用的區域就是 aws(標準區域)

建立 IAM User

建立權限政策

在建立 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 白名單

建立 IAM 使用者

不勾選 Provide user access to the AWS Management Console
(也可以視單位的情況決定要不要勾選)

第二步關聯前一個步驟建立的 IAM Policy

然後再按下建立就可以了

建立 Access Key

點選剛剛建立好的 IAM User

進入頁面後選擇 Security credentials 分類

Access keys 的群組中點按 Create access key 就可以新增上傳用的 Token

需要 Access key 只會當下顯示

記得要儲存或下載

否則就只能溝將原本的 disable、delete 再重新建立

一個 IAM User 最多也只能建立兩個 Access Keys

設定 Client 端工具

AWS 官方是建議使用 S3 Browser

不過除了 S3 Browser 以外

也可以使用 WinSCP 或是 Command Line 的方式進行上傳

以下會簡單說明 WinSCP 上傳的

WinSCP 設定

打開 WinSCP 後

點按設定站台

檔案協定選擇 Amazon S3

並將前一步 建立 Access Key 的 Credentials 依序填入 存取金鑰 ID保密存取金鑰

就可以連上
https://ithelp.ithome.com.tw/upload/images/20230930/20141518jXU9lgIIM5.png

Command Line

如果只是要將本地端的檔案備份的雲端

才會比較推薦是使用 Command Line

可以參考 s3 sync 這個指令

可以快速將本地檔案備份到 Amazon S3

$ aws s3 sync <source> <target> [--options]

如果是要從 A Bucket 搬移到 B Bucket

實際行為是真的複製過去再刪除

與我們在自己電腦上作的同硬碟移動檔案原理比較不同

比較接近是跨硬碟搬移

這點則是需要特別注意的

參考資料:

  1. 儲存貯體命名規則
  2. 透過 AWS CLI 使用高階 (s3) 命令

上一篇
Day 14 介紹 S3
下一篇
Day 16 S3 架設靜態網站
系列文
上完 AWS 線上課程就打算應徵相關工作是否搞錯甚麼30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言