7 액세스 제어

액세스 제어는 다음을 제공합니다.

  • 볼륨 액세스 제어 - 볼륨을 하나의 클라이언트 응용 프로그램에 지정할 수 있습니다. 다른 클라이언트는 클라이언트의 볼륨에 액세스할 수 있습니다.

  • 명령 액세스 제어 - 관리자가 특정 ACSLS 명령을 특정 클라이언트에 지정할 수 있습니다.

볼륨 액세스 제어명령 액세스 제어는 모두 ACSAPI를 통해 요청을 제출하는 클라이언트 응용 프로그램의 사용자에게 적용됩니다.

액세스 제어cmd_proc 또는 ACSLS GUI를 사용해서 라이브러리 요청을 제출하는 관리 사용자로 액세스를 제한하지 않습니다.

볼륨 액세스 제어

이 기능이 사용으로 설정된 경우, 특정 사용자가 소유하는 볼륨은 해당 사용자 또는 신뢰할 수 있는 다른 사용자만 액세스할 수 있습니다.

ACSLS에서 볼륨 액세스 제어를 처음 구성할 때는 다음 단계를 수행합니다.

  1. ACSLS에서 volume access 제어를 사용으로 설정합니다.

  2. 클라이언트 응용 프로그램을 사용자 이름과 연관시킵니다.

  3. 사용자 볼륨에 액세스할 수 있는 다른 사용자를 정의합니다.

  4. 볼륨 소유권을 설정합니다.

볼륨 액세스 제어 사용으로 설정

ACSLS에서 volume access 제어를 사용으로 설정하려면 다음을 수행합니다.

  1. 구성 유틸리티 acsss_config를 실행합니다.

    기본 메뉴가 표시됩니다.

  2. 옵션 4 - Set Access Control Variables를 선택합니다.

    각 변수는 한 번에 하나씩 나열되며 해당 현재 설정이 표시됩니다.

  3. Enter를 눌러서 현재 또는 기본 설정을 수락합니다.

  4. 유틸리티에 Access control is active for volumes 메시지가 표시되면 [TRUE]를 선택하고 Enter를 누릅니다.

  5. 유틸리티에 Default access for volumes [ACCESS/NOACCESS]... 메시지가 표시되면 다음 중 하나를 선택합니다.

    • 특정 사용자에 대한 액세스를 금지하고 다른 모든 사용자에 대한 액세스를 허용하려면 [ACCESS]를 선택합니다.

      이렇게 하려면 특정 사용자가 users.ALL.disallow 파일 또는 특정 users.COMMAND.disallow 파일에 나열되어 있어야 합니다. 사용자 볼륨에 액세스하도록 허용된 다른 사용자 정의를 참조하십시오.

    • 특정 사용자에 대한 액세스를 허용하고 모든 사용자에 대한 액세스를 금지하려면 [NOACCESS]를 선택합니다.

      이렇게 하려면 특정 사용자가 users.ALL.allow 파일 또는 특정 users.COMMAND.allow 파일에 나열되어 있어야 합니다. 사용자 볼륨에 액세스하도록 허용된 다른 사용자 정의를 참조하십시오.

      볼륨 액세스가 거부되는 인스턴스를 기록하려면 해당 프롬프트에 대한 응답으로 [TRUE]를 선택합니다.

      볼륨 액세스를 사용 또는 사용 안함으로 설정할 때마다 해당 변경사항을 적용하려면 ACSLS를 다시 시작해야 합니다.

      
      Associating a client identity with a user name 
      

