คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่
เอกสารประกอบเกี่ยวกับ Apigee X. ข้อมูล
สิ่งที่จำเป็นต้องทราบเกี่ยวกับสิทธิ์ Java นโยบาย
หากคุณกำลังพัฒนานโยบายการเรียก Java คุณต้องทราบว่านโยบายสิทธิ์ใดที่อยู่ใน ใน Edge JVM และผลกระทบที่จะมีต่อโค้ดของคุณ ตัวอย่างเช่น โค้ด Java ที่กำหนดเองของคุณ ไม่มีสิทธิ์เข้าถึงระบบไฟล์แบบไม่จำกัด แต่ในกรณีของการเข้าถึงระบบไฟล์ คุณจะอ่านไฟล์บางไฟล์ได้ เช่น ไฟล์ทรัพยากรนโยบาย แต่การเข้าถึงระบบไฟล์อื่นๆ ส่วนใหญ่นั้น ถูกบล็อก หัวข้อนี้แสดงประเภทสิทธิ์ JDK ทั้งหมด รวมไปถึงเป้าหมายหรือการดำเนินการที่เกี่ยวข้อง สำหรับแต่ละเป้าหมายหรือการดำเนินการ เราจะระบุนโยบายสิทธิ์และข้อยกเว้นใดๆ ที่คุณจำเป็นต้องทราบ รู้เกี่ยวกับ
ในการเรียนรู้เพิ่มเติมเกี่ยวกับประเภทสิทธิ์ JDK และสิ่งที่แต่ละสิทธิ์อนุญาต โปรดดูที่สิทธิ์ใน Java Development Kit (JDK)
การเปิดใช้ข้อจำกัดด้านความปลอดภัย
การจำกัดด้านความปลอดภัยใน Edge สำหรับ Private Cloud จะปิดใช้โดยค่าเริ่มต้น ซึ่งหมายความว่า โค้ดข้อความเสริม Java ที่กำหนดเองของคุณสามารถเข้าถึงทรัพยากรทั้งหมดโดยไม่มีข้อจำกัด วิธีเปิดใช้งาน ข้อจำกัดด้านความปลอดภัยในการติดตั้ง Edge for Private Cloud โปรดทำตามขั้นตอนด้านล่าง
- ในโหนดตัวประมวลผลข้อความแรก ให้เปิดไฟล์
$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
- ทำซ้ำขั้นตอนเหล่านี้ใน Message Processor ที่เหลือทั้งหมด
ประเภทสิทธิ์ | ชื่อเป้าหมายหรือการดำเนินการ | ให้สิทธิ์แล้ว |
java.awt.AWTPermission | ||
accessClipboard | ไม่ | |
accessEventQueue | ไม่ | |
accessSystemTray | ไม่ | |
createRobot | ไม่ | |
fullScreenExclusive | ไม่ | |
listenToAllAWTEvents | ไม่ | |
readDisplayPixels | ไม่ | |
replaceKeyboardFocusManager | ไม่ | |
setAppletStub | ไม่ | |
setWindowsAlwaysOnTop | ไม่ | |
showWindowWithoutWarningBanner | ไม่ | |
toolkitModality | ไม่ | |
watchMousePointer | ไม่ | |
java.io.FilePermission java.io.FilePermissions แทนสิทธิ์เข้าถึงไฟล์หรือไดเรกทอรี สิทธิ์เข้าถึงไฟล์ ประกอบด้วยชื่อเส้นทางและชุดการดำเนินการที่ถูกต้องสำหรับชื่อเส้นทางนั้น |
อ่าน | ใช่ แต่มีข้อจำกัด ดูข้อจำกัด |
เขียน | ไม่ | |
ดำเนินการ | ไม่ | |
ลบ | ไม่ | |
readLink | ควร | |
java.io.SerializablePermission สิทธิ์การทำให้เป็นอนุกรมได้มีชื่อ (หรือเรียกว่า "ชื่อเป้าหมาย") แต่ไม่มี รายการการดำเนินการ คุณมีสิทธิ์ที่มีชื่อหรือไม่มี |
enableSubclassImplementation | ควร |
enableSubstitution | ไม่ | |
java.lang.management.ManagementPermission เมธอดที่กำหนดในอินเทอร์เฟซการจัดการสำหรับแพลตฟอร์ม Java |
การควบคุม | ไม่ |
จอภาพ | ไม่ | |
java.lang.reflect.ReflectPermission สำหรับการดำเนินการแบบสะท้อนกลับ ReflectRight เป็นสิทธิ์ที่มีชื่อและไม่มี การทำงาน |
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.{library name} | ไม่ | |
AccessClassInPackage {ชื่อแพ็กเกจ} | ควร | |
defineClassInPackage. {ชื่อแพ็กเกจ} | ไม่ | |
accessDeclaredMembers | ไม่ | |
queuePrintJob | ไม่ | |
getStackTrace | ไม่ | |
setDefaultUncaughtExceptionHandler | ไม่ | |
ค่ากำหนด | ไม่ | |
usePolicy | ไม่ | |
java.net.NetPermission NetPermissions มีชื่อแต่ไม่มีรายการการดำเนินการ คุณมีสิทธิ์ที่มีชื่อ หรือไม่เป็นเช่นนั้น |
setDefaultAuthenticator | ไม่ |
requestPasswordAuthentication | ไม่ | |
specifyStreamHandler | ควร | |
setProxySelector | ไม่ | |
getProxySelector | ไม่ | |
setCookieHandler | ไม่ | |
getCookieHandler | ไม่ | |
setResponseCache | ไม่ | |
getResponseCache | ไม่ | |
getNetworkInformation | ไม่ | |
java.net.SocketPermission แสดงการเข้าถึงเครือข่ายผ่านซ็อกเก็ต SocketPermissions ประกอบด้วยโฮสต์ ข้อกำหนดและชุดของ "การดำเนินการ" โดยระบุวิธีการเชื่อมต่อกับโฮสต์นั้น โฮสต์ = (ชื่อโฮสต์ | ที่อยู่ IP)[:portrange] Portrange = Portnumber | -portnumber | หมายเลขพอร์ต-[หมายเลขพอร์ต] วิธีที่เป็นไปได้ในการเชื่อมต่อกับโฮสต์มีดังนี้ ยอมรับ เชื่อมต่อ ฟัง แก้ไข "การฟัง" action จะมีความหมายก็ต่อเมื่อใช้กับ "localhost" เท่านั้น "วิธีแก้ปัญหา" (แก้ไข การค้นหาบริการชื่อโฮสต์/IP) จะแสดงโดยนัยเมื่อมีการดำเนินการอื่นๆ ปัจจุบัน |
จับคู่ข้อมูล | ควร |
เชื่อมต่อ |
ใช่ แต่มีข้อจำกัด ดูข้อจำกัด Apigee จะจำกัดการเข้าถึงที่อยู่ sitelocal, ทั้งหมดภายใน, Loopback และ linklocal |
|
รอฟังอยู่ ยอมรับ |
ไม่ | |
java.net.URLPermission แสดงสิทธิ์เข้าถึงชุดทรัพยากรหรือชุดทรัพยากรที่กำหนดโดย URL ดังกล่าว และ สำหรับชุดวิธีการคำขอที่ผู้ใช้ตั้งค่าได้และส่วนหัวของคำขอหนึ่งๆ ชื่อของ สิทธิ์คือสตริง URL สตริงการดำเนินการเป็นการเชื่อมโยงเมธอดคำขอเข้าด้วยกัน และส่วนหัว คลาสนี้ไม่จำกัดช่วงของชื่อเมธอดและส่วนหัว |
ควร | |
LinkPermission คลาสสิทธิ์สำหรับการดำเนินการสร้างลิงก์ |
ยาก | ไม่ |
สัญลักษณ์ | ไม่ | |
java.security.SecurityPermission สิทธิ์การรักษาความปลอดภัยมีชื่อ (หรือเรียกอีกอย่างว่า "ชื่อเป้าหมาย") แต่ไม่มีการดำเนินการใดๆ list; คุณมีสิทธิ์ที่มีชื่อหรือไม่มี ชื่อเป้าหมายคือชื่อพารามิเตอร์การกำหนดค่าการรักษาความปลอดภัย (ดูด้านล่าง) ปัจจุบัน จะใช้ออบเจ็กต์ SecurityAllowed เพื่อป้องกันการเข้าถึงนโยบาย ความปลอดภัย ผู้ให้บริการ ออบเจ็กต์ Signer และ Identity |
createAccessControlContext | ไม่ |
getDomainCombiner | ไม่ | |
getPolicy | ไม่ | |
setPolicy | ไม่ | |
createPolicy.{policy type} | ไม่ | |
getProperty.{key} | ไม่ | |
setProperty.{key} | ไม่ | |
insertProvider | ไม่ | |
removeProvider.{provider name} | ไม่ | |
clearProviderProperties.{provider name} | ไม่ | |
putProviderProperty.{provider name} | ไม่ | |
removeProviderProperty.{provider name} | ไม่ | |
SQLPermission | setLog | ไม่ |
callAbort | ไม่ | |
setSyncFactory | ไม่ | |
setNetworkTimeout | ไม่ | |
deregisterDriver | ไม่ | |
java.util.logging.LoggingPermission SecurityManager จะตรวจสอบออบเจ็กต์ java.util.logging.LakingPermissions เมื่อมีโค้ด การเรียกใช้ด้วย SecurityManager จะเรียกใช้วิธีการควบคุมการบันทึกวิธีหนึ่ง (เช่น Logger.setLevel) |
การควบคุม | ไม่ |
java.util.PropertyPermission ชื่อคือชื่อของพร็อพเพอร์ตี้ ("java.home", "os.name" ฯลฯ) แบบแผนการตั้งชื่อ เป็นไปตามแบบแผนการตั้งชื่อพร็อพเพอร์ตี้แบบลำดับชั้น นอกจากนี้ เครื่องหมายดอกจันอาจปรากฏที่ ต่อท้ายชื่อ โดยตามหลัง "." หรือตามนั้นเพื่อหมายถึงการจับคู่ไวลด์การ์ด ดังตัวอย่างต่อไปนี้ "java.*" หรือ "*" ถูกต้อง, "*java" หรือ "a*b" ไม่ได้ การทำงานที่จะอนุญาตจะถูกส่งให้กับตัวสร้างในสตริงที่มีรายการ คีย์เวิร์ดที่คั่นด้วยเครื่องหมายจุลภาค |
อ่าน | ควร |
เขียน | ไม่ | |
javax.xml.ws.WebServicePermission
|
publishEndpoint | ไม่ |
javax.xml.bind.JAXBPermission | setDatatypeConverter | ไม่ |
javax.sound.sampled.AudioPermission สิทธิ์เข้าถึงทรัพยากรระบบเสียง |
play | ไม่ |
บันทึก | ไม่ | |
javax.security.auth.PrivateCredentialPermission ป้องกันการเข้าถึงข้อมูลประจำตัวส่วนตัวที่เป็นของเรื่องใดเรื่องหนึ่ง เรื่องคือ โดยมีผู้ที่อยู่ในกลุ่มอาจารย์ใหญ่ ชื่อเป้าหมายของสิทธิ์นี้ระบุ ชื่อคลาสเอกสารรับรองและชุดผู้ใช้หลัก มีค่าเดียวที่ถูกต้องสำหรับสิทธิ์นี้ การดำเนินการคือ "อ่าน" |
CredentialClass {PrincipalClass "PrincipalName"}* | ไม่ |
javax.security.auth.kerberos.ServicePermission ปกป้องบริการ Kerberos และข้อมูลเข้าสู่ระบบที่จำเป็นต่อการเข้าถึงบริการเหล่านั้น |
เริ่มต้น | ไม่ |
ยอมรับ | ไม่ | |
javax.security.auth.kerberos.DelegationPermission ใช้เพื่อจำกัดการใช้งานโมเดลการมอบสิทธิ์ของ Kerberos เช่น ส่งต่อได้และพร็อกซี ตั๋ว ชื่อเป้าหมายของสิทธิ์นี้จะระบุคู่ของผู้ใช้หลักของบริการ Kerberos ผู้ใช้หลักของบริการย่อยที่ได้รับความไว้วางใจให้ใช้ Ticket Granting ตั๋ว (TGT) ผู้ใช้หลักของบริการรายการที่ 2 จะกำหนดบริการเป้าหมายให้กับบริการย่อย ผู้ใช้หลักของบริการคือการโต้ตอบกับในนามของ KerberosPrincipal |
เริ่มต้น | ไม่ |
ยอมรับ | ไม่ | |
javax.security.auth.AuthPermission ปัจจุบันระบบใช้ออบเจ็กต์ AuthPermissions เพื่อป้องกันการเข้าถึง Subject SubjectDomainIncluder, LoginContext และการกำหนดค่า |
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 กำหนดให้การอนุญาตของผู้โทรระบุโดยนัยว่า MBeanPermissions เหมาะสำหรับ การดำเนินการ การทำงาน className#member[objectName] หากคุณมี MBeanPermissions จะอนุญาตการดำเนินการได้ก็ต่อเมื่อครบทั้ง 4 รายการ ที่ตรงกัน |
addNotificationListener | ไม่ |
getAttribute | ไม่ | |
getClassLoader | ไม่ | |
getClassLoaderFor | ไม่ | |
getClassLoaderRepository | ไม่ | |
getDomains | ไม่ | |
getMBeanInfo | ไม่ | |
getObjectInstance | ไม่ | |
สร้างอินสแตนซ์ | ไม่ | |
เรียกใช้ | ไม่ | |
isInstanceOf | ไม่ | |
queryMBeans | ไม่ | |
queryNames | ไม่ | |
registerMBean | ไม่ | |
removeNotificationListener | ไม่ | |
setAttribute | ไม่ | |
unregisterMBean | ไม่ | |
javax.management.MBeanServerPermission |
createMBeanServer | ไม่ |
findMBeanServer | ไม่ | |
newMBeanServer | ไม่ | |
releaseMBeanServer | ไม่ | |
javax.management.MBeanTrustPermission สิทธิ์นี้แสดงถึง "ความน่าเชื่อถือ" ในผู้เซ็นหรือฐานของโค้ด |
รีจิสเตอร์ | ไม่ |
* | ไม่ | |
javax.management.remote.SubjectDelegationPermission
|
ไม่ |