このページの内容は Apigee と Apigee ハイブリッドに該当します。
Apigee Edge のドキュメントを表示します。
カスタム Java コールアウト セキュリティ ポリシーとは
Java コールアウトを使用すると、Java コードを使用して API の動作をカスタマイズできます。Java コールアウトを実装すると、Apigee は Java 権限ポリシーを使用して、API のデフォルトの権限を設定します。Apigee ハイブリッドでは、カスタム Java コールアウト セキュリティ ポリシーを作成して、デフォルトの権限を変更できます。
securityPolicy
タイプのリソース ファイルで定義されているリソースを使用して、カスタム Java コールアウト セキュリティ ポリシーを作成できます。リソースは環境レベルで構成されます。リソース ファイルの名前は任意ですが、カスタム Java ポリシーのファイル名に接尾辞 .policy
を追加する必要があります。例:
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
カスタム Java Callout ポリシーを定義するセキュリティ ポリシー ファイルを作成すると、Apigee ランタイムはポリシーを検出し、ポリシーで定義したカスタム権限を使用できます。カスタム Java コールアウト ポリシーが存在しない場合、Apigee はカスタムの Java コードまたは Python コードに対してデフォルトのセキュリティ ポリシーを使用します。
セキュリティ ポリシー ファイル
次の例は、セキュリティ ポリシー ファイルのサンプル コンテンツを示したものです。
次の行は、カスタム Java コールアウトのコードの場所を指定し、ディレクトリへのすべての権限を付与しています。
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 Callout のコードの場所を指定し、ディレクトリへの読み取り権限を付与します。
// 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"; }
例
次の例は、カスタム Java コールアウト セキュリティ ポリシーに関連する特定のタスクを実行する方法を示したものです。
カスタムの Java コールアウト セキュリティ ポリシーを作成する
次のコマンドは、strict-security.policy
という名前のリソース ファイルで定義されたカスタム Java コールアウト セキュリティ ポリシーを作成します。
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
すべてのセキュリティ ポリシーを表示する
次のコマンドを使用すると、API 内の既存のカスタム Java コールアウト セキュリティ ポリシーがすべて表示されます。
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"