app.policy 파일 권한

Java™ 2 보안은 각 Java 프로그램에 대해 부여된 권한을 판별하기 위해 몇몇 정책 파일을 사용합니다. 다음 파일에 포함된 권한의 유니온은 WebSphere® Application Server 엔터프라이즈 애플리케이션에 적용됩니다. 이 유니온은 부여된 권한을 판별합니다.

WebSphere Application Server에서 지원된 사용 가능한 정책 파일 목록은 Java 2 보안 정책 파일에 대한 주제를 참조하십시오. app.policy 파일은 WebSphere Application Server 엔터프라이즈 애플리케이션 모두에서 공유되는 기본 정책 파일입니다. 다음 파일에 포함된 권한의 유니온은 WebSphere Application Server 엔터프라이즈 애플리케이션에 적용됩니다.
  • java.security 파일에서 policy.url.* 특성에 지정되는 정책 파일.
  • 구성 및 파일 복제 서비스에 의해 관리되는 app.policy 파일.
  • server.policy 파일.
  • java.policy 파일.
  • 애플리케이션 was.policy 파일.
  • ra.xml 파일의 권한 명세.
  • library.policy 파일인 공유 라이브러리.

이 파일에 작성된 변경사항은 WebSphere Application Server, Network Deployment 셀의 다른 노드로 복제됩니다.

WebSphere Application Server에서 스레드를 조작하는 애플리케이션은 was.policy 또는 app.policy 파일에 적합한 스레드 권한이 지정되어 있어야 합니다. 스레드 권한 지정 없이 애플리케이션은 스레드를 조작할 수 없으며 WebSphere Application Server는 java.security.AccessControlException 예외를 작성합니다. 관리자는 스레드 권한을 app.policy 파일에 추가하는 경우, 권한을 변경하려면 WebSphere Application Server를 다시 시작해야 합니다. 애플리케이션이 스레드를 조작하기 위해서는 관리자는 다음 코드를 was.policy 또는 app.policy 파일에 추가해야 합니다.
grant codeBase "file:${application}" {
  permission java.lang.RuntimePermission "stopThread";
  permission java.lang.RuntimePermission "modifyThread";
  permission java.lang.RuntimePermission "modifyThreadGroup";
}; 
중요사항: 서명자 및 JAAS(Java Authentication and Authorization Service) 프린시펄 키워드는 app.policy 파일에서 지원되지 않습니다. 그러나 서명자 키워드는 java.policy, server.policyclient.policy 파일에서 지원됩니다. JAAS 프린시펄 키워드는 java.security.auth.policy JVM(Java Virtual Machine) 시스템 특성에서 지정될 때 JAAS 정책 파일에서 지원됩니다. auth.policy.url.n=URLjava.security.auth.policy 특성에서 권한 정책 파일을 정적으로 설정할 수 있으며, 여기서 URL은 권한 정책의 위치입니다.
엔터프라이즈 애플리케이션에 대한 기본 권한(java.policy 파일, server.policy 파일 및 app.policy 파일에서 정의된 권한의 유니온)은 충분하지만, 필요한 조치는 없습니다. 기본 app.policy 파일이 자동으로 사용됩니다. 셀에서 모든 엔터프라이즈 애플리케이션에 특정 변경이 필요한 경우, app.policy 파일을 업데이트하십시오. 정책 파일의 구문 오류로 인해 애플리케이션 서버가 실패합니다. 이러한 정책 파일 편집은 주의하십시오.
참고: app.policy 파일에 대한 업데이트는 app.policy 파일이 속한 노드의 엔터프라이즈 애플리케이션에만 적용됩니다.

정책 파일을 추출하려면, 명령 프롬프트에 사용자 환경에 적절한 변수 값을 사용하여 하나의 행으로 다음 명령을 입력합니다.

[Windows]
wsadmin> set obj [$AdminConfig extract cells/cell_name/node/node_name/app.policy c:\temp\test\app.policy]
[IBM i][z/OS]
wsadmin> set obj [$AdminConfig extract  cells/cell_name/node/node_name/app.policy /temp/test/app.policy]

정책 도구를 사용하여 추출된 app.policy 파일을 편집하십시오. 자세한 정보는 PolicyTool을 사용하여 Java 2 보안을 위해 정책 파일 편집의 내용을 참조하십시오. app.policy 파일에 대한 변경사항은 노드에 대한 로컬입니다.

정책 파일을 체크인하려면, 명령 프롬프트에 사용자 환경에 적절한 변수 값을 사용하여 하나의 행으로 다음 명령을 입력합니다.

