iT邦幫忙

2023 iThome 鐵人賽

DAY 2
0
Cloud Native

AWS AI交易室實戰系列 第 2

Day 2 - 註冊AWS帳號 & 設定成本預算

  • 分享至 

  • xImage
  •  

~ 萬事起頭難,準備一下信用卡 ~

環境設定流程
環境設定流程

今天帶大家做個起手式,註冊AWS帳號並設定預算警示

註冊帳號

首先準備

登入畫面
登入畫面

按照步驟填完相關資料並通過手機驗證碼驗證後,會進到以下頁面,請選擇 **free tier **方案

AWS帳號建立後會一並新增一位 Root 使用者,登入此 Root 使用者使用的是 AWS帳號的email address,這個 Root 使用者擁有帳號的最高權限,我們第一次登入必須使用Root使用者登入,並做好帳戶的安全性&預算設定,通常右下角的語言我會選擇英文,原因是絕大多數的AWS文件資源都是英文的,相對應的選項也比較好找到

按 Next 後下一頁輸入密碼後就可以成功登錄

Root登入畫面
Root登入畫面

登入後的頁面如下:
登入後畫面

設定新管理帳號

接著到上方的搜尋欄,搜尋”IAM” 服務

IAM - Identity and Access Management 身份與存取管理

使用者身份驗證(authentication) - 一個AWS帳戶可以使用IAM服務管理在此帳號下AWS服務的使用者,每一個使用者都以一個非重複的使用者名稱(username),搭配密碼(password)即可登入AWS

權限控制 - 權限(permission)控制AWS使用者可以使用哪些功能
IAM服務

接著我們必須先設定一些安全性設定:

  1. 刪除 Root 使用者的存取金鑰
  2. 為 Root 使用者啟用 **MFA(Multi-Factor Authentication) **多重驗證機制
  3. 建立個別 IAM 使用者
  4. 利用群組功能管控各使用者權限
  5. 套用IAM密碼政策

  1. 刪除 Root 使用者的存取金鑰,右上角選擇 Security credentials
    進入後在**My security credentials (root user)**區域中,看到Access keys這個區塊,如果有任何金鑰請刪除它,這個金鑰是使用AWS CLI或是應用程式存取時使用的,我們會新建有適當權限的使用者,並且在這個使用者下建立的金鑰來讓AWS CLI & 應用程式存取AWS資源
    Security Credentials

  2. 為Root使用者啟用MFA多重驗證機制
    我們剛剛僅僅使用email & password即可成功登入Root user,這並不是一種安全的驗證方式,AWS建議使用MFA多重驗證機制,啟用步驟如下:

  • 在手機上安裝Google Authenticator
  • 進入到剛剛的Security credentials頁面
  • 在**Multi-factor authentication (MFA)**區塊點擊Assign MFA device,輸入Device name後選擇Authenticator app 按Next,這裡的Device name會是在手機app上顯示識別的名稱,由於我們之後新增其他使用者會設定不同的authenticator,名稱可以加上相關使用者資訊
  • 在下一頁中點擊show QR code,顯示出QR Code後,開啟手機上的Google Authenticator,掃描QR code
    Select MFA Device
    Select MFA Device
    Set up device
    Set up device

在 MFA code 1 & MFA code 2 輸入**”連續”兩次的MFA code**
成功後會有以下訊息
MFA Device Assigned

接著登出 Root 重新登入就會要求你輸入MFA code驗證了

  1. 建立個別使用者
  • 我們一樣進入IAM服務介面(注意此時右上角的地區換成了global,因為IAM服務是全域性的),點擊左邊側欄”Users”後,在點擊右上角的”Add Users”
  • 輸入User name “admin”,Provide user access to the AWS Management Console打勾後會出現以下圖選項,我們的目的是建立取代Root的使用者並可以讓應用程式使用此user存取AWS服務,User type請選擇”I want to create an IAM user”,點擊Next
  • Permissions options選擇Add user to group,由於我們還未建立任何User Group直接Next
  • 點擊Create User建立User
    • 接著我們到admin user的頁面,選擇security credentials頁籤,看到Console sign-in link,把他拷貝下來 https://xxxxxxxxxxxx.signin.aws.amazon.com/console ,其中xxxxxxxxxxxx就是你的Account ID
    • 用瀏覽器開啟上述網址,就可以使用新建的使用者登入
    • 不過我們還沒有設定任何權限,登入成功後進入到服務很多都會發生權限不足的error
      User details
      User details
  1. 利用群組功能管控各使用者權限
    我們點選 User groups 選擇右上方 Create group
    User group name:PowerUserAndIAMFullAccess
    Add user to the group:選擇剛剛建立的admin
    Attach permissions policies - 選擇PowerUserAccess & IAMFullAccess
    點擊 Create group

  2. 套用IAM密碼政策
    選取左側邊欄 Access management → Account settings
    這裡我們可以Edit password policy 可以改變密碼政策,如密碼長度規則,密碼過期時間設定等等

設定本機開發環境AWS CLI

為AWS CLI 取得憑證

  • 使用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

    • 打開自己電腦的 command line console,填入剛剛產生的 Access key & Secret access key,這個指令會把填入的資訊存到 ~/.aws/credential & ~/.aws/config,可以使用 vi 指令查看這兩個檔案的內容,在 config 中多了 profile admin 的區塊
    $ 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
    
    • ~/.aws/config 中會有 profile admin 的區塊
    [profile admin]
    region = ap-northeast-1
    output = json
    
    • 執行 export AWS_PROFILE=admin 指定目前環境使用 admin 這個 profile
  • 執行 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
  • 小試身手:建立 S3 存儲桶(S3 Bucket),這裡會在預設的區域(ap-northeast-1),建立一個S3 存儲桶
$ 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
First time to AWS Cost Management

接下來利用難得的 Root 登入,我們先到 AWS Budget 中設定成本預算

使用 AWS Budgets,可以設定自訂預算,在成本超出預算金額時主動通知。

若要建立每月固定成本預算,動作如下,首先我們進入到 AWS Budget服務,選擇「Create Budget」:
AWS Budgets
AWS Budgets

預設選項是 Use a template,不過我們看了看預設選項都沒有合適的,最接近的是 Zero spend budget ,這是在你使用超過 Free Tier USD $0.01 的時候就會通知,這幾天我們目標是建立 AI 相關的服務,還是免不了會使用到一些付費的項目,所以我們選擇 「Customize」,選擇「Cost Budget - Recommended」,接著按 Next Step

Choose Budget Type
Choose Budget Type

接著會需要輸入預算設定,參考的設定如下
Budget Details
Budget Details

下拉後的選項參考如下,然後點「Next」
Budget Scope
Budget Scope

接著需要設定告警,參考設定如下(使用email通知):
Alert
Alert

下一頁確認無誤後「Create Budget」
完成後如下所示資訊
Budgets Overview
Budgets Overview

超過預算會收到告警 /images/emoticon/emoticon04.gif
Alert Email
Alert Email

參考資料:
AWS 職場實戰手冊 - 施威銘研究室
https://dev.to/aws-builders/simple-aws-7-must-do-security-best-practices-for-your-aws-account-4jjn


上一篇
Day 1 - 現代化的 Serverless
下一篇
Day 3 - AWS Region/AZ & IAM & S3 概念介紹
系列文
AWS AI交易室實戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言