Esta página se aplica a Apigee y Apigee Hybrid.
Consulta la documentación de Apigee Edge.
Además de ver las puntuaciones de seguridad y los perfiles de seguridad en la IU de Apigee, también puedes acceder a ellas a través de la API de puntuaciones y perfiles de seguridad. En esta página, se presentan algunos ejemplos del uso de la API de perfiles y puntuaciones de seguridad.
Limitaciones de las puntuaciones de seguridad cuando se usan las APIs
Las puntuaciones de seguridad tienen las siguientes limitaciones cuando se usan desde las APIs de perfiles y puntuaciones de seguridad:
- Campos de entrada compatibles en JSON:
timeRange
: La duración del intervalo de tiempo puede ser de 14 días como máximo y elstartTime
y elendTime
para el intervalo de tiempo deben estar dentro de los últimos 90 días. Consulta Intervalo de tiempo.filters
Consulta Filtros compatibles con la API.pageSize
: Cantidad máxima de subcomponentes que se mostrarán en una sola página: 100.
- No se admiten varios filtros de entrada.
- No se admite el campo de impacto en la respuesta. (El campo de impacto es el posible impacto de esta recomendación en la puntuación general. Esto indica la importancia de esta recomendación para mejorar la puntuación).
Para conocer las limitaciones generales de la puntuación de seguridad no específicas para usar desde las APIs, consulta Limitaciones de las puntuaciones de seguridad.
Demoras en el procesamiento de datos
Los datos en los que se basan las puntuaciones de seguridad de la API avanzada tienen las siguientes demoras, debido a la forma en que se procesan los datos:
- Cuando habilitas la seguridad avanzada de la API en una organización, puede tomar hasta 6 horas para que las puntuaciones de los proxies y objetivos existentes se reflejen en un entorno.
- Los eventos nuevos relacionados con los proxies (implementación y anulación de la implementación) y los objetivos (crear, actualizar y borrar) en un entorno pueden tardar hasta 6 días en reflejarse en la puntuación del entorno.
- Los datos que fluyen a la canalización de Analytics de Apigee tienen un retraso promedio de hasta 15 a 20 minutos. Como resultado, los datos de abuso de puntuaciones de la fuente tienen un retraso de procesamiento de entre 15 y 20 minutos.
Parámetros en llamadas a la API de ejemplo
En las siguientes secciones, se proporcionan ejemplos de llamadas a la API que usan las puntuaciones de seguridad y la API de perfiles. Las llamadas a la API contienen los siguientes parámetros:
- ORG es tu organización.
- ENV es el entorno en el que deseas que se calculen las puntuaciones.
- ENVGROUP es un grupo de entornos que contiene el entorno.
- PROFILE_ID es el nombre del perfil. PROFILE_ID puede ser
default
o el nombre de un perfil personalizado que crees.PROFILE_ID debe contener entre 1 y 63 caracteres, que pueden ser letras minúsculas, números del 0 al 9 o guiones. El primer carácter debe ser una letra minúscula. El último carácter debe ser una letra minúscula o un número.
$TOKEN
es la variable de entorno para un token de acceso de OAuth.timeRange
es el intervalo de tiempo de las puntuaciones.
Intervalo de tiempo
El intervalo de tiempo para los datos en los que se calculan las puntuaciones de seguridad. Puedes configurar el intervalo de tiempo si especificas una hora de inicio y de finalización para las puntuaciones en el siguiente formato:
"timeRange": { "startTime": "YYYY-MM-DDT00:00:00Z", "endTime": "YYYY-MM-DDT00:00:00Z" }
Tanto startTime
como endTime
deben estar dentro de los últimos 90 días.
Usa el perfil de seguridad predeterminado
En los siguientes ejemplos, se muestra cómo usar el perfil de seguridad predeterminado. Consulta Parámetros en llamadas de API de ejemplo para ver los parámetros que se usan en los ejemplos.
Conecta el perfil de seguridad predeterminado a un entorno
Para ver las puntuaciones de seguridad, debes adjuntar un perfil al entorno cuya seguridad deseas evaluar. Para conectar el perfil de seguridad predeterminado a un entorno, usa el siguiente comando:
curl "https://apigee.googleapis.com/v1/organizations/ORG/securityProfiles/default/environments" \ -X POST \ -d '{"name": "ENV"}' \ -H 'Content-type: application/json' \ -H "Authorization: Bearer $TOKEN"
Obtén la definición de perfil de seguridad predeterminada
Para obtener la definición del perfil de seguridad predeterminado, ingresa el siguiente comando:
curl "https://apigee.googleapis.com/v1/organizations/ORG/securityProfiles/default" \ -H 'Content-type: application/json' \ -H "Authorization: Bearer $TOKEN"
Desconecta el perfil de seguridad predeterminado de un entorno
Si necesitas desconectar el perfil predeterminado de un entorno, puedes hacerlo de la siguiente manera:
curl "https://apigee.googleapis.com/v1/organizations/ORG/securityProfiles/default/environments/ENV" \ -X DELETE -H 'Content-type: application/json' \ -H "Authorization: Bearer $TOKEN"
Usa un perfil de seguridad personalizado
Puedes crear un perfil de seguridad personalizado con una llamada a la API de cualquiera de las siguientes maneras:
- Define el perfil de forma explícita en el cuerpo de la llamada.
- Adjunta un archivo JSON que contenga la definición del perfil a la llamada.
En las siguientes secciones, se proporcionan ejemplos de ambos métodos. Consulta Parámetros en llamadas de API de ejemplo para ver los parámetros que se usan en los ejemplos.
Los siguientes campos en las llamadas a la API de ejemplo especifican el perfil personalizado:
description
: Una descripción del perfil personalizado.profileConfig
: Es una lista de las categorías que se deben incluir en el perfil personalizado. Puede ser cualquier subconjunto de las siguientes categorías de seguridad:abuse
authorization
cors
mtls
mediation
threat
Define el perfil en el cuerpo de una llamada a la API
Para definir un perfil personalizado en el cuerpo de una llamada a la API, ingresa un comando similar al siguiente:
curl "https://apigee.googleapis.com/v1/organizations/ORG/securityProfiles?security_profile_id=PROFILE_ID" \ -X POST \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "description":"test custom profile", "profileConfig" : { "categories":[ {"cors":{}}, {"threat":{}} ] } }'
Esto crea un perfil personalizado que incluye las categorías cors y la amenaza, y muestra la siguiente respuesta:
{ "name": "PROFILE_ID", "revisionId": "1", "revisionCreateTime": "2023-07-17T18:47:08Z", "revisionUpdateTime": "2023-07-17T18:47:08Z", "scoringConfigs": [ { "title": "json", "scorePath": "/org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@$proxy/policies/individual/security/threat/json", "description": "Check if JSONThreatProtection policy is configured." }, { "title": "xml", "scorePath": "/org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@$proxy/policies/individual/security/threat/xml", "description": "Check if XMLThreatProtection policy is configured." }, { "title": "cors", "scorePath": "/org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@$proxy/policies/individual/security/cors", "description": "Check if CORS policy is configured." } ], "maxScore": 1200, "minScore": 200, "profileConfig": { "categories": [ { "cors": {} }, { "threat": {} } ] }, "description": "test custom profile" }
Define el perfil mediante la vinculación de un archivo JSON a una llamada a la API
También puedes definir un perfil de seguridad personalizado si adjuntas un archivo JSON que defina el perfil a una llamada a la API. Por ejemplo, primero crea el siguiente archivo JSON:
{ "description": "test custom profile", "profileConfig" : { "categories":[ {"cors":{}}, {"threat" :{}}, ] } }
Esto define un perfil con las categorías de cors y amenaza. Luego, puedes crear un perfil basado en estas categorías de la siguiente manera:
curl "https://apigee.googleapis.com/v1/organizations/ORG/securityProfiles?security_profile_id=PROFILE_ID" \ -X POST \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d @create_profile.json
En el ejemplo anterior,
create_profile.json
es el nombre del archivo JSON descrito anteriormente.Obtén una definición de perfil de seguridad personalizada
Para obtener la definición de un perfil de seguridad personalizado, ingresa un comando similar al siguiente:
curl "https://apigee.googleapis.com/v1/organizations/ORG/securityProfiles/PROFILE_ID" \ -X GET \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json"
Desconecta un perfil de seguridad personalizado de un entorno
Para desconectar un perfil de seguridad personalizado de un entorno, ingresa un comando similar al siguiente:
curl "https://apigee.googleapis.com/v1/organizations/ORG/securityProfiles/PROFILE_ID/environments/ENV" \ -X DELETE \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json"
Borra un perfil de seguridad personalizado
Para borrar un perfil de seguridad personalizado, ingresa un comando similar al siguiente:
curl "https://apigee.googleapis.com/v1/organizations/ORG/securityProfiles/PROFILE_ID" \ -X DELETE \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json"
Obtén puntuaciones para un entorno
En las siguientes secciones, se presentan ejemplos de cómo obtener puntuaciones para un entorno. Consulta Parámetros en llamadas de API de ejemplo para ver los parámetros que se usan en los ejemplos.
Obtén todas las puntuaciones de un entorno
Para obtener todas las puntuaciones de un entorno, ingresa un comando similar al siguiente:
curl "https://apigee.googleapis.com/v1/organizations/ORG/securityProfiles/PROFILE_ID/environments/ENV:computeEnvironmentScores" \ -X POST \ -d '{"timeRange": { "startTime": "YYYY-MM-DDT00:00:00Z", "endTime": "YYYY-MM-DDT00:00:00Z" } }' \ -H 'Content-type: application/json' \ -H "Authorization: Bearer $TOKEN"
Consulta la página de referencia de
computeEnvironmentScores
para obtener una descripción de la solicitud y la respuesta.Obtén puntuaciones de origen para un entorno
Para obtener las puntuaciones de origen de un entorno, ingresa un comando similar al siguiente:
curl "https://apigee.googleapis.com/v1/organizations/ORG/securityProfiles/PROFILE_ID/environments/ENV:computeEnvironmentScores" \ -X POST \ -d '{"timeRange": { "startTime": "YYYY-MM-DDT00:00:00Z", "endTime": "YYYY-MM-DDT00:00:00Z" }, "filters": [{"scorePath": "/org@ORG/envgroup@ENVGROUP/env@ENV/source"}] }' \ -H 'Content-type: application/json' \ -H "Authorization: Bearer $TOKEN"
Obtén una puntuación de abuso en la fuente para un entorno
Para obtener la puntuación de abuso en la fuente para un entorno, ingresa un comando similar al siguiente:
curl "https://apigee.googleapis.com/v1/organizations/ORG/securityProfiles/PROFILE_ID/environments/ENV:computeEnvironmentScores" \ -X POST \ -d '{"timeRange": { "startTime": "YYYY-MM-DDT00:00:00Z", "endTime": "YYYY-MM-DDT00:00:00Z" }, "filters": [{"scorePath": "/org@ORG/envgroup@ENVGROUP/env@ENV/source/abuse"}] }' \ -H 'Content-type: application/json' \ -H "Authorization: Bearer $TOKEN"
Obtén puntuaciones para todos los proxies de un entorno
Para obtener puntuaciones de todos los proxies de un entorno, ingresa un comando similar al siguiente:
curl "https://apigee.googleapis.com/v1/organizations/ORG/securityProfiles/PROFILE_ID/environments/ENV:computeEnvironmentScores" \ -X POST \ -d '{"timeRange": { "startTime": "YYYY-MM-DDT00:00:00Z", "endTime": "YYYY-MM-DDT00:00:00Z" }, "filters": [{"scorePath": "/org@ORG/envgroup@ENVGROUP/env@ENV/proxies"}] }' \ -H 'Content-type: application/json' \ -H "Authorization: Bearer $TOKEN"
Obtén puntuaciones para un proxy específico en un entorno
Para obtener puntuaciones de un proxy específico en un entorno, ingresa un comando similar al siguiente:
curl "https://apigee.googleapis.com/v1/organizations/ORG/securityProfiles/PROFILE_ID/environments/ENV:computeEnvironmentScores" \ -X POST \ -d '{"timeRange": { "startTime": "YYYY-MM-DDT00:00:00Z", "endTime": "YYYY-MM-DDT00:00:00Z" }, "filters": [{"scorePath": "/org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@PROXY"}] }' \ -H 'Content-type: application/json' \ -H "Authorization: Bearer $TOKEN"
En el ejemplo anterior, PROXY es el proxy cuyas puntuaciones deseas obtener.
Obtén puntuaciones para un destino específico en un entorno
Para obtener puntuaciones para un destino específico en un entorno, ingresa un comando similar al siguiente:
curl "https://apigee.googleapis.com/v1/organizations/ORG/securityProfiles/PROFILE_ID/environments/ENV:computeEnvironmentScores" \ -X POST \ -d '{"timeRange": { "startTime": "YYYY-MM-DDT00:00:00Z", "endTime": "YYYY-MM-DDT00:00:00Z" }, "filters": [{"scorePath": "/org@ORG/envgroup@ENVGROUP/env@ENV/target@TARGET"}] }' \ -H 'Content-type: application/json' \ -H "Authorization: Bearer $TOKEN"
Filtros compatibles con la API
En la tabla siguiente, se enumeran los filtros compatibles con la API y sus rutas de componentes. En las rutas de componentes, reemplaza las variables de la siguiente manera:
- ORG: Tu organización
- ENV: El entorno en el que ves las puntuaciones
- PROXY_NAME: El nombre del proxy
Filtro Ruta de acceso al componente Puntuaciones del entorno /org@ORG/envgroup@ENVGROUP/env@ENV
La fuente puntúa todos los componentes subyacentes /org@ORG/envgroup@ENVGROUP/env@ENV/source
Puntuaciones de abuso /org@ORG/envgroup@ENVGROUP/env@ENV/source/abuse
Puntuación para todos los proxies /org@ORG/envgroup@ENVGROUP/env@ENV/proxies
Puntuaciones para un proxy específico /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@PROXY_NAME
Puntuación de políticas para un proxy específico /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@PROXY_NAME/policies
/org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@PROXY_NAME/policies/individual
Puntuaciones de la política de mediación para un proxy específico /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@PROXY_NAME/policies/individual/mediation
Puntuaciones de la política de seguridad para un proxy específico /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@PROXY_NAME/policies/individual/security
Puntuaciones de la política de autenticación para un proxy específico /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@PROXY_NAME/policies/individual/security/auth
Puntuación de la política de CORS para un proxy específico /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@PROXY_NAME/policies/individual/security/cors
Puntuaciones de la política de amenazas para un proxy específico /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@PROXY_NAME/policies/individual/security/threat
Puntuaciones de políticas para todos los proxies del entorno /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@$proxy/policies
/org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@$proxy/policies/individual
Puntuaciones de la política de mediación para todos los proxies del entorno /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@$proxy/policies/individual/mediation
Puntuaciones de la política de seguridad para todos los proxies del entorno /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@$proxy/policies/individual/security
Puntuaciones de la política de autenticación para todos los proxies del entorno /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@$proxy/policies/individual/security/auth
Puntuaciones de la política de CORS para todos los proxies del entorno /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@$proxy/policies/individual/security/cors
Puntuaciones de la política de amenazas para todos los proxies del entorno /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@$proxy/policies/individual/security/threat