![[z/OS]](../images/ngzos.gif)
SAF 프로파일 접두부 및 사용자 정의 작업
z/OS® Profile Management Tool을 사용하여 SAF(System Authorization Facility) 프로파일 접두부(이전에 z/OS 보안 도메인이라고 함)를 구성할 수 있습니다.
- 역할의 WebSphere 보안 도메인 레벨 세분성을 제공합니다.
- 테스트 및 프로덕션에 다른 관리자를 지정할 수 있습니다.
- WebSphere 보안 도메인에서 서버의 APPL 프로파일로 사용됩니다.
z/OS Profile Management Tool을 사용하여 사용자 설정을 사용자 정의함으로써 또는 관리 콘솔의 SAF 권한 옵션 패널에서, SAF 프로파일 접두부를 구성할 수 있습니다. 도메인을 작성할 때만 한 번 실행해야 하는 RACF®(Resource Access Control Facility) 사용자 정의 작업의 새 샘플 세트를 제공합니다.
- CBIND
- EJBROLE
- APPL
/* CBIND profiles in case no server definition is set */
"RDEFINE CBIND CB.BIND.* UACC(NONE)"
"RDEFINE CBIND CB.* UACC(NONE)"
/* CBIND CB.BIND.domain_name. */
"RDEFINE CBIND CB.BIND.TESTSYS.* UACC(NONE)"
"RDEFINE CBIND CB.TESTSYS.* UACC(NONE)"
APPL 프로파일을 사용하여 WebSphere Application Server for z/OS를 보호하십시오. 유니버셜 액세스 권한인 UACC를 사용하는 경우, 샘플 프로파일이 모든 사용자에게 APPL 액세스 권한을 부여할 수 있으며 구성 그룹, 인증되지 않은 사용자 ID 및 모든 유효한 WebSphere Application Server for z/OS 사용자 ID에 대한 액세스 권한을 부여할 수 있습니다. UACC(NONE)는 모든 사용자에게 NONE이라는 기본 액세스를 제공합니다. 관리 콘솔의 SAF 권한 옵션 패널에서 "APPL 프로파일을 사용하여 서버에 대한 액세스 제한" 선택란을 설정하여 APPL 클래스 프로파일이 권한 부여에 사용되는지 여부를 제어할 수 있습니다.
RDEFINE APPL CBS390 UACC(NONE)
PERMIT CBS390 CLASS(APPL) ID(TSCLGP) ACCESS(READ)
RDEFINE APPL TESTSYS UACC(NONE)
PERMIT TESTSYS CLASS(APPL) ID(TSCLGP) ACCESS(READ)
다음 EJBROLE 프로파일은 역할 기반 권한에 대해 정의되며, SAF 프로파일 접두부가 없는지와 구성 그룹이 TSTCFG로 정의되었는지 여부를 확인합니다. 이는 SAF(System Authorization Facility) 권한을 선택할 때 이름 지정 및 관리 역할에 액세스해야 하는 최소 사용자 세트입니다.
RDEFINE EJBROLE administrator UACC(NONE)
RDEFINE EJBROLE monitor UACC(NONE)
RDEFINE EJBROLE configurator UACC(NONE)
RDEFINE EJBROLE operator UACC(NONE)
RDEFINE EJBROLE deployer UACC(NONE)
RDEFINE EJBROLE adminsecuritymanager UACC(NONE)
RDEFINE EJBROLE auditor UACC(NONE)
PERMIT administrator CLASS(EJBROLE) ID(TSTCFG) ACCESS(READ)
PERMIT auditor CLASS(EJBROLE) ID(TSTCFG) ACCESS(READ)
PERMIT adminsecuritymanager CLASS(EJBROLE) ID(TSTCFG) ACCESS(READ)
/* Setting up EJBRoles Profiles for Naming roles */
RDEFINE EJBROLE CosNamingRead UACC(NONE)
PERMIT CosNamingRead CLASS(EJBROLE) ID(TSGUEST) ACCESS(READ)
RDEFINE EJBROLE CosNamingWrite UACC(NONE)
PERMIT CosNamingWrite CLASS(EJBROLE) ID(TSGUEST) ACCESS(READ)
RDEFINE EJBROLE CosNamingCreate UACC(NONE)
PERMIT CosNamingCreate CLASS(EJBROLE) ID(TSGUEST) ACCESS(READ)
RDEFINE EJBROLE CosNamingDelete UACC(NONE)
PERMIT CosNamingDelete CLASS(EJBROLE) ID(TSGUEST) ACCESS(READ)
RDEFINE EJBROLE TESTSYS.administrator UACC(NONE)
RDEFINE EJBROLE TESTSYS.monitor UACC(NONE)
RDEFINE EJBROLE TESTSYS.configurator UACC(NONE)
RDEFINE EJBROLE TESTSYS.operator UACC(NONE)
RDEFINE EJBROLE TESTSYS.deployer UACC(NONE)
RDEFINE EJBROLE TESTSYS.adminsecuritymanager UACC(NONE)
RDEFINE EJBROLE TESTSYS.auditor UACC(NONE)
PERMIT TESTSYS.administrator CLASS(EJBROLE) ID(TSTCFG) ACCESS(READ)
PERMIT TESTSYS.auditor CLASS(EJBROLE) ID(TSTCFG) ACCESS(READ)
PERMIT TESTSYS.adminsecuritymanager CLASS(EJBROLE) ID(TSTCFG) ACCESS(READ)
/* Setting up EJBRoles Profiles for Naming roles */
RDEFINE EJBROLE TESTSYS.CosNamingRead UACC(NONE)
PERMIT TESTSYS.CosNamingRead CLASS(EJBROLE) ID(TSGUEST) ACCESS(READ)
RDEFINE EJBROLE TESTSYS.CosNamingWrite UACC(NONE)
PERMIT TESTSYS.CosNamingWrite CLASS(EJBROLE) ID(TSGUEST) ACCESS(READ)
RDEFINE EJBROLE TESTSYS.CosNamingCreate UACC(NONE)
PERMIT TESTSYS.CosNamingCreate CLASS(EJBROLE) ID(TSGUEST) ACCESS(READ)
RDEFINE EJBROLE TESTSYS.CosNamingDelete UACC(NONE)
PERMIT TESTSYS.CosNamingDelete CLASS(EJBROLE) ID(TSGUEST) ACCESS(READ)
서버에 대한 CBIND 프로파일 정의
RDEFINE CBIND CB.BIND.BBO* UACC(NONE)
RDEFINE CBIND CB.BIND.TSTC001 UACC(NONE)
PERMIT CB.BIND.BBO* CLASS(CBIND) ID(TSTCFG) ACCESS(CONTROL)
PERMIT CB.BIND.TSTC001 CLASS(CBIND) ID(TSTCFG) ACCESS(CONTROL)
RDEFINE CBIND CB.BBO* UACC(NONE)
RDEFINE CBIND CB.TSTC001 UACC(NONE)
RDEFINE CBIND CB.BIND.TESTSYS.BBO* UACC(NONE)
RDEFINE CBIND CB.BIND.TESTSYS.TSTC001 UACC(NONE)
PERMIT CB.BIND.TESTSYS.BBO* CLASS(CBIND) ID(TSTCFG) ACCESS(CONTROL)
PERMIT CB.BIND.TESTSYS.TSTC001 CLASS(CBIND) ID(TSTCFG) ACCESS(CONTROL)
RDEFINE CBIND CB.TESTSYS.BBO* UACC(NONE)
RDEFINE CBIND CB.TESTSYS.TSTC001 UACC(NONE)
- BBO* 이외의 접두부로 시작하는 작업 이름이 있는 새 특정 서버를 작성하려면,
다음 RACF 명령을 입력하여 특정 CBIND 프로파일을
정의하십시오.
RDEFINE CBIND CB.BIND.TSTC002 UACC(NONE) PERMIT CB.BIND.TSTC002 CLASS(CBIND) ID(TSTCFG) ACCESS(CONTROL) RDEFINE CBIND CB.TSTC002 UACC(NONE)
- 샘플에서는 서버 접두부 BBO를 사용하는 일반 프로파일이 아닌 특정
서버 이름으로 서버 정의를 작성합니다. 이미 대체 서버 접두부를 작성하고 추가 CBIND 정의를 작성하지 않으려면,
다음 RACF 명령을 입력하여 새 이름을 반영하는 일반 CBIND 프로파일을
추가하십시오. 여기서 TST는 서버 작업 이름 접두부입니다.
RDEFINE CBIND CB.BIND.TESTSYS.TST* UACC(NONE) PERMIT CB.BIND.TESTSYS.TST* CLASS(CBIND) ID(TSTCFG) ACCESS(CONTROL) RDEFINE CBIND CB.TESTSYS.TST* UACC(NONE)
- SAF 프로파일 접두부는 RACF 클래스(CBIND, EJBROLE, APPL)를 구분하지만,
HFS(Hierarchical File System)에서 구성 파일에 대한 파일 사용 권한은 구분하지 않습니다. 예를 들어, 다음과 같습니다.
- 관리자는 WSCFG 그룹의 WSADMIN입니다.
- 하위(servant) 영역 ID는 WASSRV(WSCFG 그룹에 속하지 않음)입니다.
- 사용자 TOM에게는 TEST.administrator EJBROLE에 대한 READ 액세스 권한이 있지만 PROD.administrator EJBROLE에 대해서는 해당 권한이 없습니다.
- TEST 애플리케이션 서버에서 실행되는 임의의 애플리케이션은 PROD 셀의 HFS 파일을 수정할 수 있습니다. 이는 TEST 서버가 WSCFG 그룹에 속하는 WASSRV 사용자 ID로 실행되기 때문입니다. TEST 및 PROD HFS 파일 모두 WSCFG 그룹에서 수정할 수 있습니다. 최대 보호 기능을 제공하려면, PROD를 작성하여 TEST의 다른 RACF 그룹과 연관시켜야 합니다. 또한 애플리케이션 서버 및 z/OS 스레드 ID 동기화 사용도 고려하십시오. 이 프로세스에서는 하위(servant) 영역 ID 대신 Java™ EE(Java Platform, Enterprise Edition) ID를 사용하여, HFS에 쓰기와 같은 z/OS 시스템 서비스를 수행할 수 있습니다. 자세한 정보는 z/OS 보안 옵션에 대해 읽어보십시오.