[Windows]
wsadmin> $AdminConfig checkin cells/cell_name/nodes/node_name/app.policy c:\temp\test\app.policy $obj
[IBM i][z/OS]
wsadmin> $AdminConfig checkin cells/cell_name/nodes/node_name/app.policy  temp/test/app.policy $obj
표 1. 권한 목록을 특정 자원 유형과 연관시키기 위해 사용된 기호. 권한 목록을 특정 자원 유형과 연관시키기 위해 몇몇 제품 예약된 기호가 정의됩니다.
기호 의미
file:${application} 권한이 애플리케이션 내 모든 자원에 적용됩니다.
file:${jars} 권한이 애플리케이션 내의 모든 유틸리티 Java 아카이브(JAR) 파일에 적용됩니다.
file:${ejbComponent} 권한이 애플리케이션 내의 엔터프라이즈 Bean 자원에 적용됩니다.
file:${webComponent} 권한이 애플리케이션 내의 웹 자원에 적용됩니다.
file:${connectorComponent} 권한이 애플리케이션 및 독립형 커넥터 자원 내에 모두 있는 커넥터 자원에 적용됩니다.
표 2. java.io.FilePermission 권한에 대한 경로와 이름을 지정하기 위해 제공된 기호. java.io.FilePermission 권한에 경로와 이름을 지정하기 위해 다섯 개의 임베디드된 기호가 제공됩니다. 이러한 기호는 유연한 권한 스펙을 사용합니다. 절대 파일 경로는 애플리케이션 설치 후 수정됩니다.
기호 의미
${app.installed.path} 애플리케이션이 설치되는 경로
${was.module.path} 모듈이 설치되는 경로
${current.cell.name} 현재 셀 이름
${current.node.name} 현재 노드 이름
${current.server.name} 현재 서버 이름
팁: ${application} 항목에서 ${was.module.path}를 사용할 수 없습니다.

[IBM i][z/OS]WebSphere Application Server에서 제공된 app.policy 파일은 profile_root/config/cells/cell_name/nodes/node_name/app.policy에 있으며, 다음 기본 권한을 포함합니다.

주의: 다음 코드 샘플에서 java.io.FilePermission 권한과 관련된 처음 두 행은 설명 용도로만 두 개의 행으로 나누어집니다.
grant codeBase "file:${application}" {
  // The following are required by JavaMail
  permission java.io.FilePermission "${was.install.root}${/}lib${/}activation-impl.jar", "read";
  permission java.io.FilePermission "${was.install.root}${/}lib${/}mail-impl.jar", "read";
};

grant codeBase "file:${jars}" {
  permission java.net.SocketPermission "*", "connect";
  permission java.util.PropertyPermission "*", "read";
};

grant codeBase "file:${connectorComponent}" {
  permission java.net.SocketPermission "*", "connect";
  permission java.util.PropertyPermission "*", "read";
};

grant codeBase "file:${webComponent}" {
  permission java.io.FilePermission "${was.module.path}", "read";
  permission java.io.FilePermission "${was.module.path}${/}-", "read, write"
  permission java.lang.RuntimePermission "loadLibrary.*";
  permission java.lang.RuntimePermission "queuePrintJob";
  permission java.net.SocketPermission "*", "connect";
  permission java.util.PropertyPermission "*", "read";
};
grant codeBase "file:${ejbComponent}" {
 permission java.lang.RuntimePermission "queuePrintJob";
 permission java.lang.RuntimePermission "loadLibrary.*";
 permission java.net.SocketPermission "*", "connect";
 permission java.util.PropertyPermission "*", "read";
 permission java.io.FilePermission "*", "read,write";
};
셀에서 모든 WebSphere Application Server 엔터프라이즈 애플리케이션이 java.policy 파일, server.policy 파일 및 app.policy 파일에서 기본값으로 정의되지 않은 권한을 필요로 하는 경우, app.policy 파일을 업데이트하십시오. 누락된 권한의 증상으로 java.security.AccessControlException 예외가 발생합니다.
참고: app.policy에 대한 업데이트는 app.policy 파일이 속한 노드의 엔터프라이즈 애플리케이션에만 적용됩니다.
[Windows] 누락된 권한은 예외 데이터에 나열됩니다. 예:
java.security.AccessControlException: access denied 
(java.io.FilePermission 
C:\WebSphere\AppServer\java\jre\lib\ext\mail.jar read)

Java 프로그램이 이 예외를 수신하고 이 권한 추가가 정당화되면 권한을 server.policy 파일에 추가합니다. 예를 들어 다음과 같습니다.

[Windows]
grant codeBase "file:user_client_installed_location" {   
  permission java.io.FilePermission 
"C:\WebSphere\AppServer\java\jre\lib\ext\mail.jar", "read";
 };
[IBM i]
grant codeBase "file:user_client_installed_location" {   
  permission java.io.FilePermission 
"${was.install.root}$(/)java$(/)jre$(/)lib$(/)ext$(/)mail.jar", "read";
 };

이전 권한 정보 행은 설명을 위해서 분할되었습니다. 실제로는 권한을 한 행에 입력합니다.

권한을 추가할지 여부를 판별하려면 AccessControlException 주제를 참조하십시오.

모든 WebSphere Application Server 엔터프라이즈 애플리케이션을 다시 시작하여 업데이트된 app.policy 파일이 적용되는지 확인하십시오.


주제 유형을 표시하는 아이콘 참조 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rsec_apppolicy
파일 이름:rsec_apppolicy.html