Java 2 보안을 위해 was.policy 파일 구성

애플리케이션에 액세스하기 위한 특정 자원이 있는 경우에는 was.policy 파일을 업데이트해야 합니다.

시작하기 전에

Java™ 2 보안은 각 Java 프로그램에 부여된 권한을 판별하기 위해 여러 정책 파일을 사용합니다. was.policy 파일은 WebSphere® Application Server 엔터프라이즈 애플리케이션의 애플리케이션 특정 정책 파일입니다. 이 파일은 META-INF/was.policy 엔터프라이즈 아카이브(.EAR) 파일에 임베드됩니다. was.policy 파일은 다음 위치에 있습니다.
profile_root/config/cells/cell_name/applications/
ear_file_name/deployments/application_name/META-INF/was.policy

WebSphere Application Server 버전 6.1이 지원하는 사용 가능한 정책 파일의 목록은 Java 2 보안 정책 파일을 참조하십시오.

다음 파일에 포함된 권한의 유니온은 WebSphere Application Server 엔터프라이즈 애플리케이션에 적용됩니다.
  • java.security 파일에서 policy.url.* 특성에 지정되는 정책 파일.
  • 구성 및 파일 복제 서비스에 의해 관리되는 app.policy 파일.
  • server.policy 파일.
  • java.policy 파일.
  • 애플리케이션 was.policy 파일.
  • ra.xml 파일의 권한 명세.
  • library.policy 파일인 공유 라이브러리.

이러한 파일의 변경사항은 셀의 다른 노드로 복제됩니다.

표 1. 권한 목록을 특정 자원 유형과 연관시키기 위해 정의된 기호. 권한 목록을 특정 자원 유형과 연관시키기 위해 몇몇 제품 예약된 기호가 정의됩니다.
기호 정의
file:${application} 권한이 애플리케이션 내에서 사용되는 모든 자원에 적용됩니다.
file:${jars} 권한이 애플리케이션 내의 모든 유틸리티 Java 아카이브(JAR) 파일에 적용됩니다.
file:${ejbComponent} 권한이 애플리케이션 내의 엔터프라이즈 Bean 자원에 적용됩니다.
file:${webComponent} 권한이 애플리케이션 내의 웹 자원에 적용됩니다.
file:${connectorComponent} 권한이 애플리케이션 내의 커넥터 자원에 적용됩니다.
WebSphere Application Server에서 스레드를 조작하는 애플리케이션에는 was.policy 또는 app.policy 파일에 적합한 스레드 권한이 지정되어 있어야 합니다. 스레드 권한이 지정되지 않고는 애플리케이션은 스레드를 조작할 수 없고 WebSphere Application Server는 java.security.AccessControlException 예외를 작성합니다. 특정 애플리케이션의 was.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";
};
관리자는 스레드 권한을 app.policy 파일에 추가할 수 있지만 권한을 변경하려면 WebSphere Application Server를 다시 시작해야 합니다.
중요사항: 서명자 및 JAAS(Java Authentication and Authorization Service ) 프린시펄 키워드는 was.policy 파일에서 지원되지 않습니다. 서명자 키워드는 java.policy, server.policyclient.policy 정책 파일에서 지원됩니다. JAAS 프린시펄 키워드는 java.security.auth.policy JVM(Java Virtual Machine) 시스템 특성에 의해 지정될 때 JAAS 정책 파일에서 지원됩니다. auth.policy.url.n=URL이 있는 java.security.auth.policy 파일에서 권한 부여 정책 파일을 정적으로 설정할 수 있습니다. 여기서 URL은 권한 부여 정책의 위치입니다.
이러한 블록 이외에 세부 단위의 설정을 위해 모듈 이름을 지정할 수 있습니다. 예를 들어, 다음과 같습니다.
grant codeBase "file:DefaultWebApplication.war" {
  permission java.security.SecurityPermission "printIdentity";
};

grant codeBase "file:IncCMP11.jar" {
  permission java.io.FilePermission 
      "${user.install.root}${/}bin${/}DefaultDB${/}-", 
      "read,write,delete";
};
표 2. java.io.FilePermission 권한의 경로 및 이름을 지정하기 위해 제공되는 임베디드된 기호. java.io.FilePermission 권한에 경로와 이름을 지정하기 위해 다섯 개의 임베디드된 기호가 제공됩니다. 이러한 기호는 유연한 권한 명세를 가능하게 해줍니다. 절대 파일 경로는 애플리케이션이 설치된 후에 수정됩니다.
기호 정의
${app.installed.path} 애플리케이션이 설치되는 경로
${was.module.path} 모듈이 설치되는 경로
${current.cell.name} Current® 셀 이름
${current.node.name} Current 노드 이름
${current.server.name} Current 서버 이름

이 태스크 정보

엔터프라이즈 애플리케이션의 기본 권한이 충분한 경우 조치가 필요하지 않습니다. 기본 권한은 java.policy 파일, server.policy 파일 및 app.policy 파일에 정의된 권한의 유니온입니다. 애플리케이션에 액세스하기 위한 특정 자원이 있는 경우에는 was.policy 파일을 업데이트하십시오. 첫 번째 두 단계에서는 새 정책 파일을 작성 중인 것으로 가정합니다.
팁: 정책 파일의 구문 오류로 인해 Application Server가 실패합니다. 이러한 정책 파일을 편집할 때 주의하십시오.

