顯示具有 gws 標籤的文章。 顯示所有文章
顯示具有 gws 標籤的文章。 顯示所有文章

2024年5月2日 星期四

[GWS] Google Workspace 設定 DLP 保護資料好幫手

 因為最近開始接觸 Google Workspace有客戶需要使用到 DLP 功能做資料保護

因此這邊準備了小步驟分享出來

首先 資料遺失防護 (DLP) 功能來建立及套用規則,控管使用者可在機構外部共用哪些檔案內容。資料遺失防護功能可讓您掌控使用者可共用的內容,並防止意外洩漏信用卡卡號或身分證號碼等機密資訊。 [1]

“”

資料遺失防護規則會觸發系統掃描檔案,確認是否含有機密內容,並禁止使用者共用這類內容。規則可以判定資料遺失防護事件的性質,而事件則會觸發動作,例如封鎖指定的內容。

您可以允許網域、機構單位或群組成員在受到管控的情況下共用內容。

資料遺失防護流程摘要:

  • 定義資料遺失防護規則,這些規則會定義哪些內容屬於機密資料,應加強防護。資料遺失防護規則適用於「我的雲端硬碟」和「共用雲端硬碟」。
  • 資料遺失防護功能會掃描內容,檢查是否出現違反資料遺失防護規則的情況,這類情況將觸發資料遺失防護違規事件。
  • 資料遺失防護功能強制執行您定義的規則,違規行為則會觸發動作 (例如傳送快訊)。
  • 您收到說明違反資料遺失防護規則的快訊。
透過上面介紹大概能理解什麼是 DLP 了吧!

那進入正題,由於我們是使用繁體中文又是台灣的資訊,其實你從 DLP 的範本針對台灣的偵測只有護照號碼,不像其他國家可以做到地址 姓名等等的偵測相對對來說少之又少,因此只能自己寫了,不過可以確定的是 DLP 是有支援繁體中文的,這部份已經有跟 GWS CE 和 GWS Support 確認過

因此這邊透過 Google RE2 語法寫出了判斷式來判斷台灣的身分證號以及地址 [2]
可以看到我寫了地址的規則運算式,只是這邊的觸發條件是只要符合其中一個條件就會
例如 : 你打新北市這樣當中有 "市" 這個字眼就會觸發 DLP
又或者你打士林區文林路,這樣當中有 "區" 和 "路" 這兩個也都會觸發 DLP
因此你可以針對你的需求去調整字串

再來身分證就單純多了,主要台灣是用 A ~ Z 去做證號開頭,後面數字就是9位數
所以這個判斷就很簡單

大家也可以透過連結 [2] 的範例去做調整符合自己的 DLP 配置
另外上面介紹這個方式可以用在 Gmail 的 DLP 偵測和 Google Drive 的 DLP 偵測喲 [3]


[1] https://support.google.com/a/answer/9646351?hl=zh-Hant
[2] https://support.google.com/a/answer/1371417?hl=zh-Hant
[3] https://support.google.com/a/answer/9655387?sjid=12267917821035671596-AP#zippy=%2C%E7%AF%84%E4%BE%8B-%E4%BD%BF%E7%94%A8%E9%A0%90%E5%85%88%E5%AE%9A%E7%BE%A9%E7%9A%84%E9%A1%9E%E5%88%A5%E4%BF%9D%E8%AD%B7%E7%A4%BE%E6%9C%83%E5%AE%89%E5%85%A8%E8%99%9F%E7%A2%BC%2C%E7%AF%84%E4%BE%8B-%E4%BD%BF%E7%94%A8%E8%87%AA%E8%A8%82%E5%81%B5%E6%B8%AC%E5%B7%A5%E5%85%B7%E4%BF%9D%E8%AD%B7%E5%85%A7%E9%83%A8%E5%90%8D%E7%A8%B1%2C%E7%AF%84%E4%BE%8B-%E4%BD%BF%E7%94%A8%E8%A6%8F%E5%89%87%E7%AF%84%E6%9C%AC%E4%BF%9D%E8%AD%B7%E5%80%8B%E4%BA%BA%E8%AD%98%E5%88%A5%E8%B3%87%E8%A8%8A

2023年9月27日 星期三

[GWS] 透過 App Script 你也可以完成的 Google Drive 盤點大法

 剛好最近有一個需求,就是盤點公司部門內 Google Drive 的文件總表,由於資料散落在各個資料夾內,對於資料整理較為不便利,想透過一些方法來更快速的去撈取 Drive 內的所有資料以及他所在的目錄,剛好前陣子有在摸索 App Script 這個服務 ,身為工程師就是想把重工的事情透過自動化去完成,因此解決了這件事情 

