2025年1月25日 星期六

AWS Simple Notification Service (SNS) 使用教學

AWS Simple Notification Service (SNS) 使用教學


什麼是 AWS SNS?

AWS SNS 的主要功能是將消息從發佈者傳遞到訂閱者。這可以用於各種通知場景,例如:

  1. 監控警報(如 EC2 實例的健康檢查失敗)。

  2. 實現微服務之間的消息傳遞。

  3. 用於多渠道用戶通知(電子郵件、簡訊等)。

SNS 運作的核心是 Topic(主題)Subscription(訂閱)

  • Topic:消息的發佈點。

  • Subscription:接收通知的端點(如電子郵件、SQS、Lambda 等)。


使用 AWS SNS 的步驟

以下將介紹如何設置並使用 AWS SNS:

步驟 1:創建 SNS 主題

  1. 登入 AWS 管理控制台

  2. 搜尋 "SNS",進入 Simple Notification Service 主頁。

  3. 點擊 Create topic

  4. 選擇主題類型:

    • Standard:適用於大多數應用,支持最多一次交付。

    • FIFO:適用於需要消息順序和確保唯一交付的場景。

  5. 填寫主題名稱,例如:MyTopic

  6. 點擊 Create topic 完成創建。


  1. FIFO跟標準是什麼,他們差在哪?

    FIFO(先進先出)

    • 重順序、精準性:消息一定按順序來,不會亂掉,也不會重複。
    • 適合:像銀行交易、庫存管理這種需要「一條一條,不能亂」的場景。

    標準

    • 重速度、大量發送:消息送得快,但可能順序亂,偶爾會有重複。
    • 適合:像促銷通知、警報這種需要快速發送、對順序沒要求的場景。

    總結:
    FIFO 就是「一步一步來,順序最重要」。
    標準就是「效率優先,快就對了」。


步驟 2:新增訂閱者(Subscription)

  1. 在剛剛創建的主題頁面中,點擊 Create subscription

  2. 選擇協議(Protocol):

    • Email:將消息發送到電子郵件。

    • SMS:發送簡訊。

    • AWS Lambda:觸發 Lambda 函數。

    • Amazon SQS:將消息發送到 SQS 隊列。

  3. 根據選擇的協議填寫目標終端。例如,若選擇 Email,請輸入接收通知的電子郵件地址。

  4. 點擊 Create subscription

  5. 如果選擇 Email 協議,請到郵箱查收確認信並點擊確認連結完成訂閱。




步驟 3:發佈消息

  1. 返回 SNS 主題頁面,點擊 Publish message

  2. 填寫消息內容:

    • Subject:消息的主題(僅限 Email 使用)。

    • Message:消息的內容。

  3. 點擊 Publish message,訂閱的用戶或終端將接收到消息。





進階功能

1. 整合其他 AWS 服務

SNS 可以與許多 AWS 服務整合,例如:

  • CloudWatch 警報通知:當 CloudWatch 監控檢測到警報條件時,自動發送 SNS 通知。

  • AWS Lambda:使用 SNS 作為事件源,觸發 Lambda 函數執行處理邏輯。

  • SQS 隊列:將 SNS 消息發送到 SQS 隊列,實現消息的緩存或延遲處理。

2. 設定過濾策略

SNS 支援基於消息屬性的過濾訂閱。例如,僅當消息中包含某個屬性時,才向特定訂閱發送通知。

操作步驟:

  1. 在訂閱設定中,新增過濾策略(Filter Policy)。

  2. 例如,若您發佈的消息中包含屬性 type,值為 error,則可以設置過濾策略如下:

    {
        "type": ["error"]
    }

最佳實踐

  1. 使用 CloudWatch Logs 監控 SNS 消息發佈情況:確保消息發佈與接收的成功率。

  2. 採用 Dead Letter Queue (DLQ):處理無法送達的消息。

  3. 設置加密:使用 AWS KMS(Key Management Service)加密 SNS 消息,確保數據安全。

  4. 設置速率限制與重試策略:避免過載訂閱終端。


常見問題

1. 為什麼電子郵件收不到通知?

  • 確保電子郵件訂閱已確認。

  • 檢查垃圾郵件文件夾。

  • 若使用沙箱環境,請將電子郵件地址添加到允許列表。

2. SNS 的定價如何計算?

SNS 的費用包括以下部分:

  • 消息發佈費用:根據發佈消息的次數計費。

  • 傳送費用:根據選擇的協議(SMS、Email 等)計費。