프로시저

  1. PolicyTool을 사용하여 새 was.policy 파일을 작성하거나 편집하십시오. 자세한 정보는 PolicyTool을 사용하여 Java 2 보안을 위해 정책 파일 편집의 내용을 참조하십시오.
  2. EAR(Enterprise Archive) 파일로 was.policy 파일을 패키지하십시오.

    자세한 정보는 was.policy 파일을 Java 2 보안을 위한 애플리케이션에 추가의 내용을 참조하십시오.

    다음 지시사항은 was.policy 파일을 가져오는 방법을 설명합니다.
    1. EAR 파일을 어셈블리 도구로 가져오기하십시오.
    2. 프로젝트 네비게이터 보기를 여십시오.
    3. EAR 파일을 확장하고 META-INF을 클릭하십시오. META-INF 디렉토리에서 was.policy 파일을 찾을 수도 있습니다. 파일을 삭제하려면, 파일 이름을 마우스 오른쪽 단추로 클릭하고 삭제을 선택하십시오.
    4. 프로젝트 네비게이터 보기에서 J2EE 계층 구조를 클릭하십시오.
    5. 배치 디스크립터 내에서 모듈 디렉토리를 마우스 오른쪽 단추로 클릭한 다음 가져오기 > 가져오기 > 파일 시스템을 클릭하여 was.policy 파일을 가져오십시오.
    6. 다음을 클릭하십시오.
    7. 디렉토리로부터 필드에 was.policy 파일의 경로 이름을 입력하거나 찾아보기를 클릭하여 파일을 찾으십시오.
    8. 디렉토리로 필드에 나열된 경로 디렉토리가 올바른 META-INF 디렉토리를 나열하는지 확인하십시오.
    9. 완료를 클릭하십시오.
    10. EAR 파일을 유효성 검증하려면 모듈 디렉토리를 포함하는 EAR 파일을 마우스 오른쪽 단추로 클릭하고 유효성 검증 실행을 클릭하십시오.
    11. 새 EAR 파일을 저장하려면 EAR 파일을 마우스 오른쪽 단추로 클릭하고 내보내기 > EAR 파일 내보내기를 클릭하십시오. 개정된 EAR 파일을 저장하지 않으면 EAR은 새 was.policy 파일을 포함합니다. 그러나 작업공간이 손상되면 개정된 EAR 파일을 잃을 수도 있습니다.
    12. 배치 코드를 생성하려면 EAR 파일을 마우스 오른쪽 단추로 클릭하고 배치 코드 생성을 클릭하십시오.
  3. 기존에 설치된 애플리케이션이 있는 경우 이를 업데이트하십시오. 정책 도구를 사용하여 was.policy 파일을 수정하십시오. 자세한 정보는 PolicyTool을 사용하여 Java 2 보안을 위해 정책 파일 편집의 내용을 참조하십시오. [z/OS]
    1. 정책 파일을 추출하십시오. 명령 프롬프트에서 다음 명령을 입력하십시오.
      wsadmin> set obj [$AdminConfig extract profiles/profile_name/cells/cell_name
      /application/ear_file_name/deployments/application_name
      /META_INF/was.policy c:/temp/test/was.policy]

      세 개의 이전 행을 하나의 연속 행으로 입력하십시오. 이들은 설명 용도로만 여기에 표시되었습니다.

    2. 정책 도구를 사용하여 추출된 was.policy 파일을 편집하십시오. 자세한 정보는 PolicyTool을 사용하여 Java 2 보안을 위해 정책 파일 편집의 내용을 참조하십시오.
    3. 정책 파일을 확인하십시오. 다음을 명령 프롬프트에 입력하십시오.
      wsadmin> $AdminConfig checkin profiles/profile_name/cells/cell_name/application/
      ear_file_name/deployments/application_name/META_INF/was.policy 
      c:/temp/test/was.policy $obj

      세 개의 이전 행을 하나의 연속 행으로 입력하십시오. 이들은 설명 용도로만 여기에 표시되었습니다.

결과

업데이트된 was.policy 파일이 애플리케이션 다시 시작 후에 애플리케이션에 적용됩니다.

[IBM i][z/OS]
java.security.AccessControlException: access denied (java.io.FilePermission 
${was.install.root}/java/ext/mail.jar read)
[z/OS][IBM i]애플리케이션이 java.policy 파일, server.policy 파일 및 app.policy 파일에 기본으로 정의되어 있지 않는 특정 자원에 액세스해야 하는 경우, 해당 애플리케이션의 was.policy 파일을 삭제하십시오. 누락된 권한의 증상은 java.security.AccessControlException 예외입니다. 누락된 권한은 예외 데이터에 나열됩니다.
참고: 다음 예는 설명을 위해서 여러 행으로 나누어져 있습니다. 실제로는 권한을 한 행에 입력합니다.
[IBM i][z/OS]
java.security.AccessControlException: access denied (java.io.FilePermission 
${was.install.root}/java/ext/mail.jar read)

Java 프로그램이 이 예외를 수신하고 이 권한 추가가 정당화되면 다음 권한을 was.policy 파일에 추가하십시오.

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

권한을 추가할지 여부를 판별하려면 Java 2 보안의 액세스 제어 예외를 참조하십시오.

다음에 수행할 작업

업데이트된 app.policy 파일을 적용하려면 모든 애플리케이션을 다시 시작하십시오.

주제 유형을 표시하는 아이콘 태스크 주제



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