이메일 모니터링

Email Audit API로 이메일 모니터링을 설정하려면 관리자는 감사자가 특정 사용자의 주고받은 이메일의 사본을 첨부파일로 받을 기간을 설정합니다. 일일 최대 모니터 생성 및 삭제 요청 수는 1,000개입니다. 이 한도는 도메인별로 적용되며 하루 동안 관리자의 모든 요청이 포함됩니다.

모니터링되는 이메일 시나리오에는 다음 세 가지 유형의 사용자가 포함됩니다.

  • 관리자 — 모든 도메인 관리자는 Email Audit API의 모니터 리소스를 사용하여 이메일 모니터를 생성, 검색, 업데이트, 삭제할 수 있습니다. 또한 관리자는 API를 사용하여 편지함을 다운로드할 수 있습니다. 이러한 작업은 관리자가 제어하는 도메인 내에서만 수행할 수 있습니다.

  • 소스 사용자 — 소스 사용자는 모니터링 대상 사용자가 감사하는 메시지를 수신하거나 전송하는 사용자입니다. 모든 도메인 관리자 또는 계정 사용자가 소스 사용자가 될 수 있습니다. 소스 사용자는 관리자 및 대상 사용자와 동일한 도메인에 있어야 합니다.

  • 대상 사용자 — 대상 사용자는 감사된 이메일 메시지를 수신하는 감사자입니다.

    • 수신 및 발신 첨부파일, 전달된 메일, 휴대기기에서 보낸 이메일 메시지를 포함하여 모든 수신 및 발신 이메일 메시지의 숨은참조 (숨은참조)를 수신합니다.
    • 또는 도메인 관리자는 대상 사용자에 대해 추가 감사 기능을 사용 설정할 수 있습니다. 선택적 기능에는 저장된 이메일 초안 감사, 도메인 내부 또는 외부에 있을 수 있는 다른 사용자와의 보관처리된 행아웃 채팅 감사가 포함됩니다.
    • 대상 사용자가 메일의 숨은참조 사본을 수신하더라도 소스 사용자의 계정에서 액세스할 수 있는 메일 헤더에 숨은참조 연결이 표시되지 않습니다.
    • 감사된 각 이메일 메시지는 대상 사용자에게 이메일 첨부파일로 전송됩니다. 그리고 도메인 관리자는 이러한 메시지를 전체 이메일 메시지 또는 메시지 헤더만으로 구성할 수 있습니다.
    • 이 대상 사용자는 모니터링되는 도메인에 활성 이메일 계정이 있어야 합니다. 관리자 및 소스 사용자와 연결된 동일한 도메인이어야 합니다.
    • 대상 사용자는 관리자 또는 도메인 내 사용자일 수 있습니다. 또한 이 대상 사용자는 역할을 전환하여 다른 대상 사용자가 감사하는 소스 사용자가 되어 첫 번째 대상 사용자에게 전송된 모든 감사 이메일 메시지의 사본을 수신할 수 있습니다.
    • 도메인 관리자는 고유한 '대상 사용자 - 소스 사용자' 쌍 하나에 대해 하나의 감사 이메일 모니터를 만듭니다. 즉, 감사 관계는 대상 사용자 한 명, 소스 사용자 한 명입니다. 각 감사는 API 모니터 리소스를 사용하여 수행됩니다. 대상 사용자는 여러 API 모니터를 사용하여 도메인의 여러 사용자를 감사할 수 있습니다. 또한 여러 API 모니터를 사용하여 다수의 대상 사용자가 하나의 소스 사용자를 감사할 수 있습니다.
    • '대상 사용자 - 소스 사용자' 쌍에 대해 추가 API 모니터가 생성되거나 기존 API 모니터가 업데이트되면 마지막으로 생성된 모니터가 이 쌍의 기존 모니터를 대체합니다. 기본적으로 API 모니터를 업데이트하는 방법은 다음과 같습니다. 모니터 업데이트에 대한 자세한 내용은 이메일 모니터 업데이트를 참조하세요.

이메일 모니터링 만들기

이메일 모니터를 만들려면 다음 POST 요청을 이메일 모니터 리소스와 함께 보냅니다.

POST https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/DOMAIN_NAME/SOURCE_USERNAME

다음을 바꿉니다.

  • DOMAIN_NAME: Google Workspace 도메인 이름입니다(예: example.com).
  • SOURCE_USERNAME: 모니터링할 사용자 이름입니다.

POST 요청에는 다음 Content-type 헤더가 포함됩니다.

Content-type: application/atom+xml

이메일 모니터링 요청에 사용할 매개변수의 전체 목록은 리소스: monitor을 참고하세요.

새 모니터를 만드는 예