詳細價格可參考 AWS SNS 價格頁面


透過以上步驟與功能介紹,您應該能夠輕鬆開始使用 AWS SNS 實現高效的通知與消息傳遞!如果有其他問題或需要深入討論特定場景,歡迎告訴我!

2025年1月23日 星期四

Azure (VM)無法連線,我可以從哪些點排查?

 EX:如果我有一台正在使用的機器,突然無法正常遠端連線使用,我們能先做哪些判斷?

步驟 1: 確認虛擬機器的基本狀態

  1. 檢查 VM 狀態

    • 登入 Azure 入口網站。

    • 確認目標 VM 的運行狀態是否為 Running

    • 如果狀態為 StoppedDeallocated,需要啟動虛擬機器後再進行遠端連線。



步驟 2: 查看虛擬機器的效能監控

  1. 檢查 VM 狀態

    • 選擇虛擬機器

      • 從虛擬機器列表中,選擇需要查看的 VM,例如「CDN-01」。
    • 檢視概覽頁面

      • 點擊左側功能選單的「概覽 (Overview)」。
      • 在此頁面中,查看虛擬機器的摘要資訊與效能監控數據。
    • 查看效能與使用率 (Performance and utilization)

      • 在概覽頁面中,你可以檢視以下指標:
        • CPU 使用率
        • 磁碟使用情況 (讀取/寫入位元組數)
        • 這些狀態可以判斷你的機器是否為正常運作中


步驟 3: 檢查與管理虛擬機器的網路安全群組規則 (NSG Rules)

  1. 進入網路設定頁面

  2. 在虛擬機器左側功能選單中,點擊「網路 (Networking)」。

  3. 檢視輸入連接埠規則

    • 在「輸入連接埠規則 (Inbound Port Rules)」中,檢查當前允許的網路流量規則。
    • 每條規則包含以下資訊:
      • 優先順序:決定規則應用的先後順序,數字越小優先級越高。
      • 名稱:該規則的識別名稱。
      • 連接埠:該規則開啟的連接埠號,例如圖中顯示的 22 (TCP) 用於 SSH 連線。
      • 來源目的地:定義網路流量的來源與目的。
      • 動作:規則是允許 (Allow) 或拒絕 (Deny) 連線。


步驟 4: 檢查虛擬機器的活動紀錄

可以查看的關鍵資訊

  1. 操作紀錄

    • 確認最近是否有相關操作,比如:
      • 虛擬機器是否被 停止 (Stopped)解除配置 (Deallocated)
      • 網路安全群組 (NSG) 的規則是否有變更。
      • 連接埠是否被開啟或關閉。
  2. 錯誤事件

    • 查看是否有「失敗 (Failed)」的事件,這些通常會記錄操作過程中的問題,例如啟動失敗、配置更新錯誤。
  3. 網路相關問題

    • 如果有對網路接口 (NIC) 或網路安全群組 (NSG) 的更改,確認是否關閉了關鍵的連接埠(如 22 用於 SSH,3389 用於 RDP)。
  4. 呼叫者

    • 檢查最近是否有非授權的變更操作,例如其他用戶或系統更改了網路配置。


如果查詢以上狀態皆無異常,有可能是其他設定問題戶或者是網路相關問題導致無法連線,需直接開工單詢問。

[騰訊雲]管理者如何完成賦予使用者權限

此類設定需要帳號管理者登入騰訊雲端控制台,並進入 IAM 管理頁面。在控制台左上角的搜尋方塊中輸入「身分與存取管理」,或是點選「存取控制」選單來進入 IAM 管理頁面,接著即可進行相關操作。

以下介紹兩種常見的權限賦予方法:

以下提供兩種基本方式完成權限賦予的動作:

一、以“建立新使用者”方式創建並在建立期間增加權限:

帳號管理者在左側選單中選擇「使用者管理」,然後點擊右上角的「新增使用者」。

填寫使用者資訊(如使用者名稱、登入方式等),完成後點擊「確定」。

2. 為新使用者設定權限策略

在使用者創建完畢後,帳號管理者返回使用者清單頁面,點擊剛建立的使用者。

進入使用者詳情頁面後,選擇「權限管理」選項卡,點選「新增權限」。可以選擇直接授予預定義策略,例如「管理員權限」、「唯讀權限」ReadOnlyAccess(如圖)等,或選擇建立自訂策略等。

3. 帳號管理者檢查並確保已根據需求配置了正確的權限,最後點選「確認」來完成配置。

