자바 권한 참조

이 페이지는 ApigeeApigee Hybrid에 적용됩니다.

Apigee Edge 문서 보기

자바 권한 정책에 대해 알아야 할 사항

Java Callout 정책을 개발하는 경우 Apigee JVM에서 적용되는 권한 정책이 무엇인지, 그리고 이러한 정책이 코드에 어떤 영향을 주는지 알아야 합니다. 예를 들어 커스텀 자바 코드는 파일 시스템에 대한 무제한 액세스 권한을 갖지 않습니다. 하지만 파일 시스템 액세스의 경우 정책 리소스 파일과 같은 특정 파일을 읽을 수 있습니다. 그러나 대부분의 다른 파일 시스템 액세스는 차단됩니다. 이 주제에는 모든 JDK 권한 유형과 해당 대상 또는 작업이 나열됩니다. Google은 각 대상 또는 작업에 대해 권한 정책 및 사용자가 알아야 하는 모든 예외를 지정합니다.

JDK 권한 유형과 각 권한이 허용하는 항목을 자세히 알아보려면 자바 개발 키트(JDK)의 권한을 참조하세요.

권한 유형대상 또는 작업 이름권한 부여됨
java.awt.AWTPermission
accessClipboard아니요
accessEventQueue아니요
accessSystemTray아니요
createRobot아니요
fullScreenExclusive아니요
listenToAllAWTEvents아니요
readDisplayPixels아니요
replaceKeyboardFocusManager아니요
setAppletStub아니요
setWindowsAlwaysOnTop아니요
showWindowWithoutWarningBanner아니요
toolkitModality아니요
watchMousePointer아니요
java.io.FilePermission

java.io.FilePermission은 파일 또는 디렉터리에 대한 액세스를 나타냅니다. FilePermission은 경로 이름과 해당 경로 이름에 유효한 작업 집합으로 구성됩니다.
read예. 하지만 제한사항이 적용됩니다. 제한사항을 참조하세요.
write아니요
execute아니요
delete아니요
readLink
java.io.SerializablePermission

SerializablePermission에는 이름('대상 이름'이라고도 함)이 포함되지만 작업 목록은 없으며 이름이 지정된 권한이 있거나 없습니다.
enableSubclassImplementation
enableSubstitution아니요
java.lang.management.ManagementPermission

자바 플랫폼의 관리 인터페이스에 정의된 메서드
control아니요
monitor아니요
java.lang.reflect.ReflectPermission

리플렉션 작업용입니다. ReflectPermission은 이름이 지정된 권한이며 작업은 없습니다.
suppressAccessChecks아니요
newProxyInPackage.{패키지 이름}아니요
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. {패키지 이름}
defineClassInPackage. {패키지 이름}아니요
accessDeclaredMembers아니요
queuePrintJob아니요
getStackTrace아니요
setDefaultUncaughtExceptionHandler아니요
환경설정아니요
usePolicy아니요
java.net.NetPermission

NetPermission에는 이름이 있지만 작업 목록은 없으며 이름이 지정된 권한이 있거나 없습니다.
setDefaultAuthenticator아니요
requestPasswordAuthentication아니요
specifyStreamHandler
setProxySelector아니요
getProxySelector아니요
setCookieHandler아니요
getCookieHandler아니요
setResponseCache아니요
getResponseCache아니요
getNetworkInformation아니요
java.net.SocketPermission

소켓을 통한 네트워크에 대한 액세스를 나타냅니다. SocketPermission은 호스트 사양과 해당 호스트에 연결하는 방법을 지정하는 '작업' 집합으로 구성됩니다.
host = (hostname | IPaddress)[:portrange]
portrange = portnumber | -portnumber | portnumber-[portnumber]

호스트에 연결하는 방법은 다음과 같습니다.

accept
connect
listen
resolve

'listen' 작업은 'localhost'와 함께 사용하는 경우에만 의미가 있습니다. 다른 작업이 있으면 'resolve'(호스트/ip 이름 서비스 조회 결정) 작업이 암시적으로 적용됩니다.
resolve
연결

예. 하지만 제한사항이 적용됩니다. 제한사항을 참조하세요.

Apigee에서는 sitelocal, anylocal, loopback, linklocal 주소에 대한 액세스를 제한합니다.

listen,
accept
아니요
java.net.URLPermission

특정 URL에서 정의한 리소스 또는 리소스 집합과 사용자가 설정할 수 있는 요청 메서드 집합 및 요청 헤더에 액세스하는 권한을 나타냅니다. 권한 이름은 URL 문자열입니다. 작업 문자열은 요청 메서드와 헤더를 연결한 것입니다. 메서드 및 헤더 이름의 범위는 이 클래스에 의해 제한되지 않습니다.
LinkPermission

링크 생성 작업에 대한 권한 클래스입니다.
hard아니요
symbolic아니요
java.security.SecurityPermission

