Leo Yeh's Blog

SAS Viya (117)

教學目標

初步了解 SAS Viya 平台中兩大授權系統的基本概念。

重點概念

首先授權主要是用於確定哪些使用者能夠存取哪些資源,在 SAS Viya 平台中主要有兩個授權系統,當受驗證的使用者未指定任何權限登入至 SAS Viya 平台中的 SAS Environment Manager 時,預設則會在瀏覽列中看到資料、伺服器、內容、工作和我的認證等項目,其中資料的授權對應為 Cloud Analytic Services (CAS) 授權系統,而內容的授權對應為一般授權系統,並且每個系統皆使用不同的模型來保護不同類別的資源。此外這兩個系統皆能夠共享同一個身份提供者,並且預設禁止 (隱含) 任何未被允許授權的存取權限,以及皆能夠使用 SAS Environment Manager 或命令提示工具管理這兩個授權系統。

接著 Cloud Analytic Services (CAS) 授權系統和一般授權系統的詳細比較資訊,請參考下表。

特性 CAS 授權系統 一般授權系統
基礎 資料庫管理系統風格的存取控制。 以屬性為基礎的存取控制。
物件 CAS 物件,像是資料館和資料表。 一般物件,像是資料夾和報表。
繼承方式 主要透過物件的層次結構,像是從資料館至其資料表。 透過容器層次結構,像是從檔案資料夾至其成員。
優先權 按照物件的層次結構 (最接近的優先),然後按照身份類型 (使用者優先),最後按照設定類型 (拒絕優先)。 按照設定類型 (禁止總是優先)。
特殊存取 主要以篩選器進行列層級的存取。 主要以布林規則展開式進行有條件的存取。
最高權限 超級使用擁有最高權限。 SAS 管理員群組擁有最高權限。

此外在 CAS 授權系統中,成員資格,繼承和列層級篩選器皆會影響存取,至於在一般授權系統中,有關請求使用者,目標資源和環境的資訊皆會影響存取,每個存取請求皆有一個上下文,其中包括環境資料,像是時間和設備類型,並且能夠使用條件來結合環境限制。

再來 CAS 授權系統主要透過「sas-admin」命令提示工具,以「cas」參數進行授權管理,而一般授權系統主要透過「sas-admin」命令提示工具,以「authorization」參數進行授權管理,像是我們能夠透過「sas-admin cas tables list-controls —server serverA —caslib caslibA —table tableA」命令輸出 tableA 的直接存取控制列表,更多使用範例請參考官方文件,以及我們能夠透過「sas-admin authorization show-rule —id d85144aa-79dc-4852-b949-645cc5ff8ffc —details」命令顯示特定規則的詳細屬性,更多使用範例請參考官方文件。此外若是企業有複雜權限管理的需求時,則我們就能透過「sas-admin」命令提示工具進行客製開發來滿足需求,像是企業資訊人員從資料庫產生 CSV 資料檔之後,我們再透過 Python 程式碼整合「sas-admin」命令提示工具進行網域使用者權限同步、群組權限同步和物件授權同步的自動化整合應用。

最後 SAS Viya 平台其本質上為開放,它將是一個非常強大分析平台,能夠透過提供的命令提示工具進行客製化開發,但是若是實際用過「sas-admin」命令提示工具,就能發現為了解決簡單的情境應用就會需要執行更複雜的任務,此時會整合許多個「sas-admin」命令提示工具,非常麻煩,因此 SAS 官方就提供「pyviyatools」基於「sas-admin」命令提示工具的套件,讓程式開發人員直接透過 Python 程式針對 SAS Viya 平台的授權系統進行自動化操作。此外這個「pyviyatools」套件是開放源始碼,所以若當我們發現「pyviyatools」套件無法解決企業客戶所面臨複雜的整合問題,則建議參考 Github 專案中相關的 Python 程式碼進行彈性調整,以利解決企業客戶所面臨複雜的整合問題。

相關資源

SAS Viya (116)

教學目標

初步了解 SAS 資料管理的基本概念。

重點概念

