您好,登錄后才能下訂單哦!
Amazon Simple Storage Service (Amazon S3) 是一種面向 Internet 的存儲服務。您可以通過 Amazon S3 隨時在 Web 上的任何位置存儲和檢索的任意大小的數據。您可以使用 AWS 管理控制臺簡單而直觀的 web 界面來完成這些任務。
單擊 AWS Identity and Access Management 控制面板左側的用戶。
單擊添加用戶按鈕。
在用戶名: 旁的文本框中輸入用戶名 (在本示例中,我們將使用 aws_backup),然后從“選擇 AWS 訪問類型”部分中選擇編程訪問。單擊下一步: 權限按鈕。
單擊直接附加現有策略選項。選擇 AdministratorAccess,然后單擊下一步: 審核。
單擊創建用戶。
單擊下載憑證按鈕并將 credentials.csv 文件保存到安全位置 (您稍后在步驟 3 中將需要此文件),然后單擊關閉按鈕。
您已經擁有 IAM 用戶,現在需要安裝 AWS 命令行界面 (CLI)。
有關安裝文檔請查看 https://docs.aws.amazon.com/zh_cn/cli/latest/userguide/cli-chap-install.html 。
我這里直接使用自帶的源安裝。
apt install awscli
登陸到我們的 Ubuntu 系統,輸入 aws configure
,然后按 Enter 鍵。在系統提示時輸入以下信息:
root@ip-172-31-47-132:~# aws configure
AWS Access Key ID [None]: AKIA5NAGHF6NVEPKATFQ
AWS Secret Access Key [None]: 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
Default region name [None]: ap-northeast-1
Default output format [None]: json
root@ip-172-31-47-132:~#
上面一種方式相對來說已經夠安全了,但是秘鑰信息都以明文的方式存儲在了服務器上面,也變成了一種不安全,那我們就配置一下更加安全的角色方式,角色是賦予信任的實體授予權限的安全方法。
選擇受信任的實體,我們這里選擇 EC2。
賦予訪問 S3 權限。
創建角色。
找到 EC2 實例界面。
選擇我們剛剛創建的角色。
這里的前提條件是沒有配置秘鑰授權的方式。
aws s3 ls s3://myweb-backup-eu-west-1/
要新建一個名為myweb-backup
的存儲桶,請輸入:
root@ip-172-31-47-132:~# aws s3 mb s3://myweb-backup
make_bucket: myweb-backup
要將/etc/passwd
文件上傳到 S3 存儲桶 myweb-backup
,您需要使用以下命令:
root@ip-172-31-47-132:~# aws s3 cp /etc/passwd s3://myweb-backup/
upload: ../../etc/passwd to s3://myweb-backup/passwd
要從 S3 中將 passwd 下載至本地目錄,我們需要顛倒命令的次序,如下所示:
root@ip-172-31-47-132:~# aws s3 cp s3://myweb-backup/passwd .
download: s3://myweb-backup/passwd to ./passwd
要將 passwd 從您的 myweb-backup 存儲桶中刪除,請使用以下命令:
root@ip-172-31-47-132:~# aws s3 rm s3://myweb-backup/passwd
delete: s3://myweb-backup/passwd
比如我每天把 /etc 目前下面的所有內容打包上傳備份。
#!/bin/bash
export HOME="/home/ubuntu"
cd /tmp/;
tar -zcPf etc$(date +%Y%m%d).tar.gz /etc;
aws s3 cp etc$(date +%Y%m%d).tar.gz s3://myweb-backup/;
rm -f etc$(date +%Y%m%d).tar.gz;
然后添加一個定時任務即可。
我這里遇到一個問題,就是放在定時任務之后一直無法上傳成功,不清楚使用角色授權的方式會不會出現這種情況,我覺得應該不會,大家可以自己去試試,通過打印日志查看,發現unable to locate credentials
這個問題,找了半天,加了一個環境變量export HOME="/home/ubuntu"
解決了,真是費盡周折,如果再遇到手動執行腳本正常,而定時任務不正常,我們可以用下面的辦法對比一下兩種方式的環境變量的區別。
# 定時任務環境變量輸出
set | sort > /tmp/env.cron
# 手動執行腳本輸出
set | sort > /tmp/env.interactive
# 然后進行比較
diff /tmp/env.cron /tmp/env.interactive
為了節省空間,我們可以添加生命周期規則。
參考文檔: https://aws.amazon.com/cn/getting-started/tutorials/backup-to-s3-cli/
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。