Amazon AI Practitioner Final review

Exam Preparation Guide: AWS Services and Machine Learning Concepts
Introduction
Welcome to this comprehensive guide designed to help you ace your exam! This blog post covers key AWS services and machine learning concepts, breaking them down into digestible sections with clear explanations and examples. Whether you’re studying for a certification or brushing up on technical knowledge, this guide will equip you with the essentials. Let’s dive in!

  1. AWS Services: Governance and Compliance
    AWS Config

Purpose: AWS Config enables you to assess, audit, and evaluate your AWS resource configurations.
How It Works: Continuously monitors and records resource configurations, allowing automated compliance checks against desired settings.
Why It Matters: Crucial for AI system governance, ensuring resources align with organizational policies and regulatory standards.
Example: A company uses AWS Config to ensure all S3 buckets enforce encryption, flagging non-compliant resources automatically.
Incorrect Options:
Amazon Inspector: Focuses on security assessments for applications, not continuous config monitoring.
AWS Audit Manager: Simplifies risk and compliance audits but lacks config monitoring.
AWS Artifact: Provides compliance reports on-demand, not real-time monitoring.

AWS Trusted Advisor

Purpose: Offers guidance to optimize your AWS resources based on best practices.
How It Works: Analyzes your environment for cost savings, performance, security, and fault tolerance improvements.
Why It Matters: Essential for AI governance by ensuring an optimized and secure setup.
Example: Trusted Advisor flags an underutilized EC2 instance, saving costs.
Incorrect Options:
AWS Config: Monitors configs, not optimization.
AWS Audit Manager: Focuses on compliance audits.
AWS CloudTrail: Logs API calls for auditing, not optimization advice.

  1. Amazon Kendra

Purpose: A machine learning-powered enterprise search service.
How It Works: Enables developers to add search capabilities to apps, helping users find info across diverse data sources.
Supported Sources: Manuals, FAQs, HR docs, and more from S3, SharePoint, Salesforce, ServiceNow, RDS, and OneDrive.
Example: A support team uses Kendra to quickly search customer service guides stored in S3 and Salesforce.
Incorrect Options:
Amazon Textract: Extracts text from documents, not a search tool.
SageMaker Data Wrangler: Prepares data for ML, not search-focused.
Amazon Comprehend: Analyzes text for insights, not document search.

  1. OpenSearch Serverless Vector Store

Purpose: Powers Knowledge Bases for Amazon Bedrock by managing document ingestion.
How It Works: Converts documents into embeddings (vectors) and stores them in a vector database.
Supported Databases: OpenSearch Serverless, Pinecone, Redis Enterprise Cloud, Aurora, MongoDB.
Example: A company uploads PDFs to Bedrock, which OpenSearch Serverless indexes as vectors for fast retrieval.

  1. Machine Learning Concepts
    CNNs and RNNs

CNNs (Convolutional Neural Networks):
Best for grid-like data (e.g., images).
Learns spatial feature hierarchies automatically.
Example: Identifying objects in photos.

RNNs (Recurrent Neural Networks):
Best for sequential data (e.g., time-series).
Captures temporal dependencies.
Example: Predicting stock prices.

K-Means vs. KNN

K-Means:
Unsupervised clustering algorithm.
Groups data by minimizing within-cluster variance.
Example: Segmenting customers by purchase behavior.

KNN (K-Nearest Neighbors):
Supervised classification algorithm.
Classifies based on k-nearest labeled neighbors.
Example: Classifying emails as spam or not.

  1. Evaluation Metrics

Precision: Accuracy of positive predictions = True Positives / (True Positives + False Positives).
Recall: Ability to find all positives = True Positives / (True Positives + False Negatives).
F1-Score: Harmonic mean of Precision and Recall, balancing both.
Example: In spam detection, Precision ensures flagged emails are truly spam, Recall ensures no spam is missed, and F1 balances the two.

  1. Top K, Temperature, and Top P

Top K: Number of top candidates for the next token. Lower = more focused, higher = more diverse.
Temperature: Controls creativity (0-1). Lower = deterministic, higher = creative.
Top P: Percentage of top candidates considered. Similar to Top K in effect.
Example: For a chatbot, low Temperature ensures predictable replies, while high Top K adds variety.

  1. Learning Types

Self-Supervised Learning: Creates labels from input data (used by foundation models).
Supervised Learning: Trains with labeled data.
Fine-Tuning: Further trains a pre-trained model with labeled data for specific tasks.
Example: A foundation model learns language patterns self-supervised, then fine-tunes on customer reviews.

  1. Prompting Techniques

Key Components:
Instructions: Task for the model.
Context: Guiding info.
Input Data: What to respond to.
Output Indicator: Desired format.

Example: “Summarize this article (context) in 3 sentences (instruction) for this text (input) as a bullet list (output).”

  1. Bias and Variance

Bias: High in underfit models, missing data patterns.
Variance: High in overfit models, overly sensitive to training data.
Example: A simple model (high bias) fails to predict complex trends, while an overfit model (high variance) memorizes noise.

  1. Continued Pre-Training vs. Fine-Tuning

Continued Pre-Training: Uses unlabeled data to enhance domain knowledge.
Fine-Tuning: Uses labeled data to boost task-specific performance.
Example: Pre-train on business docs (unlabeled), then fine-tune on labeled sales data.

  1. Interpretability vs. Performance Trade-Off

Interpretability: Simpler models (e.g., linear regression) are easier to understand but less powerful.
Performance: Complex models (e.g., neural networks) excel but are harder to interpret.
Example: A decision tree is interpretable but may underperform compared to a deep learning model.

  1. Interpretability vs. Explainability

Interpretability: Understanding a model’s internal mechanics.
Explainability: Providing clear reasons for predictions, especially for complex models.
Example: A linear model’s weights are interpretable; a neural network’s predictions need explainability tools like SHAP.

AWS Certified AI Practitioner key notes

Amazon AI Practitioner學習指南 - 筆記

導論

  • AI 與 ML 的定義

    • AI(人工智慧):模擬人類智能的技術。
    • ML(機器學習):AI 的子領域,透過資料讓電腦自我學習與預測。
    • DL(深度學習):ML 的子領域,使用多層神經網路處理大量資料。
  • ML 工作流程

    1. 問題定義與業務目標對齊
    2. 數據收集與準備
    3. 特徵工程與資料處理
    4. 建立與訓練模型
    5. 模型評估與調整
    6. 模型部署與監控

AWS 的 AI/ML 生態系

  • Amazon SageMaker:端對端的機器學習平台,支援建模、訓練、部署、監控。
  • Amazon Rekognition:影像與影片分析(如臉部辨識、物件偵測)。
  • Amazon Comprehend:自然語言處理(如情緒分析、實體辨識)。
  • Amazon Lex:建立對話式介面(聊天機器人)。
  • Amazon Polly:文字轉語音(TTS)。
  • Amazon Transcribe:語音轉文字(STT)。
  • Amazon Translate:即時語言翻譯。
  • Amazon Forecast:時間序列預測。
  • Amazon Textract:從文件中擷取文字與欄位(OCR)。

資料與特徵工程

  • 資料準備的重要性:資料品質決定模型表現。

  • 特徵工程

    • 特徵選擇、特徵轉換、特徵縮放。
    • 使用 Amazon SageMaker Data Wrangler 簡化流程。

模型訓練與評估

  • 訓練類型:監督式、非監督式、強化學習。

  • 常見演算法:線性回歸、決策樹、XGBoost、K-means、神經網路。

  • 模型評估指標

    • 精確率 (Precision)、召回率 (Recall)、F1 分數
    • 混淆矩陣、AUC、RMSE

模型部署與監控

  • 部署方式:批次推論(Batch)、即時推論(Real-time)。
  • A/B 測試Canary 部署 支援逐步上線。
  • 模型漂移(Model Drift) 監控與再訓練機制。

安全性與責任式 AI

  • 資料隱私與合規性:GDPR、HIPAA。
  • 公平性(Fairness):避免偏誤(Bias)。
  • 可解釋性(Explainability):提供模型決策依據。

AWS AI/ML 應用案例

  • 零售:客戶推薦系統、庫存預測。
  • 醫療:診斷輔助、病歷分析。
  • 金融:欺詐偵測、信用風險評估。

準備 AWS AI 認證

  • 熟悉 SageMaker 工作流程服務選擇邏輯

  • 練習使用 AutoMLJupyter NotebookPipeline

  • 了解如何處理常見問題,例如:

    • 資料不足如何增強?
    • 模型準確率低時如何調整?
    • 預測服務如何擴展(Scalability)?

機器學習與 AWS 服務筆記

回歸 (Regression)

  • 定義:尋找函數將標記資料集關聯至連續變數的過程。
  • 用途:預測連續值,如天氣預報或房價預測。
  • 表示方式:在圖形上繪製資料點(向量),並繪製回歸線表示預測。
  • 誤差:資料點與回歸線的距離表示誤差。
  • 演算法
    • 平均平方誤差 (Mean Squared Error, MSE)
    • 均方根誤差 (Root Mean Squared Error, RMSE)
    • 平均絕對誤差 (Mean Absolute Error, MAE)

分類 Kelsey (Classification)

  • 定義:尋找函數將標記資料集劃分為離散類別的過程。
  • 用途:預測資料屬於哪個類別,如電子郵件是否為垃圾郵件。
  • 表示方式:在圖形上繪製資料點,並以分類線分隔不同類別。
  • 演算法
    • 邏輯回歸 (Logistic Regression)
    • 決策樹 (Decision Tree)
    • 隨機森林 (Random Forest)
    • 神經網路 (Neural Network)

函式庫與框架 (Library and Framework)

  • 函式庫:提供特定功能的程式碼集合,如 NLTK 用於自然語言處理。
  • 框架:提供應用程式結構,包含多個函式庫,如 LangChain 用於大型語言模型。

演算法與函數 (Algorithm and Function)

  • 演算法:一組執行特定任務的數學或電腦指令,可由多個小演算法組成。
  • 函數:將演算法分組以計算結果,類似機器學習模型。

機器學習模型 (Machine Learning Model)

  • 定義:接受資料輸入,執行機器學習任務(如回歸或分類),並輸出結果。
  • 模型類型
    • 具體模型:有實體形式。
    • 抽象模型:行為模式,如數學或程式碼。

超參數 (Hyperparameter)

  • 定義:訓練模型前設定的參數,控制學習過程,如 K-Nearest Neighbors 的 K 值。
  • 與模型參數區別:模型參數在訓練過程中學習。

K-Nearest Neighbors (KNN)

  • 定義:監督式分類演算法,根據輸入資料與最近鄰居的距離進行分類。
  • 距離度量:歐幾里得 (Euclidean)、漢明 (Hamming)、明可夫斯基 (Minkowski)、曼哈頓 (Manhattan)。
  • 特性:KNN 本身非機器學習,但應用於機器學習問題時成為演算法。

Transformer 架構 (Transformer Architecture)

  • 用途:處理序列資料,特別用於自然語言處理 (NLP)。
  • 主要組成
    • 編碼器 (Encoder):處理輸入序列,產生語義上下文。
    • 解碼器 (Decoder):根據上下文生成輸出序列,逐詞元預測。
  • 關鍵機制
    • 多頭注意力機制 (Multi-Head Attention)
    • 位置編碼 (Positional Encoding)

分詞 (Tokenization)

  • 定義:將文字分解成更小單位(詞元)的過程。
  • 目的:將文字轉為模型可處理的數值表示,建立詞彙表。
  • 詞元:單詞、部分單詞或字符。
  • 詞彙表:模型訓練時創建的唯一詞元集合。
  • 演算法
    • GPT-3:位元組對編碼 (Byte Pair Encoding)
    • BERT:WordPiece
    • Google T5、GPT-3.5:SentencePiece

詞元與容量 (Tokens and Capacity)

  • 關係:Transformer 解碼器連續將詞元序列饋回以預測下一個詞元。
  • 記憶體:詞元數增加,記憶體使用量增加。
  • 運算:序列越長,運算量越大。
  • 限制:AI 服務常限制輸入與輸出詞元總數。

向量 (Vector)

  • 定義:具有長度和方向的數值表示,通常為多維空間中的點。
  • 用途:表示資料的數值形式,用於向量資料庫和嵌入。

嵌入 (Embeddings)

  • 定義:資料(如文字或圖像)的向量表示。
  • 目的:捕捉語義或上下文意義,供模型處理。
  • 向量資料庫:專用於儲存和搜尋向量。

檢索增強生成 (Retrieval Augmented Generation, RAG)

  • 定義:從外部資料源檢索資料,納入語言模型上下文,生成更明智回應。
  • 資料源:向量資料庫、關聯式資料庫、圖形資料庫、文件資料庫、網際網路。
  • 流程:資料源、分塊、解析、嵌入、向量資料庫。
  • Amazon Bedrock Knowledge Base:AWS 功能,支援 RAG 工作流程,連接向量資料庫。

向量資料庫 (Vector Databases)

  • 用途:高效儲存、索引、搜尋向量嵌入。
  • 第三方:Pinecone、Weaviate、Milvus,可與 Amazon Bedrock 整合。
  • AWS 服務
    • Amazon RDS (PostgreSQL with PGVector)
    • Amazon DocumentDB

Amazon RDS (Relational Database Service)

  • 定義:AWS 受管服務,用於設定、操作、擴展關聯式資料庫。
  • PGVector:PostgreSQL 擴充,支援向量儲存與查詢。

Amazon DocumentDB

  • 定義:AWS 受管 MongoDB 相容資料庫,支援向量搜尋。
  • 與 DynamoDB 區別:DynamoDB 不支援向量搜尋,但可用於聊天記錄等。

Amazon Neptune

  • 定義:AWS 受管圖形資料庫服務。
  • 查詢語言:Gremlin、openCypher、SPARQL。
  • 用途:RAG 工作流程中生成查詢,從圖形資料庫獲取資訊。
  • 圖形知識圖譜:儲存結構化知識,增強語言模型。

Amazon Athena

  • 定義:無伺服器查詢服務,使用標準 SQL 分析 Amazon S3 資料。
  • 架構:基於 Presto 和 Trino。
  • 資料來源:S3 儲存貯體。
  • 結果儲存:查詢結果存回 S3。
  • Glue Data Catalog:元資料儲存庫,包含資料庫和表定義。
  • SQL 子集:DDL、DML、DQL。
  • 資料類型:數值、字符、二進制、日期、時間戳、陣列、映射、結構。
  • SerDe:解析不同格式資料(如 CSV、JSON、Parquet、ORC)。

AWS Glue

  • 定義:無伺服器資料整合服務。
  • Glue Data Catalog:集中式元資料儲存庫。
  • Glue Crawler:掃描資料源,確定模式並創建表。
  • Glue Jobs:執行 ETL 工作負載。
  • 引擎類型:Python Shell、Ray Jobs (預覽)、Spark Jobs。
  • 計費:基於資料處理單位 (DPU)。
  • Glue Data Quality:監控資料品質。

Amazon SageMaker

  • 定義:完全受管服務,支援建構、訓練、部署機器學習模型。
  • SageMaker Python SDK:專用於 SageMaker 的 Python 函式庫。
  • 抽象概念:估計器、模型、預測器、會話。
  • 功能:自動模型調整、批次轉換、推論管線、Autopilot、Model Monitoring、Debugger、Processing。
  • 端點:SageMaker Endpoints (訓練/部署)、Runtime Endpoints (推論)。
  • SageMaker JumpStart:提供預訓練模型、筆記型電腦、解決方案。
  • SageMaker Studio Lab:免費 ML 環境,支援 Jupyter 筆記型電腦。
  • SageMaker Clarify:檢測偏見,增強可解釋性,使用 SHAP 演算法。
  • Model Cards:記錄模型詳細資訊。
  • Feature Store:儲存、版本控制、共享 ML 特徵。

AI 可解釋性 (AI Explainability)

  • 定義:理解 AI 模型決策的過程。
  • SHAP 演算法:量化每個輸入特徵對模型輸出的貢獻。

模型評估 (Model Evaluation)

  • 定義:衡量機器學習模型效能。
  • 評估指標
    • 分類指標:準確度、精確率、召回率、F1 Score。
    • NLP 指標
      • BLEU:機器翻譯精度指標。
      • METEOR:改進 BLEU,支援同義詞和詞幹匹配。
      • ROUGE:摘要任務召回率指標。
  • 混淆矩陣:視覺化分類預測結果。
    • True Positive (TP):正確預測正例。
    • True Negative (TN):正確預測負例。
    • False Positive (FP):錯誤預測正例 (Type I Error)。
    • False Negative (FN):錯誤預測負例 (Type II Error)。
  • Amazon Bedrock Model Evaluation:評估 LLM 效能,支援準確度、毒性、穩健性。
  • FMEval:AWS 開源函式庫,評估大型語言模型。

偏見檢測 (Bias Detection)

  • 定義:識別模型中對特定群體的不公平偏見。
  • SageMaker Clarify:提供偏見指標,如 Class Imbalance、Difference in Proportions of Labels。
  • Facet:衡量偏見的屬性。
  • Bias Metric:量化偏見程度。
  • Bias Report:偏見指標集合。

Guardrails

  • 定義:AWS Bedrock 安全功能,過濾不適當 LLM 請求和回應。
  • 功能:檢查有害內容、不適當主題、上下文接地檢查。

Model Invocation Logging

  • 定義:記錄 Amazon Bedrock 模型調用資料至 CloudWatch Logs。
  • 資訊:詞元使用量、模型、輸入/輸出文字、Guardrails 應用、帳戶/區域資訊。
  • 用途:追蹤詞元、監控成本、偵錯。

Amazon Personalize

  • 定義:機器學習服務,提供應用程式內推薦。
  • 資料集類型:用戶資料、項目資料、用戶-項目互動資料。
  • 領域推薦器:針對特定使用案例優化的推薦器。
  • 用途:個性化推薦,如「為您推薦」、「常一起購買」。

Amazon CodeWhisperer

  • 定義:AI 程式設計助理,提供即時程式碼建議。
  • 功能:支援多語言 (Java、JavaScript、Python 等)。
  • 部署:作為 IDE 擴充功能 (VS Code、Cloud9)。
  • 定價:提供免費層級。

Amazon CodeGuru

  • 定義:自動程式碼審查和性能分析工具。
  • 組成
    • Security:查找安全漏洞。
    • Reviewer:提供程式碼建議。
    • Profiler:查找程式碼低效率。
  • 支援語言:Java、JavaScript、Python 等。
  • 整合:GitHub、CI/CD 工作流程。

Amazon Kendra

  • 定義:機器學習驅動的企業搜尋服務。
  • 功能:從多種資料源 (S3、資料庫、SharePoint) 建立搜尋索引。
  • 用途:智能搜尋企業資料。

