【每周快報】0528-0603 AWS 服務更新
前言
AWS 這周為容器使用者新增了 AWS Fargate 1.4 版支援預設加密 ephemeral storage 的服務,此次更新後使用者就能為存放底層的資料加密,提升資料的的安全性。在機器學習領域,AWS 則推出 Amazon SageMaker 組件支援 Kubeflow Pipeline 部署,使用者可以簡化 Kubeflow Pipeline 環境設定所需的基礎架構,加速機器學習流程的開發。AWS 也針對大數據領域做了些更新,例如 Amazon Redshift 現在可以為 schemas 設置儲存上限,而 Amazon Athena 現在支援將 Apache Hive Metastore 作為 metadata catalog。上述領域外,本篇文章也將提及 AWS Single Sign-On、AWS S3、AWS Direct Connect…等各項服務。
焦點新聞
Amazon SageMaker 組件支援 Kubeflow Pipeline 部署
Kubeflow Pipeline 是 Kubeflow 中用來整合 Machine Learning 工作流程建置的工具,而使用者透過 Kubeflow Pipeline 可以有效管理各種實驗,同時可以重複使用 Pipeline 與定義的元件快速建立機器學習流程。
透過此次更新後,使用者可以直接將 SageMaker 所支援的標記、模型建立與訓練、優化超參數、批次推論和建立模型端點等功能作為 Pipeline 的元件,藉此定義 ML 工作流程。
當使用者想建立一個具備參數優化、優化參數建模、模型部署的 ML 的工作流程,並且希望直接利用 SageMaker 現有的功能直接與 Kubeflow 整合,此時可以透過 Amazon SageMaker 組件 定義 Kubeflow Pipeline。
透過 Amazon SageMaker 組件 ,使用者將可以簡化 Kubeflow Pipeline 環境設定所需的基礎架構,藉此加速機器學習流程的開發。
參考來源至:Amazon SageMaker Components for Kubeflow Pipelines
圖片來源至:Introducing Amazon SageMaker Components for Kubeflow Pipelines
AWS Fargate 1.4 版支援預設加密 ephemeral storage
Fargate 在 1.4 版本後,提供 20GB 的 ephemeral storage,用於該 Fargate 沙盒環境做下載和處理數據等需求使用。在 1.3 以前的版本僅支援 10 GB Docker layer 和 4 GB 硬碟掛載的空間。
有些使用者為了滿足合規的規範,需要加密存放在 Fargate ephemeral storage 的資料。原先使用者如果想要加密 ephemeral storage,需要額外在應用程式運作的過程中,寫入加密的動作,再將資料儲存在 ephemeral storage。
此次更新後,1.4 版的 Fargate 預設使用標準 AES-256 加密演算法,透過 AWS Fargate-managed keys 加密 ephemeral storage。使用者不需要再額外寫入加密流程在應用程式中,就可以享有更好的資安保護。另外,不論是 Fargate for ECS 或是 Fargate for EKS,都支援預設加密的功能。
參考來源至:AWS Fargate now encrypts data stored on ephemeral storage by default in platform version 1.4
參考來源至:Introducing server-side encryption of ephemeral storage using AWS Fargate-managed keys in AWS Fargate platform version 1.4
利用 S3 action 的訪問歷史記錄,為 IAM User 和 Role 加強管理 S3 權限
權限管理者有時會因為還未確定 User / Role 實際需要的權限,以防萬一而給予高於 User / Role 實際會用到的權限,容易因權限上的疏漏而導致安全性問題。
基於 AWS 最佳實務:最小權限原則,AWS IAM 現在支援顯示關於 S3 Action last accessed information!
管理者可以利用 Action last accessed information 了解 IAM User / Role 實際對 S3 Bucket 進行的動作,像是 CreateBucket
、DeleteBucket
、GetAccessPoint
…等。根據記錄結果,若 IAM User / Role 有長期未使用部分權限做操作,意味著以目前的使用狀況,User / Role 並不需要這些權限,管理者可以依此結果刪除 User / Role 沒有使用到的權限,一步步限縮權限,以確保每個 User / Role 擁有的最小權限來完成作業即可。
- 若 Bob 是負責管理 AWS 使用者權限的管理員。組織內的軟體開發團隊尚未定義他們將使用哪些 AWS 服務。Bob 打算僅提供該團隊所需服務的存取許可,但由於尚未定義相關服務,因此 Bob 暫時提供該團隊所有服務的許可。之後他可以藉由使用 Action last accessed information,賦予該團隊適當權限即可。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "FullAccessToAllServicesExceptPeopleManagement",
"Effect": "Allow",
"NotAction": [
"iam:*",
"organizations:*"
],
"Resource": "*"
},
{
"Sid": "RequiredIamAndOrgsActions",
"Effect": "Allow",
"Action": [
"iam:CreateServiceLinkedRole",
"iam:DeleteServiceLinkedRole",
"iam:ListRoles",
"organizations:DescribeOrganization"
],
"Resource": "*"
}
]
}
- 過了一段時間後,Bob 由 Action last accessed information 發現團隊在給予權限後,有許多 S3 相關 action 從未使用到,因此 Bob 可以依此收回那些未使用到的 action 權限。
參考來源至:Tighten S3 permissions for your IAM users and roles using access history of S3 actions
其他服務更新
現在可透過 CodePipeline 在 CI/CD 過程觸發 Step Functions
CodePipeline 是一個用於串接 Continuous Integration and Continuous Delivery(持續交付)流程的服務,可根據使用者定義的部署流程,在每次應用程式有任何變更時自動創建、測試和部署新的版本。Step Functions 可協調多個 AWS 服務(例如:AWS Lambda、AWS Fargate、Amazon SageMaker 等等),整合成為一個無伺服器的工作流程。
此次更新後,使用者可以在 Pipeline 交付的過程中,呼叫 Step Functions 以 Serverless 的方式執行作業。
當應用程式的程式碼有任何更動時,驅動 CodePipeline 自動部署,進而觸發 Step Functions 進行一連串服務的運作。不僅讓自動部署的過程能夠更加靈活的配置,如果部署失敗,使用者也可以從 Step Functions 中每一次執行的 State Machine 紀錄中了解問題發生在哪一個階段,並停止後續的部署,節省多餘的花費。此外,使用者可以簡化 CodePipeline 的流程,單純將部署的邏輯留在 CodePipeline,實際複雜的部署過程串接在 Step Functions,讓修改的過程更加容易。
參考來源至:CodePipeline supports invoking Step Functions with a new action type
AWS Single Sign-On 支援 Okta 存取 AWS 服務
Single Sign-On 提供集中的權限控制的優勢,只要登入一個帳號,就可以連接多個系統,以使用者角度來看,助於減少多個帳號和密碼組合的困擾及減少重新輸入密碼的手續,也可有效管理使用者身份與權限。繼 這次更新後,AWS Single Sign-On 新增 Okta Universal Directory ,如此以來,除了管理者可以透過 AWS Single Sign-On 控制 Okta 使用者來管控存取 AWS 服務的權限,使用者也可以利用 Okta 身份來登入 AWS 服務了!
以下為利用 Okta 登入 AWS 服務 的示意圖:
參考來源至:Manage access to AWS centrally for Okta users with AWS Single Sign-On
圖片來源至:Single Sign-On between Okta Universal Directory and AWS
AWS Database Migration Service (DMS) 現在支援將圖像式資料複寫到 Amazon Neptune
原先使用關聯式資料庫與圖像式資料庫的使用者,如果想將資料移轉到 Neptune 裡,需要先把關聯式資料匯出為檔案並存放至 S3,再從 S3 把資料倒入 Neptune 做建檔。這個過程在資料型態的轉移上,不僅耗費大量時間,也容易發生人為疏失。
此次更新後,使用者可以利用 AWS DMS,把資料從關聯式資料庫複寫到圖像式資料庫 Neptune 中。使用者只需要指定 Neptune 為複寫的 Destination 目的地,DMS 可以一次性或是持續性地將資料複寫到目標資料庫,盡可能降低連接於原先資料庫之應用程式的停機時間。
參考來源至:AWS Data Migration Service now supports copying graph data from relational sources to Amazon Neptune
Amazon Redshift 現在可以為 schemas 設置儲存上限
在 Redshift 中,Schemas 包含多個 Tables 及 Objects,使用者可以利用 Schema 將資料依據不同的邏輯概念,區分成不同的組別。例如:不同團隊之間的資料分別放在兩個 Schema,讓資料不會混淆。
而在使用 Schemas 管理資料時,有時會因為資料的增加,導致在執行查詢的期間沒有足夠的可用空間,從而使整個數據倉庫查詢速度下降。此次更新後,使用者可以利用新的 Schemas 配額功能,在 Schemas 上設置存儲的上限額度,以保留能夠支持查詢速度的可用空間,同時也可以幫助控制存放成本。
舉例來說:創建一個名為 sales_schema
的 Schema,並設置存放上限為 2GB 給 Sale
使用者。在 sales_schema
Schema 創立了 region
、lineitem
的 Table,藉此查看當 sales_schema
Schema 存放的資料大小高於 2GB 時,會發生什麼事?
## 創立 Schema
> CREATE SCHEMA sales_schema AUTHORIZATION sales QUOTA 2 GB;
## 建立 Table
> CREATE TABLE sales_schema.region (
+ r_regionkey int4,
+ r_name char(25),
+ r_comment varchar(152)
+ ) DISTSTYLE EVEN;
> CREATE TABLE sales_schema.lineitem (
+ l_orderkey int8,
+ l_partkey int8,
+ l_suppkey int4,
+ l_linenumber int4,
+ l_quantity numeric(12,2),
+ l_extendedprice numeric(12,2),
+ l_discount numeric(12,2),
+ l_tax numeric(12,2),
+ l_returnflag char(1),
+ l_linestatus char(1),
+ l_shipdate date,
+ l_commitdate date,
+ l_receiptdate date,
+ l_shipinstruct char(25),
+ l_shipmode char(10),
+ l_comment varchar(44)
+ ) DISTSTYLE EVEN;
## 將資料放進 Table 裡,第一次資料大小未超過 2GB,會成功執行
> COPY sales_schema.region FROM 's3://redshift-downloads/TPC-H/10GB/region/' iam_role '<Your-IAM-Role>' gzip delimiter '|' region 'us-east-1';
dev=> COPY sales_schema.region FROM 's3://redshift-downloads/TPC-H/10GB/region/' iam_role '<Your-IAM-Role>' gzip delimiter '|' region 'us-east-1';
INFO: Load into table 'region' completed, 5 record(s) loaded successfully.
COPY
## 放入更多資料,會超過 2GB。
## 一開始可以成功存放資料,但之後 Redshift 會偵測超過上限,並回復先前的動作
## 原因是 Redshift 是在動作完成後再檢測是否符合規範
> COPY sales_schema.lineitem FROM 's3://redshift-downloads/TPC-H/10GB/lineitem/' iam_role '<Your-IAM-Role>' gzip delimiter '|' region 'us-east-1';
dev=> COPY sales_schema.lineitem FROM 's3://redshift-downloads/TPC-H/10GB/lineitem/' iam_role '<Your-IAM-Role>' gzip delimiter '|' region 'us-east-1';
INFO: Load into table 'lineitem' completed, 59986052 record(s) loaded successfully.
ERROR: Transaction 40895 is aborted due to exceeding the disk space quota in schema(s): (Schema: sales_schema, Quota: 2048, Current Disk Usage: 2798).
Free up disk space or request increased quota for the schema(s).
範例參考:Monitor and control the storage space of a schema with quotas with Amazon Redshift
參考來源至:Announcing storage controls for schemas in Amazon Redshift
Amazon Athena 現在支援將 Apache Hive Metastore 作為 metadata catalog
原先在 AWS 上進行大數據分析的使用者,可以選擇使用 AWS Glue Data Catalog 連接 Hive 環境,取代 Hive Metastore,幫助建立 metadata catalog。但目前在 EC2 或是 EMR 上已經存在一個自行管理 Hive Metastore 環境的使用者,如果也想要利用 AWS 資源來創建 metadata catalog,可以選擇與 Athena 連接,就不需捨棄原先的 Hive Metastore。
與 Athena 連接後,Athena 會藉由 Lambda,利用 AWS PrivateLink 與 Hive Metastore 環境溝通。
參考來源至:Use Apache Hive Metastore as a metadata catalog with Amazon Athena
AWS Direct Connect 新增 Failover Testing 功能
AWS Direct Connect 幫助使用者建立從本地環境到 AWS 端的彈性網絡。此次更新後,使用 Direct Connect 的使用者可以利用 Resiliency Toolkit 測試工具,檢測 Direct Connect 的 Failover 彈性。在使用 Resiliency Toolkit 檢測 Failover 彈性的過程中,會先直接關閉 1 或多個 Border Gateway Protocol (BGP) sessions。使用者可以隨時停止測試,回復到測試前的設定。
Amazon Elasticsearch Service 現在支援 Cross-Cluster 搜索
以往如果使用者需要跨多個 indices 或 workloads 查詢和集中數據,則必須把資料放置到同一個 Domain 中,即 Elasticsearch Instance Cluster。儘管設置方式很簡單,僅需要管理一個 Domain,但是如果 workloads 之間是異構且具有不同的資源要求;又或是共享 Domain 的 workloads 數量增加到影響整個 Domain 效率的程度,容易導致整體的效率下降。
此次更新後,有了 Cross-Cluster 搜索的功能,使用者可以將不同的 indices 或 workloads 存儲在不同的 Domain 中,同時仍然能夠通過單一請求查詢所有 indices 或 workloads 中的資料。此外,Cross-Cluster 搜索的請求是經由加密的連線溝通,確保使用者資源的安全性。
參考來源至:Announcing Cross-Cluster Search support for Amazon Elasticsearch Service
Tag:Amazon Athena, Amazon Elasticsearch Service, Amazon Neptune, Amazon Redshift, Amazon SageMaker, Apache Hive Metastore, AWS, AWS Database Migration Service, AWS Direct Connect, AWS Fargate 1.4, AWS Single Sign-On, CI/CD, CodePipeline, Cross-Cluster, DMS, ephemeral storage, Failover Testing, IAM User, Kubeflow Pipeline, Machine Learning, metadata catalog, Okta, S3 action, schemas