SecurityPermission에는 이름('대상 이름'이라고도 함)이 포함되지만 작업 목록은 없으며 이름이 지정된 권한이 있거나 없습니다.
대상 이름은 보안 구성 매개변수의 이름입니다(아래 참조). 현재 SecurityPermission 객체는 정책, 보안, 제공업체, 서명자, ID 객체에 대한 액세스를 보호하는 데 사용됩니다.
createAccessControlContext아니요
getDomainCombiner아니요
getPolicy아니요
setPolicy아니요
createPolicy.{policy type}아니요
getProperty.{key}아니요
setProperty.{key}아니요
insertProvider아니요
removeProvider.{provider name}아니요
clearProviderProperties.{provider name}아니요
putProviderProperty.{provider name}아니요
removeProviderProperty.{provider name}아니요
SQLPermissionsetLog아니요
callAbort아니요
setSyncFactory아니요
setNetworkTimeout아니요
deregisterDriver아니요
java.util.logging.LoggingPermission

SecurityManager가 실행 중인 코드가 로깅 제어 메서드(예: Logger.setLevel) 중 하나를 호출하는 코드가 실행될 때 SecurityManager는 java.util.logging.LoggingPermission 객체를 확인합니다.
control아니요
java.util.PropertyPermission
이름은 속성의 이름입니다('java.home', 'os.name' 등). 이름 지정 규칙은 계층적 속성 이름 지정 규칙을 따릅니다. 또한 와일드 카드 일치를 나타내기 위해 이름 끝에 '.' 뒤에 별표 또는 별표 단독으로 표시될 수 있습니다. 예를 들어 'java.*' 또는 '*'는 유효하지만 '*java' 또는 'a*b'는 유효하지 않습니다.

허용할 작업은 0개 이상의 쉼표로 구분된 키워드 목록이 포함된 문자열의 생성자로 전달됩니다.
read
write아니요
javax.xml.ws.WebServicePermission
publishEndpoint아니요
javax.xml.bind.JAXBPermissionsetDatatypeConverter아니요
javax.sound.sampled.AudioPermission

오디오 시스템 리소스에 대한 액세스 권한입니다.
재생아니요
record아니요
javax.security.auth.PrivateCredentialPermission

특정 주제에 속하는 비공개 사용자 인증 정보에 대한 액세스를 보호합니다. 제목은 주 구성원 집합으로 표현됩니다. 이 권한의 대상 이름은 사용자 인증 정보 클래스 이름 및 주 구성원 집합을 지정합니다. 이 권한의 작업에 유효한 값은 'read'입니다.
CredentialClass {PrincipalClass "PrincipalName"}*아니요
javax.security.auth.kerberos.ServicePermission

Kerberos 서비스와 해당 서비스에 액세스하는 데 필요한 사용자 인증 정보를 보호합니다.
initiate아니요
accept아니요
javax.security.auth.kerberos.DelegationPermission

Kerberos 위임 모델(예: 전달 및 프록시 가능 티켓)의 사용을 제한하는 데 사용됩니다.

이 권한의 대상 이름은 Kerberos 서비스 주 구성원의 쌍을 지정합니다. 첫 번째는 허용 티켓(TGT)을 사용하는 데 사용되는 종속 서비스 주 구성원입니다. 두 번째 서비스 주 구성원은 시작하는 KerberosPrincipal을 대신하여 종속 서비스 주 구성원이 상호작용하는 대상 서비스를 지정합니다.
initiate아니요
accept아니요
javax.security.auth.AuthPermission

현재 AuthPermission 객체는 Subject, SubjectDomainCombiner, LoginContext, Configuration 객체에 대한 액세스를 보호하는 데 사용됩니다.
doAs아니요
doAsPrivileged아니요
getSubject아니요
getSubjectFromDomainCombiner아니요
setReadOnly아니요
modifyPrincipals아니요
modifyPublicCredentials아니요
modifyPrivateCredentials아니요
refreshCredential아니요
destroyCredential아니요
createLoginContext.{name}아니요
getLoginConfiguration아니요
setLoginConfiguration아니요
createLoginConfiguration.{구성 유형}아니요
refreshLoginConfiguration아니요
javax.net.ssl.SSLPermission
setHostnameVerifier아니요
getSSLSessionContext아니요
setDefaultSSLContext아니요
javax.management.MBeanPermission

MBeanServer 작업에 대한 액세스를 제어하는 권한입니다. System.setSecurityManager(java.lang.SecurityManager)를 사용하여 보안 관리자가 설정된 경우 대부분의 MBeanServer 작업에서 호출자의 권한이 작업에 적합한 MBeanPermission을 의미해야 합니다.

action className#member[objectName]

MBeanPermission이 있는 경우 4개의 모든 항목이 일치하여야만 작업을 허용합니다.
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

이 권한은 서명자 또는 코드베이스의 '신뢰'를 나타냅니다.
register아니요
*아니요
javax.management.remote.SubjectDelegationPermission
아니요