이 예에서는 다음 매개변수를 사용합니다.

  • 감사할 사용자는 amal@example.com입니다.
  • destUserName의 새 값은 izumi입니다.
  • beginDate의 새 값은 June 15, 2022, 00:00 hours입니다.
  • endDate의 새 값은 June 30, 2022, 23:20 hours입니다.
  • incomingEmailMonitorLevel의 새 값은 FULL_MESSAGE입니다.
  • outgoingEmailMonitorLevel의 새 값은 HEADER_ONLY입니다.
  • draftMonitorLevel의 새 값은 FULL_MESSAGE입니다.
  • chatMonitorLevel의 새 값은 FULL_MESSAGE입니다.

프로토콜

POST https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal

<atom:entry xmlns:atom='http://www.w3.org/2005/Atom' xmlns:apps='http://schemas.google.com/apps/2006'>
   <apps:property name='destUserName' value='izumi'/>
   <apps:property name='beginDate' value='2022-06-15 00:00'/>
   <apps:property name='endDate' value='2022-06-30 23:20'/>
   <apps:property name='incomingEmailMonitorLevel' value='FULL_MESSAGE'/>
   <apps:property name='outgoingEmailMonitorLevel' value='HEADER_ONLY'/>
   <apps:property name='draftMonitorLevel' value='FULL_MESSAGE'/>
   <apps:property name='chatMonitorLevel' value='FULL_MESSAGE'/>
</atom:entry>

성공하면 서버는 201 CREATED 상태 코드와 새 모니터 설정을 표시하는 entry 요소가 있는 AtomPub 항목을 반환합니다.

<entry xmlns:atom='http://www.w3.org/2005/Atom' xmlns:apps='http://schemas.google.com/apps/2006'>
    <id>https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/id</id>
    <updated>2022-04-17T15:02:45.646Z</updated/>
    <link rel='self' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/id'/>
    <link rel='edit' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/id'/>
    <apps:property name='destUserName' value='izumi'/>
    <apps:property name='beginDate' value='2022-06-15 00:00'/>
    <apps:property name='endDate' value='2022-06-30 23:20'/>
    <apps:property name='incomingEmailMonitorLevel' value='FULL_MESSAGE'/>
    <apps:property name='outgoingEmailMonitorLevel' value='HEADER_ONLY'/>
    <apps:property name='draftMonitorLevel' value='FULL_MESSAGE'/>
    <apps:property name='chatMonitorLevel' value='FULL_MESSAGE'/>
</entry>

Java

import java.util.Calendar;
import com.google.gdata.client.appsforyourdomain.audit.AuditService;
import com.google.gdata.data.appsforyourdomain.generic.GenericEntry;
import com.google.gdata.client.appsforyourdomain.audit.MailMonitor;
...

MailMonitor monitor = new MailMonitor();
Calendar beginDate = Calendar.getInstance();
beginDate.set(2022, Calendar.JUNE, 15, 0, 0)
monitor.setBeginDate(beginDate.getTime());
Calendar endDate = Calendar.getInstance();
endDate.set(2022, Calendar.JUNE, 30, 23, 20);
monitor.setEndDate(endDate.getTime());
monitor.setIncomingEmailMonitorLevel("FULL_MESSAGE");
monitor.setOutgoingEmailMonitorLevel("HEADER_ONLY");
monitor.setDraftMonitorLevel("FULL_MESSAGE");
monitor.setChatMonitorLevel("FULL_MESSAGE");
monitor.setDestUserName("izumi");

AuditService service = new AuditService("admin@example.com", "p@55w0rd", "example.com", "example.com-auditapp-v1");
GenericEntry entry = service.createMailMonitor("amal", monitor);

.NET

using System;
using Google.GData.Apps;
using Google.GData.Extensions.Apps;
...

MailMonitor monitor = new MailMonitor();
monitor.BeginDate = new DateTime(2022, 6, 15);
monitor.EndDate = new DateTime(2022, 6, 30, 23, 20, 0);
monitor.IncomingEmailMonitorLevel = MonitorLevel.FULL_MESSAGE;
monitor.OutgoingEmailMonitorLevel = MonitorLevel.HEADER_ONLY;
monitor.DraftMonitorLevel = MonitorLevel.FULL_MESSAGE;
monitor.ChatMonitorLevel = MonitorLevel.FULL_MESSAGE;
monitor.DestinationUserName = "izumi";

AuditService service = new AuditService("example.com", "example.com-auditapp-v1");
service.setUserCredentials("admin@example.com", "p@55w0rd");
MailMonitor monitorEntry = service.CreateMailMonitor("amal", monitor);

이메일 모니터링 업데이트

동일한 소스 사용자 및 대상 사용자로 모니터를 업데이트하면 초기 모니터의 속성 설정이 새 설정으로 바뀝니다.

