הדף הזה רלוונטי ל-Apigee ול-Apigee Hybrid.
לעיון במסמכי התיעוד של
Apigee Edge
מהי מדיניות אבטחה מותאמת אישית של JavaCallout?
מדיניות JavaCallout מאפשרת להתאים אישית את התנהגות ה-API באמצעות קוד Java. כשמטמיעים JavaCallout, מערכת Apigee מגדירה הרשאות ברירת מחדל ל-API באמצעות מדיניות הרשאות Java. ב-Apigee hybrid, אפשר לשנות את הרשאות ברירת המחדל על ידי יצירת מדיניות אבטחה מותאמת אישית של JavaCallout.
אפשר ליצור מדיניות אבטחה מותאמת אישית של JavaCallout באמצעות משאב, שמוגדר בקובץ משאבים מסוג securityPolicy. המשאב מוגדר ברמת הסביבה. לקובץ המשאבים יכול להיות כל שם, אבל צריך להוסיף את הסיומת .policy לשם של קובץ המדיניות המותאם אישית של Java. לדוגמה:
strict-security.policy.
הפקודה הבאה מוסיפה קובץ משאבים בשם 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
אחרי שיוצרים קובץ מדיניות אבטחה שמגדיר מדיניות JavaCallout בהתאמה אישית, סביבת זמן הריצה של Apigee יכולה לזהות את המדיניות ולהשתמש בהרשאות המותאמות אישית שהמדיניות מגדירה. אם לא קיימת מדיניות JavaCallout מותאמת אישית, Apigee משתמש במדיניות האבטחה שמוגדרת כברירת מחדל לקוד Java או Python מותאם אישית.
קובץ מדיניות האבטחה
בדוגמאות הבאות מוצג תוכן לדוגמה של קובץ מדיניות אבטחה.
השורות הבאות מציינות את המיקום של הקוד למדיניות JavaCallout מותאמת אישית ומעניקות את כל ההרשאות לספרייה.
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;
}השורות האלה מציינות את המיקום של הקוד עבור קריאה מותאמת אישית של Jython/Python ומעניקות הרשאות קריאה לספרייה.
// 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";
}דוגמאות
בדוגמאות הבאות אפשר לראות איך לבצע משימות ספציפיות שקשורות למדיניות אבטחה מותאמת אישית של JavaCallout.
יצירת מדיניות אבטחה מותאמת אישית של JavaCallout
הפקודה הבאה יוצרת מדיניות אבטחה מותאמת אישית של JavaCallout, שמוגדרת בקובץ המשאבים שנקרא 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
צפייה בכל מדיניות האבטחה
הפקודה הבאה מאפשרת לראות את כל מדיניות האבטחה הקיימת של JavaCallout ב-API:
curl -X GET "https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles/securityPolicy" \ -H "Authorization: Bearer $TOKEN"
הצגת התוכן של קובץ מדיניות אבטחה
הפקודה הבאה מקבלת את התוכן של קובץ מדיניות אבטחה נפרד כדי שתוכלו לראות אותו.
curl -X GET "https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles/securityPolicy/CustomJavaSecurityPolicy" \ -H "Authorization: Bearer $TOKEN"
עדכון מדיניות שמוגבלת לסביבה
הפקודה הבאה מעדכנת מדיניות אבטחה בהיקף של סביבה.
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
מחיקת מדיניות אבטחה בהיקף של סביבה
הפקודה הבאה מוחקת מדיניות אבטחה בהיקף של סביבה.
curl -X DELETE https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles/securityPolicy/CustomJavaSecurityPolicy \ -H "Authorization: Bearer $TOKEN"