首先人工智慧和機器學習若要為企業帶來實際投資回報的成果,則需提供一個良好的資料管理平台,此時 SAS 平台就能夠從規劃開始進行轉換、整合、管理和保護資料,並且改進其整體可靠品質,更能夠提供自主分析大量資料和發現洞察資訊的能力,此外人工智慧和機器學習同時也有機器更有效的改善資料整合,而 SAS 已經連續第九年被評為 Gartner 評估為資料整合工具魔力象限的領導者,根據 Gartner 的說法提到資料整合工具市場正在重新成為混合雲之間的整合,中繼資料和增強資料管理的新需求將迫使我們重新思考現有的做法,資料不再存在於組織內部,而是生活在雲端平台上,此外正確的資料整合解決方案將有助於打破資料孤島,並且解決資料問題,同時協助企業達成未來的願景。

接著 SAS 平台主要有用於資料管理的 SAS 9 和用於資料準備的 SAS Viya 兩大類型的解決方案,透過 SAS 9 將能夠協助企業改善、整合和治理資料,並且協助企業成為以資料驅動為主企業文化,以及使用可被信任的資料做出更好的決策,其中 SAS Enterprise Guide 和 SAS Data Integration Studio 客戶端工具皆是對於使用者非常容易上手操作的資料管理實用工具 。至於透過 SAS Viya 將能夠快速準備分析資料,無需撰寫程式,使用專業技能和依靠資訊人員,並且幫助使用者能夠在沒有資料工程師或資料科學家的情況下從直觀的界面完成存取、設定、清理和轉換等資料相關工作,而我們將能夠透過 SAS Data Preparation、SAS Data Explorer 和 SAS Data Studio 網站工具快速進行資料剖悉、轉換和處理之後,再透過 SAS Visual Analytics 網站立即以視覺化的方式快速呈現資料背後所代表的重要觀點。

再來針對資料管理的通用定義,若我們從較高的層面來探討,則其代表了整合、清理,遷移和改進企業資料的做法,其目標是產生一致、準確和可靠的資訊,以利我們能夠使用這些資訊做出更好的業務決策。雖然聽起來很簡單,但事實卻是不簡單,無論是諮詢還是客戶方面,皆有發生因為企業組織的資料管理不善導致員工薪酬不合理、訴訟、錯失商機和其它災難的發生,而許多企業組織中的資料管理工作目前皆還是手動進行密集的處理,當然企業組織也可能透過在凌晨時啟動 ETL 作業來實作流程自動化的部分,但是資料管理通常還是需要大量的人為操作。其次進階的資料管理流程源自於 20 世紀 80年代的資料倉儲原則,但請注意目前世界已經發生了許多的變化,現今資料管理已經不僅僅是在內部部署關聯資料庫中控制結構化資料,透過 SQL 進行查詢而已,如今更重要的則是如何管理和理解社群媒體網站的大量的使用者資料,也就是非結構化資料正在爆炸式被產生和使用,常見的輕量級資料交換格式,也就是 JavaScript Object Notation,簡稱 JSON。因此為了有效管理不同資料來源和類型,則我們必須導入對於企業組織正確管理其資料至關重要的新工具和自動化流程,其中自動化流程,其中流程主要包括資料探索、擷取、剖悉、分類、分析、建議、轉換、優化、部署、營運和監控。

最後 SAS 平台作為良好的資料管理平台,有提供許多實用的功能,但是若僅能提出一項有關資料管理最關鍵的應用功能,那就是如何在 SAS Viya 中套用以列為基礎的安全設定,目前 SAS Viya 除了提供非常強大的使用者權限和資料存取的安全管控之外,更提供以列為基礎的安全設定,這將會是針對大量資料進行集中控管最關鍵的應用功能了,試想若我們集中企業的所有資料至資料管理平台中時,不同部門和專案的成員能夠直接存取沒有被授權使用的資料嗎?此時要如何進行預防呢?SAS Viya 直接從最底層的資料館進行以列為基礎的安全設定保護資料僅能夠被授權使用的成員進行存取,以利確保機敏資料不外洩,才能夠讓不同部門和專案的成員更放心的將資料透過 SAS 平台進行集中管理。

相關資源

SAS Viya (115)

教學目標

初步了解 SAS Workflow Manager 中服務任務的基本概念。

重點概念

