本文为您介绍审计日志的概述、使用场景、范围以及字段定义。
概述
MaxCompute完整地记录用户的各项操作行为,并通过阿里云ActionTrail服务将用户行为日志实时推送给ActionTrail。
您可以在ActionTrail中查看和检索用户行为日志,同时通过ActionTrail将日志投递到日志服务项目或指定的OSS Bucket中,满足实时审计、问题回溯分析等需求。

使用场景
MaxCompute自动将您使用MaxCompute所产生的操作日志,实时投递到ActionTrail中。您可以执行如下分析:
- 查询历史事件及明细
在ActionTrail控制台的事件查询页面,可以查看包括MaxCompute在内的各服务历史事件。详情请参见通过操作审计控制台查询事件。
- 分析实时行为事件
使用ActionTrail的跟踪列表功能,将事件投递到OSS进行归档分析。或者投递到阿里云日志服务项目内,基于事件触发的实时日志进行分析。例如,敏感数据访问的告警处理。详情请参见创建单账号跟踪。
日志范围
ActionTrail针对作业(Instance)、表(Table)、用户(User)、角色(Role)和授权(Privilege)事件的多种操作行为进行审计,如下所示。
事件类型(EventType) | 事件名称(EventName) | 事件描述 |
---|---|---|
JobEvent | InsertJob | 成功提交一个MaxCompute作业事件。 |
JobChange | 引起MaxCompute作业状态变化的事件。例如,作业执行成功或作业被中止事件。 | |
TunnelEvent | DownloadTable | Tunnel下载事件。 |
UploadTable | Tunnel上传事件。 | |
InstanceTunnel | 下载Instance的执行结果。例如,SELECT查询操作会触发InstanceTunnel事件。 | |
RoleEvent | CreateRole | 创建角色事件。 |
DropRole | 删除角色事件。 | |
UserEvent | AddUser | 添加用户事件。 |
RemoveUser | 移除用户事件。 | |
TableEvent | CreateTable | 创建表。 |
ChangeTable | 修改表结构信息。例如,执行ALTER TABLE命令。 | |
DropTable | 删除表。 | |
DescribeTable | 查看表结构(Desc table)。 | |
ReadTableData | 读表数据事件。 | |
ChangeTableData | 表数据变化事件。例如,INSERT INTO、INSERT OVERWRITE、Truncate和Tunnel导入表数据等操作会触发该事件。 | |
PrivilegeEvent | GrantRole | 角色授权事件。 |
RevokeRole | 角色授权撤回事件。 | |
GrantACL | ACL授权事件。 | |
RevokeACL | ACL授权撤回事件。 | |
GrantLabel | Label授权事件。 | |
RevokeLabel | Label授权撤回事件。 | |
PutRolePolicy | 上传MaxCompute角色Policy事件。 | |
SetProjectPolicy | 项目级别设置权限策略(Policy)事件。 | |
SetTableLabel | 设置Table的列级权限(Label)事件。 | |
SetUserLabel | 设置用户的Label权限事件。 | |
AdminEvent | CreateProject | 创建MaxCompute项目事件。 |
UpdateProject | 更新MaxCompute项目事件。 | |
DeleteProject | 删除MaxCompute项目事件。 |
日志字段
不同事件类型的字段记录了该类型事件的具体操作行为,您可以通过查看和分析事件的字段满足审计需求。每种事件包含的公共日志字段如下。
字段名 | 说明 | 样例 |
---|---|---|
eventId | ActionTrail为每个事件所产生的一个GUID。 | 918510a4-7b63-47d2-b053-8f9db82c431a |
acsRegion | 阿里云地域。 | cn-hangzhou |
eventName | 事件名称。 | InsertJob |
eventTime | 事件的发生时间,UTC格式。 | 2020-01-09T12:12:14Z |
eventType | 事件类型。 | JobEvent |
errorCode | 发生错误时,上报的错误码。 | ODPS-10000 |
errorMessage | 错误描述。 | ODPS-0130161:[1,18] Parse exception - invalid token 'bigstring' |
requestId | API请求ID。 | 6df41e8c-cfd0-4beb-8dd0-13b8490fdf5b |
serviceName | 事件相关的云服务名称。 | MaxCompute |
sourceIpAddress | 提交API请求的源IP地址。 | 47.100.XX.XX |
userAgent | 发送API请求的客户端代理标识。 | JavaSDK Revision:992f8d1 Version:0.35.9 JavaVersion:1.8.0_242 CLT(0.35.3 : a2af3f4);
Mac OS X(ip/ali-4c32758ab657) |
userIdentity | 标识请求者的身份信息。包含accountId、principalId、type和userName信息。 | "userIdentity": { // 请求者的身份信息"accountId“: "196550154****", // 阿里云主账号ID "principalId":
"10095174****", // 当前请求者的类型 "type": "root-account", // 阿里云主账号 "userName": "root" } |
referencedResources | 事件涉及的资源,比如JobEvent中有InstanceId,TableEvent中有表名。每种事件的该字段信息不相同。 | "referencedResources": { // 事件影响的资源列表"Instance": ["2020102713575683gc2j****"] } |
additionalEventData | 事件特有的附加信息,例如作业状态、查询语句。每种事件的该字段信息不相同。 | "additionalEventData": { "Status": "Failed", "ProjectName": "test_audit", "TaskName":
"console_query_task_1603807075919", "InstanceId": "2020102713575683gc2j****", "TaskType":
"SQL", "OperationText": "create table a(a bigstring);" } |
JobEvent
- InsertJob
字段名 说明 样例 referencedResources InsertJob事件涉及的作业ID信息。 "referencedResources": { // 事件影响的资源列表 "Instance": ["2020102713575683gc2j****" ] }
additionalEventData InsertJob事件的附加信息。包含内容如下: - ProjectName:作业所属项目空间名称。
- TaskName:作业所属任务名称。
- InstanceId:作业ID。
- TaskType:作业类型,例如SQL、LOT、CUPID。
- OperationText:执行语句。
"additionalEventData": { "ProjectName": "meta", "TaskName": "console_query_task_1603807075919", "InstanceId": "2020102713575683gc2j****", "TaskType": "SQL", "OperationText": "create table a(a string);" }
- JobChange
字段名 说明 样例 referencedResources JobChange事件涉及的作业ID信息。 "referencedResources": { // 事件影响的资源列表 "Instance": ["2020102713575683gc2j****" ] }
additionalEventData JobChange事件的附加信息。包含内容如下: - Status:作业状态。
- ProjectName:作业所属项目空间名称。
- TaskName:作业所属任务名称。
- InstanceId:作业ID。
- TaskType:作业类型,例如SQL、LOT、CUPID。
- OperationText:执行语句。
"additionalEventData": { "Status": "Failed", "ProjectName": "meta", "TaskName": "console_query_task_1603807075919", "InstanceId": "2020102713575683gc2j****", "TaskType": "SQL", "OperationText": "create table a(a string);" }
TunnelEvent
- DownloadTable
字段名 说明 样例 referencedResources DownloadTable事件涉及的表名称。 "referencedResources": { // 事件影响的资源列表 "Table": [ "source_xml_instid_flt_2" ] }
additionalEventData DownloadTable事件的附加信息。包含内容如下: - TableName:表名称。
- Partition:分区信息。
- CurrentProject:发起下载操作的项目空间名称。
- ProjectName:下载的表所属项目空间名称。
- SesssionId:Tunnel Session ID。
"additionalEventData": { "TableName": "source_xml_instid_flt_2", "Partition": "projectname=inst_200233,ds=20201027", "CurrentProject": "project1", "ProjectName": "project2", "SesssionId": "20201027200931a3baca0b037518a7" }
- UploadTable
字段名 说明 样例 referencedResources UploadTable事件涉及的表名称。 "referencedResources": { // 事件影响的资源列表 "Table": [ "source_xml_instid_flt_2" ] }
additionalEventData UploadTable事件的附加信息。包含内容如下: - TableName:表名称。
- Partition:分区信息。
- ProjectName:上传的表所属项目空间名称。
- SesssionId:Tunnel Session ID。
"additionalEventData": { "TableName": "m_rt_privilege_event", "Partition": "ds=20201027,hh=22,mm=00", "ProjectName": "meta2", "SesssionId": "202010272209332231f60b08182dfb" }
- InstanceTunnel
字段名 说明 样例 referencedResources InstanceTunnel事件涉及的作业ID信息。 "referencedResources": { // 事件影响的资源列表 "Instance": [ "20201027080131990gf23****"] }
additionalEventData InstanceTunnel事件的附加信息。包含内容如下: - CurrentProject:发起下载Instance操作的项目空间名称。
- ProjectName:下载的Instance所属项目空间名称。
- InstanceId:作业ID
- SesssionId:Tunnel Session ID。
"additionalEventData": { "CurrentProject": "meta", "ProjectName": "meta", "InstanceId": "20201027080131990gf23****", "SesssionId": "2020102716014017c4ca0b036850f6" }
RoleEvent
- CreateRole
字段名 说明 样例 referencedResources CreateRole事件涉及的角色名称。 "referencedResources": { // 事件影响的资源列表 "Role": [ "test1" ] }
additionalEventData CreateRole事件的附加信息。包含内容如下: - RoleName:创建的角色名称。
- CurrentProject:发起创建角色操作的项目空间名称。
- ProjectName:角色所属项目空间名称。
- OperationText:执行语句。
"additionalEventData": { "RoleName": "test1", "CurrentProject": "meta_dev", "ProjectName": "dev1", "OperationText": "create role test1;" }
- DropRole
字段名 说明 样例 referencedResources DropRole事件涉及的角色名称。 "referencedResources": { // 事件影响的资源列表 "Role": [ "test1" ] }
additionalEventData DropRole事件的附加信息。包含内容如下: - RoleName:删除的角色名称。
- CurrentProject:发起删除角色操作的项目空间名称。
- ProjectName:角色所属项目空间名称。
- OperationText:执行语句。
"additionalEventData": { "RoleName": "test1", "CurrentProject": "meta_dev", "ProjectName": "dev1", "OperationText": "drop role test1;" }
UserEvent
- AddUser
字段名 说明 样例 referencedResources AddUser事件涉及的用户名称。 "referencedResources": { // 事件影响的资源列表 "User": [ "ram$xxxx@aliyun.com:sub" ] }
additionalEventData AddUser事件的附加信息。包含内容如下: - UserName:添加的用户名称。
- ProjectName:添加用户的项目空间名称。
- OperationText:执行语句。
"additionalEventData": { "UserName": "ram$xxxx@aliyun.com:sub", "ProjectName": "project1", "OperationText": "add user RAM$xxxx@aliyun.com:sub;" }
- RemoveUser
字段名 说明 样例 referencedResources RemoveUser事件涉及的用户名称。 "referencedResources": { // 事件影响的资源列表 "User": [ "ram$xxxx@aliyun.com:sub" ] }
additionalEventData RemoveUser事件的附加信息。包含内容如下: - UserName:删除的用户名称。
- ProjectName:删除用户所属项目空间名称。
- OperationText:执行语句。
"additionalEventData": { "UserName": "ram$xxxx@aliyun.com:sub", "ProjectName": "project1", "OperationText": "remove user RAM$xxxx@aliyun.com:sub;" }
TableEvent
- CreateTable
字段名 说明 样例 referencedResources CreateTable事件涉及的表名称。 "referencedResources": { // 事件影响的资源列表 "Table": [ "ttt" ] }
additionalEventData CreateTable事件的附加信息。包含内容如下: - TableName:创建的表名称。
- ProjectName:表所属项目空间名称。
- CorrelationId:与Source配合使用,如果Source是INSTANCE,则表示作业ID,如果Source是Tunnel,则表示Tunnel请求ID。
- Source:INSTANCE或TUNNEL。
- OperationText:CREATE_TABLE。
"additionalEventData": { "TableName": "ttt", "ProjectName": "meta_dev", "CorrelationId": "20201027083345196gsjgpv21", "Source": "INSTANCE", "OperationText": "CREATE_TABLE" }
- DropTable
字段名 说明 样例 referencedResources DropTable事件涉及的表名称。 "referencedResources": { // 事件影响的资源列表 "Table": [ "ttt" ] }
additionalEventData DropTable事件的附加信息。包含内容如下: - TableName:删除的表名称。
- ProjectName:表所属项目空间名称。
- CorrelationId:与Source配合使用,如果Source是INSTANCE,则表示作业ID,如果Source是Tunnel,则表示Tunnel请求ID。
- Source:INSTANCE或TUNNEL。
- OperationText:DROP_TABLE表示用户主动请求删除,RECYCLE_TABLE表示设置了生命周期被系统回收。
"additionalEventData": { "TableName": "hot_user_hs_top30", "ProjectName": "prj1", "CorrelationId": "20201023024002372giqvmv21", "Source": "INSTANCE", "OperationText": "DROP_TABLE" }
- ChangeTable
字段名 说明 样例 referencedResources ChangeTable事件涉及的表名称。 "referencedResources": { // 事件影响的资源列表 "Table": [ "ttt" ] }
additionalEventData ChangeTable事件的附加信息。包含内容如下: - TableName:修改的表名称。
- ProjectName:表所属项目空间名称。
- CorrelationId:与Source配合使用,如果Source是INSTANCE,则表示作业ID,如果Source是Tunnel,则表示Tunnel请求ID。
- Source:INSTANCE或TUNNEL。
- OperationText:ALTER_TABLE_RENAME、ADD_PARTITION、ALTER_TABLE_ADD_COLUMNS、ALTER_TABLE_CHANGE_LIFECYCLE、ALTER_TABLE_DROP_PARTITION或ALTER_PARTITION。
"additionalEventData": { "TableName": "ttt", "ProjectName": "proj1", "CorrelationId": "20201028161651750g05e0tsa", "Source": "INSTANCE", "OperationText": "ADD_PARTITION" }
- DescribeTable
字段名 说明 样例 referencedResources DescribeTable事件涉及的表名称。 "referencedResources": { // 事件影响的资源列表 "Table": [ "ttt" ] }
additionalEventData DescribeTable事件的附加信息。包含内容如下: - TableName:查看的表名。
- ProjectName:表所属项目空间名称。
"additionalEventData": { "TableName": "ttt", "ProjectName": "prj1", }
- ChangeTableData
字段名 说明 样例 referencedResources ChangeTableData事件涉及的表名称。 "referencedResources": { // 事件影响的资源列表 "Table": [ "ttt" ] }
additionalEventData ChangeTableData事件的附加信息。包含内容如下: - TableName:修改的表名称。
- ProjectName:表所属项目空间名称。
- CorrelationId:与Source配合使用,如果Source是INSTANCE,则表示作业ID,如果Source是Tunnel,则表示Tunnel请求ID。
- Source:INSTANCE或TUNNEL。
- OperationText:TRUNCATE_TABLE、INSERT_OVERWRITE_TABLE、INSERT_OVERWRITE_PARTITION、INSERT_PARTITION或INSERT_TABLE。
"additionalEventData": { "TableName": "ttt", "ProjectName": "meta_dev", "CorrelationId": "20201027083345196gsjgpv21", "Source": "INSTANCE", "OperationText": "DATA_INGESTION" }
- ReadTableData
字段名 说明 样例 referencedResources 无 无 additionalEventData ReadTableData事件的附加信息。包含内容如下: - TableName:读取数据的表名称。
- ProjectName:表所属项目空间名称。
- CorrelationId:与Source配合使用,如果Source是INSTANCE,则表示作业ID,如果Source是Tunnel,则表示Tunnel请求ID。
- Source:INSTANCE或TUNNEL。
- OperationText:READ_TABLE。
"additionalEventData": { "TableName": "ttt", "ProjectName": "meta_dev", "CorrelationId": "20201027083345196gsjgpv21", "Source": "INSTANCE", "OperationText": "READ_TABLE" }
PrivilegeEvent
- GrantRole
字段 说明 样例 referencedResources GrantRole事件涉及的云账户名称。 "referencedResources": { // 事件影响的资源列表 "User": [ "aliyun$xxxx@aliyun.com" ] }
additionalEventData GrantRole事件的附加信息。包含内容如下: - UserName:被授权的云账户名称。
- ProjectName:授权的项目空间名称。
- OperationText:执行语句。
"additionalEventData": { "ObjectType": "PROJECT", "CurrentProject": "meta", "UserName": "aliyun$xxx@aliyun.com", "ProjectName": "meta", "OperationText": "grant test_role to ALIYUN$xxx@aliyun.com" }
- RevokeRole
字段名 说明 样例 referencedResources RevokeRole事件涉及的云账户名称。 "referencedResources": { // 事件影响的资源列表 "User": [ "aliyun$xxxx@aliyun.com" ] }
additionalEventData RevokeRole事件的附加信息。包含内容如下: - UserName:被撤销授权的云账户名称。
- ProjectName:撤销授权的项目空间名称。
- OperationText:执行语句。
"additionalEventData": { "ObjectType": "PROJECT", "CurrentProject": "meta", "UserName": "aliyun$xxx@aliyun.com", "ProjectName": "meta", "OperationText": "revoke test_role from ALIYUN$xxx@aliyun.com" }
- GrantACL
字段名 说明 样例 referencedResources GrantACL事件涉及的云账户名称。 "referencedResources": { // 事件影响的资源列表 "User": [ "aliyun$xxxx@aliyun.com" ] }
additionalEventData GrantACL事件的附加信息。包含内容如下: - ObjectType:授权对象类型,PROJECT、RESOURCE、TABLE或FUNCTION。
- CurrentProject:发起授权操作的项目空间名称。
- UserName:被授权的云账户名称。
- ProjectName:授权的项目空间名称。
- OperationText:执行语句。
- ObjectName:授权对象名称。
"additionalEventData": { "ObjectType": "PROJECT", "CurrentProject": "meta", "UserName": "aliyun$xxx@aliyun.com", "ProjectName": "meta", "OperationText": "grant createtable on project meta to ALIYUN$xxx@aliyun.com;", "ObjectName": "meta" }
- RevokeACL
字段名 说明 样例 referencedResources RevokeACL事件涉及的云账户名称。 "referencedResources": { // 事件影响的资源列表 "User": [ "aliyun$xxxx@aliyun.com" ] }
additionalEventData RevokeACL事件的附加信息。包含内容如下: - ObjectType:撤销授权对象类型,PROJECT、RESOURCE、TABLE或FUNCTION。
- CurrentProject:发起撤销授权操作的项目空间名称。
- UserName:撤销授权的云账户名称。
- ProjectName:撤销授权的项目空间名称。
- OperationText:执行语句。
- ObjectName:撤销授权对象名称。
"additionalEventData": { "ObjectType": "PROJECT", "CurrentProject": "meta", "UserName": "aliyun$xxx@aliyun.com", "ProjectName": "project1", "OperationText": "revoke createtable on project project1 from ALIYUN$xxx@aliyun.com;", "ObjectName": "project1" }
- GrantLabel
字段名 说明 样例 referencedResources GrantLabel事件涉及的云账户名称。 "referencedResources": { // 事件影响的资源列表 "User": [ "aliyun$xxxx@aliyun.com" ] }
additionalEventData GrantLabel事件的附加信息。包含内容如下: - ObjectType:授权对象类型,TABLE。
- UserName:被授权的云账户名称。
- ProjectName:发起授权操作的项目空间名称。
- OperationText:执行语句。
- ObjectName:授权对象名称。
"additionalEventData": { "ObjectType": "TABLE", "UserName": "aliyun$xxx@aliyun.com", "ProjectName": "meta", "OperationText": "GRANT LABEL 4 ON TABLE t1 TO USER ALIYUN$xxx@aliyun.com;", "ObjectName": "meta" }
- RevokeLabel
字段名 说明 样例 referencedResources RevokeLabel事件涉及的云账户名称。 "referencedResources": { // 事件影响的资源列表 "User": [ "aliyun$xxxx@aliyun.com" ] }
additionalEventData RevokeLabel事件的附加信息。包含内容如下: - ObjectType:撤销授权对象类型,PROJECT、RESOURCE、TABLE、FUNCTION。
- UserName:被撤销授权的云账户名称。
- ProjectName:撤销授权的项目空间名称。
- OperationText:执行语句。
- ObjectName:撤销授权对象名称。
"additionalEventData": { "ObjectType": "TABLE", "UserName": "aliyun$xxx@aliyun.com", "ProjectName": "meta", "OperationText": "Revoke LABEL 4 ON TABLE t1 from USER ALIYUN$xxx@aliyun.com;", "ObjectName": "t1" }
- PutRolePolicy
字段名 说明 样例 referencedResources PutRolePolicy事件涉及的角色名称。 "referencedResources": { // 事件影响的资源列表 "Role": [ "test1_role" ] }
additionalEventData PutRolePolicy事件的附加信息。包含内容如下: - RoleName:角色名称。
- CurrentProject:发起角色Policy操作的项目空间名称。
- ProjectName:角色所属项目空间名称。
- OperationText:Policy内容。
"additionalEventData": { "RoleName": "test1_role", "CurrentProject": "meta_dev", "ProjectName": "meta_dev", "OperationText": "{\n \"Statement\": [{\n \"Action\": [\"odps:Read\",\n \"odps:List\"],\n \"Effect\": \"Allow\",\n \"Resource\": [\"acs:odps:*:projects/p1\"]},\n {\n \"Action\": [\"odps:Describe\",\n \"odps:Select\"],\n \"Effect\": \"Allow\",\n \"Resource\": [\"acs:odps:*:projects/p1/tables/m_*\"]}],\n \"Version\": \"1\"}" }
- SetProjectPolicy
字段名 说明 样例 referencedResources 无 无 additionalEventData SetProjectPolicy事件的附加信息。CurrentProject表示发起项目级Policy操作的项目空间名称。 "additionalEventData": { "CurrentProject": "test_prj"}" }
- SetTableLabel
字段名 说明 样例 referencedResources 无 无 additionalEventData SetTableLabel事件的附加信息。包含内容如下: - ObjectType:对象类型,TABLE。
- OperationText:执行语句。
- ObjectName:对象名称。
"additionalEventData": { "ObjectType": "TABLE", "OperationText": "SET LABEL 3 TO TABLE t1test(col1);", "ObjectName": "t1test" }
- SetUserLabel
字段名 说明 样例 referencedResources SetUserLabel事件涉及的云账户名称。 "referencedResources": { // 事件影响的资源列表 "User": [ "aliyun$xxxx@aliyun.com" ] }
additionalEventData SetUserLabel事件的附加信息。UserName表示设置用户列级权限的云账户名称。 "additionalEventData": { "UserName": "aliyun$xxxx@aliyun.com" }
AdminEvent
- CreateProject
字段名 说明 样例 referencedResources 无 无 additionalEventData CreateProject事件的附加信息。ProjectName表示新增的MaxCompute项目名称。 "additionalEventData": { "ProjectName": "xxxx" }
- UpdateProject
字段名 说明 样例 referencedResources 无 无 additionalEventData UpdateProject事件的附加信息。包含内容如下: - ProjectName:更新的MaxCmpute项目名称。
- Properties:更新的属性项(Flag)。
- State:可选。项目的状态,取值为FROZEN(欠费停服)或AVAILABLE(续费重开)。
"additionalEventData": { "ProjectName": "xxx", "Properties": "{\"odps.sql.decimal.odps2\":\"true\",\"odps.sql.hive.compatible\":\"false\",\"odps.sql.type.system.odps2\":\"true\"}" }
- DeleteProject
字段名 说明 样例 referencedResources 无 无 additionalEventData DeleteProject事件的附加信息。ProjectName表示删除的MaxCompute项目名称。 "additionalEventData": { "ProjectName": "xxxx" }