이메일 모니터에서 감사 구성을 업데이트하려면 POST 요청을 모니터 피드의 URI로 보내고 Authorization 헤더를 포함합니다.

POST https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/DOMAIN_NAME/SOURCE_USERNAME

다음을 바꿉니다.

  • DOMAIN_NAME: Google Workspace 도메인 이름입니다(예: example.com).
  • SOURCE_USERNAME: 업데이트하려는 이메일 모니터의 사용자 이름입니다.

이메일 모니터 업데이트 예시

이 예시에서는 필수 속성인 endDate 및 선택적 속성인 chatMonitorLevel를 업데이트하여 이메일 모니터 만들기 예에서 만든 모니터를 업데이트합니다. 이 예에서는 다음 매개변수를 사용합니다.

  • endDate의 가격은 August 30, 2022, 23:20 hours입니다.
  • chatMonitorLevel는 이제 HEADER_ONLY입니다.
  • 감사할 사용자는 여전히 amal@example.com 상태입니다.
  • destUserNameizumi로 유지됩니다.

업데이트되지 않은 모니터 속성이 기본값으로 되돌아갑니다. 예를 들어 이 예에서 incomingEmailMonitorLevel 속성과 outgoingEmailMonitorLevel 속성은 FULL_MESSAGE로 되돌아가고 draftMonitorLevelNONE로 되돌아갑니다.

프로토콜

POST https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal

<atom:entry xmlns:atom='http://www.w3.org/2005/Atom' xmlns:apps='http://schemas.google.com/apps/2006'>
    <apps:property name='destUserName' value='izumi'/>
    <apps:property name='endDate' value='2022-08-30 23:20'/>
    <apps:property name='chatMonitorLevel' value='HEADER_ONLY'/>
</atom:entry>

성공하면 서버는 201 CREATED 상태 코드와 업데이트된 entry 요소가 있는 AtomPub 항목을 반환합니다. 업데이트되지 않고 응답에 표시되지 않은 속성은 기본값으로 되돌아갑니다.

<entry>
<entry xmlns='http://www.w3.org/2005/Atom' xmlns:apps='http://schemas.google.com/apps/2006'>
    <id>https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/izumi</id>
    <updated>2022-08-20T00:28:57.319Z</updated>
    <link rel='self' type='application/atom+xml' href="https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/izumi" />
    <link rel='edit' type='application/atom+xml' href="https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/izumi" />
    <apps:property name='chatMonitorLevel' value='HEADER_ONLY' />
    <apps:property name='destUserName' value='izumi' />
    <apps:property name='endDate' value='2022-08-30 23:20' />
</entry>

Java

import java.util.Calendar;
import com.google.gdata.client.appsforyourdomain.audit.AuditService;
import com.google.gdata.client.appsforyourdomain.audit.MailMonitor;
import com.google.gdata.data.appsforyourdomain.generic.GenericEntry;
...

MailMonitor monitor = new MailMonitor();
Calendar endDate = Calendar.getInstance();
endDate.set(2022, Calendar.AUGUST, 30, 23, 20);
monitor.setEndDate(endDate.getTime());
monitor.setChatMonitorLevel("HEADER_ONLY");
monitor.setDestUserName("izumi");

AuditService service = new AuditService("admin@example.com", "p@55w0rd", "example.com", "example.com-auditapp-v1");
GenericEntry entry = service.createMailMonitor("amal", monitor);

.NET

using System;
using Google.GData.Apps;
using Google.GData.Extensions.Apps;
...

MailMonitor monitor = new MailMonitor();
monitor.EndDate = new DateTime(2022, 8, 30, 23, 20, 0);
monitor.ChatMonitorLevel = MonitorLevel.HEADER_ONLY;
monitor.DestinationUserName = "izumi";

AuditService service = new AuditService("example.com", "example.com-auditapp-v1");
service.setUserCredentials("admin@example.com", "p@55w0rd");
MailMonitor monitorEntry = service.CreateMailMonitor("amal", monitor);

소스 사용자의 모든 이메일 모니터 검색

소스 사용자와 연결된 모든 모니터를 검색하려면 해당 날짜의 UTC 형식을 사용하여 모니터 피드 URI에 HTTP GET 요청을 실행하고 Authorization 헤더를 포함합니다.

GET https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/DOMAIN_NAME/SOURCE_USERNAME

다음을 바꿉니다.

  • DOMAIN_NAME: Google Workspace 도메인 이름입니다(예: example.com).
  • SOURCE_USERNAME: 검색하려는 이메일 모니터의 사용자 이름입니다.

이 작업은 요청 본문에 매개변수가 없으므로 XML 본문이 비어 있습니다.

