Agregar una política de seguridad de llamada de Java personalizada

Esta página se aplica a Apigee y Apigee híbrido .

Ver la documentación de Apigee Edge .

¿Qué es una política de seguridad de llamada de Java personalizada?

Las llamadas Java permiten personalizar el comportamiento de la API mediante código Java. Al implementar una llamada Java, Apigee establece los permisos predeterminados para la API mediante políticas de permisos Java . En Apigee híbrido, se pueden cambiar los permisos predeterminados creando una política de seguridad de llamadas Java personalizada.

Puede crear una política de seguridad de llamada de Java personalizada mediante un recurso , definido en un archivo de recursos de tipo securityPolicy . El recurso se configura a nivel de entorno. El archivo de recursos puede tener cualquier nombre, pero debe agregar el sufijo .policy al nombre del archivo de política de Java personalizada. Por ejemplo: strict-security.policy .

El siguiente comando agrega un archivo de recursos llamado strict-security.policy .

curl -X POST "https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles?name=CustomJavaSecurityPolicy&type=securityPolicy"
-H "Authorization: Bearer $TOKEN" \
-H "Content-type: multipart/form-data" \
-F file=@/Users/home/strict-security.policy
Los archivos de política de seguridad admiten la misma sintaxis que la política de seguridad estándar de Java; consulte Implementación de política predeterminada y Sintaxis de archivo de política .

Una vez creado un archivo de política de seguridad que define una política de llamada de Java personalizada, el entorno de ejecución de Apigee puede detectarla y usar los permisos personalizados que define. Si no existe ninguna política de llamada de Java personalizada, Apigee usa la política de seguridad predeterminada para código Java o Python personalizado.

Archivo de política de seguridad

Los siguientes ejemplos muestran contenido de muestra de un archivo de política de seguridad.

Las líneas a continuación especifican la ubicación del código para una llamada Java personalizada y otorgan todos los permisos al directorio.

Relaxed security policy file for testing
// javacallout code has just read permission in the installed dir and everything below it
  grant codeBase "file:${javacallout.dir}/-"  {
    permission java.security.AllPermission;
}

Estas líneas especifican la ubicación del código para una llamada Jython/Python personalizada y otorgan permisos de lectura al directorio.

// Jython/Python secure
grant codeBase "file:${jython-secure-jar}" {
    // No logging permissions for secure jar. Hence value of the AllExcept target parameter set to 0
    permission com.apigee.securitypolicy.AllExcept "0", "java.io.FilePermission";
    permission java.io.FilePermission "{T}conf_security-policy_install.dir{/T}/lib/-" , "read";
    // Add JRE read permissions to jython. Existing permissions have two formats to java home. Keep the same.
    permission java.io.FilePermission "${java.home}/-", "read,readLink";
    permission java.io.FilePermission "${JAVA_HOME}/-", "read,readLink";
}

Ejemplos

Los siguientes ejemplos muestran cómo realizar tareas específicas relacionadas con políticas de seguridad de llamadas de Java personalizadas.

Crear una política de seguridad de llamada de Java personalizada

El siguiente comando crea una política de seguridad de llamada Java personalizada, definida en el archivo de recursos llamado strict-security.policy .

curl -X POST "https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles?name=CustomJavaSecurityPolicy&type=securityPolicy"
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-type: multipart/form-data" \
  -F file=@/Users/home/strict-security.policy

Ver todas las políticas de seguridad

El siguiente comando le permite ver todas las políticas de seguridad de llamadas Java personalizadas existentes en su API.

curl -X GET "https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles/securityPolicy" \
  -H "Authorization: Bearer $TOKEN"

Ver el contenido de un archivo de política de seguridad

El siguiente comando obtiene el contenido de un archivo de política de seguridad individual para que pueda verlo.

curl -X GET "https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles/securityPolicy/CustomJavaSecurityPolicy" \
  -H "Authorization: Bearer $TOKEN"

Actualizar una política limitada a un entorno

El siguiente comando actualiza una política de seguridad limitada a un entorno.

curl -X PUT "https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles/securityPolicy/CustomJavaSecurityPolicy"
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-type: multipart/form-data" \
  -F file=@/Users/home/strict-security-revised.policy

Eliminar la política de seguridad limitada a un entorno

El siguiente comando elimina una política de seguridad limitada a un entorno.

curl -X DELETE https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles/securityPolicy/CustomJavaSecurityPolicy \
  -H "Authorization: Bearer $TOKEN"