클라이언트 응용 프로그램이 모두 ACSLS 요청 패킷에 사용자 ID를 전달하는 것은 아닙니다. 사용자 이름으로 클라이언트를 식별할 수 없는 경우에는 사용자 ID를 지정할 수 있습니다.

  1. access_control 구성 디렉토리로 이동합니다.

    $ACS_HOME/data/external/access_control.  
    
  2. internet.addresses 이름으로 파일을 만들거나 internet.addresses.SAMPLE 파일을 복사합니다.

  3. 이 파일에서 각 클라이언트에 대해 레코드를 만듭니다. 각 레코드에는 최소 두 개의 필드(클라이언트 IP 주소와 해당 사용자 이름)가 포함됩니다. 설명을 위해 추가 필드를 포함시킬 수 있습니다.

    다음 예제에 표시된 것처럼 공백 또는 탭으로 필드를 구분합니다.

    192.0.2.1  ulyssis   payroll department 
    

    클라이언트-사용자 연관은 클라이언트 응용 프로그램 수만큼 만들 수 있습니다.

    • 클라이언트 응용 프로그램이 ACSLS 요청에 사용자 이름을 전달하는 경우에는 internet.addresses 파일이 지정된 IP 주소로 사용자 이름을 인증하고, 두 필드가 모두 요청 패킷의 값과 일치하지 않는 경우에는 액세스를 거부합니다. 공통 플랫폼에서 여러 클라이언트가 호스트되는 경우에는 동일한 IP 주소가 이 파일에 여러 번 포함될 수 있으며, 해당 IP 주소에 올바르게 적용되는 한 이 주소를 여러 사용자 이름과 연관시킬 수 있습니다.

    • 클라이언트 응용 프로그램이 요청에 사용자 이름을 전달하지 않는 경우에는 internet.addresses 파일이 해당 클라이언트에 대해 사용자 이름을 설정합니다. 이 경우에는 사용자 이름 하나만 클라이언트 주소와 연관시킬 수 있습니다.

  4. internet.addresses 파일에 대한 모든 업데이트를 저장합니다.

    • acsss_config를 실행합니다.

    • 옵션 6 - "Rebuild Access Control Information"을 선택합니다.

    ACSLS는 변경사항을 동적으로 인식합니다.

    TCP/IP를 사용하지 않는 SNA 및 OSLAN 클라이언트는 access_control 디렉토리에 있는 lu62.names 또는 adi.names 파일을 참조하십시오.

사용자 볼륨에 액세스하도록 허용된 다른 사용자 정의

특정 사용자 소유의 볼륨에 다른 사용자가 액세스하도록 권한을 부여하려면 다음을 수행합니다.

  1. access_control 디렉토리에서 users.ALL.allow 또는 users.ALL.disallow를 만듭니다.

    users.SAMPLE.allow 또는 users.SAMPLE.disallow 템플리트를 복사할 수 있습니다.

  2. 각 소유자에 대해 파일에 레코드를 추가하여 왼쪽 여백에 소유자의 사용자 ID를 배치합니다.

  3. 각 소유자와 동일한 라인에 영향을 받는 사용자를 지정합니다.

  4. 다음 예제에 표시된 것처럼 공백 또는 탭으로 사용자 이름을 구분합니다.

    owner_john   user-Allie   user-andre  
    

    users.allowusers.disallow 파일에 나열된 사용자 이름은 대소문자 구분없이 고유해야 합니다. 사용자 이름에 사용된 문자의 대소문자는 무시됩니다.

    소유자와 동일한 라인에 나열되지 않은 사용자에게는 소유자 볼륨에 대한 기본(ACCESS 또는 NOACCESS) 관계가 부여됩니다.

    주:

    동일한 명령 또는 ALL에 대해 동일한 owner_IDuser_ID 쌍을 users.COMMAND.allowusers.COMMAND.disallow 파일 모두에 지정할 수 없습니다. 또한 중복된 owner_IDuser_ID 쌍을 동일한 users.COMMAND.allowusers.COMMAND.disallow 파일에 지정할 수 없습니다. 여기에는 동일한 라인의 동일 user_ID 반복이 포함됩니다.

    한 소유자에 대해 허용되는 사용자가 한 라인에 들어가는 것보다 많으면 허용된 사용자 목록을 후속 라인에 계속 지정할 수 있습니다. 각 라인은 소유자 ID로 시작해야 합니다.

  5. 선택적으로 사용자가 정의한 볼륨 액세스 정책에 대해 예외사항을 설정할 수 있습니다.

    일반적으로 사용자에게는 액세스 제어 하에 있는 볼륨에 대해 전체 액세스 권한이 허용되거나 액세스 권한이 전혀 허용되지 않습니다. 하지만 다른 사용자의 볼륨에 대해 특정 제한된 액세스 권한을 사용자에게 허용할 수 있습니다.

    예를 들어, 특정 사용자가 소유하는 볼륨에 대해 모든 사용자가 해당 볼륨을 마운트하거나 마운트 해제할 수 없더라도 질의할 수 있도록 허용하는 정책을 설정할 수 있습니다. 예외사항은 액세스 제어로 영향을 받는 모든 명령에 적용할 수 있습니다.

    특정 명령에 대해 볼륨 액세스 정책 예외사항을 구성하려면 다음을 수행합니다.

    • users.COMMAND.allow 또는 users.COMMAND.disallow파일을 만들어야 합니다. 여기서 COMMAND는 권한을 부여하거나 제한하려는 특정 명령으로 대체합니다.

      users.COMMAND.allowusers.COMMAND.disallow 파일은 아래에 나열된 것처럼 지정된 이름과 정확히 동일한 명령 구성 요소 이름을 포함해야 하며, 명령 이름을 대문자로 표시해야 합니다. 명령의 다른 변형 형태에 대한 액세스 제어(예: QUERY_VOLUME)는 지원되지 않습니다.

      DISMOUNT 
      EJECT 
      LOCK 
      MOUNT (1) 
      MOUNT_READONLY (2) 
      QUERY 
      REGISTER 
      SET_CLEAN 
      SET_SCRATCH 
      UNLOCK 
      

      주:

      • MOUNT (1) - MOUNT 정책은 mount scratch에도 적용됩니다. mount readonly에는 정책이 적용되지 않습니다.

      • MOUNT_READOLNY (2) - mount readonly에 대한 정책은 mount와 별도로 정의됩니다.

      • 위에서 비중복 소유자 ID 및 허용되는 사용자 ID 쌍과 후속 라인으로 이어지는 허용되는 사용자 연속 목록에 대한 고려 사항은 허용되지 않는 사용자 목록에도 적용됩니다.

    • 각 소유자에 대해 소유자 이름을 왼쪽 여백에 배치하고 정책이 적용되는 사용자를 그 뒤에 표시합니다.

  6. 정의한 정책에 대한 모든 업데이트를 저장합니다.

    • acsss_config를 실행합니다.

    • 옵션 6 - "Rebuild Access Control Information"을 선택합니다.

    ACSLS는 변경사항을 동적으로 인식합니다.