모든 이메일 모니터 검색 예시

이 예시에서는 사용자 amal@example.com를 위해 만든 모든 모니터를 검색합니다.

프로토콜

GET https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal

성공하면 서버는 두 개의 대상 사용자 (izumi@example.com, taylor@example.com)의 설정을 표시하는 두 모니터의 entry 요소가 포함된 201 CREATED 상태 코드와 AtomPub 피드를 반환합니다.

<feed xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:apps='http://schemas.google.com/apps/2006'>
    <id>https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal</id>
    <updated>2010-03-17T15:29:21.064Z</updated>
    <link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal'/>
    <link rel='http://schemas.google.com/g/2005#post' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal'/>
    <link rel='self' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal'/>
    <openSearch:startIndex>1</openSearch:startIndex>
    <entry>
        <id>https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/izumi</id>
        <updated>2022-04-17T15:29:21.064Z</updated>
        <link rel='self' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/izumi&'/>
        <link rel='edit' type='application/atom+xml' href='https://apps-apis.google.com/feeds/compliance/audit/mail/monitor/example.com/amal/izumi&'/>
        <apps:property name='requestId' value='53156'/>
        <apps:property name='destUserName' value='izumi'/>
        <apps:property name='beginDate' value='2022-06-15 00:00'/>
        <apps:property name='endDate' value='2022-06-30 23:20'/>
        <apps:property name='incomingEmailMonitorLevel' value='FULL_MESSAGE'/>
        <apps:property name='outgoingEmailMonitorLevel' value='FULL_MESSAGE'/>
        <apps:property name='draftMonitorLevel' value='FULL_MESSAGE'/>
        <apps:property name='chatMonitorLevel' value='FULL_MESSAGE'/>
   </entry>
   <entry>
        <id>>https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/taylor</id>
        <updated>2022-05-17T15:29:21.064Z</updated>
        <link rel='self' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/taylor'/>
        <link rel='edit' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/taylor'/>
        <apps:property name='requestId' value='22405'/>
        <apps:property name='destUserName' value='taylor'/>
        <apps:property name='beginDate' value='2022-06-20 00:00'/>
        <apps:property name='endDate' value='2022-07-30 23:20'/>
        <apps:property name='incomingEmailMonitorLevel' value='FULL_MESSAGE'/>
        <apps:property name='outgoingEmailMonitorLevel' value='FULL_MESSAGE'/>
        <apps:property name='draftMonitorLevel' value='FULL_MESSAGE'/>
        <apps:property name='chatMonitorLevel' value='FULL_MESSAGE'/>
    </entry>
</feed>

Java

import com.google.gdata.client.appsforyourdomain.audit.AuditService;
import com.google.gdata.data.appsforyourdomain.generic.GenericFeed;
...

AuditService service = new AuditService("admin@example.com", "p@55w0rd", "example.com", "example.com-auditapp-v1");
GenericFeed feed = service.retrieveMonitors("amal");

.NET

using System;
using System.Collections.Generic;
using Google.GData.Apps;
using Google.GData.Extensions.Apps;
...

AuditService service = new AuditService("example.com", "example.com-auditapp-v1");
service.setUserCredentials("admin@example.com", "p@55w0rd");
GenericFeed<MailMonitor> monitors = service.RetrieveMailMonitors("amal");

이메일 모니터링 삭제

이메일 모니터를 삭제하려면 모니터 피드의 삭제 URI에 HTTP DELETE 요청을 실행하고 Authorization 헤더를 포함합니다.

DELETE https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/DOMAIN_NAME/SOURCE_USERNAME/DESTINATION_USERNAME

다음을 바꿉니다.

  • DOMAIN_NAME: Google Workspace 도메인 이름입니다(예: example.com).
  • SOURCE_USERNAME: 삭제할 이메일 모니터의 사용자 이름입니다.
  • DESTINATION_USERNAME: 감사된 이메일 메시지를 수신하는 감사자입니다.

이메일 모니터링 삭제 예시

이 예시에서는 destinationUserNameizumi인 사용자 amal@example.com를 위해 만든 모니터를 삭제합니다.

프로토콜

DELETE https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/izumi

Java

import com.google.gdata.client.appsforyourdomain.audit.AuditService;
...

AuditService service = new AuditService("admin@example.com", "p@55w0rd", "example.com", "example.com-auditapp-v1");
service.deleteMonitor("amal", "izumi");

.NET

using System;
using Google.GData.Apps;
using Google.GData.Extensions.Apps;
...

AuditService service = new AuditService("example.com", "example.com-auditapp-v1");
service.setUserCredentials("admin@example.com", "p@55w0rd");
service.DeleteMailMonitor("amal", "izumi");