#やりたいこと
- Gmailの転送設定で外部ドメインへの転送を有効化したアカウントをSlackに通知させたい。
- 情報漏洩やうっかり外部ドメインへの転送設定を検知、早期に対処するため。
- 監査ログのチェックは1日毎で行う。
- 監査ログのイベント名で「email_forwarding_out_of_domain」に一致したもののみSlackに通知する。
#事前準備
Admin SDKのReportsを使うためにはサービスを追加しておく必要がある。
サービス > Admin SDK API の順に選択
バージョンは「reports_v1」、IDに「AdminReports」を入力して追加
#コード
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){