볼륨 소유권 설정

볼륨 액세스 제어는 명시적 소유권이 있는 볼륨에만 적용됩니다. 라이브러리에서 소유자가 없는 볼륨은 모든 사용자가 액세스할 수 있습니다. 볼륨 소유권을 명시적으로 설정하려면 cmd_proc 인터페이스를 사용합니다.

ACSSA>set owner "daffy" volume V00100-V00199 
Set: owner set for volumes V00100-V00199 
Set: Set completed, Success. 

빈 문자열을 사용해서 비슷한 방식으로 소유권을 제거할 수 있습니다.

ACSSA> set owner "" volume V00100-V00199 
Set: owner set for volumes V00100-V00199 

이 작업은 해당 범위의 모든 볼륨에서 소유권을 지웁니다. 자세한 내용은 set owner을 참조하십시오.

볼륨 소유권은 watch_vols 유틸리티에서 자동으로 설정할 수 있습니다. 자세한 내용은 watch_vols를 참조하십시오.

소유권 정책

또한 소유권 자동 설정 및 제거 정책은 ACSLS에서 정의할 수 있습니다. 예를 들어, 마운트된 스크래치 볼륨이 볼륨을 마운트한 사용자 소유가 되는 정책을 설정할 수 있습니다. 그런 다음에는 볼륨이 해당 사용자의 소유가 됩니다. 동일 정책을 조금 더 발전시키면 볼륨이 스크래치 상태로 돌아왔을 때마다 소유권을 제거할 수 있습니다. 넣은 모든 볼륨이 기본 사용자에게 지정되거나, 넣기를 요청한 사용자에게 지정되도록 또는 볼륨이 이전에 소유된 경우, 이전 소유자에게 지정되도록 정책을 작성할 수 있습니다. 이 기능에는 상당한 유연성이 제공됩니다.

소유권 정책은 access_control 디렉토리에 있는 ownership.assignments 파일에 정의됩니다. 이 파일에서 각 enter or automatic enter, set scratch 또는 mount scratch 작업으로 소유권을 자동으로 지정 또는 지정 해제하도록 정책을 설정할 수 있습니다. ownership.assignments 파일을 사용하면 기본 소유자를 정의할 수 있습니다. 볼륨에 이러한 작업이 수행될 때마다 해당 소유권을 다음 항목에 지정할 수 있습니다.

  • Owner_default(기본 소유자)

  • 동일 소유자(이전 소유자)

  • 요청자(현재 요청을 실행한 사용자)

  • 소유 해제(볼륨에서 소유권 철회)

    주:

    소유권 정책 정의 지침은 ownership.assignments 파일에 자세히 설명되어 있습니다. 이 파일에는 볼륨 소유권 설정을 위해 사용할 수 있는 전체 명령 목록이 포함되어 있습니다.
  • 정의한 정책에 대한 모든 업데이트를 저장합니다.

    • acsss_config를 실행합니다.

    • 옵션 6 - Rebuild Access Control Information을 선택합니다.

    ACSLS는 변경사항을 동적으로 인식합니다.

소유권 확인

소유권을 확인하려면 owner_id.volrpt 템플리트를 사용해서 volrpt를 실행할 수 있습니다.

cd ~acsss/data/external/volrpt 
volrpt -f owner_id.volrpt 

