Cloud SQL安全連線密技part2 – 使用Cloud SQL Proxy連線

上次介紹強制SSL連線Cloud SQL的方式,這次更厲害,在地端不用輸入Cloud SQL IP,使用Google研發的Cloud SQL Proxy連線。 步驟如下: 啟用Cloud SQL Admin API (點擊啟用) 選擇SQL主機所在的專案: 2. 安裝Proxy軟體 我是用64位元Mac, 指令如下,其他OS可參考這份文件: curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.darwin.amd64 3. 建立Service Account並且產生一個key Service Account可以設定下列三種權限之一: Cloud SQL ClientCloud SQL…

2 Comments

Cloud SQL安全連線密技part1 – 限定IP與強制SSL連線

Cloud SQL剛推出時,最讓人詬病的就是,它只能用外部IP讓人存取。 這句話感覺好像沒什麼,畢章在雲端嘛,還是要用外部IP啊! 安全性部分有改善,可以限定存取的IP位址或範圍: Google Cloud SQL可限定只允許某些IP連線 但重點是,連在GCP上的服務,要存取Cloud SQL都要透過外部!! 也就是說,我在GCP上開一台VM,要去Cloud SQL,我不能從GCP的內網去連Cloud SQL,要走外部IP,這樣就有外部的流量費用,而且連線沒有效率。 後來Cloud SQL進步了,可以允許內網過去了,如下圖: Google Cloud SQL可允許VM從內網連線 Private IP指的是在GCP上的VM (Compute Engine)在VPC網路上的IP,也就是GCP的內網IP。 Default不是指什麼預設值之類的,它是每一個GCP專案建立時,系統先給你一個內網(VPC網路),這個網路的名字叫做"Default"。 PS.一個GCP專案可以開5個VPC網路,它可以切割不同的subnet橫跨全球各Data Center (Region) 只要開放Private IP,VM就能從內網去連。 但如果從GCP以外的地方連,除了限定IP之外,怎麼做才更安全呢? 這時就就要帶key了! 在Cloud…

0 Comments
混沌工程–風險清單
安全考量

混沌工程–風險清單

混沌工程的主要目的是為幫助你提高對系統的信任度。在一些已知或未知的風險下若這些風險發生時還能夠持續運作下去,所以釐清整個系統的維運風險清單是你建立混沌工程的第一步需要做的。但不是直接做測試,例如斷開網路,或增加系統或網路的延遲性。你需要一套科學的方式來找出這些風險清單,並利用混沌工程驗證這些風險是否真的存在。 從試驗開始嗎? 既然chaos engineering是一套科學的方式方式,哪直接試驗應該就能很快驗證了。但什麼樣的試驗呢?但一套複雜而龐大的系統所需要的花費也是複雜而龐大的,而且可能會花費更多的資源及時間來計畫與執行。但我們必須先弄清楚什麼樣的試驗對我們的系統是最有價值的,避免資源與時間的浪費。在開始之前我們要先問自己,我們的系統有什麼可能出錯的地方,製作假架設性問題,而這些架設性問題清單就是我們的的風險清單而我們必須使用chaos engineer來驗證這些風險是否真的會發生。這個風險清單通常會來自兩種地方1. 從過去發生的事件來分析學習, 也就是lesson learned2. 沒有發生過的事件,但我們會自問。這一套系統什麼狀況可能發生?或是在維運這一套系統時什麼事會讓我們擔心的呢? 從過去的發生的事件來做分析學習應該是一個不錯的開始,但這些事件既然已經發生了你應該也會在事後修正它。chaos engineering能做的事是再次驗證這些已知發生的事件再次發生時系統能不能地承受它而不影響系統的正常。而且若要從leesson learned來做驗證學習代價通常是龐大的,代表發生的當下公司的營運已經發生問題了。用公司的營運來當lesson learned,我想如果你是老闆你應該也不會同意這種做法。Chaos engineering採取的是更主動的作法,在問題還沒有影響到系統維運之前就發現它修正它。哪麼從“沒有發生過的事件”這種假設性問題的清單我們可以怎麼做呢?這種假設性清單其實就已經在描繪你的整個系統架構。 從何處開始建立這種假設性問題呢?有幾個地方可以供參考1. 人員/流程/施作方式例如:什麼人/部門在為這套系統服務?目前CI/CD流程是怎樣的?我們有什麼監控系統?什麼人/部門需要回應監控?等等這一些非關技術面問提。2. 應用程式例如:程式對timeout的回應是什麼?接受到不認識的資料格式會怎麼處理?3. 平台例如:什麼樣的平台服務是系統在使用的,是K8s?還是Cloud 的serverless 功能?4. 基礎建設例如:什麼樣的VM/網路/資料中心是系統在使用的根據以上這幾個部分來描繪你的系統架構,你就會能更清楚在每一個部分裡。有哪些問題可能會存在,細節越清楚你就越能發現整個系統可能有哪些風險/弱點存在。 在詳細描述系統架構的同時你可以問自己這一些問題 Q1 : 這部分可能會失效嗎? Q2 : 這一部分以前有發生過問題嗎? Q3 :…

