カスタム Java コールアウト セキュリティ ポリシーの追加

このページは ApigeeApigee ハイブリッドに適用されます。

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 セキュリティ ポリシーと同じ構文をサポートしています。デフォルト ポリシーの実装とポリシー ファイルの構文をご覧ください。

カスタム 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 コールアウトのコードの場所を指定し、そのディレクトリに読み取り権限を付与しています。

// 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"