이렇게 하면 라이브러리의 모든 볼륨이 연관된 소유자와 함께 표시됩니다.

볼륨 액세스 요약

볼륨 액세스 제어에서는 다음 명령이 지원됩니다.

dismount* 
display 
eject 
enter 
lock 
set_clean 
set_scratch 
mount 
query_mount 
query_scratch 
query_volume 
unlock 

force 옵션은 StorageTek ACSLS가 볼륨 ID를 무시하고 무조건 볼륨을 마운트 해제하도록 지시하기 때문에 dismount force에는 액세스 제어가 적용되지 않습니다.

다음 표에서는 volume access control이 사용으로 설정되었을 때 적용되는 컨텍스트를 요약해서 보여줍니다.

테이블 7-1 볼륨 액세스가 사용으로 설정됨

볼륨에 대한 기본 액세스가 ACCESS인 경우 액세스
허용
액세스
거부

액세스가 cmd_proc를 통해 수행됨

X

 

지정된 볼륨이 소유 해제되어 있음

X

 

사용자가 볼륨 소유자임

X

 

사용자가 users.ALL.disallow
소유자와 연관됨

 

X

사용자가 users.ALL.disallow의 소유자와
연관되지 않음

X

 

테이블 7-2 볼륨 액세스가 사용으로 설정됨

볼륨에 대한 기본 액세스가 NOACCESS인 경우 액세스
허용
액세스
거부

액세스가 cmd_proc를 통해 수행됨

X

 

지정된 볼륨이 소유 해제되어 있음

X

 

사용자가 볼륨 소유자임

X

 

사용자가 users.ALL.allow
소유자와 연관됨

X

 

사용자가 users.ALL.allow의 소유자와
연관되지 않음

 

X


명령 액세스 제어

명령 액세스 제어를 사용하면 ACSLS 관리자가 특정 명령 클래스를 네트워크에 있는 특정 응용 프로그램 또는 특정 사용자로 제한할 수 있습니다. 제어된 액세스는 ACSAPI를 통해 제출된 사용자 명령에만 적용되며 cmd_proc를 사용해서 명령을 제출하는 로컬 사용자에게 적용되지 않습니다.

command access control에 대한 ACSLS 구성 프로세스에는 세 가지 단계가 포함됩니다.

ACSLS에서 명령 액세스 제어를 처음 구성할 때는 다음 단계를 수행합니다.

  1. ACSLS에서 명령 액세스 제어를 사용으로 설정합니다.

  2. 클라이언트 ID를 사용자 이름과 연관시킵니다.

  3. 사용자에게 제공되는 명령을 정의합니다.

명령 액세스 제어 사용으로 설정

ACSLS에서 명령 액세스 제어를 사용으로 설정하려면 다음을 수행합니다.

  1. 구성 유틸리티 acsss_config를 실행합니다.

    기본 메뉴가 표시됩니다.

  2. 옵션 4 - Set Access Control Variables를 선택합니다.

    각 변수는 한 번에 하나씩 나열되며 해당 현재 설정이 표시됩니다.

  3. Enter를 눌러서 현재 또는 기본 설정을 수락합니다.

  4. 유틸리티에 Access control is active for commands 메시지가 표시되면 TRUE를 선택하고 Enter를 누릅니다.

  5. "Default access for commands" 메시지가 표시되면 다음을 수행합니다.

    • 모든 명령에 대해 모든 사용자 액세스를 허용하려면 ACCESS를 선택합니다.

      특정 사용자가 명령을 실행하지 않도록 차단하려면 이러한 사용자가 command.ALL.disallow 파일 또는 특정 command.XXX.disallow 파일에 나열되어 있어야 합니다.

      XXX는 액세스 제어 대상이 되는 명령입니다.

    • 명령에 대한 사용자 액세스를 거부하려면 [NOACCESS]를 선택합니다.

      특정 사용자가 명령을 실행하도록 허용하려면 이러한 사용자가 command.ALL.allow 파일 또는 특정 command.XXX.allow 파일에 나열되어 있어야 합니다.

      주:

      명령 액세스가 거부되는 인스턴스를 기록하려면 해당 프롬프트에 대한 응답으로 "TRUE"를 입력합니다.

      주:

      명령 액세스를 사용 또는 사용 안함으로 설정할 때마다 변경사항을 적용하려면 ACSLS를 다시 시작해야 합니다.

클라이언트 ID를 사용자 이름과 연관

Associating a client identity with a user name의 절차를 참조하십시오.

사용자에게 제공되는 명령 정의