4. 由新帳號使用者登入並測試權限。


二、以設定權限方式加入已存在的使用者帳號或整個使用者群組:

如圖,帳號管理者可建立客製化POLICY

1.建立新權限時,在完成編輯後,可將指定現有的帳號或群組加入,在此過程中,新增的權限將會套用到所選的帳號或群組上(如圖)。


2. 管理者確認修改後的權限設定沒有問題後,點選「完成Complete」儲存變更。

3. 請此帳號使用者進行登入測試。

另可參考以下原廠技術文章鏈結

https://cloud.tencent.com/document/product/1708/92952
https://www.tencentcloud.com/zh/document/product/598/40985


2025年1月22日 星期三

Azure虛擬機無法訪問,Guest Agent日誌顯示OS層面缺少路由設定排除方法

若虛擬機為CentOS 7.9,且出現無法訪問,並且在Guest Agent日誌裏出現了以下記錄,顯示在OS層面未找到route來訪問網路。
 2025-01-01T00:00:00 WARNING Daemon Daemon Could not determine primary interface, please ensure /proc/net/route is correct 
2025-01-01T00:00:00 WARNING Daemon Daemon Primary interface examination will retry silently 2025-01-01T00:00:00 ERROR Daemon Daemon /proc/net/route contains no routes 
2025-01-01T00:00:00 ERROR Daemon Daemon /proc/net/route contains no routes 
2025-01-01T00:00:00 ERROR Daemon Daemon /proc/net/route contains no routes
2025-01-01T00:00:00 ERROR Daemon Daemon /proc/net/route contains no routes
2025-01-01T00:00:00 ERROR Daemon Daemon /proc/net/route contains no routes 

潛在原因可能為: 
1. Linux Guest OS 內的網路設定檔中使用靜態 IP 位址。
(根據目前獲取的資料來看,可先排除。)
2.VM作業系統內可能mask或者移除了networking/clout-init/wicked/waagent 服務或其依賴服務。
(這也會造成虛擬機器無法取得 IP 位址的問題。)
3.VM的網路設定檔因其他原因而損壞。

緩解辦法:
1.可以先透過序列主控臺登入VM

2.運行以下指令來重新獲取IP,然後嘗試檢查連接是否恢復。
    sudo dhclient -v

如果網路設定檔已損壞,即便dhclient後恢復了網路訪問,也建議採取以下步驟重置網路介面NIC

重設 Azure Linux VM 的網路介面 - Virtual Machines | Microsoft Learn

  1. 前往 Azure 入口網站
  2. 選取受影響的虛擬機器。
  3. 選取 [ 網絡] ,然後選取 VM 的網絡介面。

  1. 選取 [IP 設定]
  2. 選取IP
  3. 如果未將 [私人IP設定 ] 設定為 [靜態],請將它變更為 靜態

  4.  IP位址 變更為子網中可用的另一個IP位址。
  5. 虛擬機會重新啟動,以將新的 NIC 初始化至系統。
  6. 嘗試使用SSH登入。 如果成功,您可以視需要將私人IP位元址變更回原始位址。 否則,您可以保留它。








2025年1月18日 星期六

使用網站及指令查詢IP

 

若你想知道你連上的網路對外是哪一個IP(公網IP),只需去搜尋IP查詢的網站即可得知。



 

然而因為IPv4的公有IP量不夠分配給每一個主機,所以大部分會讓主機再分配到一個私有IP,這時候就可以使用在終端使用ipconfig指令查詢到私有IP

1.       先按Windows+R 輸入 cmd


2.       在終端輸入ipconfig即可得到私網IP

 

想要查詢某個網站的伺服器IP(http://smokeping.asuscomm.com/為例),則可以在終端輸入指令nslookup + 網域

1.     先按Windows+R 輸入 cmd


2.     在終端輸入nslookup + 指定網域即可得到該網域之IP


也可以使用網站工具取得

1.     左方輸入網域,再點擊開始測試



2.     即可得到此網域IP



2025年1月17日 星期五

如何在 Azure AD 中建立用戶?

Azure Active Directory(Azure AD)

Azure Active Directory,也稱 Microsoft Entra ID ) 是一種雲端式的身份和存取管理服務,可以幫助企業安全地管理用戶、應用程式及資源的存取權限。在管理使用者時,經常需要將具有相似需求的用戶集合成群組,以簡化存取控制的配



Q1.那這樣Microsoft Entra ID是什麼? 跟他有什麼差別?