0 Comments

混沌工程簡介

Chaos Engineer Introduction 建立了你的資訊系統或IT服務平台給前端的使用者,大多數的人都是想到建立備援系統,或者是出事之後才從先前的事件/教訓中去強化這套系統或平台。但從已經發生的事件中去學習的代價是昂貴的。代表在事件發生的當下公司的業務停止運轉,企業承受著巨大的營業損失。哪麼有沒有方式能夠減少這一類的事件發生呢?換句說我有沒有可能強化這一套系統平台服務呢?若你有這種想法的話,哪麼Chaos engineering混沌工程將會是你的解方。 哪麼什麼是Chaos engineering混沌工程呢?簡單的來說“就是透過試驗性的方式來找出系統弱點的證據並在這個弱點發生前就先解決它“,這一個方式也是屬於風險管理中mitigation(減緩)的方式。另外在這個混沌工程原則的網頁中,給混沌工程下了一段定義 Chaos Engineering is the discipline of experimenting on a systemin order to build confidence in the system’s capabilityto withstand turbulent conditions in production.…

0 Comments
BigQuery –匯入資料 part 3
BigQuery –匯入資料 part 3-Data Transfer and Exports

BigQuery –匯入資料 part 3

Data Transfer and Exports 這一篇我們繼續來說明BQ的資料轉移與資料匯出,之前篇章我們提到的資料載入都是一次性的工作。但若你的資料是要定期性的匯入資料進入 BQ呢?BQ提供了 “Data transfer Servie" ,讓你定期的自動將資料匯入到 BQ中。這一類的工作BQ提供了Web UI介面/bq command 及REST API的方式來執行這種重複性的工作。BQ的 transfer servicet除了本身就支援Cloud Storage 之外還支援多種資料來源,例如Google Ads, Google Play, AWS Redshift, YouTube Channel。另外需要注意一點,因爲我們之前提到過BQ是Region Level的服務,Cloud storage也是。所以在設計上時會建議Cloud storage及BQ是在同一個Region(例如台灣),哪麼 data…

0 Comments
BigQuery –匯入資料 part 2
BigQuery –匯入資料 part 2-Data Management ( DDL and DML)

BigQuery –匯入資料 part 2

Data Management ( DDL and DML) 這一篇我們來講一下在BQ上的資料管理,例如我們需要刪除資料可以用如下的命令bq rm dataset_name.table_name 是直接刪除單一個table或是bq rm -f -f dataset_name其中 -r 是 recursively, -f force也就是不管該dataset有什麼資料直接強制刪除而且也不用再跳出確認是否要刪除的訊息。以上是用BQ在cloud shell的作法,當然也可以在SQL語法直接做這一類的操作例如Drop table if exists dataset_name.table_name在之前的篇章也有提到也可以設定table自動到期就刪除了選項,範例請參考BigQuery –匯入資料此篇文章。BQ的DDL(Data Definition Language)跟一般的DataBase一樣有,create/drop/alter table的等操作。當然也有DML(Data Manipulation Language)--delete/insert/merge等功能可以使用,但到目前為止無法使用DML來copy…

0 Comments
BigQuery –匯入資料 part 1
BigQuery –匯入資料 part 1-Loading Data into BigQuery

BigQuery –匯入資料 part 1

這一篇我們將展示如何將資料匯入BQ,將資料匯入BQ的方式有很多。我們將為大家一一的說明。

0 Comments

BigQuery 資料型態與功能 part 2