首先許多產業的企業透過採用企業流程管理 (Business Process Management,BPM) 實務來管理應用程式,資料和人員的整合,其是營運管理中的一門學科,人們使用各種方法來發現,建模,分析,測量,改進,優化和自動化商業流程,以致力於透過管理業務流程來提高企業績效,並且用於管理業務流程的任何方法組合皆是企業流程管理,其中流程能夠為結構化的和可重複的,也能夠為非結構化的和可變的。簡單來說需要人工處理任務的系統皆會自動觸發服務,而我們在 SAS Viya 平台中主要透過 SAS Workflow Manager 提供了將基礎工作流程管理快速整合至企業營運和商業產品中的工具,此外 SAS Workflow Manager 2.2 主要提供基於符合企業流程模型和符號 (Business Process Model and Notation,BPMN) 之 2.0 標準的開放源始碼引擎,其支援視覺化表示和行為的產業標準,並且為已建立的工作流程模式提供支援,因此能夠達到高效率和可擴展性,以及與其它標準業務流程工具軟體進行整合。

接著使用 SAS Workflow Manager 開發和啟用工作流程定義,主要會先製訂工作流程定義的草稿,我們能夠建立新的工作流定義或導入現有定義,並且對其進行修改和儲存定義的工作草案,並且將草稿保存為當前版本,僅有我們能夠查看和編輯當前版本,並且建立工作流程的編號版本。而具有相對應權限的任何使用者皆能夠查看工作流程定義的編號版本,並且啟用特定版本的工作流程,以及為了使最終使用者的客戶端應用程式能夠建立工作流程的執行實體,您必須啟用特定版本的工作流程定義。此外在工作流程定義中主要能夠定義「服務任務」,其主要是調用可進行業務操作的任務,當工作流程執行到達服務任務時,將會自動觸發這些操作,像是我們能夠使用服務任務執行以下四大類型的操作:

  1. 向流程參與者和群組發送有關截止日期或狀態更改的電子郵件。
  2. 透過執行網路服務與其他應用程式進行通訊。
  3. 執行企業專屬的業務邏輯或規則。
  4. 將系統與其它後端系統進行整合。

再來我們在定義網路服務任務時,可以選擇以下不同類型的操作,分別為調用 REST 或 SOAP 網路服務、發送電子郵件或向單個使用者或群組發送通以及調用作業執行服務中已定義的作業,請注意我們必須先設定執行工作流程中的服務性帳號,主要透過 SAS Environment Manager 設定在「sas.workflow.client.sasmodelmanager 」中的「defaultServiceAccount 」欄位設定授權使用者,若沒有進行設定將會在執行服務任務時發生以下錯誤訊息,此錯誤訊息主要是我們透過服務任務調用 REST 網路服務時,發生無法正常執行的錯誤訊息,並且在「/var/log/sas/viya/workflow/default/sas-workflow_2019-08-20_06-59-04.log」的記錄檔中所發現「No account configured to execute Service Tasks.」關鍵字。

1
2
3
4
5
2019-08-20 08:47:13.601 ERROR 12994 --- [o-auto-1-exec-8] c.s.w.s.d.m.s.WorkflowOAuth2Service      : sasdemo01(69acc283) [886378ce2d2b4a80] [SERVICE_TASK_NO_SERVICE_ACCOUNT_CONFIGURED] No account configured to execute Service Tasks.
2019-08-20 08:47:13.602 ERROR 12994 --- [o-auto-1-exec-8] c.s.w.s.d.m.s.WorkflowServiceTask : sasdemo01(69acc283) [886378ce2d2b4a80] [SERVICE_TASK_EXCEPTION] ServiceTask exception: processId=WFacd20190-3e1f-434d-b58b-5456013540ad, processDefinitionId=WF6a7ce2ce-a372-4030-8bf2-6a3c29c6100d, executionId=WFe38e644e-7651-4f42-ae35-53d2b0cf12ff, activityId=WF3A1150B6-9ECD-4868-BE95-03770DF5E35E
2019-08-20 08:47:13.628 ERROR 12994 --- [o-auto-1-exec-8] c.s.c.r.e.CompleteExceptionHandler : sasdemo01(69acc283) [886378ce2d2b4a80] [INTERNAL_SERVER_ERROR] Internal server error. Request: uri=/workflow/processes;client=203.66.12.194;session=A085E8290055EF0EC4D8C8C45241FC08.workflow-10-140-0-9;user=sasdemo01. Error details: org.flowable.engine.common.api.FlowableException - 'No account configured to execute Service Tasks.'
2019-08-20 08:47:13.638 ERROR 12994 --- [o-auto-1-exec-8] com.sas.commons.rest.ExceptionLog : sasdemo01(69acc283) [886378ce2d2b4a80] org.flowable.engine.common.api.FlowableException: No account configured to execute Service Tasks.
2019-08-20 08:47:13.638 ERROR 12994 --- [o-auto-1-exec-8] com.sas.commons.rest.ExceptionLog : sasdemo01(69acc283) [886378ce2d2b4a80] caused by: com.sas.workflow.service.domain.model.WorkflowRuntimeException: No account configured to execute Service Tasks.