Amazon Polly

  • 定義:文字轉語音服務。
  • 語音類型:標準、長格式、神經 (Neural 最逼真,成本較高)。
  • 功能:支援多語言,控制音高、速度、音量。
  • Lexicons:自定義發音文件。
  • Speech Marks:提供語音元資料。
  • SSML:控制語音合成的 XML 標記語言。
  • 整合:可用於行銷、輔助功能等。

小測驗 (Quiz)

問題與答案

  1. 回歸的主要目的是什麼?與分類有何不同?

    • 回歸預測連續數值,如房價;分類將資料分配到離散類別,如垃圾郵件識別。
  2. 在 K-Nearest Neighbors 演算法中,’K’ 代表什麼?

    • ‘K’ 表示分類時考慮的最近鄰居數量,影響演算法結果。
  3. Transformer 架構中的編碼器和解碼器分別負責什麼?

    • 編碼器處理輸入序列,產生語義上下文;解碼器根據上下文生成輸出序列,逐詞元預測。
  4. 分詞的目的是什麼?為什麼大型語言模型需要它?

    • 分詞將文字分解為詞元,轉為數值表示;大型語言模型需詞彙表以處理文字。
  5. 什麼是向量資料庫?它們在 AI 中有何作用?

    • 向量資料庫儲存、索引、搜尋向量嵌入,在 RAG 和相似度搜尋中快速找到相關向量。
  6. Amazon Bedrock Knowledge Base 的核心功能是什麼?它通常與哪種類型的資料庫一起使用?

    • 核心功能是支援 RAG 工作流程,連接外部資料源,通常與向量資料庫(如 RDS PGVector)一起使用。
  7. Amazon DocumentDB 與 Amazon DynamoDB 在支援向量搜尋方面有何關鍵區別?

    • DocumentDB 支援向量搜尋,儲存和查詢向量嵌入;DynamoDB 不支援向量搜尋。
  8. Amazon SageMaker Clarify 使用哪種演算法來解釋模型決策中每個輸入特徵的貢獻?

    • 使用 SHAP 演算法,量化每個特徵對模型輸出的貢獻。
  9. 混淆矩陣中的 True Positive (TP) 和 False Positive (FP) 分別代表什麼?

    • TP:正確預測正例;FP:錯誤預測正例 (Type I Error)。
  10. Amazon Polly 的 Neural 語音與 Standard 語音有何不同?

    • Neural 語音使用深度學習,語音更自然逼真;Standard 語音較機械化,成本較低。

論文格式問題 (Essay Format Questions)

請針對以下任一問題撰寫一篇論文:

  1. 比較並對比回歸和分類這兩種機器學習的基本任務,討論它們各自的應用場景和常見演算法。
  2. 詳細解釋 Transformer 架構的工作原理,包括編碼器、解碼器、多頭注意力和位置編碼的作用,並討論其在大型語言模型中的重要性。
  3. 深入探討檢索增強生成 (RAG) 的概念,闡述其如何結合檢索機制和生成模型來改進大型語言模型的回應,並討論其優點和潛在挑戰。
  4. 解釋向量資料庫在 AI 應用中的作用,特別是在儲存和搜尋嵌入方面,並討論它們與傳統關聯式資料庫的區別。
  5. 討論模型評估的重要性,並詳細介紹幾種常用的評估指標(例如,分類指標、BLEU、METEOR、ROUGE),解釋它們各自衡量的是模型的哪方面效能。

