今年算是調整腳步的一年,有了許多進修的時間,可以去補足自己不足的知識點。
此篇為筆者閱讀本書後,吸收資訊結合本身從業經驗,並搜尋網路資源去撰寫,如有任何錯誤請告知,謝謝。
本篇收入該書前三章讀書心得。
AWS 常見名詞/服務
先把這些英文字在腦海中對應到相對應的服務,以後別人說這些縮寫,就可以快速理解。
- Route 53:DNS 服務
- EC2(Elastic Compute Cloud):看全名就可以知道,簡單說就是虛擬 Server
- RDS(Relational Database Service):全名就是關聯性資料庫系統,所以就是資料庫
- S3(Simple Storage Service):檔案的儲存集散地,我把它先想做雲端硬碟的概念
- IAM:權限與身份管理系統
- CloudWatch & CloudTrail:系統監控,CloudWatch 紀錄 logs,CloudTrail 設定監控不同監控指標,看 logs 是否有異常發生,發出警告,CloudTrail 還有許多功能,包含使用者活動、流量控管,把它想成網站的監督者
- LDAP:提供查詢與訪問的目錄,以樹狀層次結構來儲存資料,通過 LDAP 可找出檔案的儲存位置進行讀取,常用於設計為公司組織、軟體配置資訊等,很像資料庫,但不是資料庫,查詢速度優於 RDS,不適合用於常常更改的資料,詳細可參閱此篇。
- 使用者(IAM User):操作 AWS 相關人員,其使用者須包含密碼和存取憑證。
- 憑證(Credential):使用指令或是某套件(AWS API/Package),需使用此憑證做確認身份。
- 角色(Role):特定身份,可設定具有哪些權限,與 IAM User 相似,不同於 User 在於,其為身份,因此可以任何人帶入此身份,此 Role 可與使用者一對多,使用者可帶入此身份,具備某些權限。
IAM 有你守衛,真安心
權限與身份管理系統,每個操作者有自己的 Role,然而特定的 Permission,會附加在不同的 Group 上,屬於哪個 Group 就只有那些操作存取權限。
Policy 就像王法,管理權限的規則。
Policy = Effect +Principal + Condition + Action + Resource
Effect:影響,把它想成你可以對此資源做的事情,例如:允許存取、拒絕存取
Principal: 委託人,把它想成這個規則的主詞,例如:小明、某 Group
Condition:條件,在某個情境條件下,例如:特定 IP 或是雙重驗證通過
Action:動詞,例如:拿取、呼叫 AWS 某服務
Resource:資源,例如:100 兩黃金、AWS S3 某資料夾底下皆可存取
最小權限管理:言下之意,給到適當的權限,不給予過多權限造成額外問題。
AWS 串接:書上拋出許多實際情境,本地系統串接 AWS、社群帳戶串接 AWS,皆都通過 IAM Role 作為入口跟 AWS 做互動。
簡而言之,就是兩種方法,一種看 IAM Group,另一種事 IAM Role。
VPC
過去從 infra & devops 提過 VPC 概念類似守衛,VPC (Virtual Private Cloud),概念的的確確像是現實生活中的公寓系統,今天讀者要拜訪南港軟體園區某某企業,讀者會經過一樓接待廳,警衛會問讀者要拜訪哪個企業,進行換證,告知某某企業在 5 F,穿過南港軟體園區公共區域後,到達某某企業 5F,進入某某企業私有區域。
筆者的整理為:
網路封包 => Internet Gateway 進入 => VPC => 查詢 Routing Table => NACL 防火牆允許 => Public subnets / Private subnets => Instance (Server)
VPC 相關名詞
詳細可以點我:AWS VPC 介紹
以下請服用筆者的翻譯蒟蒻:
- VPC(Virtual Private Cloud):虛擬私有網路,讓其在 AWS 內劃出一個虛擬網路區域,有點類似公司的內網,讓其環境與外界網路隔離,避免直接存取資料,但內網的資源可以互相溝通。細節 VPC 是指這個 Region 中橫跨多個 Availability Zone。
- 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,詳細可參考此篇。
- Routing(路由):設定 Route table 去分配 subnet & gateway 的指向。
- gateway & endpoints:指的是 gateway 串連 VPC 與連接至另一個網路,有點類似於特殊閘道,例如:筆者設定一組 gateway 用於筆者公司的 VPC 連接於對外的 Internet,通常會稱為 Internet gateway(IGW),然後用 VPC endpoints 去串 AWS 服務,進而有一個統一接口去處理這系列的事情。
- Virtual Private Network Connections(VPN 連接):公司最常用的 VPN 此時出現了,概念為讓公司內部網路可以串連 AWS VPC 的服務。
- Public subnets & Private subnets:簡單區分方式為有無連接 IGW,看是否開放對外連接 Internet。
- NAT gateway:目的在於讓 Private subnets 有一個通道可以連接對外 Internet,把 Private IP 轉成 Public IP 去連接對外服務,但對外的 Internet 不可以反過來連接。
- NACL(Network Access Control List):防火牆概念,控制網路流量的進出,對象是 Subnet 層級。
- SG(Security Group):防火牆概念,也是控制網路流量進出,對象是 AWS 服務或 Load Balancers。
- VPC Flow Logs:監控進出 VPC 的網路流量。
VPC 實作相關系列文章:
情境一:Private subnets 連接外網
我們需要開設一個閘道,讓 Private 可以連接到 Internet,那個閘道就是 NAT gateway,讓 Private subnets 可以連 Internet,但 Internet 不可連接回 Private subnets。
情境二:想以內網形式操作 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 與我聯絡,謝謝!