このページの内容は Apigee と Apigee ハイブリッドに該当します。
Apigee Edge のドキュメントを表示する。
Java 権限ポリシーについて知っておくべきこと
Java コールアウト ポリシーを作成する際は、Apigee JVM で有効となる権限ポリシーと、コードに及ぼす影響を認識しておく必要があります。たとえば、カスタム Java コードにはファイル システムへの無制限のアクセス権限がありません。ただし、ファイル システムにアクセスする場合は、ポリシー リソース ファイルなどの特定のファイルを読み込むことができます。しかし、その他のほとんどのファイル システムへのアクセスはブロックされます。このトピックでは、すべての JDK 権限タイプとそれぞれのターゲットまたはアクションを一覧にまとめ、それぞれのターゲットやアクションについて、知っておくべき権限ポリシーと例外を明記しています。
JDK の権限の種類と各権限で可能な操作の詳細については、Java 開発キット(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 Java プラットフォームの管理インターフェースで定義されたメソッド |
control | なし |
monitor | なし | |
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.{library name} | なし | |
accessClassInPackage. {package name} | あり | |
defineClassInPackage. {package name} | なし | |
accessDeclaredMembers | なし | |
queuePrintJob | なし | |
getStackTrace | なし | |
setDefaultUncaughtExceptionHandler | なし | |
preferences | なし | |
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 | あり |
connect |
あり。ただし制限が適用されます。制限事項をご覧ください。 Apigee では sitelocal、anylocal、loopback、linklocal の各アドレスへのアクセスが制限されます。 |
|
listen、 accept |
なし | |
java.net.URLPermission 指定の URL により定義された単一リソースまたは複数リソースのセット、およびユーザーが設定可能な指定のリクエスト メソッドとリクエスト ヘッダーのセットにアクセスする権限を表します。権限の名前は URL 文字列です。アクション文字列は、リクエストのメソッドとヘッダーを連結したものです。メソッド名とヘッダー名の範囲は、このクラスによる制限を受けません。 |
あり | |
LinkPermission リンク作成オペレーションの権限クラス。 |
hard | なし |
symbolic | なし | |
java.security.SecurityPermission SecurityPermission には名前(ターゲット名)のみが含まれ、アクション リストはありません。この名前付き権限が付与されるかどうかを指定します。 ターゲット名は、セキュリティ構成パラメータの名前です(下を参照)。現在、SecurityPermission オブジェクトは、Policy オブジェクト、Security オブジェクト、Provider オブジェクト、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 で実行しているコードがログ制御メソッドのいずれか(Logger.setLevel など)を呼び出すときに、SecurityManager は、java.util.logging.LoggingPermission を確認します。 |
control | なし |
java.util.PropertyPermission 名前は、プロパティの名前(java.home、os.name など)です。命名規則は、階層的なプロパティの命名規則に従います。アスタリスクを名前の最後の「.」の後に付けるか、単体で使用して、ワイルドカード照合を表すことができます。たとえば、java.* や * は有効ですが、*java や a*b は有効ではありません。 付与されるアクションは、ゼロ個以上のカンマで区切ったキーワードのリストを含む文字列内のコンストラクタに渡されます。 |
read | あり |
write | なし | |
javax.xml.ws.WebServicePermission
|
publishEndpoint | なし |
javax.xml.bind.JAXBPermission | setDatatypeConverter | なし |
javax.sound.sampled.AudioPermission オーディオ システム リソースに対するアクセス権。 |
play | なし |
record | なし | |
javax.security.auth.PrivateCredentialPermission 特定の Subject に属するプライベート Credentials へのアクセスを保護します。Subject は、Principals のセットで表されます。この権限のターゲット名によって、Credentials のクラス名と、Principals のセットが指定されます。この権限のアクションとして唯一有効な値は read です。 |
CredentialClass {PrincipalClass "PrincipalName"}* | なし |
javax.security.auth.kerberos.ServicePermission Kerberos のサービスとそのサービスにアクセスするために必要な認証情報を保護します。 |
initiate | なし |
accept | なし | |
javax.security.auth.kerberos.DelegationPermission Kerberos 委譲モデル(転送とプロキシが可能なチケット)の使用を制限します。 この権限のターゲット名は、kerberos のサービス プリンシパルのペアを指定します。1 つ目のサービス プリンシパルは、Ticket Granting Ticket(TGT)の使用を委ねられている下位サービスのプリンシパルです。2 つ目のサービス プリンシパルには、その下位サービス プリンシパルが開始側の 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.{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 がある場合は、4 つの項目すべてが一致する場合のみオペレーションが許可されます。 |
addNotificationListener | なし |
getAttribute | なし | |
getClassLoader | なし | |
getClassLoaderFor | なし | |
getClassLoaderRepository | なし | |
getDomains | なし | |
getMBeanInfo | なし | |
getObjectInstance | なし | |
instantiate | なし | |
invoke | なし | |
isInstanceOf | なし | |
queryMBeans | なし | |
queryNames | なし | |
registerMBean | なし | |
removeNotificationListener | なし | |
setAttribute | なし | |
unregisterMBean | なし | |
javax.management.MBeanServerPermission |
createMBeanServer | なし |
findMBeanServer | なし | |
newMBeanServer | なし | |
releaseMBeanServer | なし | |
javax.management.MBeanTrustPermission この権限は、署名者またはコードベース内の「信頼」を表します。 |
register | なし |
* | なし | |
javax.management.remote.SubjectDelegationPermission
|
なし |