Step1 . 你需要在你想盤點的 Google Drive 內,新建一個 Google Sheet















Step2. 進入 Google Sheet 後,點選 擴充功能 > AppScript












Step3. 貼上我寫好的程式碼

// 您的 Google Drive 資料夾的 ID
var folderId = "XXXXXXXXXXXXXXXXXXXXXXX";

// 您的 Google Sheet 的 ID
var sheetId = "XXXXXXXXXXXXXXXXXXXXXXXXXX";

// 函數用於從 Google Drive 讀取文件名稱並寫入 Google Sheet
function writeToSheet() {
  var folder = DriveApp.getFolderById(folderId);
  var sheet = SpreadsheetApp.openById(sheetId);
  var sheetName = "sheet1";  // 修改為您的 Google Sheet 工作表名稱

  // 定義資料陣列,將名稱寫入 A 欄位和 B 欄位
  var data = [];

  // 取得資料夾內的所有檔案和子資料夾
  var files = folder.getFiles();
  var subFolders = folder.getFolders();

  // 建立用於記錄已處理檔案名稱的集合
  var processedFileNames = new Set();

  // 將資料夾的名稱和檔案的名稱添加到資料陣列,排除指定資料夾的檔案名稱
  while (files.hasNext()) {
    var file = files.next();
    if (!processedFileNames.has(file.getName())) {
      data.push([folder.getName(), file.getName()]);
      processedFileNames.add(file.getName());
    }
  }

  // 遍歷所有子資料夾,並從中獲取檔案名稱,排除指定資料夾的檔案名稱
  while (subFolders.hasNext()) {
    var subFolder = subFolders.next();
    var subFiles = subFolder.getFiles();
    while (subFiles.hasNext()) {
      var subFile = subFiles.next();
      if (!processedFileNames.has(subFile.getName())) {
        data.push([subFolder.getName(), subFile.getName()]);
        processedFileNames.add(subFile.getName());
      }
    }
  }

  // 檢查 `data` 陣列是否有任何檔案名稱。如果有,則將 `data` 陣列寫入 Google Sheet,從A2和B2格開始寫入
  if (data.length > 0) {
    var targetSheet = sheet.getSheetByName(sheetName);
    targetSheet.clear();  // 清除工作表內容
    targetSheet.getRange(1, 1, 1, 2).setValues([["檔案路徑", "SOP 名稱"]]); // 在A1和B1格中输入欄位名稱
    targetSheet.getRange(2, 1, data.length, 2).setValues(data);
  }
}

// 呼叫函數以執行操作
function main() {
  writeToSheet();
}
Step4. 貼上後有三個欄位需要修改, ID 如何產出 
1. // 您的 Google Drive 資料夾的 ID var folderId = "XXXXXXXXXXXXXXXXXXXXXXX" 

2. // 您的 Google Sheet 的 ID var sheetId = "XXXXXXXXXXXXXXXXXXXXXXXXXX" 

3. targetSheet.getRange(1, 1, 1, 2).setValues([["檔案路徑", "SOP 名稱"]]); // 在A1和B1格中输入欄位名稱 直接開啟 Drive 然後看上面的 URL 字串,同理 Google Sheet ID 也是一樣






















Step5. 按下儲存後,執行就會產出此 Google Drive 內的所有文件於 Google Sheet 上方便你做盤點的動作





2022年8月31日 星期三

[AWS] GWS User AD Join to Login AWS Account

最近剛好做到一個 Case,客戶是使用 GWS AD Account
有同時使用 GCP & AWS Service,但 IT 想統一 Account 去做管理
此步驟獻給類似需求情境的管理員們,同樣的 AzureAD 也是類似方法

Step1. 登入 要加入的 GWS Admin 管理介面

A. 選擇 Security > Authentication > SSO with SAML applications.

B. 拉到最下面, Download Metada

 Step2. 新增 IAM SAML Identity Provider 在 AWS Account

A. 首先登入想加入的 AWS Account 的 IAM Service
B. 並點選 IAM Service 下的 Identity Providers
C. 點選右邊 Add Provider
D. 點選 SAML
E. Provider Name (自行輸入,這邊是輸入 Join 的 GWS Domain)
F. Medata document (把剛剛在 GWS 端下載的檔案上傳上來)
G. 建置好後會取得 ARN 碼,這很重要 (複製下來貼旁邊)


