管理员界面¶
此软件包没有管理员界面。所有数据隐私保护规则必须通过系统配置添加,并由控制台命令执行。
注解
This feature is only available to On-Premise customers. If you are a Managed customer, this feature is taken care of by the Customer Solutions Team in OTRS. Please contact us via support@otrs.com or in the OTRS Portal.
系统配置设置¶
出于安全原因,此软件包不附带任何预先配置的规则。因此,该功能无法开箱即用,必须先由管理员配置规则。
若要添加规则配置:
- 转到管理员界面的 系统配置 屏幕。
- 在 导航 小部件中选择 OTRSDataPrivacyProtection。
- 导航到导航树中的 Core→OTRSDataPrivacyProtection。
- 将YAML格式的规则配置添加到设置
OTRSDataPrivacyProtection::RuleConfiguration
中。
单个规则集的配置以YAML格式存储,由五个选项组成。标有星号的选项是必需的。
RuleName
*- 对于所有规则,此字符串选项必须是唯一的。它是一个字符串,用于标识每个不同的规则。规则名出现在所有相关的输出和历史记录条目中,但不影响任何功能。
RuleSource
- 此字符串选项仅供参考。不同的国家和地区有不同类型和种类的数据保护法规,这些法规可能是法律和/或书面文件的一部分。为了识别相关的原始源,基于不同的配置规则。
RuleSource
可用于添加名称和/或描述,这些名称和/或描述将添加到相关的历史记录条目(如果可用)。 RuleType
*此字符串选项描述将在搜索期间找到的所有对象上执行的操作。支持以下操作(短格式或长格式):
Anonymization(匿名化)
或PrivacyByAnonymization
匿名化规则类型用于匿名化数据集,如在数据分类字段中所标识的。匿名意味着,不同的字段将被字符串 Anonymized 替换。
警告
在匿名化期间,原始数据集将被数据库中提到的字符串替换。原始数据没有保存,因此无法挽回地丢失!
Pseudonymization(假名化)
或PrivacyByPseudonymization
与匿名化一样,假名化规则类型用于从原始字段中删除相关数据。与
Anonymization(匿名化)
规则类型有一个主要区别,数据将存储在一个单独的称为data_pseudonymization
的数据库表中,。此表不被任何其它子系统使用,并且不能通过GUI使用。它充当备份表,任何可以访问数据库的管理员都可以(手动)搜索该表,也可以使用管理员界面的 SQL查询窗口 模块。
在假名化过程中,将为相关数据字段创建一个通用唯一标识符(UUID),该标识符稍后用于标识原始数据。原始数据将被复制到备份表中,使用UUID作为字段标识符。之后,原始数据将仅被UUID替换,UUID实际上与匿名化相同,但包含指向存储的原始源数据的指针。
Deletion(删除)
或PrivacyByDeletion
删除规则类型用于删除在数据分类字段中标识的数据集。删除意味着,不同的字段将被字符串 Deleted 替换。从技术上讲,原始数据将被删除,因为它将被替换为非敏感字符串,因此它的工作方式与
Anonymization(匿名化)
规则类型相同。警告
在删除过程中,原始数据集将被数据库中提到的字符串替换。原始数据没有另外保存,因此无法挽回地丢失!
DataClassification(数据分类)
*此列表选项用于标识要应用关联操作的数据类型。它以数组的形式包含任何数据对象的不同字段。每个对象驱动程序都提供了可能使用的数据分类字段的列表。
参见
具体字段在下面的 驱动程序 部分中描述。
ObjectFilter(对象过滤器)
*此列表选项为每个使用的驱动程序实现搜索和过滤器条件。每个驱动程序都提供了允许使用的搜索和过滤器选项的列表。
参见
有关详细信息,请参阅下面的 驱动程序 部分。
在这个软件包中,由对象(如工单、客户用户等)表示的不同类型的信息称为 对象类型。因此我们讨论的是 对象类型。
为特定数据处理、搜索功能和此类特定对象类型的验证而实现的模块称为 驱动程序 或 驱动程序对象。
规则执行¶
一旦定义了规则,它们就可以应用于现有的数据集。为此,有一个控制台命令 Maint::DataPrivacy::Execute
。
使用 --help
选项执行控制台命令了解更多信息:
otrs> /opt/otrs/bin/otrs.Console.pl Maint::DataPrivacy::Execute --help
此命令提供了三种不同的选项:
- 检查现有规则的完整性和有效性。
- 在不改变数据记录的情况下测试现有规则的执行。
- 执行现有规则,从而永久更改匹配的数据集。
验证检查受影响的驱动程序和对象类型上下文中的所有可用规则。如果某些选项缺失或不正确,规则将被声明为无效,所有驱动程序都将跳过执行。
出于安全原因,在每次试运行之前和每次执行之前都会隐式地检查相应规则的有效性,如果出现错误,则会完全停止或跳过这些规则。
警告
我们建议,应该首先在测试系统上执行新规则或重大更改,以确保没有意外更改或删除数据。
警告
我们建议您首先备份数据库,以确保在执行规则或规则更改后未测试的数据不会丢失。
警告
由于规则的设计目的是更改或完全删除数据,因此提前仔细检查所有规则并为每个规则更改执行测试非常重要。
可以将规则执行的控制台输出重定向到文件中,以保存修改后的对象。请看下面的例子:
otrs> /opt/otrs/bin/otrs.Console.pl Maint::DataPrivacy::Execute --execute-detail > rule-execution.txt
驱动程序¶
本节描述各种驱动程序的配置和用法。此外,本节还包含可以根据您的个人需要复制和定制的示例配置。
客户单位驱动程序¶
客户单位驱动程序提供了搜索和修改客户单位信息的功能。
可能的数据分类:
- CustomerID
- CustomerCompanyName
- CustomerCompanyCountry
- CustomerCompanyStreet
- CustomerCompanyZIP
- CustomerCompanyCity
- CustomerCompanyURL
- CustomerCompanyComment
- DynamicField_NameX
该驱动程序支持数据分类的动态字段。动态字段将由前缀 DynamicField_
和相关字段名标识。
可能的对象过滤器:
- ValidID
- CustomerID
- CustomerCompanyStreet
- CustomerCompanyURL
- CustomerCompanyComment
- WildcardSearch
- CustomerCompanyZIP
- CustomerCompanyCountry
- CustomerCompanyName
- CustomerCompanyCity
对象过滤器说明:
Limit(限制)
:限制搜索结果的数量。CreateTime(创建日间)
:搜索日期 大于或等于 (>=)给定的时间。WildcardSearch
: Affects all object filters, exceptValidID
. It will wrap the search term in wildcards, so they match all objects that contain the supplied value. For example, if this option is set to1
, filtering onCustomerID
with company will in fact search for *company*.
规则配置示例¶
下面是一些规则配置示例。这些示例是有效的YAML代码。您可以复制这些示例并根据需要修改它们。
在不使用通配符搜索的情况下,按客户单位名称删除客户单位名称和客户单位国家:
---
RuleName: Delete customer company name and customer company country by customer company name without wildcard search.
RuleType: PrivacyByDeletion
RuleSource: GDPR
DataClassification:
CustomerCompany:
- CustomerCompanyName
- CustomerCompanyCountry
ObjectFilter:
CustomerCompany:
CustomerCompanyName: someCompanyName
WildcardSearch: 0
在使用通配符搜索的情况下,按客户单位名称删除客户单位名称和客户单位国家:
---
RuleName: Delete customer company name and customer company country by customer company name with wildcard search.
RuleSource: someRuleSource
RuleType: PrivacyByDeletion
DataClassification:
CustomerCompany:
- CustomerCompanyName
- CustomerCompanyCountry
ObjectFilter:
CustomerCompany:
CustomerCompanyName: someCompanyName
WildcardSearch: 1
客户用户驱动程序¶
客户用户驱动程序提供了搜索和修改客户用户信息的功能。
可能的数据分类:
- UserTitle
- UserFirstname
- UserLastname
- UserEmail
- UserLogin
- UserComment
- UserCountry
- UserFax
- UserMobile
- UserCity
- UserPhone
- UserTitle
- UserStreet
- UserZip
- DynamicField_NameX
该驱动程序支持数据分类的动态字段。动态字段将由前缀 DynamicField_
和相关字段名标识。
可能的对象过滤器:
- UserCity
- UserTitle
- UserFirstname
- UserPhone
- ValidID
- UserCountry
- UserLogin
- UserCustomerID
- UserLastname
- UserZip
- UserMobile
- UserEmail
- UserFax
- WildcardSearch
- UserStreet
- UserComment
对象过滤器说明:
Limit(限制)
:限制搜索结果的数量。CreateTime(创建日间)
:搜索日期 大于或等于 (>=)给定的时间。Valid(有效性)
:搜索有效或无效的用户。可能的值是0或1。WildcardSearch
: Affects all object filters, exceptValidID
. It will wrap the search term in wildcards, so they match all objects that contain the supplied value. For example, if this option is set to1
, filtering onUserCustomerID
with company will in fact search for *company*.
规则配置示例¶
下面是一些规则配置示例。这些示例是有效的YAML代码。您可以复制这些示例并根据需要修改它们。
在使用通配符搜索的情况下,按用户的名字删除用户的名字和姓氏:
---
RuleName: Delete user first names and user last names by user first name with wildcard search.
RuleType: PrivacyByDeletion
RuleSource: GDPR
DataClassification:
CustomerUser:
- UserFirstname
- UserLastname
ObjectFilter:
CustomerUser:
UserFirstname: someFirstname
WildcardSearch: 1
在不使用通配符搜索的情况下,按用户的名匿名化用户的名字和姓氏:
---
RuleName: Anonymize user first names and user last names by user first name and without wildcard search.
RuleSource: someRuleSource
RuleType: PrivacyByAnonymization
DataClassification:
CustomerUser:
- UserFirstname
- UserLastname
ObjectFilter:
CustomerUser:
UserFirstname: someFirstname
WildcardSearch: 0
在使用通配符搜索的情况下,按用户的名字和姓氏删除用户名字和姓氏:
---
RuleName: Delete user first names and user last names by user first name and user last name with wildcard search.
RuleSource: someRuleSource
RuleType: PrivacyByDeletion
DataClassification:
CustomerUser:
- UserFirstname
- UserLastname
ObjectFilter:
CustomerUser:
UserFirstname: someFirstname
UserLastname: someLastname
WildcardSearch: 1
工单驱动程序¶
工单驱动程序提供搜索和修改工单和相关信件信息的功能。
工单可能的数据分类:
- Title
- CustomerUserID
- CustomerID
- DynamicField_NameX
信件可能的数据分类:
- From
- To
- Cc
- Subject
- Body
- Attachments
- DynamicField_NameX
该驱动程序支持数据分类的动态字段。动态字段将由前缀 DynamicField_
和相关字段名标识。
数据分类支持历史类型。由于历史记录类型可能不同(框架版本、框架更新、已安装的软件包等),驱动程序将根据名称动态确定这些类型。
历史类型必须以 History
一词作为前缀。请参阅以下列表中的示例:
- HistoryAddNote
- HistoryAddSMS
- HistoryArchiveFlagUpdate
- HistoryBounce
- HistoryCustomerUpdate
- HistoryEmailAgent
- HistoryEmailCustomer
- HistoryEmailResend
- HistoryEscalationResponseTimeNotifyBefore
- HistoryEscalationResponseTimeStart
- HistoryEscalationResponseTimeStop
- HistoryEscalationSolutionTimeNotifyBefore
- HistoryEscalationSolutionTimeStart
- HistoryEscalationSolutionTimeStop
- HistoryEscalationUpdateTimeNotifyBefore
- HistoryEscalationUpdateTimeStart
- HistoryEscalationUpdateTimeStop
- HistoryFollowUp
- HistoryForward
- HistoryLock
- HistoryLoopProtection
- HistoryMerged
- HistoryMisc
- HistoryMove
- HistoryNewTicket
- HistoryOwnerUpdate
- HistoryPhoneCallAgent
- HistoryPhoneCallCustomer
- HistoryPriorityUpdate
- HistoryRemove
- HistoryResponsibleUpdate
- HistorySendAgentNotification
- HistorySendAnswer
- HistorySendAutoFollowUp
- HistorySendAutoReject
- HistorySendAutoReply
- HistorySendCustomerNotification
- HistoryServiceUpdate
- HistorySetPendingTime
- HistorySLAUpdate
- HistoryStateUpdate
- HistorySubscribe
- HistorySystemRequest
- HistoryTicketDynamicFieldUpdate
- HistoryTicketLinkAdd
- HistoryTicketLinkDelete
- HistoryTimeAccounting
- HistoryTitleUpdate
- HistoryTypeUpdate
- HistoryUnlock
- HistoryUnsubscribe
- HistoryWebRequestCustomer
在执行期间,分类历史类型的所有内容都将受到影响。
如果附件被分类,所有匹配的信件或工单的每个附件都将在执行期间受到影响。
警告
工单驱动程序用于搜索工单,即使规则包含信件字段的过滤器。如果信件字段是数据分类的一部分,则将处理匹配工单的所有相关信件!
以下字段可用作工单和信件的搜索词或过滤器。可能的对象过滤器:
- Limit
- TicketID
- TicketNumber
- Title
- Queues
- QueueIDs
- UseSubQueues
- Types
- TypeIDs
- States
- StateIDs
- StateType
- StateTypeIDs
- Priorities
- PriorityIDs
- Services
- ServiceIDs
- SLAs
- SLAIDs
- Locks
- LockIDs
- OwnerIDs
- ResponsibleIDs
- WatchUserIDs
- CustomerID
- CustomerUserLogin
- CreatedUserIDs
- CreatedTypes
- CreatedTypeIDs
- CreatedPriorities
- CreatedPriorityIDs
- CreatedStates
- CreatedStateIDs
- CreatedQueues
- CreatedQueueIDs
- TicketFlag
- ArticleFlag
- MIMEBase_From
- MIMEBase_To
- MIMEBase_Cc
- MIMEBase_Subject
- MIMEBase_Body
- AttachmentName
- FullTextIndex
- ContentSearch
- ContentSearchPrefix
- ContentSearchSuffix
- ConditionInline
- ArticleCreateTimeOlderMinutes
- ArticleCreateTimeNewerMinutes
- ArticleCreateTimeNewerDate
- ArticleCreateTimeOlderDate
- TicketCreateTimeOlderMinutes
- TicketCreateTimeNewerMinutes
- TicketCreateTimeNewerDate
- TicketCreateTimeOlderDate
- TicketChangeTimeOlderMinutes
- TicketChangeTimeNewerMinutes
- TicketLastChangeTimeOlderMinutes
- TicketLastChangeTimeNewerMinutes
- TicketLastChangeTimeNewerDate
- TicketLastChangeTimeOlderDate
- TicketChangeTimeNewerDate
- TicketChangeTimeOlderDate
- TicketCloseTimeOlderMinutes
- TicketCloseTimeNewerMinutes
- TicketCloseTimeNewerDate
- TicketCloseTimeOlderDate
- TicketPendingTimeOlderMinutes
- TicketPendingTimeNewerMinutes
- TicketPendingTimeNewerDate
- TicketPendingTimeOlderDate
- TicketEscalationTimeOlderMinutes
- TicketEscalationTimeNewerMinutes
- TicketEscalationTimeNewerDate
- TicketEscalationTimeOlderDate
- TicketEscalationUpdateTimeOlderMinutes
- TicketEscalationUpdateTimeNewerMinutes
- TicketEscalationUpdateTimeNewerDate
- TicketEscalationUpdateTimeOlderDate
- TicketEscalationResponseTimeOlderMinutes
- TicketEscalationResponseTimeNewerMinutes
- TicketEscalationResponseTimeNewerDate
- TicketEscalationResponseTimeOlderDate
- TicketEscalationSolutionTimeOlderMinutes
- TicketEscalationSolutionTimeNewerMinutes
- TicketEscalationSolutionTimeNewerDate
- TicketEscalationSolutionTimeOlderDate
- ArchiveFlags
所有可能的对象过滤器参数都可以用于过滤工单和信件。大多数属性可以是单个字符串或数组引用,例如:
TicketNumber: 123546
TicketNumber:
- 123546
- 123666
Title: SomeText
Title:
- SomeTest1
- SomeTest2
States:
- new
- open
StateIDs:
- 3
- 4
相应的YAML代码如下所示:
RuleName: My Explanation Rule
RuleType: PrivacyByDeletion
RuleSource: GDPR
DataClassification:
Ticket:
- CustomerUserID
- CustomerID
ObjectFilter:
Ticket:
Queue:
- Junk
- Raw
Services:
- Service A
- Service B
此规则将查找位于队列 Junk 或 Raw 中并已分配服务 service A 或 service B 的所有工单。字段 CustomerUserID
和 CustomerID
将被删除。
关于相对时间和日期,有几个可能的过滤器参数,例如:
- ArticleCreateTimeOlderMinutes
- ArticleCreateTimeNewerMinutes
- ArticleCreateTimeNewerDate
- ArticleCreateTimeOlderDate
像 *\*TimeOlderMinutes*
这样的过滤器意味着 超过X分钟。
以下语句的意思是:所有 CreateTime(创建时间)
早于一天(1440分钟)的工单。
TicketCreateTimeOlderMinutes: 1440
以下语句的意思是:所有 CreateTime(创建时间)
少于一天(1440分钟)的工单。
TicketCreateTimeNewerMinutes: 1440
这对于使用此语法的所有过滤器参数都是有效的。
For more descriptions about the single search parameters, check the TicketSearch() in API reference.
规则配置示例¶
下面是一些规则配置示例。这些示例是有效的YAML代码。您可以复制这些示例并根据需要修改它们。
按超过一个月的状态名称删除工单标题:
---
RuleName: Delete ticket titles by state names, that are older than one month.
RuleSource: GDPR
RuleType: deletion
DataClassification:
Ticket:
- Title
ObjectFilter:
Ticket:
States:
- new
- open
TicketCreateTimeOlderMinutes: 43200
按位于特定队列中的状态名称删除信件主题和正文:
---
RuleName: Delete article subject and body by state names, that are located in specific queues.
RuleSource: GDPR
RuleType: deletion
DataClassification:
Ticket:
- Subject
- Body
ObjectFilter:
Ticket:
States:
- new
- open
Queues:
- Postmaster
- Misc
对已关闭和存档的工单的客户用户ID 进行假名化:
---
RuleName: Pseudonymize customer user IDs for tickets, that are closed and archived.
RuleSource: GDPR
RuleType: PrivacyByPseudonymization
DataClassification:
Ticket:
- CustomerUserID
ObjectFilter:
Ticket:
StateType:
- Closed
ArchiveFlags:
- y
对已关闭、具有某些服务且位于特定队列中的工单的客户ID 和一些动态字段进行匿名化:
---
RuleName: Anonymize Customer IDs and some dynamic fields, that are closed, have certain services and are located in specific queues.
RuleSource: GDPR
RuleType: PrivacyByAnonymization
DataClassification:
Ticket:
- CustomerID
- DynamicField_SensitiveNames
- DynamicField_SensitiveLocations
ObjectFilter:
Ticket:
StateType:
- Closed
Queue:
- Special Queue A
- Junk
Services:
- Sensitive Customer Service
- VIP Customer Service
用户驱动程序¶
用户驱动程序提供搜索和修改用户信息的功能。
可能的数据分类:
- UserTitle
- UserFirstname
- UserLastname
- UserEmail
- UserMobile
可能的对象过滤器:
- UserFirstname
- UserLastname
- UserLogin
- UserTitle
- CreateTime
- Valid
- Limit
- UserPreferences
- WildcardSearch
对象过滤器说明:
Limit(限制)
:限制搜索结果的数量。CreateTime(创建日间)
:搜索日期 大于或等于 (>=)给定的时间。Valid(有效性)
:搜索有效或无效的用户。可能的值是0或1。WildcardSearch
: Affects the object filtersUserFirstname
,UserLastname
,UserLogin
andUserTitle
. It will wrap the search term in wildcards, so they match all objects that contain the supplied value. For example, if this option is set to1
, filtering onUserLogin
with agent will in fact search for *agent*.UserPreferences(用户首选项)
:包含用户首选项(如用户电子邮件地址作为键,某些搜索条件作为值)的数组(请参阅YAML配置示例)。
规则配置示例¶
下面是一些规则配置示例。这些示例是有效的YAML代码。您可以复制这些示例并根据需要修改它们。
按用户的名字删除用户的名字:
---
RuleName: Delete user first names by user first name.
RuleSource: GDPR
RuleType: PrivacyByDeletion
DataClassification:
User:
- UserFirstname
ObjectFilter:
User:
UserFirstname: someFirstname
按用户电子邮件删除用户名字和姓氏:
---
RuleName: Delete user first names and user last names by user email.
RuleSource: GDPR
RuleType: PrivacyByDeletion
DataClassification:
User:
- UserFirstname
- UserLastname
ObjectFilter:
User:
UserPreferences:
UserEmail: someMail@example.com
在使用通配符搜索的情况下,删除用户的名字和姓氏:
---
RuleName: Delete user first names and user last names with wildcard search.
RuleSource: GDPR
RuleType: PrivacyByDeletion
DataClassification:
User:
- UserFirstname
- UserLastname
ObjectFilter:
User:
UserFirstname: someFirstname
WildcardSearch: 1
按用户的名删除用户名字并创建时间(大于指定日期或等于指定日期):
---
RuleName: Delete user first names by user first name and create time, which are greater than or equal with the specified date.
RuleSource: GDPR
RuleType: PrivacyByDeletion
DataClassification:
User:
- UserFirstname
ObjectFilter:
User:
CreateTime: 2019-01-01
UserFirstname: someFirstname