~ 萬事起頭難,準備一下信用卡 ~
環境設定流程
今天帶大家做個起手式,註冊AWS帳號並設定預算警示
首先準備
登入畫面
按照步驟填完相關資料並通過手機驗證碼驗證後,會進到以下頁面,請選擇 **free tier **方案
AWS帳號建立後會一並新增一位 Root 使用者,登入此 Root 使用者使用的是 AWS帳號的email address,這個 Root 使用者擁有帳號的最高權限,我們第一次登入必須使用Root使用者登入,並做好帳戶的安全性&預算設定,通常右下角的語言我會選擇英文,原因是絕大多數的AWS文件資源都是英文的,相對應的選項也比較好找到
按 Next 後下一頁輸入密碼後就可以成功登錄
Root登入畫面
登入後的頁面如下:
接著到上方的搜尋欄,搜尋”IAM” 服務
IAM - Identity and Access Management 身份與存取管理
使用者身份驗證(authentication) - 一個AWS帳戶可以使用IAM服務管理在此帳號下AWS服務的使用者,每一個使用者都以一個非重複的使用者名稱(username),搭配密碼(password)即可登入AWS
權限控制 - 權限(permission)控制AWS使用者可以使用哪些功能
接著我們必須先設定一些安全性設定:
刪除 Root 使用者的存取金鑰,右上角選擇 Security credentials
進入後在**My security credentials (root user)**區域中,看到Access keys這個區塊,如果有任何金鑰請刪除它,這個金鑰是使用AWS CLI或是應用程式存取時使用的,我們會新建有適當權限的使用者,並且在這個使用者下建立的金鑰來讓AWS CLI & 應用程式存取AWS資源
為Root使用者啟用MFA多重驗證機制
我們剛剛僅僅使用email & password即可成功登入Root user,這並不是一種安全的驗證方式,AWS建議使用MFA多重驗證機制,啟用步驟如下:
在 MFA code 1 & MFA code 2 輸入**”連續”兩次的MFA code**
成功後會有以下訊息
接著登出 Root 重新登入就會要求你輸入MFA code驗證了
https://xxxxxxxxxxxx.signin.aws.amazon.com/console
,其中xxxxxxxxxxxx就是你的Account ID利用群組功能管控各使用者權限
我們點選 User groups 選擇右上方 Create group
User group name:PowerUserAndIAMFullAccess
Add user to the group:選擇剛剛建立的admin
Attach permissions policies - 選擇PowerUserAccess & IAMFullAccess
點擊 Create group
套用IAM密碼政策
選取左側邊欄 Access management → Account settings
這裡我們可以Edit password policy 可以改變密碼政策,如密碼長度規則,密碼過期時間設定等等
aws --version
確認是否安裝完成brew install awscli
使用admin登入後進入IAM Service → 左側Access management → Users → admin → 選擇 security credential 頁籤(這裡建議還是啟用MFA)
在 Access keys 區塊中,點擊 Create access key
選擇”Command Line Interface (CLI)”,這時候會有提示建議,Confirmation那裡打勾後Next
下一頁點選Create access key
Retrieve access keys這頁中,請把 Access key & Secret access key 保存到一個安全的地方,這個 Secret access key 往後是查不到的
配置AWS CLI
$ aws configure --profile
$ aws configure --profile admin
AWS Access Key ID [None]: {Your Access Key}
AWS Secret Access Key [None]: {Your Secret Access Key}
Default region name [None]: ap-northeast-1
Default output format [None]: json
[profile admin]
region = ap-northeast-1
output = json
執行 aws iam get-user,如果設定成功,會出現以下訊息
{
"User": {
"Path": "/",
"UserName": "admin",
"UserId": "AIDA11111111111111111",
"Arn": "arn:aws:iam::727640570057:user/admin",
"CreateDate": "2023-08-03T16:03:57+00:00",
"PasswordLastUsed": "2023-08-03T16:23:06+00:00"
}
}
安裝AWS SAM CLI(AWS Serverless Application Model Command Line Interface),這個工具目的在改善開發人員在AWS上建置和執行無伺服器應用程式的體驗的工具組,之後會再詳細介紹這個工具如何使用。
安裝請參考 Installing the AWS SAM CLI
https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html
這裡我們一樣可以使用 homebrew 安裝:
$ brew install aws-sam-cli
$ sam --version
SAM CLI, version 1.86.1
$ aws s3 mb s3://{YOUR_BUCKET_NAME}
make_bucket: {YOUR_BUCKET_NAME}
$ aws s3 ls
2023-08-04 10:09:38 {YOUR_BUCKET_NAME}
第一次用Root使用者進入到 Cost Management會出現以下訊息,要等差不多24hr才會有資料唷
First time to AWS Cost Management
接下來利用難得的 Root 登入,我們先到 AWS Budget 中設定成本預算
使用 AWS Budgets,可以設定自訂預算,在成本超出預算金額時主動通知。
若要建立每月固定成本預算,動作如下,首先我們進入到 AWS Budget服務,選擇「Create Budget」:
AWS Budgets
預設選項是 Use a template,不過我們看了看預設選項都沒有合適的,最接近的是 Zero spend budget ,這是在你使用超過 Free Tier USD $0.01 的時候就會通知,這幾天我們目標是建立 AI 相關的服務,還是免不了會使用到一些付費的項目,所以我們選擇 「Customize」,選擇「Cost Budget - Recommended」,接著按 Next Step
Choose Budget Type
接著會需要輸入預算設定,參考的設定如下
Budget Details
下拉後的選項參考如下,然後點「Next」
Budget Scope
接著需要設定告警,參考設定如下(使用email通知):
Alert
下一頁確認無誤後「Create Budget」
完成後如下所示資訊
Budgets Overview
超過預算會收到告警
Alert Email
參考資料:
AWS 職場實戰手冊 - 施威銘研究室
https://dev.to/aws-builders/simple-aws-7-must-do-security-best-practices-for-your-aws-account-4jjn