A1. Microsoft Entra ID 是 Azure AD 改名後的名稱,功能幾乎完全相同,依然負責身份驗證和存取控制。這只是品牌上的調整,方便它整合進 Microsoft Entra 的身份管理解決方案。對用戶來說,實際操作和功能並沒有變化。

Q2. 為什麼我一定要建立Azure AD? 不能直接使用嗎?

A2.  Azure AD是否需要建立才能使用?
一般來說,Azure AD 並不需要你額外「建立」,因為它是 Microsoft 雲端服務的一部分,當你使用 Microsoft 365 或 Azure 訂閱時,就會自動包含在內。
Q: 我已經有 Microsoft 帳號,為什麼還需要 Azure AD?
A: 如果你只需要個人帳戶的基本功能(例如登入或存取個人 OneDrive),就不需要額外建立 Azure AD。
簡而言之,Azure AD 本身不需要你手動建立,但若你需要進一步的企業級管理和自訂功能,可能需要先擁有對應的 Azure AD 管理權限或目錄。

建立 Azure AD 的步驟

1. 登入 Azure 入口網站

2. 建立 Azure AD 租戶

  1. 登入後,在左側選單中選擇 Azure Active Directory(Microsoft Entra識別碼)
  2. 點擊 加入>>建立新的使用者

    • 組織名稱:輸入租戶的名稱,例如「MyCompany Directory」。
    • 初始網域名稱:這將是您的租戶唯一識別名稱,例如 mycompany.onmicrosoft.com
    • 國家或地區:選擇您的組織所在地。


  3. 確認輸入內容後,點擊 建立

提示:建立完成後,可能需要幾分鐘來處理租戶的初始化。

 


3. 添加使用者到 Azure AD

  1. 進入剛建立的 Azure AD 租戶。
  2. 在左側選單中選擇 使用者,然後點擊 + 新增使用者
  3. 填寫以下內容:
    • 使用者名稱:為使用者指定一個唯一名稱,例如 john.doe@mycompany.onmicrosoft.com
    • 姓名:輸入使用者的全名。
    • 角色:選擇使用者的角色,例如 使用者全域管理員
  4. 點擊 建立 完成操作。

4. 配置應用程式整合

  1. 在 Azure AD 主頁,選擇 企業應用程式
  2. 點擊 + 新增應用程式,然後選擇:
    • 內建應用程式:從清單中選擇常見的應用程式,例如 Microsoft 365。
    • 自訂應用程式:為自家開發的應用程式建立連接。
  3. 根據應用程式要求,配置 SSO 或其他存取規則。

5. 啟用條件式存取(選用)

  1. 前往 安全性 > 條件式存取
  2. 點擊 + 新增策略,設置安全性條件,例如:
    • 只允許特定 IP 範圍登入。
    • 啟用多因素驗證(MFA)。
  3. 定義完成後,啟用策略。


2025年1月15日 星期三

AWS EKS自動創建的服務器,為什麼卷沒有上標籤?怎麼解決?


如果遇到用 EKS 建立節點(EC2 實例)時,這些實例自動附帶的 EBS 捲和網路介面並沒有自動打上他們想要的標籤。換句話說,EC2 實例標籤OK,但磁碟區和 ENI 標籤缺失,需要手動或額外配置來補上,如果遇到該情況該如何處置呢?





可參考以下文件,定義標籤使用方式。

1. EKS (eksctl):

使用 eksctl 定義EKS標籤

https://docs.aws.amazon.com/zh_cn/eks/latest/userguide/eks-using-tags.html#tag-resources-console


2. EBS(Storage Class):

使用 StorageClass 定義 EBS 標籤。

https://docs.aws.amazon.com/zh_tw/eks/latest/userguide/create-storage-class.html


3. ENI(VPC CNI ):

使用 VPC CNI 定義ENI標籤

https://docs.aws.amazon.com/zh_tw/eks/latest/userguide/vpc-add-on-create.html

2025年1月10日 星期五

阿里雲 網路攻擊的防護

面對現行網路攻擊,

阿里雲主要透過以下兩種產品防禦,

分別是WAFAnti-DDoS高防

 

WAF(Web應用防火牆)

WAF用於防禦七層的攻擊

阻擋Http FloodCC AttackSQL Injection、爬蟲攻擊等

 

Anti-DDoS高防

Anti-DDoS高防針對三、四層攻擊防禦,

阻擋流量型攻擊方式,

 

