AWS

AWS 基本介紹 (4)

教學目標

初步了解 AWS 雲端服務的 EBS 服務中建立伺服器中持久性區塊儲存磁碟區之基本概念。

重點概念

首先 AWS 雲端服務主要提供適用於 Amazon EC2 執行個體的持久性區塊儲存磁碟區,也就是 Amazon EBS 服務,其全名為 Amazon Elastic Block Store (Amazon EBS)。因此 Amazon EBS 可以連接至相同的可用區域中的任何一個執行的實體,同時每個 Amazon EBS 服務中的磁碟區皆會在其可用區域之內自動進行複寫,以利提供 99.999% 的高可用性。

接著當面臨大量資料存取和需要持久儲存時,就非常適合使用 Amazon EBS。其中 Amazon EBS 提供多種選項,以利我們優化持久性區塊儲存磁碟區的效能和成本,主要有兩個主要類別,分別為:

  1. 適用於交易工作負載的 SSD 儲存,其效能取決於 每秒完成輸入和輸出的操作次數 (IOPS),像是資料庫和開機磁碟區。
  2. 適用於傳送工作負載的 HDD 儲存,其效能取決於每秒的資料量 (MB/秒),像是日誌處理。

再來當我們臨時需要更多空間時,則彈性磁碟區功能將能夠讓我們動態增加容量和調整效能,以及變更為任何一種磁區的類型,不會產生停機時間,或者對效能造成任何影響。像是我們能夠將預設 EBS 一般用途 SSD (gp2) 直接轉換為 EBS 佈建 IOPS SSD (io1),同時設定 IOPS 效能,每個磁碟區最大為磁碟區大小的 50 倍,但若超過 32,000 IOPS,則以 32,000 IOPS 為主。

最後當我們必須根據需求進行設定測試時,針對 Amazon EBS 服務中的磁碟區進行快照備份。此外我們還能夠跨不同的 AWS 區域複製快照,以利進行地理擴展、資料中心遷移和災難復原的演練。

總結當我們了解 Amazon EBS 服務中持久性區塊儲存磁碟區的基本概念之後,就能夠開始規劃儲存空間、效能調效、設定測試,以及進行地理擴展、資料中心遷移和災難復原的演練。

相關資源

AWS 基本介紹 (3)

教學目標

初步了解 AWS 雲端服務之 EC2 服務中建立伺服器的基本概念。

重點概念

首先 AWS 雲端服務主要提供可擴展的運算資源,也就是 Amazon EC2 服務,其全名為 Amazon Elastic Compute Cloud (Amazon EC2)。當我們使用 Amazon 通常能夠避免前期的硬體投資,以利快速進行應用程式的開發和系統平台的部署,同時我們還能夠根據需求動態調整任意數量的虛擬伺服器、設定網路和網路,以及管理儲存。此外 Amazon EC2 允許我們根據需求動態進行縮放,以利因應需求變化或流量高峰。

接著在 Amazon EC2 服務中虛擬運算環境,也稱為實體。每個實體皆有預先設定的樣板,稱為 Amazon 系統映像檔 (Amazon Machine Image,AMI) ,其中包括伺服器所需要的作業系統和相關軟體。一般來說,我們會使用 Amazon 所提供的標準系統映像檔,也就是標準的作業系統,像是 CentOS、Ubuntu、 Windows Server、… 等。此外使用者也能夠自行定義系統映像檔,或者由通過 Amazon 認證的第三方單位製作系統映像檔,此時要注意若是商用的系統映像檔,則會按小時收取授權費用,至於社群所提供的系統映像檔,則 Amazon 並不保證其可用性。

再來我們針對實體選擇所需要設定多少 CPU、記憶體、儲存和網路等資訊,則稱為實體類型。在 Amazon EC2 中提供多種實體類型,以利要根據不同案例的需求選擇適當的實體類型,主要有五種類型,分別為:

  1. 一般用途
  2. 運算優化
  3. 記憶體優化
  4. 加速運算
  5. 儲存優化

最後我們針對實體的網路安全主要會使用私密金鑰配對實體的安全登入資訊,也就是 AWS 雲端服務存儲公開金鑰,而使用者則安全儲存私密金鑰。一般來說,若是 Linux 作業系統則可以直接透過私密金鑰進行 SSH 遠端連線登入,至於 Windows 作業系統則需要間接透過私密金鑰取得帳號密碼才能進行遠端連線登入。此外我們還能夠透過安全群組啟用虛擬防火牆的功能,其能夠同時控管一個或多個實體的存取規則。

總結當我們了解 Amazon EC2 服務中實體、系統映像檔、實體類型、私密金鑰和安全群組等基本概念之後,也就能夠開始建立 EC2 服務中的實體,以利啟動伺服器開始使用。

相關資源

雲端服務 AWS vs Azure (1)

教學目標

初步了解分析與大數據之應用對應的雲端服務。

重點概念

首先目前許多企業已經開始採用雲端服務,像是 AWS 雲端服務或 Azure 雲端服務,然而不同雲端服務將會不同的服務進行分析和大數據之應用。

接著根據 Azure 官方文件,我們可以了解分析和大數據之應用的雲端服務主要可以分為八大範圍,不同範圍皆有對應的雲端服務,請參考下表。

範圍 AWS 服務 Azure 服務
資料倉儲 Redshift SQL Data Warehouse
資料處理 Elastic MapReduce (EMR) HDInsight
資料整合 Data Pipeline Data Factory
資料分析 Kinesis Analytics Stream Analytics、Data Lake Analytics、Data Lake Store
資料視覺化 QuickSight PowerBI
資料搜尋 Elasticsearch Service、Cloud Search Marketplace-Elasticsearch、Azure Search
機器學習 Machine Learning Machine Learning
資料探索 Amazon Athena Data Catalog

再來為了完成分析和大數據之應用,僅僅靠上述範圍所對應的雲端服務是非常不足夠,此時我們還會針對不同的功能採用適當的雲端服務,根據 Azure 官方文件主要有十三大功能類別,分別為:

  1. 市集
  2. 計算
  3. 儲存
  4. 網路和內容交付
  5. 資料庫
  6. 分析和大數據
  7. 智慧
  8. 物聯網
  9. 管理和監控
  10. 行動服務
  11. 安裝、識別和存取
  12. 開發工具
  13. 企業整合

最後我們針對不同分析和大數據之應用範圍採用對應的雲端服務,同時針對不同功能類別採用適當的雲端服務之外,理應就能夠滿足大部分企業分析與大數據之應用的需求。

總結未來將會是雲端的時代,資訊人員將要學習如何針對企業的需求評估最適當的雲端服務之解決方案,同時許多內部系統之解決方案是否能夠移至雲端進行管理將會是未來的一大挑戰,若是順利移轉成功,將能夠有效為企業節省許多伺服器維護的人力成本,資訊人員將有更多機會透過雲端服務整合應用解決企業所面臨的問題與痛點。

相關資源

AWS 基本介紹 (2)

基本介紹

教學目標

初步了解 AWS 雲端服務中的 IAM 服務如何安全的控制使用者對於 AWS 服務和資源的存取權限。

重點概念

什麼是 IAM ?

首先 AWS Identity and Access Manage,簡稱 IAM,主要能夠讓我們安全的控制使用者對於 AWS 服務和資源的存取權限。基本上我們可以使用 IAM 建立和管理 AWS 使用者和群組,並且使用各種授權允許和拒絕存取 AWS 資源,基本上 IAM 為 AWS 帳戶的功能,不會收取其它費用。

主要功能

透過 IAM 服務可以控管哪些使用者可以使用 AWS 資源,也就是身份驗證,以及他們可以使用的資源和採用的方式,也就是授權,其提供的功能主要有:

  1. 集中管理權限:我們可以集中管理 AWS 服務。
  2. 共享存取權限:我們可以讓其它人員授予管理和使用 AWS 帳號中資源的權限。
  3. 精細權限:我們可以針對不同資源向不同人員授予不同的權限。
  4. 聯合身份:我們可以允許聯合其它身份驗證機制或身份提供商的使用者獲取 AWS 帳號臨時存取權限。
  5. 多重驗證:我們可以向帳號和每個使用者增加雙重身份驗證以實現更高安全性。
  6. 確保身份資訊:我們可以搭配 CloudTrail 服務設定記錄,其中包括帳號中使用者請求資源的資訊。
  7. 最終一致性:我們可以透過複製在全球資料中心內多個伺服器上的資料實現高可用性。
  8. 資料安全標準:我們可以支援由商家或服務提供商處理、儲存和傳輸資料,且驗證符合資料安全標準。

因此 IAM 服務主要有集中控管 AWS 帳號,整合企業內部存在的 AD 帳號允許單一登入 (Single Sign On,SSO),精細權限存取控制 AWS 資源,有能力建立使用者、群組和角色、允許我們設定密碼政策,目前不允許生物驗證的方式,但是我們通常會透過實作所有帳號多因素驗證加強 IAM 的安全性。

當我們以電子郵件地址和密碼建立 AWS 帳號時,會先建立用於登入 AWS 雲端服務的 AWS 帳號根使用者識別。此時我們可以使用根使用者憑證 (電子郵件和密碼) 登入 AWS 主控台。當我們使用根使用者憑證時將能夠針對 AWS 帳號中的所有資源進行完全、無限制的存取,也就是管理存取的權限等級,包括存取我們的帳號資訊,當然還能夠更改密碼,但是無法更新使用者名稱,然而不建議使用根使用者憑證進行日常存取,以及共享根使用者憑證,避免其它人針對 AWS 帳號進行無限制的存取,因為無法限制根使用者授予的權限。

為了避免透過根使用者憑證進行無限制存取的問題,所以在 IAM 中會進行身份識別的驗證,協助我們解決該使用者是試的問題。因此在我們會在帳號中建立與組織中使用者對應的個 IAM 使用者,而非共享根使用者憑證,請注意 IAM 使用者不是單獨的帳號,而是帳號中的使用者,每個使用者分別有自己的密碼用於存取 AWS 管理主控台,同時我們也可以為每個使用者創建獨立的存取密鑰,以利使用者發出請求使用帳號中的 AWS 雲端服務資源,此外使用者不一定表示真實人員,也可以是應用程式,至於最佳實務的做法建議是建立具有管理權限的 IAM 使用者,接著根據需求增加更多的使用者。若組織中有 AWS 帳號 ID 為 12345678910 已經建立 50 個 IAM 使用者,所有使用者皆被加入至相同的群組中,若組織啟用每個 IAM 使用者可以登入至 AWS 主控台,此時讓 50 個 IAM 使用者使用的 AWS 登入網址為「https://12345678910.signin.aws.amazon.com/console/」。

然而企業中通常會存在身份驗證方式,則我們可以將使用者身份聯合至 AWS 中,此時已登入的使用者會將其身份識別替換為 AWS 帳號中的臨時身份識別,該使用者就能夠在 AWS 管理主控台中工作。基本上若是企業中的身份驗證方式支援 SAML 2.0,則我們可以使用 SAML (Security Assertion Markup Language) 能夠啟用 AWS 和企業中的身份驗證方式 (AD 或 LDAP) 之間的單一登入 (Single Sign On,SSO) 存取,但若是不支援 SAML 2.0 則我們還是可以建立身份代理應用程式以利為使用者提供對於 AWS 管理控制台的單一登入存取。此外若是我們建立行動應用程式或網頁應用程式時允許使用者透過網際網路身份提供商,像是 Facebook、Google、…等進行識別,則該應用程式也可以透過聯合存取 AWS 資源。

若企業中有個新員工加入其職責為系統管理員時,此時需要完全存取 AWS 主控台,所以我們會建立使用者帳號和產生存取金鑰 ID 和存取密鑰,我們會將新員工的使用者帳號至其它管理者的群組中,接著會將存取金鑰 ID 和存取密鑰提供給新員工,然而當他們登入至 AWS 主控台時,若發現無法進行登入,請確認存取金鑰 ID 和存取密鑰正確,同時必須產生使用者密碼獨立連結登入至 AWS 主控台中。

權限和政策

所謂 IAM 政策主要協助定義使用者可以在帳號內執行的操作,我們稱為授權,接著透過建立然後附加至使用者、群組或角色的政策來授予權限。IAM 中的政策評估邏輯通常是開始預設拒絕所有請求,也就是所有使用者建立在 IAM 系統中開始是沒有權限,必須透過建立政策才能夠向使用者授予權限,因此政策主要是定義影響、動作、資源和選用條件的權限文件,也就是政策文件,請注意政策文件主要是採用 JSON 語言

1
2
3
4
5
6
7
8
{
"Version": "2017-09-24",
"Statement": {
"Effect": "Allow",
"Action": "dynamodb:*",
"Resource": "arn:aws:dynamodb:us-east-2:12345678910:table/Books"
}

}

在 IAM 主控台提供了策略摘要表, 該摘要表中總結了政策對於每個服務允許或拒絕存取的等級、資源和條件,其中摘要表主要有三種分別為政策摘要、服務摘要和操作摘要,我們可以在使用者的頁面上查看附加至該使用者的所有政策摘要,同時也可以政策頁面查看所有政策摘要。此外我們可以建立 IAM 群組,接著將政策附加至群組,所謂群組是代表使用者的集合,此時群組中的使用者除了自己的憑證之外,也會附加群組的權限,以利我們透過群組更方便管理權限,請注意雖然使用者或群組可以附加授予多個不同權限的政策,但是使用者最多能設定 10 個群組成員。若企業需要移轉已存在的傳統硬體至 AWS 雲端服務中,主要會先透過公司電子郵件地址進行設定第一個 AWS 帳號,接著定義一個至多個權限的政策文件,再來套用政策文件至全球的分公司。

身份識別 (使用者、群組和角色)

建立 IAM 使用者之目的主要是針對 AWS 帳號中人員的使用者進行身份驗證,其中 IAM 群組主要是一個單位進行管理的 IAM 使用者集合,以及 IAM 角色主要是授予 AWS 雲端服務中操作的權限,當然我們也可以透過一個或多個 IAM 政策關聯來決定使用者、群組或角色的成員可以在哪些條件下對什麼 AWS 雲端服務的資源進行存取操作。

所謂 IAM 使用者主要是代表與 AWS 進行互動操作的人員、應用程式或服務,主要用途是讓人們能夠登錄至 AWS 管理主控台中執行互動式的工作,以及透過 API 或 CLI 向 AWS 雲端服務發出請求。當我們建立使用者時透過加入適當的群組中的成員和搭配政策附加至該使用者,以利授予使用者權限,當然我們也可以複製現有使用者的權限讓新的使用者自動成為相同群組的成員,同時附加所有相同的政策。若我們透過 AWS 管理主控台刪除 IAM 使用者時,IAM 也會刪除任何簽章憑證和任何屬於使用者的存取金鑰,以及在 IAM 中我們可以在建立 IAM 使用者之後編輯使用者屬性,但是唯獨使用者名稱無法變更。

所謂 IAM 群組主要是代表 IAM 使用者的集合,我們可以透過群組為一群使用者設定權限,以利更方便的管理使用者的權限。群組中的使用者成員皆有自動分配給該群組的權限,若有新的使用者加入組織中時,則我們可以透過管理員權限將該使用者增加至該群組中,並且分配對應的權限。此外若組織中有人更換工作,則不必編輯該使用者的權限,只需從群組中將其移除,接著將該使用者增加至適合的群組中,請注意群組並不是真正的身份識別,僅是用於一次性將政策附加至多個使用者的方法。

所謂 IAM 角色主要是代表確定其在 AWS 雲端服務中可執行和不可執行的操作權限,角色類似於使用者但是沒有任何關聯的憑證,也就是密碼或存取密鑰,使用者可以代入角色來暫時獲取針對特定任務的不同權限,同時我們可以將角色分配給聯合身份使用者,該使用者使用外部身份驗證機制,而非 IAM 使用者驗證機制進行登入,接著 AWS 會透過傳送的詳細資訊以利確認對應的聯合身份使用者的角色。其中所謂臨時憑證主要是用於 IAM 角色,除此之外,我們也可以設定更嚴格的臨時憑證,因為臨時憑證會在設定的時間區間之後自動過期,讓我們能夠控管憑證的有效性,以利防止意外執行不允許執行的任務。若公司需要部署服務至 AWS 之前未使用的區域中,並且目前已經有 IAM 角色,此時新的 EC2 實體僅能指定該區域內已存在的 IAM 角色。

資源限制

最後當我們開始使用 AWS 雲端服務中的 IAM 服務時最好先了解相關資源的限制,請參考下表。

資源 預設限制
AWS 帳號中使用者數 5000
AWS 帳號中政策數 1500
AWS 帳號中群組數 100
AWS 帳號中角色數 500
AWS 帳號中的實體設定檔數 500
AWS 帳號中的伺服器憑證數 20
AWS 帳號中的虛擬 MFA 設備數 等於帳號的使用者配額

基本上 AWS 雲端服務允許我們提高上 IAM 服務預設限制,然而大部份的 IAM 服務限制是無法提高限制,請參考下表。

資源 限制
SAML 提供商的 AWS 帳號數 100
SAML 提供商關聯身份提供商數 10
SAML 提供商主要鍵數 10
IAM 使用者可以加入 IAM 群組數 10
IAM 使用者附加 IAM 政策數 10
IAM 群組附加 IAM 政策數 10
IAM 角色附加 IAM 政策數 10
IAM 使用者被分配的 SSH 公開金鑰數 5
IAM 政策可儲存的版本數 5
IAM 使用者被分配的簽署憑證數 2
IAM 使用者被分配的存取密鑰數 2
AWS 帳號根使用者被分配的存取密鑰數 2
IAM 使用者的登入設定檔數 1
IAM 使用者使用 MFA 設備數 1
AWS 帳號根使用者使用 MFA 設備數 1
AWS 帳號對應的別名數 1

總結 AWS 雲端服務中的 IAM 服務能夠讓我們安全的控制使用者對於 AWS 服務和資源的存取權限。因此當我們要開始使用 AWS 雲端服務之前,建議先詳細了解 IAM 服務的主要功能、權限和政策、身份識別 (使用者、群組和角色) 和資源限制將有助於我們有效管理 AWS 雲端服務,更進一步滿足企業中資訊安全政策的需求。

相關資源

AWS 基本介紹 (1)

基本介紹

教學目標

初步了解 AWS 解決方案中查看帳單細節、設定帳單警示通知和檢視帳單警示儀表板。

重點概念

首先 Amazon Web Services (AWS) 提供以雲端為基礎的解決方案,以利我們滿足業務需求解決問題,然而當我們開始使用 AWS 雲端資源時,建議先了解計費方式和帳單查看方式。基本上,我們每個月會收到 AWS 的使用費和週期性費用,但是往往會因為工作和生活忙碌就疏於注意時,時間一久,就會浪費許多不必要的雲端服務費用。

查看帳單細節

接著在工作上若需要進行解決方案多層規劃架構的安裝與測試,但是缺少實體主機的環境時就能夠透過 AWS 雲端服務快速產生 EC2 虛擬機器進行解決方案多層規劃架構的安裝與測試,當安裝與測試完成之後,我們會將 EC2 虛擬機器關閉 (非終止),但是卻經常會忘記關閉 EBS 服務和移除 Elastic IP 服務,尤其是 EBS 服務經常會因為我們啟動 EC2 虛擬機器時會配置大量的硬碟空間,此時就會建立 EBS 服務,其中一般用途的 SSD 磁碟區計價是佈建儲存每 GB 為每個月 0.10 美元,也就是說若多台機器總計有 1 TB 則每個月會需要 100 美元也就是將近三千多台幣的浪費,此外 Elastic IP 服務若沒有關聯 EC2 虛擬機器時則會被 AWS 強制收取小額的小時費用每個未使用的 Elastic IP 一個每小時 0.005 美元,至於雲端服務費用的詳細內容,可以開啟 AWS 主控台中的「Billing & Cost Management Dashboard」管理介面,在「Dashboard」介面中預設會有「Month-to-Date Spend by Service」方框,此時點選「Bill Details」即可查看雲端服務費用的詳細情況。

設定帳單警示通知

因此我們需要建立警示通知,以利我們每月金額超過上限時立即電子郵件通知進行處理,首先開啟 AWS 主控台中的「Billing & Cost Management Dashboard」管理介面,在下方「Alerts & Notifications」中點選「Enable Now」的選項,接著在「Preferences」設定介面,勾選「Receive Billing Alerts」,按下「Save preferences」鈕,此時就會在 CluudWatch 服務中增加 「Billing Alarms」的選項,我們按下「Create Alarm」鈕,輸入「exceed」美元和「send a notification to:」電子郵件,代表當每個月總費用超過多少美元時會傳送通知信至電子郵件中,接著按下「Create Alarm」鈕,再來我們會在信箱中收到確認信,按下「Confirm subscription」就能夠完成訂閱功能,例如當我們輸入「10」美元代表當每個月總費用超過 10 美元時會在 「Alarms」中的「ALARM」介面中產生警示訊息,並且傳送通知信至電子郵件中。

檢視帳單警示儀表板

最後我們還可以點選該警示訊息之後,按下「Add to Dashboard」鈕,主要有三個步驟,第一步驟按下「Create new」,輸入儀表板名稱,按下輸入框旁的打勾鈕。第二步驟選擇元件類型主要有三種類型,分別為折線圖、堆疊區域圖和數字方框。第三步驟按下「Add to dashboard」,點選畫面左上方「Dashboards」選項,接著就能夠點選建立的儀表板名稱,此時就會顯示警示資訊,在儀表板中可以有許多元件,此外我們還可以切換不同時間區間的檢視。

總結我們要使用 AWS 雲端服務之前建議先了解計費方式和查看帳單方式,更重要的檢查則是當我們關閉 (非終止) 任何 EC2 虛擬機器時,請務必確認是否 EBS 也已經非使用中和 Elastic IP 已釋出,否則當全心專注在生活與工作時經常一不注意立即處理就會損失上千元的雲端服務費用。

相關資源