כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של
Apigee X. מידע
מה צריך לדעת על מדיניות ההרשאות של Java
אם אתם מפתחים כללי מדיניות של Java Callout, עליכם לדעת אילו כללי מדיניות הרשאות חלים ב-Edge JVM ואיך הם ישפיעו על הקוד שלכם. לדוגמה, לקוד ה-Java בהתאמה אישית אין גישה בלתי מוגבלת למערכת הקבצים. עם זאת, אם יש גישה למערכת הקבצים, אפשר לקרוא קבצים מסוימים כמו קובצי משאבי מדיניות. עם זאת, הגישה לרוב הקבצים האחרים חסומה. בנושא הזה מפורטים כל סוגי ההרשאות של JDK והיעדים או הפעולות שלהם. לכל יעד או פעולה אנחנו מציינים את מדיניות ההרשאות ואת כל החריגות שצריך לדעת.
במאמר Permissions in the Java Development Kit (JDK) תוכלו לקרוא מידע נוסף על סוגי ההרשאות של JDK ועל מה שכל הרשאה מאפשרת.
הפעלת הגבלות אבטחה
ב-Edge for Private Cloud, הגבלות האבטחה מושבתות כברירת מחדל. כלומר, קוד היתרונות המרכזיים המותאם אישית ב-Java יכול לגשת לכל המשאבים ללא הגבלות. כדי להפעיל הגבלות אבטחה ב-Edge לצורך התקנה של ענן פרטי, צריך לבצע את הפעולות הבאות:
- בצומת הראשון של מעבד ההודעות, פותחים את הקובץ
$APIGEE_ROOT/customer/application/message-processor.properties
בעורך. אם הקובץ לא קיים, יוצרים אותו. - מוסיפים את השורה הבאה לקובץ:
conf_security-policy_enable.security.manager=true
- Save the file and ensure the file is owned by the
apigee
user:chown apigee:apigee $APIGEE_ROOT/customer/application/message-processor.properties
- מפעילים מחדש את מעבד ההודעות:
apigee-service message-processor restart
- חוזרים על השלבים האלה בכל שאר מעבדי ההודעות.
סוג הרשאה | שם היעד או הפעולה | ניתנה הרשאה |
java.awt.AWTPermission | ||
accessClipboard | לא | |
accessEventQueue | לא | |
accessSystemTray | לא | |
createRobot | לא | |
fullScreenExclusive | לא | |
listenToAllAWTEvents | לא | |
readDisplayPixels | לא | |
replaceKeyboardFocusManager | לא | |
setAppletStub | לא | |
setWindowsAlwaysOnTop | לא | |
showWindowWithoutWarningBanner | לא | |
toolkitModality | לא | |
watchMousePointer | לא | |
java.io.FilePermission פונקציית java.io.FilePermission מייצגת גישה לקובץ או לספרייה. FilePermission מורכבת משם נתיב ומקבוצה של פעולות תקינות עבור שם הנתיב הזה. |
קריאה | כן, אבל בכפוף להגבלות. למידע נוסף, ראו הגבלות. |
כתיבה | לא | |
execute | לא | |
מחיקה | לא | |
readLink | כן | |
java.io.Serial softwarePermission Serial matchingPermission מכיל שם (נקרא גם 'שם יעד') אבל אין רשימת פעולות. יש לך את ההרשאה בעלת השם או שאין לך. |
enableSubclassImplementation | כן |
enableSubstitution | לא | |
java.lang.management.ManagementPermission שיטות המוגדרות בממשק הניהול של פלטפורמת Java |
בקרה | לא |
מעקב | לא | |
java.lang.reflect.ReflectPermission לפעולות השתקפות. ReflectPermission היא הרשאה בעלת שם ואין לה פעולות |
suppressAccessChecks | לא |
newProxyInPackage.{package name} | לא | |
java.lang.RuntimePermission מכילה שם (נקרא גם 'שם יעד') אבל אין בה רשימת פעולות. יש לך את ההרשאה בעלת השם או שאין לך. |
createClassLoader | לא |
getClassLoader | כן | |
setContextClassLoader | כן | |
enableContextClassLoaderOverride | כן | |
closeClassLoader | לא | |
setSecurityManager | לא | |
createSecurityManager | לא | |
getenv.{variable name} | לא | |
exitVM.{exit status} | לא | |
shutdownHooks | לא | |
setFactory | לא | |
setIO | לא | |
modifyThread | כן | |
stopThread | כן | |
modifyThreadGroup | כן | |
getProtectionDomain | כן | |
getFileSystemAttributes | לא | |
readFileDescriptor | כן | |
writeFileDescriptor | לא | |
loadLibrary.{שם הספרייה} | לא | |
accessClassInPackage. {package name} | כן | |
SetClassInPackage. {package name} | לא | |
accessDeclaredMembers | לא | |
queuePrintJob | לא | |
getStackTrace | לא | |
setDefaultUncaughtExceptionHandler | לא | |
העדפות | לא | |
usePolicy | לא | |
java.net.NetPermission A NetPermission מכיל שם אבל לא רשימת פעולות. יש לך הרשאה עם השם או שאין לך. |
setDefaultAuthenticator | לא |
requestPasswordAuthentication | לא | |
specifyStreamHandler | כן | |
setProxySelector | לא | |
getProxySelector | לא | |
setCookieHandler | לא | |
getCookieHandler | לא | |
setResponseCache | לא | |
getResponseCache | לא | |
getNetworkInformation | לא | |
java.net.SocketPermission גישה לרשת דרך שקעים. SocketPermission כולל מפרט מארח וקבוצה של "פעולות" שמציינות דרכים להתחבר למארח הזה. host = (hostname | IPaddress)[:portrange] portrange = portnumber | -portnumber | portnumber-[portnumber] הדרכים האפשריות להתחבר למארח הן קבלה האזנה פתרון לפעולה 'listen' יש משמעות רק כשמשתמשים ב-'localhost'. הפעולה "resolve" (פתרון חיפושי שירות של שם מארח/IP) משתמעת כאשר אחת מהפעולות האחרות קיימת. |
resolve | כן |
חיבור |
כן, אבל בכפוף להגבלות. למידע נוסף, ראו הגבלות. Apigee מגבילה את הגישה לכתובות sitelocal , anylocal, לולאה חוזרת ו-linklocal. |
|
האזנה, אישור |
לא | |
java.net.URLPermission הרשאת גישה למשאב או לקבוצת משאבים שמוגדרים על ידי כתובת URL נתונה, ולקבוצה נתונה של שיטות בקשה וכותרות בקשות שניתן להגדיר על ידי המשתמש. שם ההרשאה הוא המחרוזת של כתובת ה-URL. מחרוזת הפעולות היא שרשור של שיטות הבקשה והכותרות. טווח השמות של השיטות והכותרות לא מוגבל על ידי המחלקה הזו. |
כן | |
LinkPermission הסיווג של ההרשאה לפעולות של יצירת קישורים. |
קשה | לא |
סמלי | לא | |
java.security.SecurityPermission SecurityPermission מכילה שם (שנקרא גם "שם יעד") אבל אין רשימת פעולות. יש לך את ההרשאה בעלת השם או שאין לך. שם היעד הוא השם של פרמטר הגדרת אבטחה (ראו בהמשך). בשלב הזה, האובייקט SecurityPermission משמש לשמירה על הגישה לאובייקטים של מדיניות, אבטחה, ספק, בעל חתימה וזהות. |
createAccessControlContext | לא |
getDomainCombiner | לא | |
getPolicy | לא | |
setPolicy | לא | |
createPolicy.{policy type} | לא | |
getProperty.{key} | לא | |
setProperty.{key} | לא | |
insertProvider | לא | |
removeProvider.{שם הספק} | לא | |
clearProviderProperties.{שם הספק} | לא | |
PutProviderProperty.{שם הספק} | לא | |
removeProviderProperty.{שם הספק} | לא | |
SQLPermission | setLog | לא |
callAbort | לא | |
setSyncFactory | לא | |
setNetworkTimeout | לא | |
deregisterDriver | לא | |
java.util.logging.LoggingPermission SecurityManager יבדוק את האובייקט java.util.logging.LoggingPermission כאשר קוד שרץ עם SecurityManager קורא לאחת משיטות הבקרה ביומן (למשל Logger.setLevel). |
בקרה | לא |
java.util.PropertyPermission השם הוא שם הנכס ('java.home' , 'os.name' וכו'). המוסכמה למתן שמות מבוססת על המוסכמה ההיררכית למתן שמות לנכסים. כמו כן, ייתכן שכוכבית תופיע בסוף השם, אחרי התו '.', או כשהיא תוצג לבדה, כדי לסמן התאמה לתווים כלליים לחיפוש. לדוגמה: "java.*" או "*" אינם חוקיים, "*java" או "a*b" לא חוקיים. הפעולות שצריך לבצע מועברות ל-constructor במחרוזת שמכילה רשימה של אפס מילות מפתח שמופרדות בפסיקים, או יותר. |
קריאה | כן |
כתיבה | לא | |
javax.xml.ws.WebServicePermission
|
publishEndpoint | לא |
javax.xml.bind.JAXBPermission | setDatatypeConverter | לא |
javax.sound.sampled.AudioPermission הרשאות גישה למשאבי מערכת האודיו. |
הפעלה, פליי | לא |
הקלטה | לא | |
javax.security.auth.PrivateCredentialPermission הגנה על גישה לפרטי כניסה פרטיים ששייכים לנושא מסוים. הנושא מיוצג על ידי קבוצה של מנהלים שם היעד של ההרשאה הזו מציין שם של מחלקה של פרטי כניסה וקבוצה של חשבונות משתמשים. הערך החוקי היחיד לפעולות של ההרשאה הזו הוא "קריאה". |
CredentialClass {PrincipalClass "PrincipalName"}* | לא |
javax.security.auth.kerberos.ServicePermission הגנה על שירותי Kerberos ועל פרטי הכניסה הנדרשים כדי לגשת לשירותים האלה. |
initiate | לא |
אישור | לא | |
javax.security.auth.kerberos.DelegationPermission משמש להגבלת השימוש במודל הענקת גישה ל-Kerberos, כלומר כרטיסים שניתן להעביר וכרטיסים שניתן להשתמש בהם בשרת proxy. שם היעד של ההרשאה הזו מציין צמד של חשבונות משתמשים בשירות kerberos. הראשון הוא חשבון המשתמש המשני, שמופקד על השימוש בכרטיס להענקת כרטיסים (TGT). חשבון המשתמש השני מקצה את שירות היעד שחשבון המשתמש המשני שלו מנהל אינטראקציה איתו מטעם KerberosPrincipal. |
initiate | לא |
אישור | לא | |
javax.security.auth.AuthPermission נכון לעכשיו האובייקט AuthPermission משמש לשמירת הגישה לאובייקטים Subject, SubjectDomainIntegrationr, ל-LoginContext ול-Configuration. |
doAs | לא |
doAsPrivileged | לא | |
getSubject | לא | |
getSubjectFromDomainCombiner | לא | |
setReadOnly | לא | |
modifyPrincipals | לא | |
modifyPublicCredentials | לא | |
modifyPrivateCredentials | לא | |
refreshCredential | לא | |
destroyCredential | לא | |
createLoginContext.{name} | לא | |
getLoginConfiguration | לא | |
setLoginConfiguration | לא | |
createLoginConfiguration.{Configuration type} | לא | |
refreshLoginConfiguration | לא | |
javax.net.ssl.SSLPermission |
setHostnameVerifier | לא |
getSSLSessionContext | לא | |
setDefaultSSLContext | לא | |
javax.management.MBeanPermission הרשאה לשליטה בגישה לפעולות של MBeanServer. אם הוגדר מנהל אבטחה באמצעות System.setSecurityManager(java.lang.SecurityManager), רוב הפעולות ב-MBeanServer מחייבות את ההרשאות של מבצע הקריאה החוזרת כדי לרמז על MBeanPermission המתאימים לפעולה. action className#member[objectName] אם יש לכם MBeanPermission, הוא מאפשר לבצע פעולות רק אם כל ארבעת הפריטים תואמים. |
addNotificationListener | לא |
getAttribute | לא | |
getClassLoader | לא | |
getClassLoaderFor | לא | |
getClassLoaderRepository | לא | |
getDomains | לא | |
getMBeanInfo | לא | |
getObjectInstance | לא | |
יצירת אובייקט (instantiate) | לא | |
להפעיל | לא | |
isInstanceOf | לא | |
queryMBeans | לא | |
queryNames | לא | |
registerMBean | לא | |
removeNotificationListener | לא | |
setAttribute | לא | |
unregisterMBean | לא | |
javax.management.MBeanServerPermission |
createMBeanServer | לא |
findMBeanServer | לא | |
newMBeanServer | לא | |
releaseMBeanServer | לא | |
javax.management.MBeanTrustPermission ההרשאה הזו מייצגת "Trust" בחותם או ב-codebase. |
register | לא |
* | לא | |
javax.management.remote.SubjectDelegationPermission
|
לא |