最後當我們設定完成設定執行工作流程中服務任務的服務性帳號之後,建議透過「/etc/init.d/sas-viya-workflow restart」指令重新啟動 Workflow 服務,並且重新登入 SAS Viya 平台啟用工作流程,此時就能夠正常執行服務任務,以利與企業內部的流程和系統進行整合應用。此外我們更能編輯畫面右上方的定義屬性,進行定義屬性的相關設定,並且在服務任務中,以「${屬性名稱}」的方式動態替換為工作流程中對應屬性的內容,這對於後續維運人員來說將會是一個非常棒的實用功能,僅需要修改一個屬性就能夠同時更新多個服務任務中執行的內容。

相關內容

SAS Viya (114)

教學目標

初步了解如何將 Github 中的儲存庫中的 Python 檔案同步至 SAS Viya 平台中 SAS Model Manager 專案中的特定模型進行管理。(此篇為程式開發心得分享,並且產品實際操作)

重點概念

首先 SAS Viya 分析平台比起 SAS 9 平台已經越來越開放,並且 SAS Viya 分析平台已經有提供 REST API 讓開發者能夠以 SAS Viya 分析平台為基礎開發客製化的應用程式,以利簡化複雜流程和解決關鍵問題,但是要如何整合開開放源始碼進行應用呢?此時我們能夠先試想一個應用情境,並且根據應用情境思考如何整合 SAS Viya 分析平台所提供的 REST API 開發應用程式,請注意針對不同應用情境開發應用程式時不會僅使用單一平台的 REST API,而是會整合多個不同平台的 REST API,像是如果我們要將 Github 中的儲存庫中的 Python 檔案同步至 SAS Viya 平台中 SAS Model Manager 專案中的特定模型進行管理該如何進行客製化開發呢?此時我們主要能夠先分成三大部份,分別為:

  1. 取得 SAS Model Manager 中的屬性設定。
  2. 下載 Github 中的儲存庫中的 Python 檔案。
  3. 上傳 Python 檔案至 SAS Model Manager 專案中。

接著針對取得 SAS Model Manager 中模型的屬性設定,我們主要能夠透過 SAS Viya 的 REST API 撰寫以下三段程式碼進行實作,分別為:

取得使用 SAS Viya 平台的存取憑證

1
2
3
4
5
6
base_url = '<SAS Viya URL>'
consul_token = '<Consul Token>'
url = base_url + '/SASLogon/oauth/clients/consul?callback=false&serviceId=app'
headers = {'X-Consul-Token': consul_token}
r = requests.post(url, headers=headers)
access_token = json.loads(r.text)['access_token']

取得 Model Manager 中所有模型的基本資料

1
2
3
4
url = base_url + '/modelRepository/models'
headers = {'Accept': 'application/vnd.sas.collection+json','Authorization': 'Bearer ' + access_token}
r = requests.get(url, headers=headers)
models = json.loads(r.text)

取 Model Manager 中所有模型的屬性資料

1
2
3
4
5
6
7
8
9
10
i = 0
for m in models['items']:
modelId = m['id']
headers = {'Authorization': 'Bearer ' + access_token}
url = base_url + '/modelRepository/models/' + modelId
r = requests.get(url,headers = headers)
models['items'][i]['properties'] = {}
for property in json.loads(r.text)['properties']:
models['items'][i]['properties'][property['name']]=property['value']
i = i + 1

當完成上述程式碼之後,就能夠取得 SAS Model Manager 中模型的屬性設定,此時我們就能夠建立有關 Github 儲存庫相關的參數設定,像是模型相關的 Github 存取憑證、儲存庫名稱和資料夾名稱設定為 SAS Model Manager 中模型的屬性,但是為何要這樣做呢?因為 SAS Model Manager 已經提供簡單易用的界面進行操作,並且能夠針對不同的模型分別進行屬性設定。

