Help us understand the problem. What is going on with this article?

【GAS】監査ログの取得(外部ドメインへの転送設定有効化を検知)

やりたいこと

  • Gmailの転送設定で外部ドメインへの転送を有効化したアカウントをSlackに通知させたい。
  • 情報漏洩やうっかり外部ドメインへの転送設定を検知、早期に対処するため。
  • 監査ログのチェックは1日毎で行う。
  • 監査ログのイベント名で「email_forwarding_out_of_domain」に一致したもののみSlackに通知する。

事前準備

Admin SDKのReportsを使うためにはサービスを追加しておく必要がある。

サービス > Admin SDK API の順に選択
バージョンは「reports_v1」、IDに「AdminReports」を入力して追加
image.png

コード

sample.gs
var slackWebhookUrl = 'Slack Webhook URL';

function AuditLog() {

  var now = new Date();

  var oneDayAgo = new Date(now.getTime() - 1 * 24 * 60 * 60 * 1000); 

  var startTime = oneDayAgo.toISOString();

  var endTime = now.toISOString();

  var page;

  page = AdminReports.Activities.list('all', 'user_accounts', {
      startTime: startTime,
      endTime: endTime,
      maxResults: 5,
      pageToken: pageToken
    });//page = AdminReports.Activities.list('all', 'user_accounts', {

  var items = page.items;

  if (items){

    for (var i = 0; i < items.length; i++){

      var item = items[i];

      if (item.events[0].name == "email_forwarding_out_of_domain"){

        var text = "Gmailの転送設定有効化を検知しました。 " + item.id.time + " " + item.actor.email + " " + item.events[0].name + " " + item.events[0].parameters;
        postSlack(text);
      }//if (item.events[0].name == "email_forwarding_out_of_domain"){

    }//for (var i = 0; i < items.length; i++){

  }//if (items){

}//function AuditLog() {

function postSlack(text){
  var data = {
    "text": text
  }//var data = {
  var options = {
    'method' : 'post',
    'contentType': 'application/json',
    'payload' : JSON.stringify(data)
  };//var options = {

  Logger.log(options);
  UrlFetchApp.fetch(slackWebhookUrl, options);
}//function postSlack(text){
ranmatsu
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away