但服務可能會遇到攻擊既有流量型攻擊,又混雜的Web應用層攻擊,

這時如果只使用一種網路防護產品無法達到全面的防護

阿里雲上有提供配套方案,可透過在WAF前加上Anti-DDoS高防,用域名接入方式將WAFcname加入為高防的防禦對象

透過以上方式,讓阿里雲WAFDDoS高防形成有效的協同作用,DDoS高防首先清洗流量型攻擊,減少WAF的負擔,使其能夠更專注於應用層的安全偵測和攔截。

再搭配有效的黑白名單,排除異常IP與服務IP,進一步防禦與提高效率。

這種分層防護機制有效減少了WAF的工作量,並提高整體處理效率為服務提供更強大的網路安全保障。從而確保服務可持續運行

2025年1月7日 星期二

阿里雲DDOS高防介紹

近期服務有被DDOS攻擊查看阿里雲DDOS高防,確認以下資訊

實例規格如下

一張含有 文字, 螢幕擷取畫面, 數字, 字型 的圖片

自動產生的描述

如果攻擊是超過規格會在下方紅框處顯示事件(規格超限告警)、同理目的限速事件也是。如果控制台沒有數據代表就是沒有觸發規格超限告警、目的限速事件。另外,超限告警並非及時資訊,需要到周一10:00產出

然而,規格超限告警是當業務規格超出購買規格時提示的告警資訊,不會影響業務,當多次超出才會影響丟包等資訊;
可以關注目的限速事件,當觸發目的限速事件會對業務產生影響。


此次攻擊最高為700Mbps,來自國內的攻擊,我們購買的防禦帶寬為300G,所以不會是流量攻擊造成影響,有查看到連接數異常上升,較有可能為連接型攻擊有部分請求漏過,導致源站服務異常(因為併發連接數為100,000,此次攻擊連接數已達270,000導致可能丟包)( 併發連接數可以作為影響服務的一個依據,具體要看您後端源站連線數承受能力)

一張含有 文字, 數字, 軟體, 圖表 的圖片

自動產生的描述

一張含有 螢幕擷取畫面, 文字, 行, 數字 的圖片

自動產生的描述

從攻擊分析也可看出為連接型的DDOS攻擊

一張含有 文字, 軟體, 數字, 電腦圖示 的圖片

自動產生的描述


一張含有 文字, 螢幕擷取畫面, 數字, 圖表 的圖片

自動產生的描述


因為這次攻擊我們也進行了調整,

對四層做源限速、目的限速策略,以及調整彈性QPS((會額外產生費用,只有超過基礎的QPS和連接數才會產生費用)),並且搭配AI智能防護保護四層的連接型攻擊


限速配置

例如正常用戶的存取頻率是60秒5次,那麼可以設定成60秒存取超過20次就會加入黑名單,若進入黑名單,則其連線請求都會被丟棄。


開啟彈性QPS,彈性QPS為300,000,新建連接數為200,000,併發連接數為4,000,000(可參考QPS 文檔)

一張含有 文字, 軟體, 螢幕擷取畫面, 電腦圖示 的圖片

自動產生的描述


端口接入 為四層接入、域名接入 為七層接入

因為此次攻擊為針對WEB協議的CC攻擊還是建議改為七層接入避免影響服務

且因為是七層接入,遭受四層攻擊高防不會轉發,會直接丟棄,源站不會遭受影響,可以正常防護四層


文件參考

彈性QPS:

https://help.aliyun.com/zh/anti-ddos/anti-ddos-pro-and-premium/product-overview/billing-of-the-burstable-qps-feature?scm=20140722.S_help%40%40%E6%96%87%E6%A1%A3%40%402330815.S_BB1%40bl%2BRQW%40ag0%2BBB2%40ag0%2Bos0.ID_2330815-RL_%E5%BC%B9%E6%80%A7QPS-LOC_doc%7EUND%7Eab-OR_ser-V_4-P0_0&spm=a2c4g.11186623.d_help_search.i5


四層防護策略: 

https://help.aliyun.com/zh/anti-ddos/anti-ddos-pro-and-premium/user-guide/create-an-anti-ddos-protection-policy?spm=a2c4g.11186623.help-menu-28396.d_2_4_0_2_1.1dbe5078MR8xOH


超限告警數據更新時間

一張含有 文字, 螢幕擷取畫面, 字型, 數字 的圖片

自動產生的描述


AWS 帳戶異常活動處理方式

搜尋此網誌