再來下載 Github 中的儲存庫中的 Python 檔案,我們主要能夠透過撰寫以下程式碼進行實作,分別為:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from github import Github
g = Github('<Github Access Token>')
gitAccountName = '<Github Account Name>'
github_lists = []
id = 0
for repo in g.get_user().get_repos():
project_repos.append({'name':repo.name})
github_lists.append({'repo_name':repo.name,'folders':[]})
repo = g.get_repo(account + "/" + repo.name)
contents = repo.get_contents("")
folders = []
while contents:
file_content = contents.pop(0)
if file_content.type == "dir":
folders.append(file_content.path)
github_lists[id]['folders'] = folders
id = id + 1

當完成上述程式碼之後,就能夠取得 Github 儲存庫中對應所有資料夾的名稱,此時我們就能夠將 SAS Model Manager 中模型的名稱和 Github 儲存庫中資料夾的名稱進行對應,以利將 Github 儲存庫資料夾中的相關檔案上傳至 SAS Model Manager 模型中,以利後續進行模型管理的生命週期。

最後上傳 Python 檔案至 SAS Model Manager 專案中,我們主要能夠透過 SAS Viya 的 REST API 和 PyGithub 套件撰寫以下程式碼進行實作,分別為:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
projectName = '<Project Name>'
modelName = '<Model Name>'
gitRepoName = '<Github Repository Name>'
gitFolderName = '<Github Folder Name>'
gitAccountName = '<Github Account Name>'
repo = g.get_repo( gitAccountName + '/' + gitRepoName )
contents = repo.get_contents('')
while contents:
file_content = contents.pop(0)
if file_content.type == 'dir':
contents.extend(repo.get_contents(file_content.path))
else:
if gitFolderName in file_content.path and '.py' in file_content.path:
url = base_url + '/modelRepository/projects'
headers = {'Accept': 'application/vnd.sas.collection+json','Authorization': 'Bearer ' + access_token}
r = requests.get(url, headers=headers)
json_object = json.loads(r.text)
projectId = ''
for item in json_object['items']:
if item['name'] == projectName:
projectId = item['id']
url = base_url + '/modelRepository/models'
headers = {'Accept': '','Authorization': 'Bearer ' + access_token}
r = requests.get(url, params={}, headers=headers)
json_object = json.loads(r.text)
modelId = ''
for item in json_object['items']:
if item['name'] == modelName:
modelId = item['id']
url = base_url + '/modelRepository/models/' + modelId + '/contents?name=' + file_content.name
headers = {'Content-Type': 'application/octet-stream','Authorization': 'Bearer ' + access_token}
r = requests.post(url, data=file_content.decoded_content, headers=headers)

其中透過 PyGithub 套件取出的檔案內容主要需針對 github.ContentFile 透過 decoded_content 才能夠取得檔案的原始內容,並且再來透過 REST API 的 POST 方法宣告 Content Type 為 application/octet-stream 將檔案的原始內容上傳 Python 檔案至 SAS Model Manager 專案對應的模型中。

總結雖然我們能夠透過 Python 程式碼整合 SAS Viya 分析平台所提供的 REST API 開發應用程式,但是還有許多部份需要透過專業能力進行調整,像是程式碼如何進行維護、效能如何進行優化、… 等。

相關資源

AWS 資訊安全 (1)

教學目標

初步了解 AWS 資訊安全之基本概念。

重點概念

首先 AWS 主要提供可擴展的雲端運算平台,旨在實現高可用性和高可靠性,提供讓客戶能夠運行各種應用程式的工具,並且保護系統和資料的機密性,完整性和可用性,更重要的是讓客戶好維護已經在正式環境運行的系統。而 AWS 雲端服務的基礎架構是最靈活和最安全的雲端運算環境之一,以利客戶能夠快速安全的部署應用程式和資料。其中 AWS 使用冗餘和分層控制,持續驗證和測試,以及大量自動化,以利確保底層基礎設施得到全天候監控和保護,並且 AWS 確保在每個新資料中心或服務中複製相關元件,以利讓所有 AWS 客戶皆能夠從資料中心和網路架構中受益,這些架構可滿足對於資訊安全敏感度最高要求的客戶,簡單來說,我們獲得一個彈性基礎架構,旨在實現高安全性,而無需使用資本支出和傳統資料中心的運營開銷。

