{"id":22394447,"url":"https://github.com/akamai/cli-etp","last_synced_at":"2025-07-31T10:32:49.981Z","repository":{"id":49675059,"uuid":"227442212","full_name":"akamai/cli-etp","owner":"akamai","description":"CLI for Enterprise Threat Protector (ETP)","archived":false,"fork":false,"pushed_at":"2025-05-02T08:13:23.000Z","size":150,"stargazers_count":10,"open_issues_count":1,"forks_count":2,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-05-02T09:26:34.941Z","etag":null,"topics":["akamai-cli","cli","cli-etp","enterprise-cli","enterprise-threat-protector","etp"],"latest_commit_sha":null,"homepage":"https://www.akamai.com/us/en/products/security/enterprise-threat-protector.jsp","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/akamai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-12-11T19:19:00.000Z","updated_at":"2024-09-05T21:35:08.000Z","dependencies_parsed_at":"2025-05-02T09:22:51.702Z","dependency_job_id":"8e397af8-f885-4152-8381-42301717a9ee","html_url":"https://github.com/akamai/cli-etp","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/akamai/cli-etp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akamai%2Fcli-etp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akamai%2Fcli-etp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akamai%2Fcli-etp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akamai%2Fcli-etp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/akamai","download_url":"https://codeload.github.com/akamai/cli-etp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akamai%2Fcli-etp/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268024646,"owners_count":24183149,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-31T02:00:08.723Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["akamai-cli","cli","cli-etp","enterprise-cli","enterprise-threat-protector","etp"],"created_at":"2024-12-05T05:10:12.314Z","updated_at":"2025-07-31T10:32:49.732Z","avatar_url":"https://github.com/akamai.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Akamai CLI: Secure Internet Access (SIA) Enterprise\u003c!-- omit in toc --\u003e\n\nSIA Enterprise was formerly known as Enterprise Threat Protector (ETP).  \nMore information at https://www.akamai.com/sia\n\n## Table of contents\u003c!-- omit in toc --\u003e\n\n- [Introduction](#introduction)\n- [Prerequisites](#prerequisites)\n  - [Akamai CLI](#akamai-cli)\n  - [Python 3](#python-3)\n- [Install cli-etp](#install-cli-etp)\n  - [API User and configuration file](#api-user-and-configuration-file)\n- [Updating ETP CLI module](#updating-etp-cli-module)\n- [Using a proxy](#using-a-proxy)\n- [Examples](#examples)\n  - [Fetch events](#fetch-events)\n  - [Manage security lists](#manage-security-lists)\n    - [Add items to a list](#add-items-to-a-list)\n    - [Deploy list changes](#deploy-list-changes)\n  - [Query Akamai IOC inteligence database](#query-akamai-ioc-inteligence-database)\n- [Reporting](#reporting)\n  - [List of sub-tenants](#list-of-sub-tenants)\n  - [Active ETP Client by sub-tenant](#active-etp-client-by-sub-tenant)\n- [Frequently Asked Questions](#frequently-asked-questions)\n- [Troubleshooting](#troubleshooting)\n  - [ERROR: Exiting with code 404, reason: Code-130009](#error-exiting-with-code-404-reason-code-130009)\n\n## Introduction\n\nSecure Internet Access Enterprise (formerly ETP) comes with a full suite of APIs. \nAPI requires to implement code to be able to interact with the service.\n\nThat's where Akamai CLI greatly help, no longer code to wrote yourself, you can run very common operations directly from the command line.\n\n## Prerequisites\n\n### Akamai CLI\n\nYou'll need the Akamai CLI, available on many platforms.\n\nPlease visit the [Getting Started](https://developer.akamai.com/cli/docs/getting-started) guide on developer.akamai.com.\n\n### Python 3\n\nThe machine running Akamai CLI will require Python 3.6+, you can download it from https://python.org.\n\n## Install cli-etp\n\nInstallation is done via `akamai install`:\n\n```\n$ akamai install etp\n```\n\nRunning this will take care of all the dependencies.\n\n### API User and configuration file\n\nOn [Akamai Control Center](https://control.akamai.com), make sure you create an API user \nwith the _ETP Configuration API_ (`/etp-config`) with `READ-WRITE` permission.\n\nUpon user credential creation, you'll get a `.edgerc` file with 4 parameters.\nYou'll need to add a 5th line with the `etp_config_id`. \n\nThe value of the parameter is a integer you can obtain by navigating in Akamai Control Center: \n\n- Select **Enterprise Center** from the left menu\n- Navigate to **Threat Protection**\n- Open **Locations** \u003e **Locations**\n- Extract the ETP Config ID integer from the URL as pictured:\n\n\u003cimg src=\"docs/etp-config-id.png\" width=\"100%\"\u003e\n\nExample of `.edgerc` file:\n```\n[default]\nclient_secret = client-secret-goes-here\nhost = akab-xxxx.luna.akamaiapis.net\naccess_token = your-access-token\nclient_token = your-client-token\netp_config_id = your-ETP-config-ID\n```\n\n## Updating ETP CLI module\n\nTo update to the latest version:\n\n```\n$ akamai update etp\n```\n\n## Using a proxy\n\nYour organization may require to use a proxy server to reach to the public internet.\nUse the `--proxy` option, and if you need to pass a specific private CA certificate you may\nuse the REQUESTS_CA_BUNDLE environment variable.\n\nExample on a Unix based OS:\n```\n$ REQUESTS_CA_BUNDLE=~/ssl-proxying-certificate.pem akamai etp --proxy 127.0.0.1:8888 list get\n```\n\n## Examples\n\n### Fetch events\n\nFetch the latest security events with the `event` command.\nThe events delivery pipeline is almost realtime, in order to not miss any event, we recommend to query events from 3 minutes ago or older.\n\nIf `--start` is not specified, we set it to 30 minutes ago\nIf `--end` is not specified, we set it to 3 minutes ago\n\nBoth argument expect a EPOCH timestamp.\n\n```\n$ akamai etp event threat\n```\n\nor Accceptable Use Policy\n\n```\n$ akamai etp event aup\n```\n\nYou may want to use the blocking mode using `--tail`\n\n```\n$ akamai etp event aup --tail\n```\n\nYou can also send the output to a specific file (appending mode) with `--output`:\n\n```\n$ akamai etp event aup --tail --output /tmp/etp_event_aup.json\n```\n\nWhen using the block mode, you can gracefully stop the command process:\n- either manually with Control+C (Control-Break)\n- or sending a SIG_TERM signal\n\nYou can also pipe the command to another process like your favorite JSON parser like _jq_ or _ConvertFrom-Json_ in Powershell.\n\n```\n$ akamai etp event aup --start 1576877365 --end 1576878265|jq .\n```\n\nOther event available are DNS activity (use `dns`) and Proxy Traffic (use `proxy`)\n\n### Manage security lists\n\nGet the lists available on the account\n```\n$ akamai etp list get\n```\n\nThe result is a coma separated lines:\n\n```\n7721,Custom Deny list\n11981,LOLCats Deny list\n11603,Zero Trust Demo Deny list\n14461,Social Media\n14821,Allow List Domains\n22206,Custom fileshare site\n24204,ZTX Exception list\n15704,Allow List\n```\n\n#### Add items to a list\n\nOne FQDN\n```\n$ akamai etp list add 11603 www.badguys.com\n```\n\nOne IP address\n```\n$ akamai etp list add 11603 12.34.56.78\n```\n\nMix of multiple items\n```\n$ akamai etp list add 11603 12.34.56.78 www.badguys.com\n```\n\nLoad item from a file\n```\n$ akamai etp list add 11603 @list.txt\n```\n\nYou can use pipe command\n```\n$ cat list.txt | akamai etp list add 11603 @-\n```\n\nOr type in and hit Ctrl+D when done\n```\n$ akamai etp list add 11603 @-\n```\n\nYou can replace 'add' by 'remove' in the example above to remove items from list.\n\n#### Deploy list changes\n\n```\n$ akamai etp list deploy 11603\n```\n\n### Query Akamai IOC inteligence database\n\n```\n$ akamai etp ioc info akamaietpmalwaretest.com\n$ akamai etp ioc changes akamaietpmalwaretest.com\n$ akamai etp ioc timeseries akamaietpmalwaretest.com\n```\n\n## Reporting\n\n### List of sub-tenants\n\nList all the sub tenants in the account, with their respective ETP Config ID and name\n```\n$ akamai etp tenant list\n# Command: akamai etp tenant list\n# config_id, tenant_name\n12345,Tenant A\n23456,Tenant B\n34567,Tenant C\n45678,Tenant D\n56789,Tenant E\n```\n\n### Active ETP Client by sub-tenant\n\nReport number of active ETP clients for the last 30 days by sub-tenant.\nYou can specify the time interval passing EPOCH integer as `--start` and `--end`.\nCSV output headers are sent to *stderr*, body with the rows are sent to *stdout* to allow to pipe commands.\n\n```\n$ akamai etp tenant clients\n# Command: akamai etp tenant clients\n# Report start: 1640721997\n# Report end: 1643313997\n# config_id, tenant_name, active_client_count\n12345,Tenant A,10\n23456,Tenant B,20\n34567,Tenant C,30\n45678,Tenant D,40\n56789,Tenant E,50\n```\n\n## Frequently Asked Questions\n\n\u003cem\u003eQ: Can I use `cli-etp` to stream data to my SIEM?\u003c/em\u003e  \nA: Yes, you can use the file output and have the file monitor by a SIEM agent.  \nAlternatively check out [Akamai Universal Log Streamer (ULS)](https://github.com/akamai/uls) which offer TCP, UDP, HTTP and File output with a lot of flexibility!\n\n\u003cem\u003eWill there be a cli-sia?\u003c/em\u003e  \nA: Maybe. We keep maintaining `cli-etp` and the project might be renamed to `cli-sia` at some point.\n\n## Troubleshooting\n\n### ERROR: Exiting with code 404, reason: Code-130009\n\nMake sure the API user has access to the ETP Config ID defined the `.edgerc` file, typically a mismatch will cause the 404 error.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakamai%2Fcli-etp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fakamai%2Fcli-etp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakamai%2Fcli-etp/lists"}