커스텀 Java 콜아웃 보안 정책 추가

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

Apigee Edge 문서 보기

커스텀 자바 콜아웃 보안 정책이란 무엇인가요?

자바 콜아웃을 사용하면 자바 코드를 사용하여 API 동작을 맞춤설정할 수 있습니다. 자바 콜아웃을 구현할 때 Apigee는 자바 권한 정책을 사용하여 API의 기본 권한을 설정합니다. Apigee Hybrid에서는 커스텀 자바 콜아웃 보안 정책을 만들어 기본 권한을 변경할 수 있습니다.

securityPolicy 유형의 리소스 파일에 정의된 리소스를 사용하여 커스텀 자바 콜아웃 보안 정책을 만들 수 있습니다. 이 리소스는 환경 수준에서 구성됩니다. 리소스 파일 이름에는 제한이 없지만 커스텀 자바 정책 파일 이름에 .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
보안 정책 파일은 표준 자바 보안 정책과 동일한 구문을 지원합니다. 기본 정책 구현 및 정책 파일 구문을 참조하세요.

커스텀 자바 콜아웃 정책을 정의하여 보안 정책 파일을 만든 후에는 Apigee 런타임이 정책을 감지하고 정책에 정의된 커스텀 권한을 사용할 수 있습니다. 커스텀 자바 콜아웃 정책이 없으면 Apigee가 커스텀 자바 또는 Python 코드에 대해 기본 보안 정책을 사용합니다.

보안 정책 파일

다음 예시는 보안 정책 파일의 샘플 콘텐츠를 보여줍니다.

아래 줄은 커스텀 자바 콜아웃의 코드 위치를 지정하고 디렉터리에 대해 모든 권한을 부여합니다.

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";
}

예시

다음 예시는 커스텀 자바 콜아웃 보안 정책과 관련된 특정 태스크를 수행하는 방법을 보여줍니다.

커스텀 자바 콜아웃 보안 정책 만들기

다음 명령어는 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

모든 보안 정책 보기

다음 명령어를 사용하면 API에서 모든 기존 커스텀 자바 콜아웃 보안 정책을 볼 수 있습니다.

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"