溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用 bash 腳本把 AWS EC2 數(shù)據(jù)備份到 S3

發(fā)布時間:2020-08-20 17:34:48 來源:網(wǎng)絡 閱讀:1131 作者:wzlinux 欄目:云計算

一、IAM 秘鑰授權(quán)方式(普通)

Amazon Simple Storage Service (Amazon S3) 是一種面向 Internet 的存儲服務。您可以通過 Amazon S3 隨時在 Web 上的任何位置存儲和檢索的任意大小的數(shù)據(jù)。您可以使用 AWS 管理控制臺簡單而直觀的 web 界面來完成這些任務。

1.1、打開 IAM

單擊 AWS Identity and Access Management 控制面板左側(cè)的用戶。

使用 bash 腳本把 AWS EC2 數(shù)據(jù)備份到 S3

單擊添加用戶按鈕。
使用 bash 腳本把 AWS EC2 數(shù)據(jù)備份到 S3

1.2、添加用戶

在用戶名: 旁的文本框中輸入用戶名 (在本示例中,我們將使用 aws_backup),然后從“選擇 AWS 訪問類型”部分中選擇編程訪問。單擊下一步: 權(quán)限按鈕。

使用 bash 腳本把 AWS EC2 數(shù)據(jù)備份到 S3

單擊直接附加現(xiàn)有策略選項。選擇 AdministratorAccess,然后單擊下一步: 審核。

使用 bash 腳本把 AWS EC2 數(shù)據(jù)備份到 S3

單擊創(chuàng)建用戶。

使用 bash 腳本把 AWS EC2 數(shù)據(jù)備份到 S3

單擊下載憑證按鈕并將 credentials.csv 文件保存到安全位置 (您稍后在步驟 3 中將需要此文件),然后單擊關(guān)閉按鈕。

使用 bash 腳本把 AWS EC2 數(shù)據(jù)備份到 S3

1.3、安裝和配置 AWS CLI

您已經(jīng)擁有 IAM 用戶,現(xiàn)在需要安裝 AWS 命令行界面 (CLI)。
有關(guān)安裝文檔請查看 https://docs.aws.amazon.com/zh_cn/cli/latest/userguide/cli-chap-install.html 。

我這里直接使用自帶的源安裝。

apt  install awscli

1.4、配置授權(quán)

登陸到我們的 Ubuntu 系統(tǒng),輸入 aws configure,然后按 Enter 鍵。在系統(tǒng)提示時輸入以下信息:

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:~# 

二、IAM 角色授權(quán)方式(安全)

上面一種方式相對來說已經(jīng)夠安全了,但是秘鑰信息都以明文的方式存儲在了服務器上面,也變成了一種不安全,那我們就配置一下更加安全的角色方式,角色是賦予信任的實體授予權(quán)限的安全方法。

2.1、創(chuàng)建一個 EC2 訪問 S3 的角色

選擇受信任的實體,我們這里選擇 EC2。

使用 bash 腳本把 AWS EC2 數(shù)據(jù)備份到 S3

賦予訪問 S3 權(quán)限。

使用 bash 腳本把 AWS EC2 數(shù)據(jù)備份到 S3

創(chuàng)建角色。

使用 bash 腳本把 AWS EC2 數(shù)據(jù)備份到 S3

2.2、為 EC2 添加 訪問 S3 的角色

找到 EC2 實例界面。

使用 bash 腳本把 AWS EC2 數(shù)據(jù)備份到 S3

選擇我們剛剛創(chuàng)建的角色。

使用 bash 腳本把 AWS EC2 數(shù)據(jù)備份到 S3

2.3、測試

這里的前提條件是沒有配置秘鑰授權(quán)的方式。

aws s3 ls s3://myweb-backup-eu-west-1/

三、使用 AWS CLI 和 S3 備份數(shù)據(jù)

3.1、創(chuàng)建存儲桶

要新建一個名為myweb-backup的存儲桶,請輸入:

root@ip-172-31-47-132:~# aws s3 mb s3://myweb-backup
make_bucket: myweb-backup

3.2、上傳文件

要將/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  

使用 bash 腳本把 AWS EC2 數(shù)據(jù)備份到 S3

3.3、下載文件

要從 S3 中將 passwd 下載至本地目錄,我們需要顛倒命令的次序,如下所示:

root@ip-172-31-47-132:~# aws s3 cp s3://myweb-backup/passwd .
download: s3://myweb-backup/passwd to ./passwd   

3.4、刪除文件

要將 passwd 從您的 myweb-backup 存儲桶中刪除,請使用以下命令:

root@ip-172-31-47-132:~# aws s3 rm s3://myweb-backup/passwd 
delete: s3://myweb-backup/passwd

四、實際案例(使用秘鑰這種方法)

比如我每天把 /etc 目前下面的所有內(nèi)容打包上傳備份。

#!/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;

然后添加一個定時任務即可。

我這里遇到一個問題,就是放在定時任務之后一直無法上傳成功,不清楚使用角色授權(quán)的方式會不會出現(xiàn)這種情況,我覺得應該不會,大家可以自己去試試,通過打印日志查看,發(fā)現(xiàn)unable to locate credentials這個問題,找了半天,加了一個環(huán)境變量export HOME="/home/ubuntu"解決了,真是費盡周折,如果再遇到手動執(zhí)行腳本正常,而定時任務不正常,我們可以用下面的辦法對比一下兩種方式的環(huán)境變量的區(qū)別。

# 定時任務環(huán)境變量輸出
set | sort > /tmp/env.cron
# 手動執(zhí)行腳本輸出
set | sort > /tmp/env.interactive
# 然后進行比較
diff /tmp/env.cron /tmp/env.interactive

為了節(jié)省空間,我們可以添加生命周期規(guī)則。

使用 bash 腳本把 AWS EC2 數(shù)據(jù)備份到 S3

參考文檔: https://aws.amazon.com/cn/getting-started/tutorials/backup-to-s3-cli/

歡迎大家掃碼關(guān)注,獲取更多信息

使用 bash 腳本把 AWS EC2 數(shù)據(jù)備份到 S3

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI