大話AWS 雲端架構讀書心得 — IAM & VPC

J米的學習日記
8 min readJan 16, 2023

今年算是調整腳步的一年,有了許多進修的時間,可以去補足自己不足的知識點。

此篇為筆者閱讀本書後,吸收資訊結合本身從業經驗,並搜尋網路資源去撰寫,如有任何錯誤請告知,謝謝。

本篇收入該書前三章讀書心得。

AWS 常見名詞/服務

先把這些英文字在腦海中對應到相對應的服務,以後別人說這些縮寫,就可以快速理解。

  1. Route 53:DNS 服務
  2. EC2(Elastic Compute Cloud):看全名就可以知道,簡單說就是虛擬 Server
  3. RDS(Relational Database Service):全名就是關聯性資料庫系統,所以就是資料庫
  4. S3(Simple Storage Service):檔案的儲存集散地,我把它先想做雲端硬碟的概念
  5. IAM:權限與身份管理系統
  6. CloudWatch & CloudTrail:系統監控,CloudWatch 紀錄 logs,CloudTrail 設定監控不同監控指標,看 logs 是否有異常發生,發出警告,CloudTrail 還有許多功能,包含使用者活動、流量控管,把它想成網站的監督者
  7. LDAP:提供查詢與訪問的目錄,以樹狀層次結構來儲存資料,通過 LDAP 可找出檔案的儲存位置進行讀取,常用於設計為公司組織、軟體配置資訊等,很像資料庫,但不是資料庫,查詢速度優於 RDS,不適合用於常常更改的資料,詳細可參閱此篇
  8. 使用者(IAM User):操作 AWS 相關人員,其使用者須包含密碼和存取憑證。
  9. 憑證(Credential):使用指令或是某套件(AWS API/Package),需使用此憑證做確認身份。
  10. 角色(Role):特定身份,可設定具有哪些權限,與 IAM User 相似,不同於 User 在於,其為身份,因此可以任何人帶入此身份,此 Role 可與使用者一對多,使用者可帶入此身份,具備某些權限。

IAM 有你守衛,真安心

權限與身份管理系統,每個操作者有自己的 Role,然而特定的 Permission,會附加在不同的 Group 上,屬於哪個 Group 就只有那些操作存取權限。

大話 AWS 雲端架構

Policy 就像王法,管理權限的規則。

Policy = Effect +Principal + Condition + Action + Resource

Effect:影響,把它想成你可以對此資源做的事情,例如:允許存取、拒絕存取

Principal: 委託人,把它想成這個規則的主詞,例如:小明、某 Group

Condition:條件,在某個情境條件下,例如:特定 IP 或是雙重驗證通過

Action:動詞,例如:拿取、呼叫 AWS 某服務

Resource:資源,例如:100 兩黃金、AWS S3 某資料夾底下皆可存取

最小權限管理:言下之意,給到適當的權限,不給予過多權限造成額外問題。

IAM 帳號管理
IAM 帳號權限管理

AWS 串接:書上拋出許多實際情境,本地系統串接 AWS、社群帳戶串接 AWS,皆都通過 IAM Role 作為入口跟 AWS 做互動。

簡而言之,就是兩種方法,一種看 IAM Group,另一種事 IAM Role。

VPC

過去從 infra & devops 提過 VPC 概念類似守衛,VPC (Virtual Private Cloud),概念的的確確像是現實生活中的公寓系統,今天讀者要拜訪南港軟體園區某某企業,讀者會經過一樓接待廳,警衛會問讀者要拜訪哪個企業,進行換證,告知某某企業在 5 F,穿過南港軟體園區公共區域後,到達某某企業 5F,進入某某企業私有區域。

VPC 概念圖 來源:大話 AWS 雲端架構

筆者的整理為:

網路封包 => Internet Gateway 進入 => VPC => 查詢 Routing Table => NACL 防火牆允許 => Public subnets / Private subnets => Instance (Server)

VPC 相關名詞

詳細可以點我:AWS VPC 介紹

以下請服用筆者的翻譯蒟蒻:

  1. VPC(Virtual Private Cloud):虛擬私有網路,讓其在 AWS 內劃出一個虛擬網路區域,有點類似公司的內網,讓其環境與外界網路隔離,避免直接存取資料,但內網的資源可以互相溝通。細節 VPC 是指這個 Region 中橫跨多個 Availability Zone。
  2. Subnets(子網路):指的是 VPC 的 IP 範圍,簡單說,就是位於 VPC 內的虛擬網路空間,每個 Subnets 會對應到一個 Availability Zone。詳細一點,因 IP(ex: 192.168.123.132)可分為兩部分,一部分為網路位址 192.169.123.0,另一部分為主機位址 0.0.0.132,以這個例子來說的子網路遮罩為 255.255.255.0,詳細可參考此篇
  3. Routing(路由):設定 Route table 去分配 subnet & gateway 的指向。
  4. gateway & endpoints:指的是 gateway 串連 VPC 與連接至另一個網路,有點類似於特殊閘道,例如:筆者設定一組 gateway 用於筆者公司的 VPC 連接於對外的 Internet,通常會稱為 Internet gateway(IGW),然後用 VPC endpoints 去串 AWS 服務,進而有一個統一接口去處理這系列的事情。
  5. Virtual Private Network Connections(VPN 連接):公司最常用的 VPN 此時出現了,概念為讓公司內部網路可以串連 AWS VPC 的服務。
  6. Public subnets & Private subnets:簡單區分方式為有無連接 IGW,看是否開放對外連接 Internet。
  7. NAT gateway:目的在於讓 Private subnets 有一個通道可以連接對外 Internet,把 Private IP 轉成 Public IP 去連接對外服務,但對外的 Internet 不可以反過來連接。
  8. NACL(Network Access Control List):防火牆概念,控制網路流量的進出,對象是 Subnet 層級。
  9. SG(Security Group):防火牆概念,也是控制網路流量進出,對象是 AWS 服務或 Load Balancers。
  10. VPC Flow Logs:監控進出 VPC 的網路流量。

VPC 實作相關系列文章:

  1. VPC 介紹
  2. AWS — 學習筆記(1) Deploy ENV/EC2
  3. AWS Region 與 VPC 入門介紹教學

情境一:Private subnets 連接外網

我們需要開設一個閘道,讓 Private 可以連接到 Internet,那個閘道就是 NAT gateway,讓 Private subnets 可以連 Internet,但 Internet 不可連接回 Private subnets。

NAT Gateway 私網連外網 來源:大話 AWS 雲端架構

情境二:想以內網形式操作 AWS 服務

基本上,想串接自身的 AWS 服務,還是可以用外網去存取,但這個流程就非常怪,變成自身 AWS 服務要開放外網連接,因此有了一個需求,以內網去連接 AWS 服務。

VPC endpoint 就是為此而生,可以讓 VPC 內部機器以內網形式,透過 VPC endpoint 這條路去與自身 AWS 服務交互。

情境三:VPC 對接 VPC

基本上,也是可以透過外網,讓兩個 VPC 串連起來,但這不是我們的本意,公司內部有很多產品,使用獨自的 VPC,此時要互相溝通,走外部相當怪,因此,我們可以透過 VPC Peering Connection,就是用內部網路去溝通了。

情境四:VPC 串接公司內部網路環境

VPN! VPN! VPN! 常常在聽,卻不知道用在哪裡。公司內部網路要與 AWS VPC 上的服務溝通時,必須透過 VPC 設定 Routing Table 導向 VPN ,此時就可以連接 AWS VPC 服務。

後記與感想

筆者在閱讀本書時,有許多名詞經常聽過,但並不熟悉,只知道遇到這些架構要小心某某情境,但實際原理並不熟悉,例如: 某 Line 活動,新啟動一個 EC2,為什麼無法用測試機連到該活動,過往只能請 Devops 幫忙找設定哪裡出問題,但現在了解後,可以推測有可能的原因,有可能 VPC 設定,或是不同 AWS Region 等原因。這些知識可以慢慢內化,為未來往後解題鋪路。

我在下一盤很大的棋啊!!!

棋靈王截圖

希望我的分享對讀者有些幫助,有任何問題可以 Email 與我聯絡,謝謝!

--

--