详细接口说明可参考接口文档。
| 接口名 | 描述 |
|---|---|
| updatePolicy(policy: string, callback: AsyncCallback<void>): void | 使用Callback方式更新安全管控策略。 |
| updatePolicy(policy: string): Promise<void> | 使用Promise方式更新安全管控策略。 |
| getPolicy(): Promise<string | null> | 使用Promise方式获取当前设备生效的管控策略内容。 |
导入模块。
import { bundleManager } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { fileGuard } from '@kit.EnterpriseDataGuardKit';
import { hilog } from '@kit.PerformanceAnalysisKit'; 初始化FileGuard对象guard,调用接口updatePolicy,更新安全管控策略。
通过回调函数方式,更新安全管控策略。
const TAG: string = 'FileGuard_Policy';
const DOMAIN: number = 0x0000;
/**
* 更新安全管控策略。使用callback异步回调。
* @param accountId: 用户ID
*/
async function updatePolicyCallback(accountId: number) {
let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION |
bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_SIGNATURE_INFO;
let bundleInfo: bundleManager.BundleInfo = await bundleManager.getBundleInfoForSelf(bundleFlags);
let appId: string = bundleInfo.signatureInfo.appId;
let guard: fileGuard.FileGuard = new fileGuard.FileGuard();
let policy: string = '{' +
// 网络策略
'"net_intercept_toggle":1,' +
'"default_policy":1,' +
'"boundary":["10.0.0.0-10.255.255.255","172.16.0.0-172.31.255.255"],' +
'"netsegment_trustlist":["10.0.0.0-10.255.255.255","192.168.0.0-192.168.255.255"],' +
'"netsegment_blocklist":["172.16.0.0-172.31.255.255"],' +
'"netsegment_update_type": 0,' +
'"net_reject_cache_time":30,' +
// 文件策略
'"usb_intercept_toggle":1,' +
'"smb_client_intercept_toggle":1,' +
'"smb_server_intercept_toggle":1,' +
'"new_file_audit_toggle":1,' +
'"kia_variant_toggle":1,' +
'"audit_filter_toggle":1,' +
'"print_intercept_toggle":0,' +
// 蓝牙策略
'"bluetooth_intercept_toggle":["bt_socket","bt_ble","bt_opp"],' +
'"bluetooth_intercept_time":30,' +
// 星闪策略
'"nearlink_intercept_toggle":["nearlink_ssap","nearlink_dataTransfer"],' +
'"nearlink_intercept_time":30,' +
// 多用户策略
`"user_id":${accountId},` +
// 可信任应用列表
`"trust_app_list":["${appId}"],` +
'"kia_file_access_toggle":0,' +
// 五种自定义标签
'"Tag1":{' +
' "tag":"sensitive",' +
' "usb_intercept_toggle":1,' +
' "net_intercept_toggle":1,' +
' "boundary":["10.0.0.0-10.255.255.255"],' +
' "netsegment_trustlist":["10.0.0.0-10.255.255.255"],' +
' "netsegment_blocklist":["172.16.0.0-172.31.255.255"],' +
' "smb_client_intercept_toggle":1,' +
' "smb_server_intercept_toggle":1,' +
' "print_intercept_toggle":1,' +
' "bluetooth_intercept_toggle":["bt_socket","bt_ble","bt_opp"],' +
' "bluetooth_intercept_time":30,' +
' "nearlink_intercept_toggle":["nearlink_ssap","nearlink_dataTransfer"],' +
' "nearlink_intercept_time":30' +
' },' +
'"Tag2":{' +
' "tag":"confidential",' +
' "usb_intercept_toggle":1,' +
' "net_intercept_toggle":1,' +
' "boundary":["10.0.0.0-10.255.255.255"],' +
' "netsegment_trustlist":["10.0.0.0-10.255.255.255"],' +
' "netsegment_blocklist":["172.16.0.0-172.31.255.255"],' +
' "smb_client_intercept_toggle":1,' +
' "smb_server_intercept_toggle":1,' +
' "print_intercept_toggle":1,' +
' "bluetooth_intercept_toggle":["bt_socket","bt_ble","bt_opp"],' +
' "bluetooth_intercept_time":30,' +
' "nearlink_intercept_toggle":["nearlink_ssap","nearlink_dataTransfer"],' +
' "nearlink_intercept_time":30' +
' },' +
'"Tag3":{' +
' "tag":"public",' +
' "usb_intercept_toggle":0,' +
' "net_intercept_toggle":0,' +
' "boundary":["10.0.0.0-10.255.255.255"],' +
' "netsegment_trustlist":["10.0.0.0-10.255.255.255"],' +
' "netsegment_blocklist":["172.16.0.0-172.31.255.255"],' +
' "smb_client_intercept_toggle":1,' +
' "smb_server_intercept_toggle":1,' +
' "print_intercept_toggle":1,' +
' "bluetooth_intercept_toggle":["bt_socket","bt_ble","bt_opp"],' +
' "bluetooth_intercept_time":30,' +
' "nearlink_intercept_toggle":["nearlink_ssap","nearlink_dataTransfer"],' +
' "nearlink_intercept_time":30' +
' },' +
'"Tag4":{' +
' "tag":"general",' +
' "usb_intercept_toggle":1,' +
' "net_intercept_toggle":0,' +
' "boundary":["10.0.0.0-10.255.255.255"],' +
' "netsegment_trustlist":["10.0.0.0-10.255.255.255"],' +
' "netsegment_blocklist":["172.16.0.0-172.31.255.255"],' +
' "smb_client_intercept_toggle":1,' +
' "smb_server_intercept_toggle":1,' +
' "print_intercept_toggle":1,' +
' "bluetooth_intercept_toggle":["bt_socket","bt_ble","bt_opp"],' +
' "bluetooth_intercept_time":30,' +
' "nearlink_intercept_toggle":["nearlink_ssap","nearlink_dataTransfer"],' +
' "nearlink_intercept_time":30' +
' },' +
'"Tag5":{' +
' "tag":"special",' +
' "usb_intercept_toggle":1,' +
' "net_intercept_toggle":1,' +
' "boundary":["10.0.0.0-10.255.255.255"],' +
' "netsegment_trustlist":["10.0.0.0-10.255.255.255"],' +
' "netsegment_blocklist":["172.16.0.0-172.31.255.255"],' +
' "smb_client_intercept_toggle":1,' +
' "smb_server_intercept_toggle":1,' +
' "print_intercept_toggle":1,' +
' "bluetooth_intercept_toggle":["bt_socket","bt_ble","bt_opp"],' +
' "bluetooth_intercept_time":30,' +
' "nearlink_intercept_toggle":["nearlink_ssap","nearlink_dataTransfer"],' +
' "nearlink_intercept_time":30' +
' }' +
'}';
guard.updatePolicy(policy, (err: BusinessError) => {
if (err) {
hilog.error(DOMAIN, TAG, `Failed to update policy. Code: ${err.code}, message: ${err.message}.`);
} else {
hilog.info(DOMAIN, TAG, `Succeeded in updating policy.`);
}
});
} 通过Promise方式,更新安全管控策略。
const TAG: string = 'FileGuard_Policy';
const DOMAIN: number = 0x0000;
// ...
/**
* 更新安全管控策略。使用Promise异步回调。
* @param accountId: 用户ID
*/
async function updatePolicyPromise(accountId: number) {
let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION |
bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_SIGNATURE_INFO;
let bundleInfo: bundleManager.BundleInfo = await bundleManager.getBundleInfoForSelf(bundleFlags);
let appId: string = bundleInfo.signatureInfo.appId;
let guard: fileGuard.FileGuard = new fileGuard.FileGuard();
let policy: string = '{' +
// 网络策略
'"net_intercept_toggle":1,' +
'"default_policy":1,' +
'"boundary":["10.0.0.0-10.255.255.255","172.16.0.0-172.31.255.255"],' +
'"netsegment_trustlist":["10.0.0.0-10.255.255.255","192.168.0.0-192.168.255.255"],' +
'"netsegment_blocklist":["172.16.0.0-172.31.255.255"],' +
'"netsegment_update_type": 0,' +
'"net_reject_cache_time":30,' +
// 文件策略
'"usb_intercept_toggle":1,' +
'"smb_client_intercept_toggle":1,' +
'"smb_server_intercept_toggle":1,' +
'"new_file_audit_toggle":1,' +
'"kia_variant_toggle":1,' +
'"audit_filter_toggle":1,' +
'"print_intercept_toggle":0,' +
// 蓝牙策略
'"bluetooth_intercept_toggle":["bt_socket","bt_ble","bt_opp"],' +
'"bluetooth_intercept_time":30,' +
// 星闪策略
'"nearlink_intercept_toggle":["nearlink_ssap","nearlink_dataTransfer"],' +
'"nearlink_intercept_time":30,' +
// 多用户策略
`"user_id":${accountId},` +
// 可信任应用列表
`"trust_app_list":["${appId}"],` +
'"kia_file_access_toggle":0,' +
// 五种自定义标签
'"Tag1":{' +
' "tag":"sensitive",' +
' "usb_intercept_toggle":1,' +
' "net_intercept_toggle":1,' +
' "boundary":["10.0.0.0-10.255.255.255"],' +
' "netsegment_trustlist":["10.0.0.0-10.255.255.255"],' +
' "netsegment_blocklist":["172.16.0.0-172.31.255.255"],' +
' "smb_client_intercept_toggle":1,' +
' "smb_server_intercept_toggle":1,' +
' "print_intercept_toggle":1,' +
' "bluetooth_intercept_toggle":["bt_socket","bt_ble","bt_opp"],' +
' "bluetooth_intercept_time":30,' +
' "nearlink_intercept_toggle":["nearlink_ssap","nearlink_dataTransfer"],' +
' "nearlink_intercept_time":30' +
' },' +
'"Tag2":{' +
' "tag":"confidential",' +
' "usb_intercept_toggle":1,' +
' "net_intercept_toggle":1,' +
' "boundary":["10.0.0.0-10.255.255.255"],' +
' "netsegment_trustlist":["10.0.0.0-10.255.255.255"],' +
' "netsegment_blocklist":["172.16.0.0-172.31.255.255"],' +
' "smb_client_intercept_toggle":1,' +
' "smb_server_intercept_toggle":1,' +
' "print_intercept_toggle":1,' +
' "bluetooth_intercept_toggle":["bt_socket","bt_ble","bt_opp"],' +
' "bluetooth_intercept_time":30,' +
' "nearlink_intercept_toggle":["nearlink_ssap","nearlink_dataTransfer"],' +
' "nearlink_intercept_time":30' +
' },' +
'"Tag3":{' +
' "tag":"public",' +
' "usb_intercept_toggle":0,' +
' "net_intercept_toggle":0,' +
' "boundary":["10.0.0.0-10.255.255.255"],' +
' "netsegment_trustlist":["10.0.0.0-10.255.255.255"],' +
' "netsegment_blocklist":["172.16.0.0-172.31.255.255"],' +
' "smb_client_intercept_toggle":1,' +
' "smb_server_intercept_toggle":1,' +
' "print_intercept_toggle":1,' +
' "bluetooth_intercept_toggle":["bt_socket","bt_ble","bt_opp"],' +
' "bluetooth_intercept_time":30,' +
' "nearlink_intercept_toggle":["nearlink_ssap","nearlink_dataTransfer"],' +
' "nearlink_intercept_time":30' +
' },' +
'"Tag4":{' +
' "tag":"general",' +
' "usb_intercept_toggle":1,' +
' "net_intercept_toggle":0,' +
' "boundary":["10.0.0.0-10.255.255.255"],' +
' "netsegment_trustlist":["10.0.0.0-10.255.255.255"],' +
' "netsegment_blocklist":["172.16.0.0-172.31.255.255"],' +
' "smb_client_intercept_toggle":1,' +
' "smb_server_intercept_toggle":1,' +
' "print_intercept_toggle":1,' +
' "bluetooth_intercept_toggle":["bt_socket","bt_ble","bt_opp"],' +
' "bluetooth_intercept_time":30,' +
' "nearlink_intercept_toggle":["nearlink_ssap","nearlink_dataTransfer"],' +
' "nearlink_intercept_time":30' +
' },' +
'"Tag5":{' +
' "tag":"special",' +
' "usb_intercept_toggle":1,' +
' "net_intercept_toggle":1,' +
' "boundary":["10.0.0.0-10.255.255.255"],' +
' "netsegment_trustlist":["10.0.0.0-10.255.255.255"],' +
' "netsegment_blocklist":["172.16.0.0-172.31.255.255"],' +
' "smb_client_intercept_toggle":1,' +
' "smb_server_intercept_toggle":1,' +
' "print_intercept_toggle":1,' +
' "bluetooth_intercept_toggle":["bt_socket","bt_ble","bt_opp"],' +
' "bluetooth_intercept_time":30,' +
' "nearlink_intercept_toggle":["nearlink_ssap","nearlink_dataTransfer"],' +
' "nearlink_intercept_time":30' +
' }' +
'}';
guard.updatePolicy(policy).then(() => {
hilog.info(DOMAIN, TAG, `Succeeded in updating policy.`);
}).catch((err: BusinessError) => {
hilog.error(DOMAIN, TAG, `Failed to update policy. Code: ${err.code}, message: ${err.message}.`);
});
} 初始化FileGuard对象guard,调用接口getPolicy,获取当前设备生效的管控策略内容。
const TAG: string = 'FileGuard_Policy';
const DOMAIN: number = 0x0000;
// ...
/**
* 获取当前设备生效的管控策略内容
*/
function getPolicyPromise() {
let guard: fileGuard.FileGuard = new fileGuard.FileGuard();
guard.getPolicy().then((policy: string | null) => {
if (policy === null) {
hilog.info(DOMAIN, TAG, `The obtained policy is null.`);
return;
}
hilog.info(DOMAIN, TAG, `Succeeded in getting policy. policy length: ${policy.length}`);
// 返回字符串较长,分次打印
let len: number = 2000; // 每次打印 2000 字符
let totalLen: number = policy.length;
for (let i: number = 0; i < totalLen; i += len) {
let end: number = Math.min(i + len, totalLen);
let item: string = policy.substring(i, end);
hilog.info(DOMAIN, TAG, `policy: ${item}`);
}
}).catch((err: BusinessError) => {
hilog.error(DOMAIN, TAG, `Failed to get policy. Code: ${err.code}, message: ${err.message}.`);
});
}