Step3. 新增 AWS IAM Role 給予 透過 Identity Provider 的 GWS Account 權限 

A. 進入 IAM Console,選擇 Role > Create Role
B. 選擇 SAML 2.0 federation 下拉選單會帶出剛建立的 Provider
C. 然後點選 Allow programmatic and AWS Management Console Access
D. 點選 Next : Permissions 

E. 通過篩選把 AWS 預設 Role 帶出

F. 點選 左上方 放大鏡符號

G. 選取 Type > AWS managed – job function

H. 選擇 PowerUserAcces 後,點選下一步

I. Role details 輸入 Role 名稱 (GoogleSAMLPowerUserRole)
J. Description 輸入 Role 的大概內容 (GWS Login PowerUser Role)
K. 拉到最底,點選 Create Role

L. 建好後會看到你新建的 Role

M. 建置好後會取得 ARN 碼,這很重要 (複製下來貼旁邊)

N. 如需新增其他 Role ,重覆 Step 3 所有步驟即可即可

    •  Role 1 GoogleSAMLPowerUserRole_Login
      • arn:aws:iam::174XXXXXXXXX:role/GoogleSAMLPowerUserRole_Login


 Step4. 給予 GWS User AWS IAM Role

A. 回到 GWS Admin Console
B. 點選 Directory > Users > More Option > Manage custom attributes

C. Category: AWS
        Description: Amazon Web Services Role Mapping
D. Custom fields, enter the following values:
        Name: AssumeRoleWithSaml
        Info type : Text
        Visibility : Visable to user and admin
        InNo of Values : Muti-value
        E. 回到 Users 端,選擇要加入的 User Account
        F. 點選 User > User Information
        G. 移到最下面有個 AWS 的,點選編輯
        H. 這時輸入最一開始拿到的 Identitiy Providers + IAM Role ARN
                這邊要特別注意,兩個組合再一起時,中間要用 , 分開
例如 : 
arn:aws:iam:: 174XXXXXXXXX::samlprovider/Dev.Cloud.XXX.tv ”,”arn:aws:iam:: 174XXXXXXXXX:role/GoogleSAMLPowerUserRole

I. 一行是一個 Role,假設你需要給予兩個或是更多的 Role
        請依照同樣方式 Identitiy Providers,IAM Role ARN
J. 假設你有多個 AWS Account 也可以依照前面步驟
        從 Step 2 開始,在另一個 AWS Account 用同樣步驟進行
        Step 3 在另一個 AWS Account用同樣步驟進行
        Step 4 開始,但只需要從 E 項目開始把其ARN 新增至 User Information內即可
K. 可看到我同時有兩個不同AWS Account的 Providers + Role ARN


Step 5. 在 GWS 端設定 SAML Application 給 AWS Login 

A. 進到GWS Admin 管理介面
B. 點選左邊 Apps > Web and Mobile apps 
C. 選取 Add custom SAML App 


 D. App name : 輸入 AWS Login (顯示在右上角選單內的名稱)

        APP Icon : 上傳一個圖示(顯示在右上角選單內的圖示)

E. 點選下一步
        Services Provider Details
  • ACS URL : https://signin.aws.amazon.com/saml
  • Entity ID : urn:amazon:webservices
  • Name ID format : EMAIL
  • Name ID : Basic Information > Primary email
F. 點選下一步
        在 Attributes 內新增
  • 項次一 AWS 選擇 AssumeRoleWithSaml
  • App attributes 輸入 https://aws.amazon.com/SAML/Attributes/Role
  • 項次二 Base Information 選擇 Primary email
  •  App attributes 輸入
  •  https://aws.amazon.com/SAML/Attributes/RoleSessionName

    G.     按下 Finish 即完成

    H.     在來回到 Web and Mobile Apps 內,點選剛新增的 SAML APP

    I.     進入 User Access 把 Service Status 開城 ON for everyone


 J. 回到上一頁,按下 TEST SAML Login 就會出現,你配置的 Domain

或是點選右上角 APP 選單,往下滑也會有你建制的 SAML APP

K. 點選後就會出現 AWS Account and 你所賦予的 Role 權限

        此 Demo 建置了兩個 AWS Account 兩個 Role

L. 依據不同的權限,不同的帳號做登入測試


 

Step 6. 查找登入 Login Log 

A. GWS 端該如何查詢 Login Log
Console > Reporting > Audit and investigation > SAML log events


 B. AWS 端該如何查詢 Login Log

AWS Console > CloudTrail > Event history