BigQuery Data types,Functionspart 2 String字串功能 文字的運用應該是在資料庫裡最普遍使用,BQ內建了很多文字運用的語法功能。請看一下範例 with string as ( select * from unnest ([ 'Taipei', 'New York', 'Singapore' ]) as city ) select city , LENGTH(city) as len ,…

0 Comments

淺談DevOps Security

Continuous Security 雲端時代的來臨,讓DevOps這個名詞一時間流行起來。DevOps無非是讓公司的平台服務“快速部署”及“快速的測試”達到公司想要的outcomes是合於期望的。但快速的結果可能是讓整個平台的安全打了折扣。請參考下圖,右手邊多了一塊是把Security加入考量的因素。 DevOps是一個持續不斷的對軟體產品做出快速的功能釋出及優化並且能提高開發人員與維運人員的協同作業,故在DevOps這一部分很多的工作都依靠自動化的作業。這一部分很多DevOps工程師都已經有相當的經驗了,這一篇我們淺談企業在實行DevOps的組織型態時如何能把安全的部分融入成整個DevOps的一部分且也不會讓Security拖累DevOps效能與效率。 Security in DevOps 關於這一點已經有很多專家在講DevOps的組織文化了,我們不在這裡“掉書包”了。相反的在Security裡,資安團隊著中的可能是如下的議題1. 根據內外部的法規法例及標準,我們的產品有沒有符合.例如歐盟的GDPR2. 我們的產品目前有多少的security incidents3. 我們的產品還有多少的資安問題需要上patch的等等傳統上開發團隊與資安團隊常常會因為各自的目標不同可能有互相對抗的狀況發生,這對企業整體運作無疑是不好的事。如何讓DevOps與Security運作順利呢?哪就必須讓Security融合成DevOps的一部分,DevOps教導我們把Development 跟Operation融合再一起。這時我們必須也要把Security融合近DevOps(如上圖)。DevSecOps--將DevOps的焦點,從整個CI/CD的快速部署整合把層次拉高到整個組織對資安的要求。成為之前提到的在整個產品的開發週期及維運中也把security加進去成為"continuous security"。 Continuous Security 這裡我們分三個面向1. 以測試導向的資訊安全 2. 監控與資安事件的回應3. 風險評估與逐步成熟的資安防禦 以測試導向的資訊安全 資訊安全的第一步是要定義我們要“控制“的部分有哪些,定義之後就需要施作而後做測試。例如在Linux 的 OS裡有哪些標準設定需要做,例如要不要開firewall,要開什麼port。什麼服務這台Linux只有提供Web service是不是應該只開Apache服務要不要有TLS的加密等。這些都需要被定義好並與相關的團隊協調後能夠施作而且能夠定期的稽核這些設定是否有符合規則,最好能夠夠自動化這一類的工作。例如Chef 的Inspec能夠支援這些稽核要求,甚至在CI/CD的階段也能夠把這些資安要求加入。例如把OWASP top 10的檢查在CI/CD 階段就加入檢查。簡單的來說就是把我們對整個產品的security…

0 Comments

BigQuery 資料型態與功能 part 1

BigQuery Data types,Functions 這一篇我們要來介紹BQ的資料型態與它的功用,BQ支援數字/文字/時間/地理位置/結構化/半結構化等資料型態。底下為大家一一說明INT64這是一個數字的整數型的資料也就是數字沒帶小數點,範圍可以從10的負19次方到10的19次方。若是real-valued的數字哪麼就需要用FLOAT64的資料型態。Numeric提供小數點前38位數及小數點之後9個位數的數字型態,這一類的資料型態適合被拿來做計算。若您的資料有需要在資料庫做計算就是適合此類的資料型態。STRING文字字串,提供不特定長度的文字字串以Unicode為基礎。TimeStamp一個絕對數字的時間值資料型態DateTime這是一個日曆的時間型態,Dtae 跟Time可以分開來。Geography顯示的是經緯度的資料型態Struct/Array這個在我們前面的BQ SQL基本操作裡有提到並且有範例。 我們來看一個Numeric型態的例子 with examples as ( select 'Mon' as day, 1481 as numrides, 1051 as oneway union all select 'Sun', 2336, 2936 ) select *,…

0 Comments

End of content

No more pages to load