接著 AWS 主要設定基礎架構的元件和提供用於增強安全性的服務和功能,像是身份和存取管理 (AWS Identity and Access Management, IAM) 服務就是用於管理 AWS 服務中使用者和權限控管,以利確保提供客戶安全的服務。為了確保提供安全服務,AWS 為每種不同類型的服務提供共享責任模型 (Shared Responsibility Model),在 AWS 共享責任模型下,其提供全面安全性基礎設施和基礎運算,儲存,網路和資料庫服務,以及更高層次的服務, AWS 提供一系列安全服務以及客戶可用於保護其資產的功能之外,還負責保護在雲端中資料的機密性、完整性和可用性,以及滿足特定業務需求資訊保護,為了理解有關資訊安全的共享責任模型,根據互動方式和存取功能的不同,我們將其分為三大類型,分別為:

  1. 基礎架構服務:主要包括運算服務和相關服務,像是 Amazon EC2、Amazon Elastic Block Store (Amazon EBS),Auto Scaling 和 Amazon Virtual Private Cloud (Amazon VPC),透過這些服務,我們將能夠使用與內部部署解決方案類似,並且基於兼容的技術來建立雲端基礎架構,同時我們能夠控制作業系統,並且設定和操作任何提供對於虛擬化使用者存取的身份管理系統。
  2. 容器服務:主要包括獨立的 Amazon EC2 或其他基礎架構上執行的容器服務,像是Amazon Relational Database Services (Amazon RDS)、Amazon Elastic Map Reduce (Amazon EMR) 和 AWS Elastic Beanstalk,請注意我們無法管理作業系統或平台,而是透過 AWS 為這些容器應用程式提供託管服務,至於我們僅需負責設定和管理網路控制,像是防火牆規則和管理平台中的使用者存取。
  3. 抽象服務:主要包括儲存服務,資料庫服務和訊息服務,像是 Amazon Simple Storage Service (Amazon S3)、Amazon Glacier、Amazon DynamoDB、Amazon Simple Queuing Service (Amazon SQS) 和 Amazon Simple Email Service (Amazon SES),這些抽像服務能夠在 AWS 平台建立和執行雲端應用程式,並且我們能夠透過 AWS API 存取這些抽象服務的端點,此時 AWS 主要管理底層服務元件和作業系統,我們共享底層基礎架構,至於抽象服務提供了一個多租戶平台,以安全的方式隔離資料,並且提供與強大的使用者存取。

當然我們更能夠透過共享責任模型在 AWS 中設計資訊安全管理系統 (Information Security Management System, ISMS),以利與客戶共同努力實現資訊安全的目標,像是協助客戶的企業通過 ISO 27001 標準認證。

再來 AWS 有責任共享合規性,透過以治理為中心,以及完善的稽核服務功能與適合的合規性標準整合在一起,也就是 AWS Compliance 主要以傳統應用程式為基礎,協助客戶在AWS 安全的控制環境中建立和營運系統,同時為客戶提供的 IT 基礎架構的設計和管理已經符合資訊安全最佳實務和各種安全標準,像是 ISO 27001、FIPS 140-2、CSA、PCI DSS、HIPAA、GDPR、… 等。此外客戶非常在乎隱私權與資料安全,此時透過 AWS 簡單、強大的工具,將允許我們決定儲存內容的位置、保護傳輸中和靜態內容的安全,以及管理使用者對 AWS 服務和資源的存取,讓我們完全擁有及控制內容的權限,同時 AWS 更負責實作複雜的技術與實體控制措施,旨在防止未經授權的存取或揭露客戶的資料內容。

最後 AWS 更提供無伺服器服務,像是 AWS Lambda,透過無伺服器服務將能夠處理更多的工作負載來實現可擴展性,效能和成本效率,而無需管理底層基礎架構,這些工作負載每秒可擴展到數千個並發請求,目前 AWS 客戶使用無伺服器服務用於每月處理數萬億個請求,從媒體和娛樂到金融服務和其他受監管產業的各種客戶皆注意到無伺服器服務。此外這些客戶除了非常關注透過最擅長的方式來縮短產品上市時間,優化成本、提高靈活性和有效率的進行運營業務之外,更注重資訊安全的管理,此時 AWS 對於無伺服器服務主要管理底層基礎架構和基礎服務,作業系統和應用程式平台,至於客戶僅需負責程式碼的安全性,敏感資料的儲存和存取以及同於無伺服器服務和函數內的身份和存取管理。

相關資源

📖 more posts 📖