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