詞彙表 (Glossary of Key Terms)

  • 回歸 (Regression):將資料集關聯至連續變數的過程。

  • 分類 (Classification):將資料集劃分為類別的過程。

  • 函式庫 (Library):提供特定功能的程式碼集合。

  • 框架 (Framework):提供應用程式結構,包含多個函式庫。

  • 演算法 (Algorithm):執行特定任務的指令集。

  • 函數 (Function):計算結果的演算法分組。

  • 機器學習模型 (Machine Learning Model):執行機器學習任務的函數。

  • 超參數 (Hyperparameter):控制學習過程的預設參數。

  • K-Nearest Neighbors (KNN):根據最近鄰居距離分類的演算法。

  • Transformer 架構:處理序列資料的深度學習架構。

  • 編碼器 (Encoder):處理輸入序列。

  • 解碼器 (Decoder):生成輸出序列。

  • 多頭注意力機制:同時關注序列不同部分。

  • 位置編碼:添加詞元位置資訊。

  • 分詞 (Tokenization):將文字分解為詞元。

  • 詞元 (Token):文字最小單位。

  • 詞彙表 (Vocabulary):模型學習的唯一詞元集合。

  • 向量 (Vector):多維空間中的數值表示。

  • 嵌入 (Embeddings):資料的向量表示。

  • 向量資料庫 (Vector Database):儲存、索引、搜尋向量。

  • 檢索增強生成 (RAG):結合檢索與生成,改進語言模型回應。

  • Amazon Bedrock Knowledge Base:支援 RAG 工作流程。

  • Amazon RDS:受管關聯式資料庫服務。

  • PGVector:PostgreSQL 向量儲存擴充。

  • Amazon DocumentDB:MongoDB 相容資料庫,支援向量搜尋。

  • Amazon Neptune:受管圖形資料庫服務。

  • 圖形資料庫:使用圖形結構儲存資料。

  • 圖形知識圖譜:儲存結構化知識。

  • Amazon Athena:無伺服器 S3 資料查詢服務。

  • AWS Glue Data Catalog:元資料儲存庫。

  • 資料定義語言 (DDL):定義資料庫模式。

  • 資料操作語言 (DML):操作資料集。

  • 資料查詢語言 (DQL):查詢資料集。

  • 序列化/反序列化 (SerDe):解析不同格式資料。

  • AWS Glue:無伺服器資料整合服務。

  • AWS Glue Crawler:掃描資料源創建表。

  • AWS Glue Jobs:執行 ETL 工作。

  • 資料處理單位 (DPU):Glue 計費單位。

  • AWS Glue Data Quality:監控資料品質。

  • Amazon SageMaker:建構、訓練、部署 ML 模型服務。

  • SageMaker Python SDK:SageMaker 專用 Python 函式庫。

  • 估計器 (Estimator):封裝 SageMaker 訓練。

  • 模型 (Model):封裝 ML 模型。

  • 預測器 (Predictor):提供實時推論。

  • SageMaker JumpStart:預訓練模型與解決方案。

  • SageMaker Studio Lab:免費 ML 環境。

  • SageMaker Clarify:檢測偏見與可解釋性。

  • AI 可解釋性:理解 AI 決策過程。

  • SHAP:解釋模型輸出的演算法。

  • Facet:衡量偏見的屬性。

  • Bias Metric:量化偏見程度。

  • Bias Report:偏見指標集合。

  • 模型評估:衡量模型效能。

  • 評估指標:量化模型效能的度量。

  • 混淆矩陣:視覺化分類預測。

  • True Positive (TP):正確正例。

  • True Negative (TN):正確負例。

  • False Positive (FP):錯誤正例。

  • False Negative (FN):錯誤負例。

  • BLEU:機器翻譯精度指標。

  • METEOR:改進的翻譯評估指標。

  • ROUGE:摘要任務召回率指標。

  • Amazon Bedrock Model Evaluation:評估 LLM 效能。

  • Guardrails:過濾不適當 LLM 內容。

  • Model Invocation Logging:記錄 Bedrock 模型調用。

  • Amazon Personalize:應用程式內推薦服務。

  • Domain Recommenders:優化特定使用案例的推薦器。

  • Amazon CodeWhisperer:AI 程式碼建議服務。

  • Amazon CodeGuru:程式碼審查與性能分析。

  • Code Reviewer:提供程式碼建議。

  • Profiler:查找程式碼低效率。

  • Amazon Kendra:企業搜尋服務。

  • 索引 (Index):組織資料以快速搜尋。

  • 資料來源連接器:連接不同資料源。

  • Amazon Polly:文字轉語音服務。

  • SSML:控制語音合成的標記語言。

  • Lexicons:自定義發音文件。

  • Speech Marks:語音元資料標記。

    演算法 (Algorithm) 和函數 (Function):

    演算法:一組數學或電腦指令,用於執行特定任務。演算法可以由幾個較小的演算法組成。
    函數:一種將演算法分組以計算結果的方法(類似於機器學習模型)。

    機器學習模型 (Machine Learning Model):

    定義:一個函數,接受資料輸入,執行機器學習任務(例如回歸或分類),並輸出結果。
    模型類型:具體模型(有實體形式)和抽象模型(行為模式,例如數學或程式碼)。

    超參數 (Hyperparameter):

    定義:在訓練模型之前設定的參數,用於控制學習過程(例如,K-Nearest Neighbors 中的 ‘K’ 值)。
    與模型參數的區別:模型參數是在訓練過程中學習到的。

    K-Nearest Neighbors (KNN):

    定義:一種監督式分類機器學習演算法,根據輸入資料與其最近鄰居的距離進行分類。
    距離度量:可以使用不同的距離度量(例如歐幾里得 (Euclidean)、漢明 (Hamming)、明可夫斯基 (Minkowski)、曼哈頓 (Manhattan))。
    KNN 本身不是機器學習,但應用於機器學習問題時就成為機器學習演算法。

    Transformer 架構 (Transformer Architecture):

    用途:用於處理序列資料,特別是自然語言處理(例如大型語言模型)。
    主要組成部分:編碼器 (Encoder) 和解碼器 (Decoder)。
    工作原理:編碼器處理輸入序列並產生語義上下文,解碼器使用此上下文生成輸出序列(通常一次一個詞元)。
    關鍵組成部分:多頭注意力機制 (Multi-Head Attention) 和位置編碼 (Positional Encoding)。

    分詞 (Tokenization):

    定義:將資料輸入(通常是文字)分解成更小的部分(詞元)的過程。
    目的:使模型能夠處理文字資料,通常為每個詞元分配一個唯一的 ID。
    詞元:可以是單詞、部分單詞或字符。
    詞彙表:模型在訓練期間創建的唯一詞元集合。
    演算法:不同的模型使用不同的分詞演算法(例如,GPT-3 使用位元組對編碼 (Byte Pair Encoding),BERT 使用 WordPiece,Google T5 和 GPT-3.5 使用 SentencePiece)。

    詞元和容量 (Tokens and Capacity):

    Transformer 模型中的關係:解碼器連續將詞元序列作為輸出饋回以預測下一個詞元。
    記憶體:序列中的每個詞元都需要記憶體;詞元計數增加時,記憶體使用量也增加。
    運算:序列越長,模型需要執行的運算越多。
    限制:許多 AI 服務對輸入和輸出詞元的總數設有限制。

    向量 (Vector):

    定義:一個具有長度和方向的箭頭;在資料表示中,通常是在多維空間中的一個點。
    用途:表示資料的數值表示,常用於向量資料庫和嵌入。

    嵌入 (Embeddings):

    定義:資料(例如文字或圖像)的數值表示,表示為向量。
    目的:捕捉資料的語義或上下文意義,使模型能夠理解和處理它們。
    向量資料庫:專門用於儲存和搜尋向量的資料庫。

    檢索增強生成 (Retrieval Augmented Generation, RAG):

    定義:一種 AI 流程,從外部資料源檢索資料並將其納入語言模型的上下文視窗中,以產生更明智的回應。
    資料源:RAG 可以從各種資料源獲取資料,包括向量資料庫、關聯式資料庫、圖形資料庫、文件資料庫或網際網路。
    流程:通常涉及資料源、分塊 (chunking)、解析 (parsing)、嵌入 (embedding) 和向量資料庫。
    Amazon Bedrock Knowledge Base:AWS 中的一項功能,允許設定 RAG 工作流程以連接到向量資料庫。

    向量資料庫 (Vector Databases):

    用途:專門用於高效儲存、索引和搜尋向量嵌入。
    第三方向量資料庫:Pinecone, Weaviate, Milvus 是可以與 Amazon Bedrock Knowledge Base 集成的第三方向量資料庫。
    AWS 服務:Amazon RDS (PostgreSQL with PGVector) 和 Amazon DocumentDB 可以用作向量資料庫。

    Amazon RDS (Relational Database Service):

    定義:AWS 中的一項受管服務,用於設定、操作和擴展關聯式資料庫。
    PGVector:PostgreSQL 的一個擴充功能,使其能夠儲存和查詢向量,因此可以用作向量資料庫。

    Amazon DocumentDB:

    定義:AWS 中的一項受管 MongoDB 相容資料庫服務。
    向量搜尋:DocumentDB 支援向量搜尋,這可能是因為它基於高度修改的 PostgreSQL 版本。
    與 DynamoDB 的區別:DynamoDB (Key-Value/Document) 不支援向量搜尋,但可用於儲存聊天記錄 (Chat History) 以進行工作階段管理 (Session Management)。DocumentDB 支援向量搜尋,可用於儲存和搜尋向量。

    Amazon Neptune:

    定義:AWS 中的一項受管圖形資料庫服務。
    圖形查詢語言:支援 Gremlin, openCypher, SPARQL。
    用途:可以在 RAG 工作流程中利用,其中語言模型可以生成查詢以從圖形資料庫獲取資訊。
    圖形知識圖譜:利用圖形資料庫儲存和管理結構化知識,可以用於增強語言模型。

    Amazon Athena:

    定義:AWS 中的一項互動式查詢服務,無需伺服器即可輕鬆分析 Amazon S3 中的資料,並使用標準 SQL。
    架構:基於開源框架,例如 Presto 和 Trino。
    資料來源:從 S3 儲存貯體中提取資料。
    結果儲存:通常將查詢結果儲存回 S3 儲存貯體。
    Glue Data Catalog:Athena 利用 AWS Glue Data Catalog 作為其資料來源的元資料儲存庫,其中包含資料庫和表的定義。
    SQL 子集:資料定義語言 (DDL)、資料操作語言 (DML)、資料查詢語言 (DQL)。
    資料類型:支援各種資料類型,包括數值(整數、浮點數、小數)、字符(CHAR、VARCHAR、STRING)、二進制、日期、時間戳、陣列、映射和結構。
    序列化/反序列化 (SerDe):在創建表時指定,用於解析不同格式(如 CSV、JSON、Parquet、ORC)的資料;SerDe 配置會覆蓋 DDL 定義。
    支持的 SerDe 庫:來自 Hive、OpenCSV、Grok、OpenX、Ion 等。

    AWS Glue:

    定義:一項無伺服器資料整合服務。
    Glue Data Catalog:作為集中式元資料儲存庫,儲存資料的位置、結構和模式。
    Glue Crawler:用於自動掃描資料源(S3、JDBC 資料庫、DynamoDB、MongoDB、Delta Lake、Apache Iceberg、Hoodie)以確定模式並創建 Glue 表。
    Glue Jobs:用於執行 ETL (Extract, Transform, Load) 工作負載。
    引擎類型:Python Shell、Ray Jobs (預覽)、Spark Jobs。
    創建 Glue Jobs 的方式:Visual ETL (Glue Studio)、Jupyter Notebooks、Script Editor。
    計費:基於資料處理單位 (DPU) 和工作類型/工作人數的組合。
    Glue Data Quality:衡量和監控資料品質的功能,建立在 AWS 開源 DQ 框架上。

    Amazon SageMaker:

    定義:一個完全受管的服務,提供建構、訓練和部署機器學習模型所需的所有組成部分。
    SageMaker Python SDK:一個 Python 函式庫,用於在 SageMaker 上訓練和部署 ML 模型;與 boto3 不同,它更側重於 SageMaker 特定的整合。
    抽象概念:提供估計器 (Estimators)、模型 (Models)、預測器 (Predictors)、會話 (Sessions)。
    功能:支援多種 ML 框架和演算法,自動模型調整 (Automatic Model Tuning)、批次轉換 (Batch Transform)、推論管線 (Inference Pipelines)、Autopilot、Model Monitoring、Debugger、Processing。
    端點:SageMaker Endpoints (用於訓練和部署模型、Notebook 實例) 和 Runtime Endpoints (用於對託管模型進行推論請求)。
    SageMaker JumpStart:一個機器學習中心,用於尋找、一鍵式部署和微調預訓練模型,筆記型電腦和解決方案範例;許多模型來自 Hugging Face。
    SageMaker Studio Lab:一個免費的機器學習環境,提供 Jupyter 筆記型電腦以及 CPU 和 GPU 運算資源,無需設定或帳戶。
    SageMaker Clarify:用於檢測 ML 模型中的偏見和增強可解釋性;提供各種預訓練偏見指標;使用 SHAP 演算法解釋特徵貢獻。
    Model Cards:管理和治理 ML 模型的文檔框架,記錄模型詳細資訊、訓練指標、效能評估等。
    Feature Store:一個專用的儲存庫,用於儲存、版本控制和共享機器學習特徵,以便在訓練和推論期間重複使用。

    AI 可解釋性 (AI Explainability):

    定義:理解為什麼 AI 模型會做出特定決定的過程。
    SHAP (SHapley Additive exPlanations) 演算法:一種賽局理論方法,用於解釋機器學習模型的輸出,量化每個輸入特徵對最終決策的貢獻。
    SageMaker Clarify 中的應用:用於生成偏見報告和特徵重要性解釋。

    模型評估 (Model Evaluation):

    定義:衡量機器學習模型效能的過程。
    評估指標 (Evaluation Metrics):用於量化模型效能的度量標準。
    內部評估 (Internal Evaluations):評估 ML 模型內部結構的指標。
    外部評估 (External Evaluations):評估 ML 模型最終預測的指標。
    混淆矩陣 (Confusion Matrix):用於視覺化模型預測與真實標籤的表格,對於分類問題很有用。
    True Positive (TP):模型正確預測為正例。
    True Negative (TN):模型正確預測為負例。
    False Positive (FP, Type I Error):模型錯誤預測為正例(實際上是負例)。
    False Negative (FN, Type II Error):模型錯誤預測為負例(實際上是正例)。
    分類指標:準確度 (Accuracy)、精確率 (Precision)、召回率 (Recall)、F1 Score。
    自然語言處理 (NLP) 指標:
    BLEU (Bilingual Evaluation Understudy):一種用於機器翻譯評估的精度指標,比較機器翻譯與一組高品質參考翻譯。
    METEOR (Metric for Evaluation of Translation with Explicit Ordering):一種基於精度的機器翻譯評估指標,克服了 BLEU 的缺陷,允許同義詞和詞幹匹配。
    ROUGE (Recall-Oriented Understudy for Gisting Evaluation):一種用於摘要任務的評估指標,衡量機器生成摘要與參考摘要之間的召回率。
    Amazon Bedrock Model Evaluation:AWS 中的一項功能,提供自動和手動模式來評估 LLM 效能;支援準確度、毒性 (Toxicity) 和穩健性 (Robustness) 等指標。
    FMEval (Foundation Model Evaluation Library):一個由 AWS 開源的函式庫,用於評估大型語言模型。

    偏見檢測 (Bias Detection):

    定義:識別 ML 模型中可能導致對特定人口群體(例如年齡、性別、收入)不公平待遇的偏見。
    SageMaker Clarify 中的應用:提供各種預訓練偏見指標(例如 Class Imbalance、Difference in Proportions of Labels 等)來衡量資料集和模型中的偏見。
    Facet:用於衡量偏見的屬性或特徵。
    Facet Value:Facet 的特定值。
    Bias Metric:一個數值,表示潛在偏見的程度。
    Bias Report:數據集或模型的一系列偏見指標集合。

    Guardrails:

    定義:AWS Bedrock 中的一項安全功能,用於實施策略以過濾和拒絕不適當或不需要的 LLM 請求和回應。
    功能:可以檢查是否有害內容、不適當主題,並實施上下文接地檢查 (Contextual Grounding Check)。
    應用:可以附加到 Bedrock 模型、Agents 或其他應用程式。

    Model Invocation Logging:

    定義:將 Amazon Bedrock 模型調用資料發送到 CloudWatch Logs 的功能。
    記錄的資訊:輸入/輸出詞元使用量、調用的模型、輸入/輸出文字、是否應用 Guardrails、帳戶/區域資訊。
    用途:追蹤詞元使用量、監控成本、偵錯。

    Amazon Personalize:

    定義:一項機器學習服務,用於為客戶建構應用程式內的推薦。
    資料集類型:支援不同類型的資料集,包括用戶資料 (User Data)、項目資料 (Item Data)、用戶-項目互動資料 (User-Item Interaction Data)。
    領域推薦器 (Domain Recommenders):預配置的推薦器,針對特定使用案例進行優化(例如,電子商務推薦器)。
    用途:根據用戶行為或項目屬性生成個性化推薦(例如,為您推薦、常一起購買、最暢銷、最常查看)。
    計費:基於使用的資料量、訓練時間和實時推薦請求。

    Amazon CodeWhisperer:

    定義:AWS 中的一項 AI 程式設計助理服務,提供即時程式碼建議。
    功能:根據現有程式碼和註釋提供建議;支援多種程式語言(Java、JavaScript、Python、C#、TypeScript、Ruby)。
    部署選項:可以作為 Visual Studio Code、Cloud9 或其他 IDE 的擴充功能使用。
    定價:提供免費層級,無需 AWS 帳戶。
    Code Reviewer 和 Profiler:CodeGuru 的相關功能,用於尋找程式碼中的不安全漏洞和性能問題(儘管語言支援可能因功能而異)。

    Amazon CodeGuru:

    定義:AWS 中的一項開發人員工具,用於自動程式碼審查和應用程式性能分析。
    組成部分:Security (用於查找安全漏洞,可能仍在預覽中)、Reviewer (連接到程式碼儲存庫以提供持續的程式碼更改建議)、Profiler (查找程式碼中的低效率)。
    支援的語言:Java、JavaScript、Python、C#、TypeScript、Ruby (語言支援可能因功能而異)。
    整合:可以與 GitHub 等 Git 儲存庫以及 CI/CD 工作流程(例如 GitHub Actions)整合。

    Amazon Kendra:

    定義:一項由機器學習驅動的企業搜尋服務。
    功能:允許您從各種資料來源(例如 S3、資料庫、SharePoint)建立可搜尋的索引。
    資料來源連接器:支援多種資料來源的內建連接器。
    索引:Kendra 組織和索引資料以實現快速、準確的搜尋。
    用途:在企業資料中實施智能搜尋功能。

    Amazon Polly:

    定義:一項將文字轉換為逼真語音的服務。
    語音類型:提供標準 (Standard)、長格式 (Long Form) 和神經 (Neural) 語音(神經語音最逼真但成本較高)。
    功能:支援多種語言和語音;允許控制語音的各個方面,例如音高、速度和音量。
    Lexicons:可以上傳自定義 Lexicons 文件,以指定特定單詞或短語的發音。
    Speech Marks:元資料標記,提供語音相關的額外資訊(例如單詞開始/結束時間)。
    SSML (Speech Synthesis Markup Language):一種基於 XML 的標記語言,用於控制語音合成的各個方面,例如添加停頓、強調或修改發音。
    SSML 標記:包含標準 W3C 標記和 Amazon 特定標記(例如,用於添加呼吸或耳語)。
    整合:可以與其他服務(例如 Wize.io)整合以用於行銷材料。
    用途:創建語音內容,用於應用程式、內容建立或輔助功能。

小測驗 (Quiz)

請用 2-3 句話回答以下問題。

回歸的主要目的是什麼?與分類有何不同?
在 K-Nearest Neighbors 演算法中,'K' 代表什麼?
Transformer 架構中的編碼器和解碼器分別負責什麼?
分詞的目的是什麼?為什麼大型語言模型需要它?
什麼是向量資料庫?它們在 AI 中有何作用?
Amazon Bedrock Knowledge Base 的核心功能是什麼?它通常與哪種類型的資料庫一起使用?
Amazon DocumentDB 與 Amazon DynamoDB 在支援向量搜尋方面有何關鍵區別?
Amazon SageMaker Clarify 使用哪種演算法來解釋模型決策中每個輸入特徵的貢獻?
混淆矩陣中的 True Positive (TP) 和 False Positive (FP) 分別代表什麼?
Amazon Polly 的 Neural 語音與 Standard 語音有何不同?

測驗答案 (Quiz Answer Key)

回歸的主要目的是預測一個連續的數值,例如預測房價或天氣。分類的目的是將資料點分配到預定義的類別或類別中,例如將電子郵件歸類為垃圾郵件或非垃圾郵件。
在 K-Nearest Neighbors 演算法中,'K' 代表在決定新資料點的分類時要考慮的最近鄰居的數量。選擇不同的 K 值會影響演算法的結果。
Transformer 架構中的編碼器處理輸入序列並建立其表示(語義上下文),而解碼器則利用這個上下文來生成輸出序列,通常是透過預測序列中的下一個詞元。
分詞的目的是將文字輸入分解成更小的單位,稱為詞元,以便模型可以理解和處理文字。大型語言模型需要分詞來將原始文字轉換為它們可以處理的數值表示,並建立模型的內部詞彙表。
向量資料庫是專門用於儲存、索引和搜尋向量嵌入的資料庫,這些嵌入是資料的數值表示。它們在 AI 中至關重要,特別是在 RAG 和相似度搜尋等應用中,以快速找到與給定查詢向量相似的向量。
Amazon Bedrock Knowledge Base 的核心功能是允許您將 Amazon Bedrock 模型與外部資料源(特別是向量資料庫)連接,以啟用檢索增強生成 (RAG) 工作流程。它通常與向量資料庫一起使用,例如 RDS (PGVector)。
Amazon DocumentDB 與 Amazon DynamoDB 的關鍵區別在於,DocumentDB 支援向量搜尋,使其能夠儲存和查詢向量嵌入。 DynamoDB 不支援向量搜尋功能,儘管它可以作為其他用途(例如儲存聊天記錄)的資料庫。
Amazon SageMaker Clarify 使用 SHAP (SHapley Additive exPlanations) 演算法來解釋機器學習模型的輸出,量化每個輸入特徵對模型的最終決策的貢獻。
混淆矩陣中的 True Positive (TP) 代表模型正確地將一個正例預測為正例。 False Positive (FP) 代表模型錯誤地將一個負例預測為正例(也被稱為 Type I Error)。
Amazon Polly 的 Neural 語音使用深度學習來產生聽起來更自然和逼真的語音,通常具有更好的發音、韻律和語氣。 Standard 語音使用較舊的合成技術,聽起來可能比較生硬或機械化,但成本較低。

論文格式問題 (Essay Format Questions)

請針對以下任一問題撰寫一篇論文:

比較並對比回歸和分類這兩種機器學習的基本任務,討論它們各自的應用場景和常見演算法。
詳細解釋 Transformer 架構的工作原理,包括編碼器、解碼器、多頭注意力和位置編碼的作用,並討論其在大型語言模型中的重要性。
深入探討檢索增強生成 (RAG) 的概念,闡述其如何結合檢索機制和生成模型來改進大型語言模型的回應,並討論其優點和潛在挑戰。
解釋向量資料庫在 AI 應用中的作用,特別是在儲存和搜尋嵌入方面,並討論它們與傳統關聯式資料庫的區別。
討論模型評估的重要性,並詳細介紹幾種常用的評估指標(例如,分類指標、BLEU、METEOR、ROUGE),解釋它們各自衡量的是模型的哪方面效能。

詞彙表 (Glossary of Key Terms)

回歸 (Regression): 尋找函數將標記資料集關聯至連續變數的過程。
分類 (Classification): 尋找函數將標記資料集劃分為類別或類別的過程。
函式庫 (Library): 一組程式碼,提供特定功能供您在自己的程式碼中使用。
框架 (Framework): 提供一個結構或骨架,您可以在其上建構應用程式;通常包含多個函式庫。
演算法 (Algorithm): 一組數學或電腦指令,用於執行特定任務。
函數 (Function): 一種將演算法分組以計算結果的方法。
機器學習模型 (Machine Learning Model): 一個函數,接受資料輸入,執行機器學習任務,並輸出結果。
超參數 (Hyperparameter): 在訓練模型之前設定的參數,用於控制學習過程。
K-Nearest Neighbors (KNN): 一種監督式分類演算法,根據最近鄰居進行分類。
Transformer 架構 (Transformer Architecture): 用於處理序列資料的深度學習架構,特別是 NLP。
編碼器 (Encoder): Transformer 架構的一部分,處理輸入序列。
解碼器 (Decoder): Transformer 架構的一部分,根據編碼器的輸出生成輸出序列。
多頭注意力機制 (Multi-Head Attention): Transformer 架構中的一種機制,允許模型同時關注輸入序列的不同部分。
位置編碼 (Positional Encoding): Transformer 架構中的一種技術,將詞元在序列中的位置資訊添加到嵌入中。
分詞 (Tokenization): 將資料輸入(通常是文字)分解成更小的部分(詞元)的過程。
詞元 (Token): 文字或其他資料的最小單位,用於模型處理。
詞彙表 (Vocabulary): 模型在訓練期間學習到的唯一詞元集合。
向量 (Vector): 一個具有長度和方向的數值表示,通常在多維空間中。
嵌入 (Embeddings): 資料(例如文字或圖像)的數值表示,表示為向量。
向量資料庫 (Vector Database): 專門用於儲存、索引和搜尋向量的資料庫。
檢索增強生成 (Retrieval Augmented Generation, RAG): 一種 AI 流程,從外部資料源檢索資料並將其納入語言模型上下文以產生更明智的回應。
Amazon Bedrock Knowledge Base: AWS 中的一項功能,允許設定 RAG 工作流程以連接到向量資料庫。
Amazon RDS: AWS 中的一項受管服務,用於設定、操作和擴展關聯式資料庫。
PGVector: PostgreSQL 的一個擴充功能,使其能夠儲存和查詢向量。
Amazon DocumentDB: AWS 中的一項受管 MongoDB 相容資料庫服務,支援向量搜尋。
Amazon Neptune: AWS 中的一項受管圖形資料庫服務。
圖形資料庫 (Graph Database): 一種類型的資料庫,使用圖形結構(節點、邊和屬性)來表示和儲存資料。
圖形知識圖譜 (Graph Knowledge Base): 利用圖形資料庫儲存和管理結構化知識。
Amazon Athena: AWS 中的一項互動式查詢服務,無需伺服器即可分析 Amazon S3 中的資料。
AWS Glue Data Catalog: AWS 中的一項完全受管的元資料儲存庫服務。
資料定義語言 (DDL): SQL 的一個子集,用於定義資料庫模式 (schema)(CREATE, ALTER, DROP)。
資料操作語言 (DML): SQL 的一個子集,用於操作資料集(INSERT, UPDATE, DELETE)。
資料查詢語言 (DQL): SQL 的一個子集,用於選擇資料集(SELECT)。
序列化/反序列化 (SerDe): 用於解析不同格式(如 CSV、JSON、Parquet、ORC)的資料的函式庫。
AWS Glue: 一項無伺服器資料整合服務。
AWS Glue Crawler: 一個工具,用於掃描資料源以確定模式並創建 Glue 表。
AWS Glue Jobs: 用於執行 ETL (Extract, Transform, Load) 工作負載。
資料處理單位 (DPU): AWS Glue 中用於計費的單位。
AWS Glue Data Quality: 衡量和監控資料品質的功能。
Amazon SageMaker: 一個完全受管的服務,提供建構、訓練和部署機器學習模型所需的所有組成部分。
SageMaker Python SDK: 一個 Python 函式庫,用於在 SageMaker 上訓練和部署 ML 模型。
估計器 (Estimator): SageMaker SDK 中的一個抽象概念,封裝了在 SageMaker 上進行訓練。
模型 (Model): SageMaker SDK 中的一個抽象概念,封裝了建置的 ML 模型。
預測器 (Predictor): SageMaker SDK 中的一個抽象概念,提供針對 SageMaker 端點的實時推論和轉換。
SageMaker JumpStart: 一個機器學習中心,用於尋找、一鍵式部署和微調預訓練模型。
SageMaker Studio Lab: 一個免費的機器學習環境,提供 Jupyter 筆記型電腦以及 CPU 和 GPU 運算資源。
SageMaker Clarify: 用於檢測 ML 模型中的偏見和增強可解釋性。
AI 可解釋性 (AI Explainability): 理解為什麼 AI 模型會做出特定決定的過程。
SHAP (SHapley Additive exPlanations): 一種用於解釋機器學習模型輸出的演算法。
Facet: 用於衡量偏見的屬性或特徵。
Bias Metric: 一個數值,表示潛在偏見的程度。
Bias Report: 數據集或模型的一系列偏見指標集合。
模型評估 (Model Evaluation): 衡量機器學習模型效能的過程。
評估指標 (Evaluation Metrics): 用於量化模型效能的度量標準。
混淆矩陣 (Confusion Matrix): 用於視覺化模型預測與真實標籤的表格。
True Positive (TP): 模型正確預測為正例。
True Negative (TN): 模型正確預測為負例。
False Positive (FP): 模型錯誤預測為正例。
False Negative (FN): 模型錯誤預測為負例。
BLEU: 一種用於機器翻譯評估的精度指標。
METEOR: 一種基於精度的機器翻譯評估指標,克服了 BLEU 的缺陷。
ROUGE: 一種用於摘要任務的評估指標,衡量召回率。
Amazon Bedrock Model Evaluation: AWS 中的一項功能,提供自動和手動模式來評估 LLM 效能。
Guardrails: AWS Bedrock 中的一項安全功能,用於實施策略以過濾和拒絕不適當或不需要的 LLM 請求和回應。
Model Invocation Logging: 將 Amazon Bedrock 模型調用資料發送到 CloudWatch Logs 的功能。
Amazon Personalize: 一項機器學習服務,用於為客戶建構應用程式內的推薦。
Domain Recommenders: 針對特定使用案例優化的 Amazon Personalize 推薦器。
Amazon CodeWhisperer: AWS 中的一項 AI 程式設計助理服務,提供即時程式碼建議。
Amazon CodeGuru: AWS 中的一項開發人員工具,用於自動程式碼審查和應用程式性能分析。
Code Reviewer: Amazon CodeGuru 的一部分,連接到程式碼儲存庫以提供建議。
Profiler: Amazon CodeGuru 的一部分,查找程式碼中的低效率。
Amazon Kendra: 一項由機器學習驅動的企業搜尋服務。
索引 (Index): Amazon Kendra 組織和索引資料以實現快速、準確的搜尋。
資料來源連接器 (Data Source Connector): Amazon Kendra 用於連接到不同資料來源的內建連接器。
Amazon Polly: 一項將文字轉換為逼真語音的服務。
SSML (Speech Synthesis Markup Language): 一種基於 XML 的標記語言,用於控制語音合成的各個方面。
Lexicons: Amazon Polly 中用於指定特定單詞或短語發音的文件。
Speech Marks: Amazon Polly 中提供語音相關額外資訊的元資料標記。

AWS Certified AI Practitioner (AIF-C01) study plan

AWS Certified AI Practitioner (AIF-C01) 學習指南

這是一份我用來學習https://www.youtube.com/watch?v=WZeZZ8_W-M4的學習指南

Introduction

  • AWS Certified AI Practitioner (AIF-C01) 是一項 AI 認證。
  • 此認證旨在教授 AI 雲端工作負載的基礎知識
  • 涵蓋 AWS 在傳統 ML 管線託管式 AI 服務以及 GenAI 和大型語言模型 (LLM) 方面的服務。
  • 此認證更側重於協助 C 級主管和決策者了解並採用 AWS 生態系統用於 AI/ML。
  • 然而,課程內容會包含許多開發人員實務內容。
  • 考慮此認證的對象包括:AI 工程師、資料科學家,或需要在開發工作中使用 AI 相關內容的開發人員。
  • AI 工程師是指使用託管式 AI 服務建立 AI 解決方案、建構 ML 管線,或在某種程度上與資料科學家合作的人。
  • 如果您希望架構 ML 或 GenAI 的商業使用案例,您會需要此認證。
  • 考試方式可在現場線上進行,透過 Pearson VUE 平台進行監考。
  • 考試包含 65 題,其中 50 題計分15 題不計分
  • 通過分數為 700 分 (總分 1000 分)。
  • 採用量表計分 (scaled scoring),約為 70%。
  • 考試題型包括多重選擇多重回應排序配對以及案例研究。排序、配對和案例研究是新增的題型。
  • 建議在準備此認證之前,具備 AWS Cloud Practitioner 認證。
  • 不需要具備開發程式碼、ML 演算法、實作資料工程或特徵技術、設定超參數、建構/部署 AI 管線、進行數學或統計計算等能力。但來源建議進行實務操作以加強理解。

AI and ML Fundamentals

  • 人工智慧 (AI):模擬人類行為的機器。這是非常廣泛的術語。
  • 機器學習 (ML):無需明確程式設計就能在特定任務上表現更好的機器。需要編寫 ML 模型程式碼,但一旦模型建立,它就能利用複雜演算法完成任務。可以將其視為執行計算的特殊演算法。
  • AI 與 GenAI 的區別在於:
    • AI 側重於理解和決策。
    • GenAI 側重於創建新的和原始的輸出。GenAI 也能做到前者的能力,但額外具備生成能力。
    • 在資料處理方面,AI 分析現有資料並基於此進行決策。GenAI 使用現有資料來生成資料和未曾見過的輸出。
    • 在應用方面,AI 通常更具廣泛適用性。GenAI 非常側重於創造性、創新性的合成內容生成。
  • 考試包含五個領域 (domain),每個領域有不同的權重:
    1. 人工智慧與機器學習的基礎 (Fundamentals of AI and ML)
    2. 生成式人工智慧的基礎 (Fundamentals of Gen AI)
    3. 基礎模型應用 (Applications of Foundation/Foundational Models)
    4. 負責任人工智慧指南 (Guidelines of Responsible AI)
    5. AI 解決方案的安全性、合規性與治理 (Security Compliance Governance AI Solutions)
  • 來源特別提到 GenAI 內容佔比很大。

Data

  • 資料標記 (Data Labeling):識別原始資料 (圖像、文字檔、影片等) 並添加一個或多個有意義和資訊豐富的標籤以提供上下文,使機器學習模型能夠從中學習的過程。
  • 對於監督式機器學習 (supervised machine learning),標記是產生訓練資料的先決條件。每筆資料通常會由人類標記。Amazon Recognition 中識別邊界框或分類圖像就是一個監督式學習的例子。
  • 對於非監督式機器學習 (unsupervised machine learning),標籤將由機器生成,可能不是人類可讀的。
  • 基本事實 (Ground Truth):一個標記正確的資料集,用作訓練和評估給定模型的客觀標準。訓練模型的準確性取決於基本事實的準確性。因此,基本事實資料對於成功很重要。
  • 資料整理 (Data Wrangling):將資料從一種原始形式轉換、映射到另一種格式的過程,目的是使其更適合各種下游用途,例如分析。也稱為資料清洗 (data munging)。
  • 資料整理有六個核心步驟:
    1. 發現 (Discovery):了解您的資料,並在後續步驟中記住特定領域的細節。
    2. 建構 (Structuring):將內容組織成更容易在最終結果中工作的結構。
    3. 清理 (Cleaning):刪除異常值、更改空值、刪除重複項、刪除特殊字元等。
    4. 轉換 (Transforming):根據您的特定需求更改或組合資料,例如將數據類型轉換為數值。
    5. 豐富 (Enriching):添加額外的資料或資訊以提高資料集的價值。
    6. 驗證 (Validating):確保資料在轉換後是準確和一致的。
  • 探索性資料分析 (Exploratory Data Analysis, EDA):分析和調查資料集,用於 ML 用例或一般資料用例。可以使用 SageMaker notebook 進行,它預裝了 Python 資料工具 (例如 pandas)。SageMaker Studio Labs 也提供 Jupyter notebooks,並且提供免費的 CPU 和 GPU。Amazon Athena 允許您對 S3 儲存桶中的半結構化資料 (例如 CSV, JSON, Parquet) 使用 SQL 進行分析。

Gen AI Primer

  • 生成式人工智慧 (Generative AI, GenAI) 側重於創建新的和原始的輸出
  • 這與 AI 的側重於理解和決策不同。
  • GenAI 可以處理多種模態 (modality) 的資料,包括文字、圖像、音訊、分子等。
  • 例如,GenAI 可以透過基因組資料進行藥物發現。
  • 許多人將 GenAI 與大型語言模型 (LLMs) 聯繫起來。
  • LLMs 生成類似人類的文本,是 GenAI 的一個子集。
  • 由於 LLMs 是目前最受歡迎和最發達的 GenAI 形式,它們常被混同於整個 GenAI。
  • LLMs 通常處理文本模態,但也可以是多模態的,即可以跨多種模態工作。

Bedrock

  • Amazon Bedrock 是一種建立生成式 AI 應用程式的方式。它允許您在初期無需編寫程式碼即可進行操作。
  • 它提供了一個低程式碼/無程式碼的經驗來創建 GenAI 應用程式。
  • Bedrock 整合了多個第三方和 Amazon 開發的基礎模型 (foundation models)
  • 基礎模型是經過大量資料訓練的通用模型。它們是預訓練 (pre-trained) 的,可以針對特定任務進行微調 (fine-tuned)
  • Bedrock 的主要組成部分包括:
*   **模型目錄 (Model Catalog)**:允許您選擇要使用的模型進行推論或預測。
*   **自訂模型 (Custom Models)**:可以透過**微調 (fine-tuning)** 或**持續預訓練 (continuous pre-training)** 來創建自訂模型。
    *   **持續預訓練**使用**未標記的資料**,提高模型的**一般知識**。
    *   **微調**使用**標記的資料**,使模型能夠執行**非常特定的任務**。
    *   當您部署自訂模型時,必須使用**預留吞吐量 (provisioned throughput)**。
*   **遊樂場 (Playgrounds)**:無需編寫程式碼即可使用模型。Bedrock 提供三種遊樂場:
    *   **聊天遊樂場 (Chat Playground)**:與支援聊天補全的 LLM 互動。
    *   **文本補全遊樂場 (Text Completion Playground)**:與 LLM 互動以預測下一個文本。在聊天補全出現之前,只有文本補全。對於單詞回應或文本到文本補全很有用,例如分類或歸類。
    *   **圖像遊樂場 (Images Playground)**:與生成圖像的 LLM 工作。
*   **提示管理 (Prompt Management)**:儲存提示模板 (prompt templates),有利於測試針對不同變數的提示。
*   **知識庫 (Knowledge Base)**:基本上是 **RAG (Retrieval Augmented Generation)** + 資料儲存 (例如 Amazon OpenSearch Service 或其他)。可以從多種來源攝取內容 (結構化和非結構化資料),並透過 AI 能力豐富內容。支援多種檔案類型 (text, markdown, HTML, docx, CSV, Excel, PDF 等),但單個檔案不能大於 50MB (推測為 MB)。要解析 PDF 需要開啟進階解析 (Advanced parsing)。需要將資料嵌入 (embedding) 到向量儲存 (vector store) 中。支援多種嵌入模型 (例如 Titan text embeddings, Cohere embed)。
*   **代理 (Agents)**:提供代理工作流程 (agentic workflows)。讓 LLM 更方便地連接知識庫、使用工具等。代理可以定義函式 (稱為工具) 來執行程式碼,例如呼叫 Lambda 函式。
*   **Guardrails**:預過濾器和後過濾器,用於控制、修正問題或阻止不喜歡的內容。也與負責任 AI 相關。
*   **水印偵測 (Watermark detection)**。
*   **推論 (Inference)**:支援批次推論 (batch) 和預留服務 (provisioned)。
*   **評估 (Eval assessments)**:用於評估模型。
*   Bedrock 可以與 **LangChain** 和 **LlamaIndex** 等**開源軟體**整合。這些軟體可以作為許多不同 LLM 模型的**適配器 (adapter)**。雖然 Bedrock 本身提供了許多模型的訪問權限,但 LangChain 和 LlamaIndex 的生態系統在某些方面更豐富。

Datastores for GenAI

  • 將向量化的嵌入儲存在向量儲存 (vector store) 中對於 GenAI (特別是 LLMs) 很重要。
  • Amazon OpenSearch Service 可以用作向量儲存。它基於 Apache Lucene,提供多種搜尋方法,包括向量相似性搜尋、K 近鄰 (K-Nearest Neighbor, KNN)、語義搜尋 (semantic search)、混合搜尋 (hybrid search)、多模態搜尋等。這使其成為處理 LLM 向量數據的有力選擇。
  • Pinecone 是一種第三方向量資料庫服務,可以與 Amazon Bedrock 整合。您可以在 Bedrock 的知識庫設置中選擇 Pinecone 作為向量資料庫。Pinecone 允許您建立索引來儲存向量,並指定維度 (dimension) 和度量 (metric) (例如 cosine)。它可以在特定的 AWS 區域中配置。
  • PGVector 是 PostgreSQL 資料庫的一個擴充功能,可以讓 PostgreSQL 儲存向量資料。您可以建立包含 vector 資料類型欄位的表格。它需要指定向量的維度。

PartyRock

  • Amazon PartyRock 是一個無程式碼開發環境,用於快速建構低級別的 Web 應用程式。
  • 可以透過 partyrock.aws 存取。
  • PartyRock 由多個 LLM 提供支援。
  • PartyRock 是免費使用的。
  • 它具有多個專門的代理 (specialized agents),每個代理可以有自己的框 (稱為小部件 widgets),執行特定的任務,並且可以依賴其他代理的輸出。
  • 應用程式可以透過連結輕鬆分享,或在 PartyRock 中被發現。
  • 可以使用 Google, Apple 或 Amazon 帳戶登入。
  • PartyRock 對於原型設計代理探索 LLM 用途的實際應用很有用。
  • 然而,來源認為它非常有限,而且有時不如直接使用 LLM 和框架 (如 LangChain 或 LlamaIndex) 簡單。

SageMaker

  • Amazon SageMaker 是一個統一的機器學習平台,用於建構端到端的 ML 解決方案。
  • SageMaker ML 管線/工作流程階段 (AWS 文檔中定義的 ML 工作流程變體):
    1. Fetch (獲取): 從儲存庫或公共資料集獲取資料。
    2. Clean (清理): 清理資料,例如正規化不一致的值。
    3. Prepare (準備): 轉換資料,例如組合屬性創建新屬性。
    4. Train (訓練): 使用演算法訓練模型。SageMaker 提供內建演算法或可從 Hugging Face 獲取。
    5. Evaluate (評估): 確定模型的準確性。SageMaker 提供內建功能來評估模型。
    6. Deploy (部署): 將模型部署到伺服器上運行。SageMaker 提供模型託管服務,使其易於從開發轉移到生產。
    7. Evaluate (持續評估/監控): 持續監控模型,收集基本事實並評估模型以識別漂移 (drift)。模型漂移是指模型預測的準確性隨著時間的推移而下降,通常是由於資料或輸入/輸出變數的變化引起。
  • SageMaker 服務與 ML 管線階段的關聯:
    • Data Readiness (資料準備):
      • 資料收集: Amazon S3 (儲存資料), AWS Glue Data Catalog (儲存中繼資料/模式), AWS Data Lake (從多個來源導入資料)。通常一起使用。
      • 探索性資料分析 (EDA): SageMaker notebook (預裝 Python 資料工具), SageMaker Studio Labs (免費 CPU/GPU 的 Jupyter notebooks), Amazon Athena (對 S3 中的半結構化資料使用 SQL)。
      • 資料預處理/整理: SageMaker Data Wrangler (用於 ML 管線) 和 AWS Glue DataBrew (更通用的工具)。這兩者都是視覺化工具,無需編寫程式碼。Glue DataBrew 提供 250 多種預設轉換。
    • Feature Engineering (特徵工程): SageMaker Feature Store。用於儲存、管理和共用 ML 特徵的儲存庫。支援線上儲存 (online store) (低延遲、即時推論) 和離線儲存 (offline store) (訓練和歷史記錄)。資料可以使用 PutRecord API 異步寫入線上儲存,並緩衝後寫入離線儲存。可以透過 GetRecord, PutRecord, DeleteRecord API 與 Feature Store Runtime 互動。Data Wrangler 可以將特徵輸出到 Feature Store。
    • Training and Fine-tuning (訓練和微調):
      • 使用 SageMaker Estimators 封裝訓練作業。
      • SageMaker JumpStart 是一種快速開始使用模型的方法,提供許多來自 Hugging Face 的模型。它提供筆記本,可以快速開始運行模型。
    • Model Serving (模型服務):
      • SageMaker Endpoints 和區域特定端點,接受 HTTPS 請求。用於託管在 SageMaker 中的模型的推論請求。
      • Batch Transform (批次轉換): 用於對大量資料進行離線推論。
      • 可以使用單一模型TensorFlow Serving 模型推論管線 (inference pipeline) 應用前處理和後處理步驟。推論管線允許 Model containers 按順序運行。
    • Model Monitoring (模型監控): SageMaker Model Monitor。監控生產中 ML 模型的品質。可以對即時端點或定期運行的批次轉換作業進行持續監控。用於監測模型漂移。
    • Model Management (模型管理): SageMaker Model Registry。允許對 ML 模型進行治理、編目、版本控制和部署。可以用於編目模型以進行生產、管理模型版本、關聯中繼資料 (例如訓練指標)、管理模型的核准狀態以及使用 CI/CD 自動化部署。模型群組 (model groups) 是模型的邏輯分組,包含多個版本。
    • Orchestration (工作流程編排): SageMaker Pipelines。一個用於建構 ML 管線並直接整合到 SageMaker 中的工具。它提供了與 SageMaker 整合、Studio 整合、資料血緣追蹤 (data lineage tracking) 和步驟重用 (step reuse) 等優勢。管線定義是一系列相互連接的步驟,以 JSON 格式定義,並使用有向無環圖 (Directed Acyclic Graph, DAG) 編碼。
    • Explainable AI (可解釋性 AI): SageMaker Clarify。在資料準備後、模型訓練後以及部署的模型中檢測潛在的偏見 (bias)。它透過檢查屬性並提供偏見指標來量化各種公平性標準。可以用於識別資料中的不平衡以及檢查和監控訓練模型的偏見。Clarify 使用的術語包括 feature, label (observed/predicted), sample, dataset, bias。
    • Data Labeling (資料標記): SageMaker Ground Truth。一個完全託管的資料標記服務,便於建構高準確度的 ML 訓練資料集。它涉及使用工作團隊標記資料。需要 input manifest file (基本上是 JSON Lines 檔案) 儲存在 S3 儲存桶中,並符合多項要求 (CORS, 格式, 地區, 編碼, 大小等)。支援圖像、文字、影片、點雲等資料格式。
    • Human Review (人工審查): Amazon Augmented AI (A2I)。允許對機器學習系統進行人工審查以保證精確度。與 Ground Truth 的區別在於,Ground Truth 用於標記資料,而 A2I 用於人類審查模型預測的準確性
  • SageMaker Python SDK:用於在 SageMaker 上訓練和部署 ML 模型的程式庫。與 boto3 不同,它更專注於 SageMaker 和特定的 ML 工具整合。提供了高級抽象,如 estimators (訓練封裝)、models (封裝模型)、predictors (提供即時推論)、sessions (提供對 SageMaker 環境的訪問)。
  • SageMaker Processing:允許在完全託管的基礎設施上輕鬆運行預處理、後處理和模型評估工作負載。有助於特徵工程、資料驗證、模型評估、模型解釋等。可以使用單一 SageMaker 內建映像、自訂 Docker 映像或處理容器映像。可以與 scikit-learn 和 Apache Spark 一起使用。SageMaker Processing 旨在與 SageMaker Pipelines 一起使用。

Evaluations

  • 使用性能評估指標 (performance evaluation metrics) 評估不同的 ML 模型。
  • 使用的指標類型取決於您執行的任務類型。
  • 常見的指標包括:
    • 分類 (Classification): 準確度 (accuracy), 精準度 (precision), 召回率 (recall), F1 分數 (F1 score), ROC AUC。
    • 迴歸 (Regression): MSE, RMSE, MAE。
    • 排名 (Ranking): NDCG, Mean Average Precision (MAP)。
    • 統計指標 (Statistical metrics): 相關性 (correlation)。
    • 電腦視覺 (Computer Vision): IoU, mAP。
    • 自然語言處理 (NLP): Perplexity, BLEU, METEOR。
  • SageMaker Clarify 提供偏見指標 (bias metrics) 來量化各種公平性標準。
  • SageMaker Clarify 也提供許多預訓練偏見指標 (pre-training bias metrics)

AI Dev Tools

  • LangChainLlamaIndex開源軟體 (open-source software),可以與 Amazon Bedrock 和許多其他服務整合。
  • 它們充當許多不同類型 LLM 模型的適配器 (adapter)
  • LangChain 和 LlamaIndex 生態系統比 Amazon Bedrock 的模型訪問生態系統更豐富,尤其對於更多功能。
  • 這些工具可以幫助編排與 LLMs 的互動、連接資料來源等。它們與 Amazon Bedrock 的 Agents 和 Prompt Flow (Azure 也有同名服務) 等服務競爭。來源認為如果需要建構真實世界的應用程式,使用 LangChain 或 LlamaIndex 會更好。

AWS Managed ML

  • Amazon Comprehend: 一種自然語言處理器服務,擅長分析文本。可以用於即時分析或批次處理。
  • Amazon Translate: 一種神經機器翻譯服務,提供更準確自然的文本翻譯。有即時和異步批次處理模式。使用簡單,提供源文本、源語言和目標語言即可。
  • Amazon Poly: 一種文本到語音 (text-to-speech) 服務。可以將文本轉換為語音。支援多種聲音,並可以使用 SSML (Speech Synthesis Markup Language) 控制語音的方面 (例如停頓、強調、發音、語速、音調等)。可以上傳語音詞典文件 (lexicon file) 來指定特定單詞的發音。
  • Amazon Kendra: 一種企業機器學習搜尋引擎服務。使用自然語言語義理解來建議問題答案,而不是簡單的關鍵字匹配。可以與 Amazon Lex 聊天機器人整合。組件包括 index, data source, data source template, schemas, document edition API。支援多種資料來源連接器 (S3, SharePoint, Box, PostgreSQL 等)。它主要處理文件 (documents) (如 PDF, Word 文檔) 並返回文件中的相關部分。有 Enterprise 和 Developer 兩個版本。
  • Amazon Lex: 一種用於建構對話介面 (conversational interfaces) 的服務,例如聊天機器人。用於自動化任務。核心組件包括 bot, version, alias, language。定義意圖 (intents) (代表您要執行的操作)。使用示例語句 (sample utterances) 提供使用者可能表達意圖的文本示例。使用詞槽 (slots) (intent 所需的使用者輸入) 來收集資訊。詞槽需要指定詞槽類型 (slot type)
  • Amazon Personalize: 一種即時推薦服務。使用與 Amazon 平台本身相同的技術。建立推薦的流程涉及創建 data set group,然後創建 data sets (user interaction data [必需], user data [可選], item data [可選])。資料集通常是 CSV 檔案,需要 JSON schema 映射,並儲存在 S3 中。需要創建 solution 和 recipe (預定義的 AWS 演算法)。支持事件追蹤 (event tracking) 和過濾器 (filters)。最後,創建 campaign 以建立生產端點獲取推薦。用戶項目互動資料需要至少包含 user ID, item ID 和 timestamp (Unix timestamp 格式)。
  • Amazon Rekognition: 一種電腦視覺服務。來源中作為監督式機器學習需要標記資料的例子提及,用於識別圖像中的邊界框或對圖像進行分類。

GenAI Security

  • 來源提到了一份由 AWS 制定的生成式 AI 安全範圍矩陣 (Generative AI Security Scoping Matrix)
  • 此矩陣有助於確定在使用或建構 GenAI 解決方案時應考慮的安全範圍。
  • 矩陣定義了不同的範疇 (Scope):
    • Scope 1:消費者應用程式 (Consumer app):您的企業消費公共的第三方 GenAI 服務 (無論是免費或付費)。您不擁有或看到訓練資料或模型,不能修改或擴充它,直接調用 API,並根據條款使用應用程式。
    • Scope 2:企業應用程式 (Enterprise app):您的企業使用第三方企業應用程式來生成 AI。這與 Scope 1 類似,只是針對企業級應用。
    • Building GenAI (建構 GenAI):此範疇涉及企業建構自己的應用程式
      • 使用現有第三方 GenAI 基礎模型 (直接整合)。
      • 微調 (fine-tuning) 這些模型。
      • 自行訓練模型 (self-training models)
  • 來源指出,此矩陣的實施可能尚未強制執行,但已包含在考試指南中。

Athena

  • Amazon Athena 是一個交互式查詢服務
  • 它使您能夠使用標準 SQL 直接分析 Amazon S3 中的資料。
  • Athena 適用於結構化半結構化資料,例如 CSV、JSON、Parquet 和 Avro 檔案。
  • 您不需要加載資料到資料庫中。
  • Athena 可以直接查詢AWS Glue Data Catalog 中的資料。
  • 它通常與 AWS Glue 緊密整合。
  • 在使用 Athena 查詢 S3 中的資料時,您需要定義表格並指定序列化/反序列化器 (SerDe),以決定如何解析 S3 檔案中的資料。例如,可以使用 Hive 的 SerDe 並使用正規表達式解析檔案。
  • Athena 是無伺服器 (serverless) 的。

AWS Glue

  • AWS Glue 是一個無伺服器資料整合服務
  • 它使分析使用者能夠發現、準備、移動和整合來自多個來源的資料
  • 主要用例包括分析機器學習應用程式開發
  • 核心功能包括:
    • 資料發現 (Data Discovery) 和連接到 70 多種不同的資料來源。
    • 將您的資料目錄集中管理到AWS Glue Data Catalog
    • 現代 ETL (Extract, Transform, Load) 或 ELT 流程。
    • 清理和轉換資料
    • 集中式目錄 (Centralized Cataloging)
  • AWS Glue Data Catalog 是一個集中式的元資料儲存庫。它儲存有關資料的模式和結構資訊,而不是實際資料。它與 Amazon Athena 緊密整合,允許您查詢編目資料。AWS Lake Formation 也使用相同的 Data Catalog。
  • AWS Glue Studio 允許您視覺化地建構 ETL 管線。也稱為視覺化 ETL (Visual ETL)
    • 管線由節點 (nodes) 組成。
    • 節點類型包括 Sources (資料來源), Transforms (對資料進行的操作), Targets (資料目的地)。
    • 您可以查看和編輯自動產生的Python 程式碼
    • 支援版本控制,可以連接到 AWS CodeCommit, GitHub, GitLab 或 Bitbucket。
  • AWS Glue DataBrew 是 AWS Glue 的一個組成部分 (或相關服務),但來源將其描述為獨立的視覺化資料準備工具。它允許使用者在不寫程式碼的情況下清理和正規化資料。它提供了超過 250 個現成的轉換。它是無伺服器的,按使用量付費。

OpenSearch

  • Amazon OpenSearch Service 基於 Apache Lucene 搜尋庫
  • 它提供了一種攝取、索引、搜尋和聚合資料的方式。
  • 除了傳統的全文搜尋,它還可以被用作向量儲存 (vector store)
  • 它支援多種搜尋方式:
    • 向量相似性搜尋 (Vector similarity search)
    • K 近鄰 (K nearest neighbor, KNN)
    • 語義搜尋 (Semantic search)
    • 混合搜尋 (Hybrid search)
    • 多模態搜尋 (Multimodal search)
  • 此外,它還支援異常偵測 (anomaly detection) 等功能。
  • 由於其多樣化的查找資訊的能力,它是處理 GenAI (特別是儲存向量化嵌入的 LLM) 時非常值得考慮的服務。
  • 在 Bedrock 知識庫中,Amazon OpenSearch Serverless (無伺服器版本) 可以用作向量儲存。

Lake Formation

  • AWS Lake Formation 是一個資料湖 (data lake) 服務。
  • 它旨在對 Amazon S3 上的資料湖進行集中治理、安全和全球共享
  • 資料湖旨在儲存海量資料,通常使用物件或檔案作為儲存介質。它是一個集中地,從各種來源提取資料,進行轉換和處理,然後使資料可用於程式、API 或發布。資料湖通常會將資料發布到元資料目錄 (meta catalog)
  • Lake Formation 服務管理精細的存取控制 (fine-grain access controls)
  • 它管理 AWS Glue Data Catalog 中的中繼資料。AWS Lake Formation 和 AWS Glue 使用相同的 Data Catalog
  • Lake Formation 提供自己的權限模型 (permissions model),透過簡單的Grant (授予)Revoke (撤銷) 機制來擴充 IAM 權限模型
  • 它允許內部、外部和跨多個帳戶共享資料。
  • 它提供在欄 (column)、行 (row) 和單元格 (cell) 級別強制執行的精細控制 (granular controls)
  • 它與多個 AWS 服務整合,包括 Athena, QuickSight, Redshift Spectrum, EMR, Glue。

希望這份學習指南對您有所幫助!

ISC2 CC Notes 5 Security Operations

Domain 5 涵蓋了我們日常工作中確保安全的各項措施。這是關於組態、修補程式、變更管理,密碼學和雜湊,以及對密碼學的攻擊,資料處理、分類、標記、保留、銷毀/處置,管理(指導性)控制,安全意識訓練和社交工程。

組態管理 (Configuration Management)

組態管理涉及建立和維護系統和應用程式的標準化配置。這確保了環境的一致性。

修補程式管理 (Patch Management)

修補程式管理是用來解決系統和應用程式中的已知漏洞。更新修補程式是修正這些弱點的控制措施。

變更管理 (Change Management)

變更管理是組織處理環境變更的正式流程。如果做得正確,變更管理應該具備完整的文件記錄、對變更的理解,並將變更傳達給相關方。變更審查委員會應由 IT 和組織內的其他營運部門組成。

變更管理的步驟包括:

  • Request (請求)
  • Review (審查)
  • Approve or Reject (批准或拒絕)
  • Test (測試)
  • Implement (實施)
  • Document (記錄)
    這通常縮寫為 RRA/RTID

密碼學 (Cryptography)

密碼學是保護通訊安全的科學。密碼學幫助我們:

  • 保護我們的秘密 (機密性) - 確保未經授權的人員無法存取資料。大多數人認為密碼學就只是做這件事。
  • 保持資料不被篡改 (完整性)
  • 提供驗證主體身份的方法 (身份驗證),它還可以提供不可否認性。

歷史密碼 (Historical Ciphers) 包括:

  • 斯巴達密碼棒 (Spartan Scytale):訊息通過將羊皮紙纏繞在木棍上進行解密。
  • 凱撒密碼 (Caesar Cipher):通過將字母表中的字母移動一定數量的位置進行替換。
  • 書籍密碼 (Book Cipher):使用一本書作為金鑰,並使用座標(例如,頁碼、句子、單詞)進行加密。
  • 連續金鑰密碼 (Running-Key Cipher):使用已知文本和短語進行加密。

加密類型 (Encryption Types)

  • 非對稱加密 (Asymmetric / Public Key Encryption):使用一對公鑰和私鑰。
    • 優點:不需要預共享金鑰;可擴展。
    • 缺點:速度較慢;每位元的強度較弱。
  • 對稱加密 (Symmetric):使用相同的金鑰進行加密和解密。
    • 優點:速度較快;每位元的強度較強。
    • 缺點:需要預共享金鑰;用戶多時複雜。
  • 混合加密 (Hybrid):結合非對稱加密和對稱加密。使用非對稱加密來共享對稱工作階段金鑰,然後使用對稱加密進行資料傳輸。

雜湊 (Hashing)

雜湊函數從可變長度的輸入產生固定長度的雜湊值。即使資料發生微小的變化,也會產生完全不同的雜湊值。雜湊用於確保資料的完整性。具有 “HA” 或 “MD” 字樣的名稱通常表示雜湊算法。例如,訊息摘要也稱為雜湊。

對密碼學的攻擊 (Attacks on Cryptography)

對密碼學的攻擊可能包括:

  • 竊取金鑰 (Steal the Key):由於現代加密很難破解,攻擊者發現從系統或金鑰儲存庫中恢復私鑰更容易。執法部門有時會通過搜查令恢復金鑰。
  • 暴力破解 (Brute Force):嘗試所有可能的金鑰來解密資料。除了單次墊以外,暴力破解對基於金鑰的密碼是有效的。
  • 金鑰延展 (Key Stretching):延遲密碼驗證以阻止暴力破解嘗試。
  • 中間人攻擊 (Man-in-the-Middle Attack - MITM):攻擊者截取並可能篡改兩方之間的通訊。這需要存取通訊管道。
  • 側通道攻擊 (Side Channel Attacks):利用物理數據(例如 CPU 週期、功耗)來破解加密。
  • 社交工程 (Social Engineering):這比破解金鑰容易得多,它是說服金鑰持有者將其交給冒充「幫助台」的人。社交工程利用說服技巧來獲取敏感資訊。這部分更詳細的內容將在後面涵蓋。

資料處理、分類、標記、保留、銷毀/處置 (Data Handling, Classification, Labeling, Retention, Destruction/Disposal)

敏感資訊管理 (Sensitive Information Management) 包括:

  • 資料處理 (Data Handling):只有信任的個人應該處理資料。應該制定關於如何、何處、何時以及為何處理資料的政策,並應建立日誌以顯示這些指標。
  • 資料儲存 (Data Storage):敏感資料應儲存在安全、氣候控制的設施中。最好位於地理位置較遠的地方,以防止單一事件影響多個設施。應避免不安全的做法,例如無人監控的磁帶備份。
  • 資料保留 (Data Retention):僅在必要時或法律要求的情況下保留資料。法規(例如 HIPAA、PCI-DSS)規定了保留期限;必須確保合規。資料保留政策規定了需要保留數據的時間長度,通常由法規或業務需求決定。
  • 資料銷毀 (Data Disposal)
    • 紙質文件銷毀:應使用安全的方法,例如交叉碎紙,以防止重組。
    • 數位資料銷毀
      • 軟性銷毀 (Soft Destruction):包括刪除、格式化和覆寫。刪除文件只是刪除了指標,而資料仍然存在,可以使用資料恢復軟體恢復。格式化也做同樣的事情,但它會在舊文件結構上放置一個新的文件結構,大多數情況下仍然可以恢復。覆寫是通過寫入 0 或隨機字符覆寫資料。這些方法並非萬無一失。
      • 清理 (Sanitization):一個過程,使媒體上的目標資料難以在給定的恢復努力程度下恢復。
      • 清除 (Purge):將敏感資料從系統或設備中移除到即使在實驗室環境中也無法恢復資料的程度。
      • 消磁 (Degaussing):通過暴露在非常強的磁場中來銷毀磁性媒體。這也會很可能破壞媒體的完整性。
      • 物理銷毀 (Physical Destruction):這是比軟性銷毀更安全的方法。包括磁碟壓碎(用於傳統硬碟)、碎紙(用於金屬)、焚燒、粉碎、熔化和酸處理。通常與軟性方法一起使用。對敏感資料執行多種資料銷毀類型(例如消磁和磁碟壓碎/碎紙)是很常見的。

資訊生命週期 (Information Life Cycle) 包括:

  • 資料獲取 (Data Acquisition):資料的建立或複製、索引和儲存。

管理(指導性)控制 (Administrative (Directive) Controls)

管理(指導性)控制是存取控制類別之一。它們包括組織政策和程序、法規以及培訓和意識

管理控制也可以是存取控制的類型之一。它們可以是:

  • 預防性 (Preventative):防止動作發生。
  • 偵測性 (Detective):在發生過程中或之後識別動作。
  • 矯正性 (Corrective):在發生後修復問題。
  • 恢復性 (Recovery):協助事件發生後的恢復。
  • 威懾性 (Deterrent):阻止動作。
  • 補償性 (Compensating):當主要控制措施不切實際時提供替代控制措施。

政策 (Policies) 是強制性的且是高層次的。它們可以包含「修補程式、更新、強加密」等內容,但不會具體到「作業系統、加密類型、供應商技術」。

常見的政策包括:

  • 可接受使用政策 (Acceptable Use Policy - AUP):定義了網路、資料、資源等的可接受使用方式。
  • 自帶設備政策 (Bring Your Own Device - BYOD Policy):關於個人設備在一定參數範圍內使用的指南。
  • 隱私政策 (Privacy Policy):關於收集、使用和管理私人資料的詳細資訊。
  • 密碼政策 (Password Policy):規定了密碼的要求。
    • 記住最後 24 個密碼。
    • 最大密碼有效期:90 天。
    • 最小密碼有效期:2 天(防止用戶循環使用密碼)。
    • 最小密碼長度:8 個字符 (ISC2 CC® 的要求),雖然其他建議可能為 14 個字符。
    • 複雜度要求。
    • 儲存時不使用可逆加密。
  • 資料處理政策 (Data Handling Policy):包括分類、標記、加密、儲存、備份和處置/銷毀資料。

資料的三種狀態 (3 States of Data)

  • 靜態資料 (Data at Rest):儲存的資料。
  • 傳輸中資料 (Data in Motion):正在網路上傳輸的資料。
  • 使用中資料 (Data in Use):正在主動使用的文件/資料,通常無法加密。

訓練與意識 (Training and Awareness)

使用者往往是最大的安全風險

  • 訓練 (Training):為使用者提供技能組合。這很好,但如果他們忽略了知識,就沒有任何作用。
  • 意識 (Awareness):旨在改變使用者的行為。這是我們想要的,我們希望他們改變他們的行為。
    我們希望通過良好的網路衛生習慣建立一種網路安全文化。

社交工程 (Social Engineering)

社交工程是說服金鑰持有者將其交給冒充「幫助台」的人,這比破解加密金鑰容易得多。社交工程是一種利用說服技巧來獲取敏感資訊的密碼學攻擊手段。

社交工程攻擊的技巧可能包括:

  • 緊迫感 (Urgency):讓受害者覺得必須立即行動,否則會發生不好的事情(例如,如果文件不按時填寫,公司將被起訴)。這常與釣魚攻擊結合使用。
  • 熟悉感 (Familiarity):提前了解受害者的一些資訊,然後在交流中提及。這可以顯著提高攻擊成功的機會。人們希望提供幫助,如果他們覺得認識你,他們就更願意提供幫助。這常在語音釣魚和面對面的社交工程中成功應用。

釣魚攻擊 (Phishing, Spear Phishing, and Whale Phishing):「釣魚」在駭客術語中寫成 Phishing。

  • 釣魚 (Phishing):一種社交工程郵件攻擊。這類郵件發送給成千上萬的人,例如「點擊贏取」或「發送信息領取遺產」。即使只有極少數的收件人按照指示操作,攻擊者也能獲得大量受害者。
  • 魚叉式網絡釣魚 (Spear Phishing):有針對性的釣魚攻擊,而不是隨機發送的垃圾郵件,目標是特定個人。這類郵件包含了關於目標的資訊(個人或公司),熟悉度提高了成功率。
  • 捕鯨式網絡釣魚 (Whale Phishing / Whaling):針對組織高層領導的魚叉式網絡釣魚。這可能是一封郵件,聲稱「如果您不填寫附件中的文件(其中包含木馬)並在兩週內發回給我們,您的公司將被起訴」。
  • 語音釣魚 (Vishing / Voice Phishing):通過自動語音系統發起的攻擊,類似於批量垃圾郵件。這些通常是「您的稅款已到期」、「您的帳戶已被鎖定」或「輸入您的個人身份信息以防止此情況」之類的電話。

ISC2 CC Notes 4 Network Security

好的,這是有關您提供的來源中關於 領域 4 (Domain 4) 的詳細資訊。這是一個非常廣泛的領域,涵蓋了網路、系統、雲端、恢復以及一些核心的安全原則。

領域 4:營運安全 (Security Operations)

雖然來源標題標示為 Domain 4,但內容涵蓋了廣泛的營運安全主題,包括網路安全、雲端安全、復原原則、硬體安全和一些通用安全設計原則。

網路基礎與定義 (Network Basics and Definitions)

  • 網路 (Networking):是一組共享資源或資料的電腦集合。
  • 縱深防禦 (Defense-in-depth):用於保護內部網路以及通過網際網路傳輸的資料。
  • 通訊類型 (Communication Types)
    • 單工 (Simplex):單向通訊。
    • 半雙工 (Half-Duplex):一次只能發送或接收。
    • 全雙工 (Full-Duplex):可同時發送和接收。
  • 網路類型 (Network Types)
    • 基頻 (Baseband):單一通道,一次傳輸一個訊號 (例如:乙太網路)。
    • 寬頻 (Broadband):多個通道,可同時傳輸多個訊號。
  • 網路範圍 (Network Scope)
    • 區域網路 (LAN):在有限區域內連接設備。
    • 廣域網路 (WAN):連接地理上分散的 LANs。
    • 網際網路 (Internet):全球互連的 WAN 網路集合。
    • 內部網路 (Intranet):組織私有的網路。
    • 外部網路 (Extranet):連接不同組織內部網路的連線。
  • 交換方式 (Switching Methods)
    • 電路交換 (Circuit Switching):昂貴但始終可用,建立專用通訊通道,保證頻寬。
    • 分組交換 (Packet Switching):資料被分成封包傳輸。

OSI 與 TCP/IP 模型 (The OSI and TCP/IP Model)

  • OSI 模型 (OSI Model):一個具有 7 層抽象的模型。
    • 層級 (從低到高):實體層 (Physical)、資料連結層 (Datalink)、網路層 (Network)、傳輸層 (Transport)、會話層 (Session)、表示層 (Presentation)、應用層 (Application)。
    • 記憶法 (1-7):Please Do Not Throw Sausage Pizza Away。
    • 記憶法 (7-1):All People Seem To Need Data Processing。
    • 協定資料單元 (PDU):每一層的資料單位名稱,從高到低為 Data, Segments, Packets, Frames, Bits。
    • 層級特性:層級越高越智慧但速度越慢。
    • 各層協定與威脅 (Protocols and Threats per Layer)
      • Layer 1 (Physical):硬體、纜線、無線電波、集線器。威脅包括資料洩漏、竊盜、竊聽、干擾。
      • Layer 2 (Data Link):同一網路上的節點間傳輸資料,處理 MAC 位址、錯誤偵測。協定如 ARP, CSMA/CD, CSMA/CA。威脅包括 MAC 欺騙、泛洪。
      • Layer 3 (Network):處理 IP 通訊,連接不同網路。協定如 IP, ICMP, IPSEC。威脅包括死亡之 Ping、IP 修改、DHCP 攻擊。
      • Layer 4 (Transport):提供可靠 (TCP) 或不可靠 (UDP) 的資料傳輸。協定如 TCP, UDP, SSL/TLS (跨越 4-7 層)。威脅如 SYN 泛洪、Fraggle 攻擊。
      • Layer 5 (Session):管理應用程式間的會話。
      • Layer 6 (Presentation):格式化、壓縮、加密資料 (檔案層級)。
      • Layer 7 (Application):與使用者應用程式互動。協定如 HTTP, HTTPS, FTP, SMTP, DNS, DHCP。威脅包括病毒、蠕蟲、應用程式漏洞。
    • 封裝 (Encapsulation):每一層都會添加或移除協定資訊。
  • TCP/IP 模型 (TCP/IP Model):也稱為網際網路協定套件,提供端到端資料通訊。
    • 4 層:網路存取層 (Network access)、網際網路層 (Internet)、傳輸層 (Transport)、應用程式層 (Application)。或 連結層 (Link)、網際網路層 (Internet)、傳輸層 (Transport)、應用程式層 (Application)。
    • 對應 OSI 層級。

IP 位址、埠號與 MAC 位址 / IP 支援協定 (IP Addresses, Port Numbers, and MAC Addresses / IP Support Protocols)

  • MAC 位址 (MAC Addresses):網卡獨特的識別碼。48 位 (MAC-48) 或 64 位 (EUI-64)。前 24 位是製造商識別碼,其餘識別主機。容易被欺騙 (spoofed)
  • IP 位址 (IP Addresses)
    • IPv4:32 位元,約 42 億個位址。無連線,不保證傳輸。
    • IPv6:128 位元,位址空間龐大,包含 IPSec。
    • 公有 IP (Public IPs):可在網際網路路由。
    • 私有 IP (Private IPs):不可路由 (例如:10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)。
  • 埠號 (Ports)
    • 周知埠 (Well-known Ports):0-1023,多用於協定。
    • 註冊埠 (Registered Ports):1024-49151,多用於供應商特定應用程式。
    • 動態、私有或臨時埠 (Dynamic, Private or Ephemeral Ports):49152-65535,任何人皆可使用。
    • 常用埠號:HTTP 80, HTTPS 443, SSH 22, FTP 20/21, SMTP 25, RDP 3389 等。
  • IP 支援協定 (IP Support Protocols)
    • ARP (Address Resolution Protocol):將 IP 位址轉譯為 MAC 位址。容易受到 ARP 投毒攻擊
    • ICMP (Internet Control Message Protocol):用於故障排除 (例如:Ping, Traceroute)。
    • HTTP/HTTPS:HTTP 使用 TCP 埠 80,未加密;HTTPS 使用 TCP 埠 443,已加密。
    • DHCP (Dynamic Host Configuration Protocol):動態分配 IP 位址,使用 UDP 埠 67/68。

纜線 (Cables)

  • 類型:銅纜 (雙絞線 TP) 較便宜,但安全性較低,容易被竊聽、干擾、竊取資料;光纖更安全,不易受竊聽。
  • 安全漏洞電磁干擾 (EMI) 可能破壞資料可用性和完整性;串擾 (Crosstalk) 是訊號從一條纜線洩漏到另一條。
  • 速率單位:Kbps, Mbps, Gbps, Tbps, Pbps。

LAN 拓樸 (LAN Topologies)

  • 常見類型:匯流排 (Bus)、星狀 (Star)、環狀 (Ring)、網狀 (Mesh)。
  • 網狀拓樸 (Mesh Topology):分為部分網狀 (Partial Mesh) 和全網狀 (Full Mesh)。全網狀冗餘度最高,常用於高可用性 (HA) 環境。

Wi-Fi 與其他無線網路 (Wi-Fi and Other Wireless Networks)

  • Wi-Fi (IEEE 802.11):在有限區域內無線連接設備。
  • 安全疑慮:比有線連接更容易被入侵。
  • 威脅
    • 干擾 (Interference):可能破壞完整性和可用性。
    • 惡意雙胞胎 (Evil Twin):建立偽造的熱點 (rogue access point),誘騙使用者連線,竊取資料。
  • 藍牙 (Bluetooth):短距離無線技術 (2.4 GHz),建立個人區域網路 (PAN)。裝置分類 (Class 1/2/3),距離不同。使用 E0 串流加密 (較弱)。漏洞:Bluejacking, Bluesnarfing, Bluebugging。對策:不使用時停用、關閉探索模式、更新韌體。
  • Li-Fi:使用光進行高速資料傳輸,適用於易受 EMI 影響的區域。
  • Zigbee:低功耗、低資料速率的網狀網路,範圍約 10-100 米。
  • 衛星網路 (Satellite):透過衛星連線。
  • 蜂巢式網路 (Cellular Networks):分為不同區域的基地台,提供行動通訊服務 (3G, 4G, 5G)。5G 使用高頻短距離訊號,需要更多基地台且易受實體障礙物阻擋。

VLANs 與路由器 / VPNs, NAC, 第三方連線 (VLANs and Routers / VPNs, NAC, and Third-Party Connectivity)

  • VLAN (Virtual LAN):在 Layer 2 隔離廣播域,將交換器上的特定埠分配到 VLAN。VLAN Trunk 連接交換器以跨越 VLAN。
  • VXLAN (Virtual eXtensible Local Area Network):用於雲端運算,解決 VLAN 數量限制 (4094) 的問題。
  • 路由器 (Routers):Layer 3 裝置,根據 IP 位址和埠轉發流量,連接 LANs 到 WANs,使用路由表。包括靜態路由、預設閘道、動態路由協定 (OSPF, EIGRP, BGP)。
  • VPN (Virtual Private Network):透過專用連線、虛擬通道協定或流量加密建立虛擬點對點連線。
  • NAC (Network Access Control):自動確保系統符合安全政策。
  • 第三方連線 (Third-Party Connectivity):與供應商、合作夥伴的連線。必須進行徹底的風險評估,確保其安全狀態符合組織政策。可以使用 MOUs/MOAs 和 ISAs 作為安全協定。

SDN, SD-WAN, SDX (Software-Defined Networking, SD-WAN, SDX)

  • SDN:透過軟體實現動態網路管理,將控制層與資料層分離。
  • SD-WAN:在 WAN 上建立疊加網路,抽象化傳輸,提供流量管理、敏捷性。
  • SDX:泛指軟體定義一切。

攻擊與攻擊者 (Attacks and Attackers)

  • 攻擊者:可分為外部攻擊者 (Outsiders)內部攻擊者 (Insiders)
  • 惡意軟體 (Malware):惡意程式碼的統稱。
  • 殭屍程式/殭屍網路 (Bots/Botnets):受控於殭屍網路主機 (bot-herders) 的命令與控制 (C&C) 網路,可發送垃圾郵件、竊取資料等。
  • 誘捕系統 (Honeypots):設計成看似合法目標,用於吸引攻擊者以研究漏洞和攻擊策略。
  • 誘捕網路 (Honeynets):誘捕系統的網路,模擬整個伺服器群,最佳實踐是將其與主要網路隔離 (使用 DMZ/防火牆)。從誘捕網路收集的資料由 SIEM/SOAR 系統分析。
  • 防火牆 (Firewalls):在信任的安全內部網路與外部非信任網路 (如網際網路) 之間建立屏障。
    • 類型:封包過濾防火牆 (L1-3)、狀態檢測防火牆 (L1-4)、代理伺服器 (Proxy servers, L7, 特定應用程式閘道)、應用層防火牆 (L7, 理解應用程式和協定,可檢查酬載)。
    • 設計:DMZ (非軍事區),物理或邏輯子網路,用於暴露外部服務給非信任網路。通常使用兩個防火牆構成屏障,也可使用一個防火牆構成三腳 DMZ。DMZ 為 LAN 增加了額外的安全層。
  • 零日攻擊 (0-day Attacks):利用未知漏洞的攻擊。
  • 漏洞掃描/測試 (Vulnerability Scanning/Testing):掃描網路或系統中預定義的漏洞 (如錯誤配置、過時軟體、未修補系統)。理解掃描結果非常重要,報告可能非常長。必須分析漏洞與威脅和風險的關係 (風險 = 威脅 x 漏洞)。基於風險評估規劃有效的緩解措施。

虛擬化、雲端與分散式運算 (Virtualization, Cloud, and Distributed Computing)

  • 虛擬化 (Virtualization):在單一硬體平台 (主機) 上運行多個虛擬伺服器 (客戶機)。
    • 優點:降低成本、易於設置伺服器、資源分配、縮小實體空間。
    • 虛擬化監管程式 (Hypervisors):Type 1 (裸金屬型,直接運行在硬體上)、Type 2 (運行在現有作業系統上)。
    • 安全疑慮:虛擬機逃逸 (VM escape)、虛擬化監管程式存取、資源耗盡。客戶機應像實體伺服器一樣在邏輯上隔離。
  • 分散式系統 (Distributed Systems):一組獨立系統共同工作以支援資源或提供服務,使用者通常視其為單一實體。
    • 優點:水平擴展性、模組化成長、容錯能力、成本效益、低延遲。
    • 應用廣泛:網際網路、P2P 網路、區塊鏈等。
    • 高效能運算 (HPC):聚合計算節點以高速解決複雜計算。
  • 雲端運算 (Cloud Computing):外包部分 IT 基礎設施、儲存或應用程式,本質上是遠端的電腦。
    • 類型:私有雲 (Private)、公有雲 (Public, 共用租戶)、混合雲 (Hybrid)、社群雲 (Community)。
    • 模型:IaaS (基礎設施即服務,提供硬體到作業系統以下)、PaaS (平台即服務,提供作業系統以上)、SaaS (軟體即服務,提供作業系統及應用程式)。
    • 共享責任 (Shared Responsibility):雲端提供商和客戶共同分擔安全責任。

物聯網 (IoT) / 資產追蹤與硬體強化 (Asset Tracking and Hardware Hardening)

  • 物聯網 (IoT):涵蓋廣泛的裝置和系統。
  • 資產追蹤 (Asset Tracking):手動或自動化方式追蹤資產。
  • 硬體強化 (Hardware Hardening):對伺服器和工作站等硬體設備進行安全配置。包括應用所有修補程式、封鎖不需要的埠、刪除預設使用者等。停用埠 (USB, CD) 可通過物理或邏輯 (如 Active Directory) 方式實現。

電力與備份 (Electricity and Backups)

  • 電力:對於系統正常運行至關重要。
    • UPS (不間斷電源):提供持續穩定的電源,並在停電時提供暫時備用電源,兼具浪湧保護功能。
    • 發電機 (Generators):在停電時自動或手動啟動,提供更長的備用電源。
    • PDU (電源分配單元):在機架或設施內分配電源。
  • 備份 (Backups):對於容錯、高可用性和冗餘至關重要。但經常被忽視
    • 類型
      • 完整備份 (Full Backup):備份政策中的所有內容,清除存檔位元,恢復最簡單但耗時。
      • 增量備份 (Incremental Backup):備份自上次備份以來的更改,清除存檔位元,執行速度快但恢復需要多個備份。
      • 差異備份 (Differential Backup):備份自上次完整備份以來的更改,不清除存檔位元,恢復需要完整備份和最後一個差異備份。不要對同一份資料同時使用增量備份和差異備份

容錯、冗餘與彈性 (Fault Tolerance, Redundancy, and Resiliency)

  • 容錯 (Fault Tolerance):確保高可用性和冗餘。
  • 冗餘 (Redundancy):提供備援能力。
    • RAID (磁碟陣列):透過磁碟分條 (Striping) 提高速度,透過鏡像 (Mirroring) 或同位元 (Parity) 提供冗餘。
      • RAID 0:分條,無冗餘,需要至少 2 個磁碟。
      • RAID 1:鏡像,提供冗餘,需要 2 個磁碟。
      • RAID 5:帶有分散式同位元的塊級分條,提供速度和冗餘,需要至少 3 個磁碟。
    • RAID 在單一磁碟故障時提供幫助 (對於容錯類型),但多個磁碟故障時需要從備份恢復。
    • 其他冗餘範例:網路路徑、電源、HVAC (空調系統)、人員。
    • 高可用性 (HA) 環境使用集群和負載平衡。
    • 日誌記錄 (Journaling):遠端或電子方式將交易日誌發送到遠端站點。
  • 彈性 (Resiliency):系統從故障中恢復的能力。

消防 (Fire Suppression)

  • 火災三要素 (Fire Requirements):需要氧氣、熱源和燃料。撲滅火災需要移除其中一個要素。
  • 滅火方法 (Methods of Suppression):移除氧氣 (使用 Halon, FM200, Argon 等氣體)、移除熱源 (使用化學物質或水)、移除燃料 (很少見,因為設備常是燃料)。
  • 火災類別 (Fire Classes):A (可燃物)、B (液體)、C (電器)、D (金屬)、K (廚房油/脂)。來源強調從安全角度和自上而下的組織結構考慮火災類別。
  • 自動滅火系統 (Automatic Fire Suppression Systems)
    • 水 (Water):透過降溫移除熱源,是最安全的滅火劑,但對資料中心硬體有害;應在用水前斷開電源。
    • 氣體 (Gas):透過取代氧氣滅火,不留殘餘物。
  • 手提滅火器 (Portable Fire Extinguishers):應標明適用火災類型。使用 PASS 方法:Pull (拉插銷)、Aim (對準火源底部)、Squeeze (壓下手把)、Sweep (左右掃射)。

安全設計原則 (Secure Design Principles)

  • 最小權限 (Least Privilege):賦予員工或系統僅完成其職責所需的最低限度存取權限。
  • 需要知道 (Need to Know):即使擁有存取權限,如果工作不需要,就不應存取該資訊。
  • 職責分離 (Separation of Duties):將任務分配給多個人員,以防止欺詐和錯誤。如果不可行,需要補償性控制。
  • 縱深防禦 (Defense in Depth):使用多個重疊的安全控制措施保護資產,包括物理、行政和邏輯措施。
  • 安全預設 (Secure Defaults):系統在實施時應盡可能安全,然後根據可用性需求調整安全性。
  • 故障安全 (Fail Securely):系統設計應確保在故障時也能維持安全狀態。
  • 保持簡單 (Keep It Simple):簡單的安全措施更容易管理和理解。
  • 信任但驗證 (Trust but Verify):在信任的基礎上進行驗證。
  • 零信任 (Zero Trust)不對裝置或使用者給予隱含信任,在建立企業資源會話之前,始終對主體和裝置進行身份驗證和授權。
  • 隱私設計 (Privacy by Design):主動而非被動,預設即隱私,將隱私嵌入設計,全程安全,透明可見,尊重使用者隱私。

ISC2 CC Notes 3 Security Architecture and Engineering

領域 3:安全架構與工程 (Security Architecture and Engineering)

雖然您的來源將此領域稱為「存取控制類別與類型 (Access Control Categories and Types)」,但從內容來看,它涵蓋了更廣泛的安全架構和工程原則,特別是關於如何實施和管理存取控制,以及相關的物理和技術控制措施。本領域旨在確保資訊系統和環境的安全,防止未經授權的存取和潛在威脅。

存取控制類別 (Access Control Categories)

存取控制措施可分為三大類:

  1. 行政 (指令性) 控制 (Administrative, Directive, Controls):這是基於組織的政策、程序、法規以及員工訓練和意識。它們是高階的、指導性的控制措施。
  2. 技術 (邏輯) 控制 (Technical (Logical) Controls):這是透過硬體、軟體或韌體實現的控制措施,例如防火牆、路由器和加密。
  3. 物理控制 (Physical Controls):這是保護實體資產和區域的控制措施,例如鎖、圍籬、警衛、大門和防撞柱。

存取控制類型 (Access Control Types)

除了類別,存取控制也可以根據其功能分為不同類型。許多控制措施可能同時屬於多種類型,在評估時應根據具體情境判斷其主要類型:

  • 預防性控制 (Preventative):在行動發生前阻止其發生。例子包括:最小權限原則 (Least Privilege)、藥物測試、入侵防禦系統 (IPS)、防火牆和加密。
  • 偵測性控制 (Detective):在攻擊期間或之後偵測到行動。例子包括:入侵偵測系統 (IDS)、閉路電視 (CCTV)、警報和防毒軟體。
  • 糾正性控制 (Corrective):在事件發生後修復問題。例子包括:防毒軟體、修補程式和入侵防禦系統 (IPS)。
  • 復原性控制 (Recovery):協助在事件發生後進行復原。例子包括:災害復原環境 (DR Environment)、備份和高可用性環境 (HA Environments)。
  • 威懾性控制 (Deterrent):阻止潛在的惡意行動。例子包括:圍籬、警衛、狗、燈光和「小心惡犬」標誌。
  • 補償性控制 (Compensating):當主要的控制措施無法實施或成本過高時,提供的替代控制措施。

物理安全控制 (Physical Security Controls)

物理安全控制是確保組織資產和人員安全的重要組成部分。細節包括:

  • 周邊防禦 (Perimeter defense):使用圍籬作為威懾或預防手段。較小的圍籬(如 3 英尺/1 米)可以起到威懾作用,而較高的圍籬(如 8 英尺/2.4 米)則能有效預防入侵。
  • 大門 (Gates):應進行監控或配備警衛。
  • 障礙物/防撞柱 (Barriers/Bollards):用於控制車輛通行,防止車輛攻擊設施。
  • 燈光 (Lights):作為偵測和威懾控制,應全面照亮區域,可使用靜態或運動感應燈。
  • 閉路電視 (CCTV):作為偵測和威懾控制,監控周邊和內部區域,並進行數位錄影。
  • 鎖 (Locks):有多種類型。
    • 鑰匙鎖 (Key Locks):需要實體鑰匙,容易被複製或被鎖匠工具開啟。
    • 密碼鎖 (Combination Locks):安全性較低,容易受到暴力破解攻擊。
    • 任何鑰匙鎖都可以被撬開或撞開,所需時間取決於鎖的品質。應嚴密保管主鑰匙及其保管地點。
  • 門禁卡 (Access Cards)
    • 智慧卡 (Smart Cards):接觸式或非接觸式,使用 ICC 或 RFID 技術。
    • 磁條卡 (Magnetic Stripe Cards):容易複製。
  • 人員閘道 (Mantraps):一個有兩扇門的房間。第一扇門必須完全關閉後,第二扇門才能打開。每扇門可以使用不同的認證方法(知識、持有物、生物特徵)。有時會使用重量感測器來偵測是否有額外的人員進入。
  • 旋轉閘門 (Turnstiles):允許單人進入,防止尾隨。
  • 限制區域 (Restricted Areas):訪客需要佩戴徽章、簽署訪客日誌並由人員陪同。供應商也應由人員陪同並進行安全檢查。
  • 牆壁、地板和天花板 (Walls, Floors, and Ceilings):應符合縱深防禦策略,確保入侵者無法透過這些途徑進入安全區域。應使用足夠堅固的材料,且牆壁應從真實地板延伸到真實天花板,以防止繞過。
  • 警衛 (Guards):可以是專業(經過訓練,可能攜帶武器)或業餘(未經訓練,可能攜帶武器)的警衛。擬警衛 (Pseudo Guard) 則是不攜帶武器的警衛。警衛應有明確的規章制度,並接受訓練以防止社交工程攻擊。
  • 警犬 (Dogs):作為威懾、偵測和補償控制措施,通常用於受控的封閉區域。潛在問題包括責任風險。

技術或邏輯安全控制 (Technical or Logical Security Controls)

技術或邏輯控制是透過軟體或硬體實現的。

  • 存取控制系統 (Access Control Systems):根據存取控制列表 (ACL) 或其他機制來確定是否允許或拒絕存取。最常見的配置是控制面板作為中心 (hub),讀卡機作為分支 (spokes)。
  • 集中式 vs. 分散式 vs. 混合式 (Centralized vs. Decentralized vs. Hybrid)
    • 集中式 (Centralized):單一系統控制所有存取,易於管理,但可能存在流量開銷和響應時間問題。如果中央系統被破壞,整個網路可能受到影響。
    • 分散式 (Decentralized):本地系統獨立控制存取,響應時間更快,但安全性可能不一致,管理更困難。
    • 混合式 (Hybrid):結合集中式控制和本地伺服器更新。

身份識別與存取佈建 (Identity and Access Provisioning)

  • 概念 (Concept):一個實體(例如用戶)可以擁有多個身份,每個身份可以有多個屬性。組織也可以有多個身份,例如母公司及其子公司。
  • 生命週期 (Lifecycle):一個建議的身份與存取佈建生命週期包括:創建身份、管理屬性、管理憑證、啟用身份、管理存取、監控活動、撤銷身份、刪除身份。應制定明確的政策,例如定期審查閒置帳戶並在一定時間後刪除。
  • 聯合身份管理 (Federated Identity Management - FIDM):將個人在不同身份管理系統中的電子身份和屬性連結起來。

存取控制模型 (Access Control Models)

組織可以根據其安全目標選擇不同的存取控制模型。

  • 自主存取控制 (Discretionary Access Control - DAC):通常用於當 可用性 (Availability) 最重要時。存取權限由物件的擁有者自行決定。大多數作業系統普遍使用此模型。使用 DACL (Discretionary ACL),基於使用者身份。
  • 強制存取控制 (Mandatory Access Control - MAC):通常用於當 機密性 (Confidentiality) 最重要時。存取權限由標籤 (Labels) 和許可等級 (Clearance) 決定。這在軍事或高度重視機密性的組織中常見。
    • 標籤 (Labels):分配給物件。
    • 許可等級 (Clearance):分配給主體 (Subject)。主體的許可等級必須「支配」物件的標籤才能存取。標籤可以比「最高機密」更細緻,例如「最高機密 – 核武」。
  • 基於角色 (Role-Based Access Control - RBAC):通常用於當 完整性 (Integrity) 最重要時。存取權限基於用戶的角色和權限,有助於用戶管理。這在私營組織中很常見,例如根據用戶的職位(如薪資人員)賦予相應的存取權限。
  • 基於屬性 (Attribute-Based Access Control - ABAC):存取權限基於主體、物件和環境的屬性。屬性可以包括用戶的姓名、角色、ID、許可等級;物件的名稱、擁有者、創建日期;以及環境(例如存取的地點或時間、威脅等級)。這也被稱為基於政策的存取控制 (PBAC) 或基於聲明的存取控制 (CBAC)。
  • 基於上下文 (Context-Based Access Control):存取物件的權限基於某些上下文參數。例如:存取時間、地點、回應順序或存取歷史記錄。要求用戶在輸入用戶名和密碼後回答 CAPTCHA 挑戰,或根據 MAC 位址過濾無線網路存取,都是基於上下文的存取控制。
  • 基於內容 (Content-Based Access Control):存取權限基於物件的屬性或內容。例如:根據內容的值或屬性來決定是否顯示應用程式中的選單、資料庫中的視圖,或限制對機密資訊的存取。

此外,技術上還有基於規則的存取控制 (Rule Based Access Control - RUBAC),主要用於防火牆的 IF/THEN 語句,但也可以與其他模型結合使用以提供縱深防禦。

存取控制的關鍵原則 (Key Principles of Access Control)

這些原則是實施有效存取控制的基礎:

  • 最小權限 (Least Privilege):給予員工或系統僅夠其執行職責所需的最低限度的存取權限,不多也不少。這是一種預防性控制。
  • 需要知道 (Need to Know):即使你有存取權限,如果你的工作不需要知道該資訊,就不應該存取它。
  • 職責分離 (Separation of Duties):將任務分配給多個人員,以防止欺詐和錯誤。如果職責分離不可行,則需要補償性控制。

行政安全 (Administrative Security)

除了政策和訓練等行政控制外,還有一些與行政安全相關的措施:

  • 工作輪換 (Job Rotation):在考試中,這被視為一種偵測錯誤和欺詐的手段。
  • 資料分類政策 (Data Classification Policies):雖然在領域 5 中有更詳細的討論,但在領域 3 中也提到了資料分類政策作為行政控制的一部分。這有助於確定應對不同類型資料採取的安全措施。

希望這個詳細的解釋對您理解領域 3 有所幫助!

ISC2 CC Notes 2 Business Continuty and Disaster Recovery

Domain 2:業務連續性 (Business Continuity) 與災害復原 (Disaster Recovery)

Domain 2 涵蓋了組織在面對中斷事件時如何維持運作以及如何從中恢復。這個領域非常重要,因為它提供了應對災害情境和確保業務生存的架構。

業務連續性計劃 (BCP)

  • 目的: BCP 是組織的 長期戰略計劃,旨在確保在發生中斷事件後能持續運作。它是一個 總括性計劃,包含許多子計劃。BCP 涵蓋了 整個組織,而不僅僅是 IT。
  • 組成部分: BCP 包含了災害情境和復原步驟。它是一個 疊代過程,需要與關鍵員工和顧問一起編寫。
  • 相關計劃: BCP 包含或與其他計劃相關聯:
    • 營運持續計劃 (COOP):詳細說明如何在災害期間維持營運,包括如何安排員工前往備用站點,以及在減少容量下運作最多 30 天所需的所有營運事項。
    • 危機溝通計劃 (Crisis Communications Plan):CMP 的子計劃,說明在危機期間如何進行內部和外部溝通。它指定了誰可以對媒體發言,以及誰可以向內部人員傳達什麼訊息。
    • 網路事件應變計劃 (Cyber Incident Response Plan):說明如何在網路事件(如 DDOS、病毒等)中應對。這可以是 DRP 的一部分,也可以是獨立的計劃。
    • 人員緊急應變計劃 (OEP - Occupant Emergency Plan):說明如何在災害事件中保護設施、員工和環境。這可能包括火災、颶風、洪水、犯罪攻擊、恐怖主義等。它著重於安全和疏散,並詳細說明如何疏散以及員工應接受的訓練。
    • 業務復原計劃 (BRP - Business Recovery Plan):列出了從中斷事件中復原後恢復正常業務營運所需的步驟。這可能包括將營運從備用站點切換回(已修復的)主要站點。
    • 支援持續性計劃 (Continuity of Support Plan):狹隘地關注特定 IT 系統和應用程式的支援。也被稱為 IT 應急計劃 (IT Contingency Plan),強調 IT 而非一般的業務支援。
    • 危機管理計劃 (CMP - The Crisis Management Plan):確保組織管理層在緊急或中斷事件發生時能進行有效的協調。它詳細說明了管理層必須採取的步驟,以確保在災害發生時立即保護人員的生命安全和財產。
  • 高階管理層的角色: 高階管理層必須參與 BCP/DRP 過程的啟動和最終批准。他們對計劃負責並擁有計劃。他們最終負有責任,必須展現 應有的謹慎 (due-care)應有的努力 (due-diligence)。在嚴重的災害中,應由高階管理層或法律部門的人員對媒體發言。他們對優先順序、實施和計劃本身擁有最終決定權。組織應該有 由上而下的 IT 安全文化
  • BCP 步驟: 典型的 BCP 流程包括:BCP 政策 → 業務影響分析 (BIA) → 識別預防性控制 → 制定復原策略 → 制定 DRP → DRP 訓練/測試 → BCP/DRP 維護。

災害復原計劃 (DRP)

  • 目的: DRP 專注於 IT 系統。它回答了在災害情境中如何 足夠快地復原 的問題。
  • DRP 生命週期: DRP 具有一個生命週期,包括 緩解 (Mitigation)準備 (Preparation)應對 (Response)復原 (Recovery)
    • 緩解: 減少災害影響和發生的可能性。
    • 準備: 開發計劃、程序和工具。
      • 復原考量: 評估供應商、承包商和基礎設施的影響。確保資料中心的功能和連接性。
      • 模擬測試: 用於在實際災害發生前找出計劃中的不足之處。
        • DRP 審查 (DRP Review):DRP 團隊成員快速審查計劃,尋找明顯的遺漏或空白部分。
        • 通讀/清單檢查 (Read-Through/Checklist):經理和各功能領域的員工通讀計劃,並檢查復原過程中所需的各項要素清單。
        • 演練/桌面演練 (Walk/Talk-through/Tabletop):一組經理和關鍵人員坐下來討論復原過程。這通常可以暴露可能阻礙復原的漏洞、遺漏或技術不準確性。
        • 模擬測試/演練 (Simulation Test/Walkthrough Drill):團隊模擬一個災害情境,各團隊根據 DRP 做出反應。
      • 實體測試 (Physical Tests)
        • 部分中斷 (Partial Interruption):中斷單一應用程式,並將其故障轉移到備用設施。通常在非上班時間進行。
    • 應對: 在災害發生時快速有效地做出反應。評估警報或發現的事件是否嚴重到可能構成災害。
    • 復原: 將系統恢復到可運行的狀態。

業務影響分析 (BIA)

  • 目的: BIA 是 BCP 的一個組成部分。它用於識別關鍵業務功能及其對中斷的依賴性和影響。
  • 關鍵指標: BIA 幫助定義了幾個關鍵的時間和數據指標,用於確定復原策略和目標:
    • 最大可容忍停機時間 (MTD - Maximum Tolerable Downtime):系統在對組織造成嚴重影響之前可以停運的總時間。MTD 必須大於或等於 RTO + WRT。其他術語包括 MAD、MTO、MAO、MTPoD。請記住,經歷數據嚴重損失的公司,有 43% 永不再營業,29% 在兩年內關閉。
    • 復原時間目標 (RTO - Recovery Time Objective):恢復系統(硬體)所需的時間。RTO 必須在 MTD 限制內。
    • 工作復原時間 (WRT - Work Recovery Time):配置恢復的系統以恢復業務功能所需的時間。
    • 復原點目標 (RPO - Recovery Point Objective):可以容忍丟失的數據量。RPO 必須確保每個系統、功能或活動的最大可容忍數據損失不被超過。
    • 平均故障間隔時間 (MTBF - Mean Time Between Failures):系統在發生故障前的平均運行時間。
    • 平均修復時間 (MTTR - Mean Time to Repair):修復故障系統所需的時間。
    • 最低營運要求 (MOR - Minimum Operating Requirements):關鍵系統運行所需的最低要求。

復原策略 (Recovery Strategies)

根據 MTD,組織可以確定其應對災害的方法和採取的防範措施。主要的復原站點類型包括:

  • 冗餘站點 (Redundant Site):與生產站點完全相同,接收實時數據副本。具備自動故障轉移功能,應地理位置上遠離。這是最昂貴的選項,使用者不會注意到故障轉移。
  • 熱站點 (Hot Site):容納關鍵系統,數據接近實時或實時。通常是較小的完整數據中心,但需手動故障轉移。切換可以在一小時內完成。
  • 溫站點 (Warm Site):基於備份的數據,需要手動故障轉移。切換和恢復需要 4-24 小時或更長時間。通常是一個較小的完整數據中心,但沒有實時或近實時數據。
  • 冷站點 (Cold Site):只提供基礎設施,沒有硬體或備份。這是最便宜但復原時間最長的選項(可能需要數週或更長)。
  • 互惠協議站點 (Reciprocal Agreement Site):與另一組織簽訂合同,在災害發生時互相提供空間。可以是承諾的空間或完全獨立的機櫃。
  • 訂閱/雲站點 (Subscription/Cloud Site):支付外部提供商,根據服務等級協議 (SLA) 提供復原服務。
  • 移動站點 (Mobile Site):輪式數據中心,設備齊全。可能需要電源和網路連接。

事後檢討 (Lessons Learned)

  • 在經歷中斷事件或故障轉移測試後,進行 事後檢討 非常重要。這個階段經常被忽略。
  • 事後檢討應 專注於改進,而不是歸咎責任。
  • 從中獲得的見解應被納入 BCP 和 DRP 的更新中。

計劃維護 (Plan Maintenance)

  • BCP 和 DRP 是 疊代過程,需要 定期更新
  • 每年至少審查和更新一次
  • 取回並銷毀過期版本,分發當前版本。

事件管理 (Incident Management)

  • 目的: 監控和應對安全事件。確保應對是可預測且眾所周知的。
  • 事件類型: 事件可以分為幾類:
    • 自然災害 (Natural):由自然引起,例如地震、洪水、龍捲風、雪災等。
    • 人為事件 (Human):由人類引起。可以是 故意的 (Intentional)(如惡意軟體、恐怖主義、DOS 攻擊、駭客行動主義、釣魚等)或 無意的 (Unintentional)(如錯誤、疏忽、員工使用個人 USB 傳播惡意軟體等)。
    • 環境事件 (Environmental):與自然災害不同。例如停電、硬體故障、環境控制問題(熱、壓力、濕度)等。
  • 其他定義:
    • 事件 (Incident):發生在系統或網路上的多個不利事件,通常由人引起。
    • 問題 (Problem):起因不明的事件,需要進行根本原因分析以防止再次發生。
    • 不便 (Inconvenience):非破壞性故障,如硬碟故障或伺服器集群中一台伺服器宕機。
    • 緊急情況/危機 (Emergency/Crisis):具有潛在生命或財產損失風險的緊急事件。
    • 災害 (Disaster):整個設施在 24 小時或更長時間內無法使用。如果具備地理分散和冗餘,可以極大緩解這種情況。雪災也可以是災害。
    • 浩劫 (Catastrophe):設施被摧毀。
  • 事件管理步驟: 標準的事件管理流程包括:
    • 偵測 (Detection):識別潛在的安全事件。
    • 應對 (Response):採取初步行動來遏制事件。
    • 緩解 (Mitigation):理解並解決事件的根本原因。
    • 報告 (Reporting):記錄事件細節並通知管理層。報告是持續的,從偵測到惡意活動就開始。報告分為技術和非技術兩方面。
    • 復原 (Recovery):將系統恢復到可運行的狀態。
    • 補救 (Remediation):在系統間擴大緩解措施。
    • 事後檢討 (Lessons Learned):分析和改進未來的應對措施。包括 根本原因分析 (Root-Cause Analysis),試圖確定導致事件發生的潛在弱點或漏洞。
  • 網路事件應變小組 (CIRT - Cyber Incident Response Team):通常包括高階管理層、事件經理、技術負責人及團隊、IT 安全人員、公關、人資、法務以及 IT/財務稽核師。

常見的威脅和問題 (Common Threats and Issues)

  • 錯誤和遺漏 (Errors and Omissions - 人為):員工的錯誤,通常影響較小,但可能造成損害。如果這些問題被認為非常常見或具有潛在破壞性,可以建立控制措施來緩解它們。
  • 電氣/電力問題 (Electrical/Power Problems - 環境):停電和電壓波動。需要不斷電系統 (UPS) 和發電機備份。
  • 環境控制 (Environmental Controls):管理資料中心的熱、壓力、濕度以保護硬體。正壓保持外部污染物不進入。濕度應保持在 40% 到 60% 之間,低濕度會產生靜電,高濕度會腐蝕金屬(電子設備)。
  • 戰爭、恐怖主義和蓄意破壞 (Warfare, Terrorism, and Sabotage - 人為):除了傳統衝突外,還有許多發生在網路上的活動,駭客攻擊為了各種原因(國家、宗教等)。

希望這個詳細的解釋對您有所幫助!

ISC2 CC Notes 1 Security Principles

CIA 被認為是資訊安全領域非常重要的基礎。其核心內容構成了其他知識網域的基礎。此網域涵蓋了資訊安全IT 安全網路安全之間的區別、CIA 三要素IAAA隱私風險管理存取控制道德規範治理與管理以及法律與規範

資訊安全IT 安全網路安全之間的區別:

  • 資訊安全 (Information Security):保護所有類型的資訊,包括紙本文件和語音資料。
  • IT 安全 (IT Security):保護硬體軟體資料,例如電腦和網路系統。
  • 網路安全 (Cybersecurity):特別保護可透過網際網路存取的 IT 系統。

CIA 三要素:機密性、完整性和可用性。

  • (Confidentiality)
  • (Integrity)
  • (Availability)
  • 機密性 (Confidentiality):這是許多人對 IT 安全的主要理解。我們保持資料和機密資訊的秘密。確保未經授權的人員無法存取資料。威脅包括揭露 (Disclosure),即未經授權地存取資訊。為實現機密性,我們使用:
    • 加密:用於靜態資料(例如 AES256、全磁碟加密) 和傳輸中的資料(例如安全的傳輸加密協定 SSL、TLS)。
    • 存取控制
  • 完整性 (Integrity):保護資料和系統免受修改。確保資料未被更改。威脅包括變更 (Alteration),即未經授權地更改資料。為實現完整性,我們使用:
    • 密碼學
    • 檢查碼 (Check sums),例如 CRC。
    • 訊息摘要 (Message Digests),也稱為雜湊 (hash),例如 MD5、SHA1 或 SHA2。
    • 數位簽章:提供不可否認性 (Non-repudiation)。
    • 存取控制
    • 補丁管理
  • 可用性 (Availability):確保被授權的人員在需要時可以存取所需的資料和系統。威脅包括惡意攻擊(如 DDOS、物理攻擊、系統入侵、員工攻擊)、應用程式故障(程式碼錯誤)和組件故障(硬體故障)。未能提供可用性可能導致銷毀 (Destruction),即資料或系統被破壞或無法存取。為實現可用性,我們使用:
    • IPS/IDS (入侵防禦系統/入侵偵測系統)。
    • 補丁管理
    • 冗餘 (Redundancy):在硬體電源(多個電源供應器、UPS、發電機)、磁碟(RAID)、流量路徑(網路設計)、HVAC、人員、HA (高可用性) 等方面實現。
    • SLA (服務級別協議):定義所需的正常執行時間(例如 99.9%)。

DAD (Disclosure, Alteration, and Destruction) 是 CIA 三要素的對立面。

IAAA:識別 (Identification)、身份驗證 (Authentication)、授權 (Authorization) 和當責 (Accountability)。

  • 識別:宣告身份。範例包括使用者名稱、ID 號碼或員工社會安全碼。「我是Elliot」即為識別的範例。
  • 身份驗證證明身份。「證明你是Elliot」。應該始終使用多因素身份驗證。身份驗證因素通常分為三種類型:
    • 類型 1:知識因素 (Knowledge factors):你知道的東西。例如密碼、通行碼、PIN 碼。這是最常用的身份驗證形式。組織應執行密碼政策來增強安全性:建議最低長度為 8 個字元,包含大小寫字母、數f字和符號,定期更新且不重複使用(例如記住最後 24 個密碼,最長使用期 90 天,最短使用期 2 天)。金鑰延展 (Key stretching) 可延遲密碼驗證,阻礙暴力破解。
    • 類型 2:持有因素 (Possession factors):你擁有的東西。例如 ID、智慧卡、權杖、電腦上的 Cookie。
    • 類型 3:生物特徵因素 (Biometric factors):你是誰。例如指紋、虹膜掃描、面部幾何形狀。生物特徵可以是生理性(如指紋)或行為性(如打字節奏)。生物特徵驗證涉及錯誤率:
      • FRR (False Rejection Rate):錯誤拒絕授權使用者。
      • FAR (False Acceptance Rate):錯誤接受未授權使用者。
      • CER (Crossover Error Rate):FRR 和 FAR 達到最佳平衡的點。
    • 使用生物特徵驗證需要考慮隱私問題(揭示個人資訊)和安全風險(可能被偽造)。生物特徵資料一旦洩漏,比密碼更難替換。
  • 授權:決定主體被允許存取什麼。我們使用存取控制模型來實現授權。主要原則包括最小權限 (Least Privilege) 和需要知道 (Need to Know)。
    • 最小權限:員工或系統只獲得其角色所需的最低必要存取權限。不多也不少。
    • 需要知道:即使你有存取權限,如果你的工作不需要知道該資訊,你就不應該存取它。
    • 職責分離 (Separation of Duties):將單一任務分配給多個不同的人員來執行,以防止詐欺和錯誤。在小型組織不切實際時,應實施補償性控制
    • 存取控制模型包括:
      • DAC (Discretionary Access Control):通常用於可用性最重要時。存取權限由物件擁有者自行決定。擁有者可以使用 DACL (Discretionary ACL) 授予或撤銷權限。大多數作業系統廣泛使用此模型。
      • MAC (Mandatory Access Control):通常用於機密性最重要時。存取權限基於標籤許可等級。物件被分配標籤,主體的許可等級必須支配物件的標籤。這常應用於軍事或高度重視機密性的組織。標籤可以比「最高機密」更細緻,例如「最高機密 – 核子」。許可等級基於對主體當前和未來能力的正式決定。
      • RBAC (Role-Based Access Control):通常用於完整性。存取權限基於使用者的角色和權限。這有助於簡化使用者管理。例如,薪資部門的員工獲得薪資相關存取權限,調到 HR 部門後則獲得 HR 相關權限。
      • ABAC (Attribute-Based Access Control):存取權限基於主體、物件和環境的屬性和條件。屬性可以包括主體(姓名、角色、ID、許可等級)、物件(姓名、擁有者、建立日期)和環境(位置、時間、威脅級別)。此模型預計未來幾年內在大型企業中廣泛採用。它也被稱為策略導向存取控制 (PBAC) 或聲明導向存取控制 (CBAC)。
      • 情境相關存取控制 (Context-Based Access Control):存取權限基於特定的情境參數,例如位置、時間、回應順序或存取歷史。範例包括要求 CAPTCHA 回應、基於 MAC 位址過濾無線存取,或防火牆基於封包分析過濾資料。
      • 內容相關存取控制 (Content-Based Access Control):存取權限基於物件的屬性或內容。例如,應用程式中隱藏或顯示選單、資料庫中的檢視或對機密資訊的存取權限都屬於此類。
  • 當責 :確保行動可追溯到執行者。提供不可否認性,確保使用者不能否認自己執行了某項特定行動。透過稽核軌跡 (Audit Trails) 記錄行動。

隱私 (Privacy):

  • 定義:免受觀察或干擾的自由。保護個人免受未經授權的侵入。
  • 權利:隱私是一種人權。包括保護個人身份資訊 (PII)。
  • 規範
    • 美國:法律零散,覆蓋範圍不一致。
    • 歐盟:對資料收集、使用和儲存有嚴格規定。
    • GDPR (General Data Protection Regulation):歐盟的資料保護和隱私法規。適用於所有處理歐盟/歐洲經濟區個人資料的組織,無論其位於何處。GDPR 對於違反者有嚴格的罰款。GDPR 賦予個人多項權利,包括存取權(資料控制者必須免費提供個人資料副本)、被遺忘權(資料刪除權)、資料可攜性(以電子格式獲取資料)。要求在資料洩露發生後 72 小時內通知使用者和資料控制者。強調設計內建隱私 (Privacy by Design),在設計資料處理過程時,應確保個人資料的安全,並確保只收集完成任務絕對必要的資料。要求某些公司任命資料保護官 (Data protection officers)。

風險管理 (Risk Management):

  • 風險管理生命週期是迭代的過程。包括識別評估回應與緩解監控階段。
  • 風險公式
    • 風險 = 威脅 * 弱點(或可能性)。
    • 我們也可以使用風險 = 威脅 * 弱點 * 影響
    • 總風險 (Total Risk) = 威脅 * 弱點 * 資產價值 (Asset Value)。
    • 殘餘風險 (Residual Risk) = 總風險 – 對策 (Countermeasures)。
  • 組成部分
    • 威脅 (Threat):可能導致損害的事件。
    • 弱點 (Vulnerability):允許威脅利用並造成損害的弱點。
    • 資產價值 (Asset Value, AV):資產的價值。
    • 應盡職責 (Due Diligence, DD):實施前的研究。例如,在實施安全措施之前進行研究。縮寫為「Do Detect」。
    • 應盡關懷 (Due Care, DC):實施安全措施。是應盡職責的實施。縮寫為「Do Correct」。
  • 風險評估
    • 定性分析 (Qualitative Analysis):評估風險的可能性和影響。通常使用風險矩陣將風險分類(如低、中、高、極高)。
    • 定量分析 (Quantitative Analysis):基於成本的風險評估。涉及計算損失預期。
      • 暴露因素 (Exposure Factor, EF):資產損失的百分比。
      • 單一損失預期 (Single Loss Expectancy, SLE) = AV x EF:事件發生一次的成本。例如,遺失價值 $1000 的筆記型電腦(AV)包含 $10000 的 PII(AV),如果遺失是 100%(EF),則 SLE = ($1000 + $10000) x 100% = $11000。來源使用不同的 AV 範例,僅為筆記型電腦價值 $1000 加上 PII 損失 $10000。
      • 年度發生率 (Annual Rate of Occurrence, ARO):事件每年發生的頻率。例如,組織每年遺失 25 台筆記型電腦。
      • 年度損失預期 (Annualized Loss Expectancy, ALE) = SLE x ARO:如果不採取任何措施,每年預期的成本。例如,ALE = $11000 x 25 = $275000。
      • 總擁有成本 (Total Cost of Ownership, TCO):緩解措施的總成本(前期成本 + 持續成本)。
  • 風險回應 (Risk Responses):處理風險的選項。
    • 接受風險 (Accept the Risk):知道風險存在,但緩解成本高於風險成本(通常用於低風險)。
    • 緩解風險 (Mitigate the Risk, Reduction):實施控制措施將風險降低到可接受的水準。剩餘的風險即為殘餘風險。例如,對筆記型電腦實施加密或遠端清除。
    • 轉移風險 (Transfer the Risk):將風險轉移給第三方,例如透過購買保險。
    • 避免風險 (Risk Avoidance):修改計劃或活動以完全避免風險。例如,不向員工發放筆記型電腦(如果可能),或在不會發生水災的區域建造資料中心。
    • 拒絕風險 (Risk Rejection):知道風險存在但選擇忽視它。這是不可接受的回應策略。
  • 監控與報告:風險管理是一個持續的過程。需要持續監控風險和已實施的控制措施。可以利用主要風險指標 (KRI) 和主要績效指標 (KPI)。通常每年進行風險管理生命週期評估,並對關鍵項目進行週期外評估。

存取控制類別類型

  • 存取控制類別:控制如何保護資產或資源。
    • 行政控制 (Administrative Controls, Directive Controls):透過政策、程序和訓練來管理安全性。例如組織政策、規範、訓練和意識。
    • 技術控制 (Technical Controls, Logical Controls):透過硬體、軟體或韌體來實施安全性。例如防火牆、路由器和加密。
    • 實體控制 (Physical Controls):透過實體措施限制或監控存取。例如鎖、圍籬、警衛、門和防撞柱。
  • 存取控制類型:描述控制的功能或目的。同一控制可能屬於多種類型。
    • 預防性控制 (Preventative Controls):在行動發生之前阻止它們。例如最小權限、藥物測試、IPS、防火牆、加密。
    • 偵測性控制 (Detective Controls):在事件發生期間或之後識別行動。例如 IDS、CCTV、警報、防毒軟體。
    • 矯正性控制 (Corrective Controls):在事件發生後修復問題。例如防毒軟體、補丁、IPS。
    • 復原性控制 (Recovery Controls):在事件發生後協助復原。例如災難復原環境、備份、高可用性環境。
    • 嚇阻性控制 (Deterrent Controls):阻礙行動。例如圍籬、保全警衛、狗、燈光、「小心惡犬」標誌。
    • 補償性控制 (Compensating Controls):在無法實施主要控制或成本過高時提供替代方案。

道德規範

  • ISC2 道德規範:保護社會、正直誠信地行動、提供專業服務、推進專業發展。
  • 電腦道德:不使用電腦傷害他人、不干涉他人電腦工作、不偷窺他人檔案、不使用電腦偷竊、不使用盜版軟體、不使用他人電腦資源而未經授權或補償、不侵佔他人智慧財產、思考所寫程式或設計系統的社會影響、永遠以確保考慮和尊重他人權利的方式使用電腦。
  • 組織道德:需要了解並遵守自己組織內部的道德規範。

治理管理

  • 治理 (Governance):設定目標、監控績效、定義風險容忍度。由高階主管負責。
  • 管理 (Management):規劃和執行活動以達成治理設定的目標。在治理設定的方向內運作。
  • C 級主管 (C-Level Executives) 對於安全負有最終責任。需要了解的 C 級主管包括 CEO、CIO、CTO、CSO、CISO 和 CFO。

法律與規範

  • 法律類型
    • 刑事法 (Criminal Law):目的是懲罰並嚇阻對社會有害的行為。「社會」是受害者。證明標準為「排除合理懷疑」。刑罰可能包括監禁、死刑或罰款。
    • 民法 (Civil Law, Tort Law):目的是賠償受害者。個人、團體或組織是受害者。證明標準為「大多數證據」。賠償通常是財務罰款。
    • 行政法 (Administrative Law):政府制定的規範。例如 HIPAA。
    • 私人規範 (Private Regulations):合約要求。例如 PCI-DSS。
    • 習慣法 (Customary Law):基於傳統。
    • 宗教法 (Religious Law):基於信仰。
  • 關鍵規範
    • HIPAA (Health Insurance Portability and Accountability Act):美國關於健康資訊隱私的法律。
    • ECPA (Electronic Communications Privacy Act):保護電子通訊。
    • PATRIOT Act (Uniting and Strengthening America by Providing Appropriate Tools Required to Intercept and Obstruct Terrorism Act):擴大執法機構的能力。
    • CFAA (Computer Fraud and Abuse Act):起訴電腦犯罪。
    • GDPR:如前所述,歐盟的資料保護法規。

資訊安全治理:價值觀、願景、使命和計劃。

  • 治理原則包括:
    • 價值觀:我們的價值是什麼?包括道德、原則和信念。
    • 願景:我們渴望成為什麼?代表希望和抱負。
    • 使命:我們為誰服務?代表動機和目的。
    • 策略目標:我們將如何進步?包括計劃、目標和排序。
    • 行動與 KPI:我們需要做什麼以及如何知道我們是否達成目標?包括行動、資源、結果、負責人和時間框架。
  • 安全治理文件類型:
    • 政策 (Policies):強制性高層次且非特定。可能包含「補丁、更新、強加密」等,但不指定具體的作業系統、加密類型或供應商技術。
    • 標準 (Standards):強制性,描述特定技術的使用。例如,所有筆記型電腦必須是 W10、64 位元、8GB 記憶體等。
    • 指引 (Guidelines):非強制性,提供建議或酌情處理的方式。
    • 程序 (Procedures):強制性低層次的逐步指南,非常特定。會指定具體的作業系統、加密類型或供應商技術。

以上是根據來源資料對網域 1 內容的詳細概述。

HikariCP case study 5 CopyOnWriteArrayList

Code Snapshot: Connection Borrowing Logic

Here’s a key piece of HikariCP internals when a thread tries to borrow a connection from the pool:

1
2
3
4
5
6
7
8
// ②
// Get a connection from the pool, with a timeout
final PoolEntry poolEntry = connectionBag.borrow(timeout, MILLISECONDS);

// The borrow method returns null only if it times out
if (poolEntry == null) {
break; // We timed out... break and throw exception
}

This code attempts to borrow a connection from the internal connectionBag. If it doesn’t succeed within the specified timeout, it returns null, and the calling code exits the loop and throws an exception.

Behind the Scenes: What’s connectionBag?

The connectionBag is a custom concurrent structure used by HikariCP to manage connections. Internally, it uses a CopyOnWriteArrayList to store available PoolEntry objects.

Why Use CopyOnWriteArrayList?

CopyOnWriteArrayList is a thread-safe variant of ArrayList where all mutative operations (like add, remove) are implemented by making a fresh copy of the underlying array. It shines in situations where:

  • Reads are far more frequent than writes.
  • Thread safety is critical, but locking overhead must be minimized.

This fits HikariCP’s use case perfectly—connections are borrowed and returned frequently under high concurrency, and most operations are reads (checking for available connections).

What Happens During borrow()?

The borrow() method performs the following steps:

  1. Iterates over the CopyOnWriteArrayList of available connections.
  2. Tries to atomically claim one via compareAndSet.
  3. If no connection is immediately available, it waits until:
    • A connection is returned.
    • The timeout expires.

Thanks to CopyOnWriteArrayList, multiple threads can safely iterate and borrow connections without the risk of ConcurrentModificationException or complex locking strategies.

Timeout Behavior

If no connection is available within the timeout window:

1
2
3
if (poolEntry == null) {
break; // We timed out... break and throw exception
}

The system recognizes that it’s better to fail fast than to block indefinitely. This ensures predictability and avoids resource starvation under load.

Trade-offs of CopyOnWriteArrayList

While CopyOnWriteArrayList is great for safe, lock-free reads, it does have drawbacks:

  • Writes (adds/removes) are costly since the array is copied.
  • It’s not ideal if the list is modified very frequently.

In HikariCP’s case, connection availability doesn’t change every millisecond—so this trade-off is acceptable and even advantageous.

Takeaways

  • CopyOnWriteArrayList plays a crucial role in enabling fast, concurrent access to connection entries in HikariCP.
  • It ensures safety and performance without heavyweight synchronization.
  • The timeout logic provides a safety net to prevent system hangs under high load.

Final Thoughts

This case study shows how a seemingly simple collection choice—like CopyOnWriteArrayList—can dramatically influence the performance and reliability of a high-throughput system like HikariCP. It’s a perfect example of using the right tool for the job in a multithreaded environment.

HikariCP case study 4 FAUX_LOCK

HikariCP Case Study: Understanding FAUX_LOCK

HikariCP, a high-performance JDBC connection pool, is renowned for its minimalist design and efficient concurrency handling. One of its clever optimizations is the FAUX_LOCK, a no-op (no operation) implementation of the SuspendResumeLock class. In this short case study, we’ll explore the purpose of FAUX_LOCK, its implementation, and how it leverages JIT (Just-In-Time) compilation to boost performance.

What is FAUX_LOCK?

The SuspendResumeLock class in HikariCP manages the suspension and resumption of connection acquisition, typically during pool maintenance or shutdown. The FAUX_LOCK is a static instance of SuspendResumeLock that overrides its methods—acquire, release, suspend, and resume—to do nothing:

1
2
3
4
5
6
7
8
9
10
public static final SuspendResumeLock FAUX_LOCK = new SuspendResumeLock(false) {
@Override
public void acquire() {}
@Override
public void release() {}
@Override
public void suspend() {}
@Override
public void resume() {}
};

This “fake” lock acts as a placeholder when actual locking is unnecessary, minimizing overhead in high-performance scenarios.

Why Use FAUX_LOCK?

HikariCP is designed for speed, and every cycle matters in high-throughput applications. The FAUX_LOCK is used when the pool is configured to operate without suspension or locking, specifically when allowPoolSuspension is false (the default). Its key purposes are:

  1. Single-Threaded or Non-Suspended Pools: When pool suspension is disabled, there’s no need for lock operations. FAUX_LOCK eliminates synchronization overhead.
  2. Simplified Code Path: Using FAUX_LOCK avoids conditional logic to check whether locking is needed, maintaining a consistent SuspendResumeLock interface.
  3. Performance Optimization: By providing empty method implementations, FAUX_LOCK reduces the cost of lock operations to zero.

JIT Optimization: The Hidden Benefit

So, what’s the real advantage of this approach? When pool suspension is disabled, FAUX_LOCK provides an empty implementation, with the expectation that the JVM’s Just-In-Time (JIT) compiler will optimize it away. Each call to acquire, release, suspend, or resume is an empty method that does nothing. After the code runs multiple times, the JIT compiler may recognize these methods as no-ops and inline or eliminate them entirely.

This means that, over time, the overhead of calling these methods disappears. When acquiring a connection, the application skips the token acquisition step entirely, as the JIT-optimized code bypasses the empty method calls. This results in significant performance savings, especially in high-concurrency scenarios where connection acquisition is frequent.

When is FAUX_LOCK Used?

FAUX_LOCK is employed when allowPoolSuspension is false. In this mode, HikariCP does not support suspending the pool for tasks like shrinking or reaping idle connections. By using FAUX_LOCK, calls to lock-related methods become no-ops, allowing HikariCP to focus solely on connection management. For example, in a web application with a fixed pool size and no need for suspension, FAUX_LOCK ensures minimal overhead.

Benefits of FAUX_LOCK

  • Zero Overhead: Empty methods eliminate lock-related costs, and JIT optimization may remove them entirely.
  • Code Simplicity: A consistent SuspendResumeLock interface avoids complex branching logic.
  • Flexibility: Supports both high-performance (with FAUX_LOCK) and maintenance-friendly modes (with a real lock).
  • Performance Boost: JIT-eliminated method calls reduce connection acquisition time.

Considerations

FAUX_LOCK is ideal for performance-critical applications but unsuitable when pool suspension is needed (e.g., for dynamic resizing). Enabling allowPoolSuspension requires a real SuspendResumeLock, and misconfiguration could disrupt pool maintenance.

Conclusion

The FAUX_LOCK in HikariCP is a brilliant optimization that showcases how small design choices can yield big performance gains. By providing a no-op lock and leveraging JIT compilation to eliminate method call overhead, FAUX_LOCK ensures HikariCP remains blazingly fast in non-suspended pools. For developers, this underscores the importance of aligning HikariCP’s configuration with application requirements to unlock its full potential.

When configuring your HikariCP pool, check if allowPoolSuspension is necessary. If not, FAUX_LOCK and JIT optimization will work behind the scenes to make your application faster and more efficient.