NetApp Datenklassifizierungs-APIs
Die über die Web-Benutzeroberfläche verfügbaren NetApp Datenklassifizierungsfunktionen sind auch über die REST-API verfügbar.
Innerhalb der Datenklassifizierung sind vier Kategorien definiert, die den Registerkarten in der Benutzeroberfläche entsprechen:
-
Untersuchung
-
Einhaltung
-
Führung
-
Konfiguration
Mit den APIs in der Swagger-Dokumentation können Sie suchen, Daten aggregieren, Ihre Scans verfolgen und Aktionen wie Kopieren, Verschieben und Löschen ausführen.
Überblick
Mit der API können Sie die folgenden Funktionen ausführen:
-
Exportinformationen
-
Alles, was in der Benutzeroberfläche verfügbar ist, kann über die API exportiert werden (mit Ausnahme von Berichten).
-
Daten werden im JSON-Format exportiert (einfach zu analysieren und an Anwendungen von Drittanbietern wie Splunk weiterzuleiten).
-
-
Erstellen Sie Abfragen mit „UND“- und „ODER“-Anweisungen, schließen Sie Informationen ein und aus und mehr.
Sie können beispielsweise Dateien ohne spezifische personenbezogene Daten (PII) suchen (Funktion in der Benutzeroberfläche nicht verfügbar). Sie können auch bestimmte Felder vom Exportvorgang ausschließen.
-
Aktionen ausführen
-
CIFS-Anmeldeinformationen aktualisieren
-
Aktionen anzeigen und abbrechen
-
Verzeichnisse erneut scannen
-
Daten exportieren
-
Die API ist sicher und verwendet dieselbe Authentifizierungsmethode wie die Benutzeroberfläche. Informationen zur Authentifizierung finden Sie im"REST API-Dokumentation" .
Zugriff auf die Swagger-API-Referenz
Um auf Swagger zuzugreifen, benötigen Sie die IP-Adresse Ihrer Datenklassifizierungsinstanz. Bei einer Cloud-Bereitstellung verwenden Sie die öffentliche IP-Adresse. Dann müssen Sie zu diesem Endpunkt gelangen:
https://<Klassifizierungs-IP>/documentation
Beispiel für die Verwendung der APIs
Das folgende Beispiel zeigt einen API-Aufruf zum Kopieren von Dateien.
Sie müssen zunächst alle relevanten Felder und Optionen für ein System abrufen, um alle Filter auf der Registerkarte „Untersuchung“ anzuzeigen.
curl -X GET "http://{classification_ip}/api/{classification_version} /search/options?data_mode=ALL_EXTRACTABLE" -H "accept: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR……… " -H "x-agent-id: hOXsZNvnA5LsthwMILtjL9xZFYBQxAwMclients"
{
"options": [
{
"active_directory_affected": false,
"data_mode": "ALL_SCANNED",
"field": "string",
"is_rulable": true,
"name": "string",
"operators": [
"EQUALS"
],
"optional_values": [
{}
],
"secondary": {},
"server_data": false,
"type": "TEXT"
}
]
}
{
"options": [
{
"active_directory_affected": false,
"data_mode": "ALL_EXTRACTABLE",
"field": "POLICIES",
"name": "Policies",
"operators": [
"IN",
"NOT_IN"
],
"server_data": true,
"type": "SELECT"
},
{
"active_directory_affected": false,
"data_mode": "ALL_EXTRACTABLE",
"field": "EXTRACTION_STATUS_RANGE",
"name": "Scan Analysis Status",
"operators": [
"IN"
],
"server_data": true,
"type": "SELECT"
},
{
"active_directory_affected": false,
"data_mode": "ALL_FILESYSTEM_EXTRACTABLE",
"field": "SCAN_ANALYSIS_ERROR",
"name": "Scan Analysis Event",
"operators": [
"IN"
],
"server_data": true,
"type": "SELECT"
},
{
"active_directory_affected": false,
"data_mode": "ALL_FILESYSTEM_EXTRACTABLE",
"field": "PUBLIC_ACCESS",
"name": "Open Permissions",
"operators": [
"IN",
"NOT_IN"
],
"server_data": true,
"type": "SELECT"
},
{
"active_directory_affected": true,
"data_mode": "ALL_FILESYSTEM_EXTRACTABLE",
"field": "USERS_PERMISSIONS_COUNT_RANGE",
"name": "Number of Users with Access",
"operators": [
"IN",
"NOT_IN"
],
"server_data": true,
"type": "SELECT"
},
{
"active_directory_affected": true,
"data_mode": "ALL_FILESYSTEM_EXTRACTABLE",
"field": "USER_GROUP_PERMISSIONS",
"name": "User / Group Permissions",
"operators": [
"IN"
],
"server_data": true,
"type": "SELECT"
},
{
"active_directory_affected": false,
"data_mode": "ALL_FILESYSTEM_EXTRACTABLE",
"field": "FILE_OWNER",
"name": "File Owner",
"operators": [
"EQUALS",
"CONTAINS"
],
"server_data": true,
"type": "TEXT"
},
{
"active_directory_affected": false,
"data_mode": "ALL_EXTRACTABLE",
"field": "ENVIRONMENT_TYPE",
"name": "system-type",
"operators": [
"IN",
"NOT_IN"
],
"server_data": true,
"type": "SELECT"
},
{
"active_directory_affected": false,
"data_mode": "ALL_EXTRACTABLE",
"field": "ENVIRONMENT",
"name": "system",
"operators": [
"IN",
"NOT_IN"
],
"server_data": true,
"type": "SELECT"
},
{
"active_directory_affected": false,
"data_mode": "ALL_SCANNED",
"field": "SCAN_TASK",
"name": "Storage Repository",
"operators": [
"IN",
"NOT_IN"
],
"server_data": true,
"type": "SELECT"
},
{
"active_directory_affected": false,
"data_mode": "ALL_FILESYSTEM_EXTRACTABLE",
"field": "FILE_PATH",
"name": "File / Directory Path",
"operators": [
"MULTI_CONTAINS",
"MULTI_EXCLUDE"
],
"server_data": true,
"type": "MULTI_TEXT"
},
{
"active_directory_affected": false,
"data_mode": "ALL_DASHBOARD_EXTRACTABLE",
"field": "CATEGORY",
"name": "Category",
"operators": [
"IN",
"NOT_IN"
],
"server_data": true,
"type": "SELECT"
},
{
"active_directory_affected": false,
"data_mode": "ALL_EXTRACTABLE",
"field": "PATTERN_SENSITIVITY_LEVEL",
"name": "Sensitivity Level",
"operators": [
"IN"
],
"server_data": true,
"type": "SELECT"
},
{
"active_directory_affected": false,
"data_mode": "ALL_FILESYSTEM_EXTRACTABLE",
"field": "NUMBER_OF_IDENTIFIERS",
"name": "Number of identifiers",
"operators": [
"IN",
"NOT_IN"
],
"server_data": true,
"type": "SELECT"
},
{
"active_directory_affected": false,
"data_mode": "ALL_EXTRACTABLE",
"field": "PATTERN_PERSONAL",
"name": "Personal Data",
"operators": [
"IN",
"NOT_IN"
],
"server_data": true,
"type": "SELECT"
},
{
"active_directory_affected": false,
"data_mode": "ALL_EXTRACTABLE",
"field": "PATTERN_SENSITIVE",
"name": "Sensitive Personal Data",
"operators": [
"IN",
"NOT_IN"
],
"server_data": true,
"type": "SELECT"
},
{
"active_directory_affected": false,
"data_mode": "ALL_EXTRACTABLE",
"field": "DATA_SUBJECT",
"name": "Data Subject",
"operators": [
"EQUALS",
"CONTAINS"
],
"server_data": true,
"type": "TEXT"
},
{
"active_directory_affected": false,
"data_mode": "DIRECTORIES",
"field": "DIRECTORY_TYPE",
"name": "Directory Type",
"operators": [
"IN",
"NOT_IN"
],
"server_data": true,
"type": "SELECT"
},
{
"active_directory_affected": false,
"data_mode": "ALL_EXTRACTABLE",
"field": "FILE_TYPE",
"name": "File Type",
"operators": [
"IN",
"NOT_IN"
],
"server_data": true,
"type": "SELECT"
},
{
"active_directory_affected": false,
"data_mode": "ALL_EXTRACTABLE",
"field": "FILE_SIZE_RANGE",
"name": "File Size",
"operators": [
"IN",
"NOT_IN"
],
"server_data": true,
"type": "SELECT"
},
{
"active_directory_affected": false,
"data_mode": "ALL_FILESYSTEM_EXTRACTABLE",
"field": "FILE_CREATION_RANGE_RETENTION",
"name": "Created Time",
"operators": [
"IN"
],
"server_data": true,
"type": "SELECT"
},
{
"active_directory_affected": false,
"data_mode": "ALL_EXTRACTABLE",
"field": "DISCOVERED_TIME_RANGE",
"name": "Discovered Time",
"operators": [
"IN"
],
"server_data": true,
"type": "SELECT"
},
{
"active_directory_affected": false,
"data_mode": "ALL_FILESYSTEM_EXTRACTABLE",
"field": "FILE_LAST_MODIFICATION_RETENTION",
"name": "Last Modified",
"operators": [
"IN"
],
"server_data": true,
"type": "SELECT"
},
{
"active_directory_affected": false,
"data_mode": "ALL_FILESYSTEM_EXTRACTABLE",
"field": "FILE_LAST_ACCESS_RANGE_RETENTION",
"name": "Last Accessed",
"operators": [
"IN"
],
"server_data": true,
"type": "SELECT"
},
{
"active_directory_affected": false,
"data_mode": "FILES",
"field": "IS_DUPLICATE",
"name": "Duplicates",
"operators": [
"EQUALS",
"IN"
],
"server_data": true,
"type": "SELECT"
},
{
"active_directory_affected": false,
"data_mode": "FILES",
"field": "FILE_HASH",
"name": "File Hash",
"operators": [
"EQUALS",
"IN"
],
"server_data": true,
"type": "TEXT"
},
{
"active_directory_affected": false,
"data_mode": "ALL_EXTRACTABLE",
"field": "USER_DEFINED_STATUS",
"name": "Tags",
"operators": [
"IN",
"NOT_IN"
],
"server_data": true,
"type": "SELECT"
},
{
"active_directory_affected": false,
"data_mode": "ALL_EXTRACTABLE",
"field": "ASSIGNED_TO",
"name": "Assigned to",
"operators": [
"IN",
"NOT_IN"
],
"server_data": true,
"type": "SELECT"
}
]
}
Wir werden diese Antwort in unseren Anforderungsparametern verwenden, um die gewünschten Dateien zu filtern, die wir kopieren möchten.
Sie können eine Aktion auf mehrere Elemente anwenden. Zu den unterstützten Aktionstypen gehören: Verschieben, Löschen und Kopieren.
Wir erstellen die Kopieraktion:
Diese nächste API ist die Aktions-API und ermöglicht Ihnen die Erstellung mehrerer Aktionen.
curl -X POST "http:// {classification_ip}/api//{classification_version}/actions" -H "accept: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR……… " -H "x-agent-id: hOXsZNvnA5LsthwMILtjL9xZFYBQxAwMclients " -H "Content-Type: application/json" -d "{ \"action_type\": \"COPY\", \"data_mode\": \"FILES\", \"policy_id\": 0, \"request_params\": { destination_nfs_path: "{ontap_ip}:/{share_name} " }, \"requested_query\":{"condition":"AND","rules":[{"field":"ENVIRONMENT_TYPE","operator":"IN","value":["ONPREM"]},{"field":"CATEGORY","operator":"IN","value":["21"]}]}}"
Die Antwort gibt das Aktionsobjekt zurück, sodass Sie die APIs zum Abrufen und Löschen verwenden können, um den Status der Aktion abzurufen oder sie abzubrechen.
{
"action_type": "COPY",
"creation_time": "2023-08-08T12:37:21.705Z",
"data_mode": "FILES",
"end_time": "2023-08-08T12:37:21.705Z",
"estimated_time_to_complete": 0,
"id": 0,
"policy_id": 0,
"policy_name": "string",
"priority": 0,
"request_params": {},
"requested_query": {},
"result": {
"error_message": "string",
"failed": 0,
"in_progress": 0,
"succeeded": 0,
"total": 0
},
"start_time": "2023-08-08T12:37:21.705Z",
"status": "QUEUED",
"title": "string",
"user_id": "string"
}