이 프로세스는 명령 액세스 제어를 사용으로 설정할 때 선택한 기본 동작에 따라 달라집니다. $ACS_HOME/data/external/access_control 디렉토리에 정책 파일을 만들어야 합니다.

  • 위에서 정의한 기본 동작이 [NOACCESS]인 경우 모든 ACSLS 명령에 대한 액세스 권한을 갖는 각 클라이언트의 사용자 ID가 포함된 command.ALL.allow 파일을 만들어야 합니다. 각 사용자 ID는 파일에서 별도의 라인에 나열됩니다.

    특정 사용자에게 특정 명령만 권한을 부여하려면 사용자가 실행하도록 허용된 각 명령에 대해 command.XXX.allow 파일을 만들어야 합니다. 예를 들어, 특정 사용자가 라이브러리에 볼륨을 넣을 수 있도록 권한을 부여하려면 command.ENTER.allow라는 이름으로 파일을 만들고 이 파일의 개별 라인에 적격한 각 'enter' 사용자의 ID를 나열합니다.

  • 위에서 정의한 기본 동작이 [ACCESS]인 경우 모든 ACSLS 명령에 대한 액세스 권한을 갖지 않는 각 클라이언트의 사용자 ID가 포함된 command.ALL disallow 파일을 만들어야 합니다. 각 사용자 ID는 파일에서 별도의 라인에 나열됩니다.

    주:

    동일한 명령 또는 ALL에 대해 동일한 user_ID를 command.XXX.allowcommand.XXX.disallow command.XXX 파일 모두에 지정할 수 없습니다.

명령 액세스 제어 allow 및 disallow 파일에 대한 명령 이름

command.XXX.allowcommand.XXX.disallow 파일은 아래에 나열된 것처럼 지정된 이름과 정확히 동일한 명령 구성 요소 이름을 포함해야 하며 명령 이름을 대문자로 표시해야 합니다. 명령의 다른 변형 형태에 대한 액세스 제어(예: QUERY_VOLUME)는 지원되지 않습니다.

AUDIT 
CANCEL 
CHECK_REGISTRATION 
CLEAR_LOCK 
DEFINE_POOL 
DELETE_POOL 
DISMOUNTDISMOUNT_FORCE 
DISPLAY 
EJECT 
ENTER      (1) 
IDLE 
LOCK 
MOUNT      (2) 
QUERY 
QUERY_LOCK 
REGISTER 
SET_CAP 
SET_CLEAN 
SET_OWNER 
SET_SCRATCH 
START 
UNLOCK 
UNREGISTER 
VARY  

주:

ENTER (1) - 가상 넣기 및 수동 넣기에 정책이 적용되며 자동 넣기에는 적용되지 않습니다. MOUNT (2) - mount scratchmount readonly에도 정책이 적용됩니다.

다음 표는 명령 액세스를 허용할 경우를 확인하기 위한 빠른 참조로 활용할 수 있습니다.

테이블 7-3 명령 액세스가 사용으로 설정됨

명령에 대한 기본 액세스가 NOACCESS인 경우 액세스
허용
액세스
거부

요청이 cmd_proc에서 입력됨

X

 

user_ID가 command.COMMAND.allow에 나열됨

X

 

user_ID가 command.ALL.allow에 나열됨

X

 

- - 기타 모든 조건 - -

 

X


테이블 7-4 명령 액세스가 사용으로 설정됨

명령에 대한 기본 액세스가 ACCESS인 경우 액세스
허용
액세스
거부

요청이 cmd_proc에서 입력됨

X

 

user_ID가 command.COMMAND.disallow에 나열됨

 

X

user_ID가 command.ALL.disallow에 나열됨

 

X

- - 기타 모든 조건 - -

X

 

  • 정의한 정책에 대한 모든 업데이트를 저장합니다.

    • acsss_config를 실행합니다.

    • 옵션 6 - "Rebuild Access Control Information"을 선택합니다.

    ACSLS는 변경사항을 동적으로 인식합니다.

액세스 제어 메시지 기록

사용자에게 액세스가 거부되었기 때문에 실패한 모든 트랜잭션을 기록하도록 정책을 설정할 수 있습니다. 이 메시지에는 사용자 이름 및 시도된 명령이 표시됩니다.

액세스 제어 로깅을 사용으로 설정하려면 다음을 수행합니다.

  1. acsss_config를 실행하고 옵션 4 - "Set Access Control Variables"를 선택합니다.

  2. "Messages will be logged when access to commands or volumes is denied." 프롬프트에서 [FALSE]를 [TRUE]로 변경합니다.

  3. 옵션 6 - "Rebuild access control information"을 선택합니다.

명령 요청이 거부될 때마다 ACSLS가 변경사항을 인식하고 로깅을 시작합니다.