Microsoft Windows 파일 시스템 커넥터 배포

Google Workspace 콘텐츠 외에도 조직의 Microsoft Windows 공유 결과를 반환하도록 Google Cloud Search를 설정할 수 있습니다. Google Cloud Search 파일 시스템 커넥터를 사용하여 지정된 Windows 공유에 액세스하도록 구성합니다. 단일 커넥터 인스턴스가 여러 Microsoft Windows 공유를 지원할 수 있습니다.

중요 고려사항

연속 자동 업데이트

기본적으로 커넥터는 시작될 때 시작 경로 (커넥터 구성 파일의 fs.src 값)를 계속 모니터링합니다. 파일 시스템에서 콘텐츠 또는 액세스 제어에 대한 변경사항을 보고하면 커넥터가 트리거되어 파일 시스템을 다시 크롤링합니다. 이 재크롤링은 리소스를 많이 사용할 수 있습니다. 파일 시스템 모니터링을 사용 중지하려면 fs.monitorForUpdatesfalse로 설정합니다. 커넥터의 리소스 사용량이 크게 줄어들지만 커넥터에 변경사항이 반영될 때 지연이 발생합니다. 자세히 알아보기

DFS 액세스 제어

DFS 시스템은 링크에 액세스 제어를 적용하며, 일반적으로 각 DFS 링크에는 자체 ACL이 있습니다. DFS가 사용하는 메커니즘 중 하나는 액세스 기반 열거 (ABE)로, 사용자에게 반환되는 DFS 링크를 제한할 수 있습니다. 사용자는 DFS 링크의 일부만 받을 수도 있고, ABE가 호스팅된 홈 디렉터리를 격리할 때는 링크를 하나만 받을 수도 있습니다. 커넥터가 DFS 시스템을 순회할 때 커넥터는 DFS 링크 ACL 및 대상의 공유 ACL을 준수하고 공유 ACL이 DFS ACL에서 상속됩니다.

알려진 제한사항

  • 파일 시스템: 파일 시스템 커넥터는 매핑된 드라이브 및 로컬 드라이브를 지원하지 않습니다.
  • 분산 파일 시스템: UNC DFS에 매핑된 드라이브가 제대로 작동하지 않습니다. 일부 ACL을 올바르게 읽을 수 없습니다.
  • 파일 시스템 커넥터는 분산 파일 시스템 (DFS) 네임스페이스 및 링크를 지원합니다. 하지만 커넥터는 DFS 네임스페이스의 일반 폴더가 아닌 DFS 네임스페이스의 DFS 링크만 지원합니다.
  • cloudsearch.google.com에서 반환된 파일 링크는 클릭할 수 없습니다. Query API에서 반환된 파일 링크는 대부분의 브라우저에서 클릭할 수 없습니다.

시스템 요구사항

시스템 요구사항
운영체제
  • Windows Server 2016
  • Windows Server 2012
  • Windows Server 2008 R2
소프트웨어
  • Google Cloud Search 파일 시스템 커넥터를 실행할 컴퓨터에 설치된 Java JRE 1.8
파일 시스템 프로토콜
  • 서버 메시지 블록(SMB) - SMB1
  • 서버 메시지 블록(SMB) - SMB2
  • 분산 파일 시스템(DFS)

지원되지 않음: 로컬 Windows 파일 시스템, Sun Network File System (NFS) 2.0, Sun Network File System (NFS) 3.0 또는 로컬 Linux 파일 시스템

커넥터 배포

기본 요건

Cloud Search 파일 시스템 커넥터를 배포하기 전에 환경에 다음 기본 요건 구성요소가 모두 있는지 확인하세요.

필수 Microsoft Windows 계정 권한

커넥터가 실행 중인 Microsoft Windows 계정은 아래의 작업에 대한 권한이 있어야 합니다.

  • 폴더의 콘텐츠 나열
  • 문서의 콘텐츠 읽기
  • 파일 및 폴더의 속성 읽기
  • 파일 및 폴더의 읽기 권한(ACL)
  • 기본 속성 권한 쓰기

다음 그룹 중 하나에 속하면 Windows 계정에 커넥터에 필요한 충분한 권한이 부여됩니다.

  • 관리자
  • 고급 사용자
  • 인쇄 운영자
  • 서버 운영자

1단계: Google Cloud Search 파일 시스템 커넥터 설치

  1. GitHub에서 커넥터 저장소를 가져와 빌드합니다.

    Windows 서버에서 git을 사용하려면 다음 안내를 따르세요.

    1. 저장소를 복제합니다.

      > git clone https://github.com/google-cloudsearch/windows-filesystems-connector.git
      > cd windows-filesystems-connector
    2. 원하는 버전의 커넥터를 체크아웃합니다.

      > git checkout tags/v1-0.0.3

    GitHub에서 직접 다운로드하려면 다음 안내를 따르세요.

    1. https://github.com/google-cloudsearch/windows-filesystems-connector로 이동합니다.
    2. 클론 또는 다운로드 ZIP 다운로드를 클릭합니다.
    3. 패키지의 압축을 풉니다.
    4. 새 디렉터리로 이동합니다.
      > cd windows-filesystems-connector
  2. 커넥터를 빌드합니다. 필요한 경우 Apache Maven을 설치합니다.

    > mvn package

    커넥터를 빌드할 때 테스트를 건너뛰려면 mvn package 대신 mvn package -DskipTests를 실행합니다.

  3. 커넥터 zip 파일을 로컬 설치 디렉터리에 복사합니다.

    > cp target/google-cloudsearch-windows-filesystems-connector-v1-0.0.3.zip installation-dir
    > cd installation-dir
    > unzip google-cloudsearch-windows-filesystems-connector-v1-0.0.3.zip
    > cd google-cloudsearch-windows-filesystems-connector-v1-0.0.3

2단계. 커넥터 구성 파일 만들기

  1. 커넥터 설치와 동일한 디렉터리에서 파일을 만들고 이름을 connector-config.properties로 지정합니다.

  2. 다음 예와 같이 매개변수를 키-값 쌍으로 파일 콘텐츠에 추가합니다.

    ### File system connector configuration ###
    
    # Required parameters for Cloud Search data source and identity source access
    api.serviceAccountPrivateKeyFile=/path/to/file.json
    api.sourceId=0123456789abcde
    api.identitySourceId=a1b1c1234567
    
    # Required parameters for file system access
    fs.src=\\\\host\\share;\\\\dfshost\\dfsnamespace;\\\\dfshost\\dfsnamespace\\link
    
    # Optional parameters for file system monitoring
    traverse.abortAfterExceptions=500
    fs.monitorForUpdates = true
    fs.preserveLastAccessTime = IF_ALLOWED
    

    각 매개변수에 대한 자세한 설명은 구성 매개변수 참조를 참고하세요.

  3. (선택사항) 필요에 따라 다른 커넥터 매개변수를 구성합니다. 자세한 내용은 Google 제공 커넥터 매개변수를 참조하세요.

3단계: 로깅 사용 설정

  1. 커넥터 바이너리가 있는 디렉터리에 logs라는 폴더를 만듭니다.
  2. 커넥터 바이너리가 포함된 디렉터리에 logging.properties라는 ASCII 또는 UTF-8 파일을 만들고 다음 콘텐츠를 추가합니다.

    handlers = java.util.logging.ConsoleHandler,java.util.logging.FileHandler
    # Default log level
    .level = WARNING
    com.google.enterprise.cloudsearch.level = INFO
    com.google.enterprise.cloudsearch.fs.level = INFO
    
    # uncomment line below to increase logging level to enable API trace
    #com.google.api.client.http.level = FINE
    java.util.logging.ConsoleHandler.level = INFO
    java.util.logging.FileHandler.pattern=logs/connector-fs.%g.log
    java.util.logging.FileHandler.limit=10485760
    java.util.logging.FileHandler.count=10
    java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter
    

4단계. (선택사항) 미디어 유형 구성

기본적으로 커넥터는 JDK에서 제공하는 미디어 유형 감지 기능을 사용하여 각 파일의 미디어 유형을 감지하려고 시도합니다. Microsoft Windows에서 JDK는 Windows 레지스트리를 사용하여 파일의 미디어 유형을 확인합니다. 레지스트리 항목이 누락된 경우 특정 파일의 null 미디어 유형이 발생할 수 있습니다.

필요한 경우, 기존 바인딩을 덮어쓰거나 null 미디어 유형을 방지하는 미디어 유형을 지정할 수 있습니다.

  1. 커넥터 디렉터리에 Latin-1로 암호화된 mime-type.properties 파일을 만듭니다.
  2. 다음 예와 같이 파일 확장자와 해당 미디어 유형을 입력합니다.

    xlsx=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
    one=application/msonenote
    txt=text/plain
    pdf=application/pdf
    

5단계: 파일 시스템 커넥터 실행

파일 시스템 커넥터를 설치하고 구성한 후 호스트 머신에서 실행하려면 다음 예시와 같은 명령어를 실행합니다.

> java -jar google-cloudsearch-windows-filesystems-connector-v1-0.0.3.jar -Djava.util.logging.config.file=logging.properties[ -Dconfig=my.config]

구성 파일 경로가 기본값과 다른 경우 (이름이 connector-config.properties인 바이너리와 동일한 디렉터리에 있음) 구성 파일 경로를 지정합니다.

구성 매개변수 참조 정보

데이터 소스 액세스

설정 매개변수
데이터 소스 ID api.sourceId=1234567890abcdef

필수 항목입니다. Google Workspace 관리자가 설정한 Google Cloud Search 소스 ID입니다.

서비스 계정 비공개 키 파일의 경로 api.serviceAccountPrivateKeyFile=./PrivateKey.json

필수 항목입니다. Google Cloud Search 파일 시스템 커넥터 액세스용 Google Cloud Search 서비스 계정 키 파일입니다.

ID 소스 ID api.identitySourceId=x0987654321

필수 항목입니다. Google Workspace 관리자가 GCDS를 사용하여 Active Directory ID를 동기화하기 위해 설정한 Cloud Search ID 소스 ID입니다.

파일 시스템 액세스

설정 매개변수
소스 파일 시스템 fs.src=path1[,path2, ...]

필수 항목입니다. 소스 파일 시스템을 fs.src.separator에서 구성한 구분 기호로 구분된 하나 이상의 UNC 소스로 지정합니다. Latin1에 없는 문자를 사용하는 경우 자바 유니코드 이스케이프 문자를 사용하여 인코딩합니다.

경로 구분자 문자

설정 매개변수
경로 구분자 문자 fs.src.separator=separator-character

기본 구분자는 ';'입니다. 소스 경로에 세미콜론이 포함된 경우 쉼표(,)와 같은 다른 구분 기호를 설정할 수 있습니다. 이 구분 기호는 경로의 문자와 충돌하지 않으며 속성 파일 구문 자체에 의해 예약되지 않습니다.

fs.src.separator 값이 빈 문자열이면 fs.src 값은 단일 경로로 처리됩니다.

커넥터 동작

설정 매개변수
Windows 도메인 fs.supportedDomain=domain

GCDS로 설정된 사용자가 Cloud Search를 통해 문서에 액세스할 수 있도록 하려면 필요합니다. Active Directory의 단일 NetBIOS 도메인 이름으로 지정합니다.

ACLS에 계정 포함 fs.supportedAccounts=account-1[, account-2,...]

기본 제공 계정인지 여부와 관계없이 ACL에 포함할 쉼표로 구분된 계정 목록입니다.

기본값은 BUILTIN\\Administrators,Everyone,BUILTIN\\Users, BUILTIN\\Guest,NT AUTHORITY\\INTERACTIVE, NT AUTHORITY\\Authenticated Users입니다.

ACL에서 기본 제공 계정 제외 fs.builtinGroupPrefix=prefix

기본 제공 계정의 접두어를 지정하세요. 이 프리픽스로 시작하는 계정은 기본 제공 계정으로 간주되며 ACL에서 제외됩니다.

기본값은 BUILTIN\\입니다.

숨김 파일 및 폴더의 색인 생성 허용 fs.crawlHiddenFiles=boolean

커넥터가 숨김 파일 및 폴더를 크롤링할 수 있도록 true로 설정합니다. Windows 파일 시스템에서는 DOS 숨김 속성이 설정된 경우 파일 또는 폴더가 숨김으로 간주됩니다. 기본값은 false입니다.

크롤링된 폴더 목록 및 DFS 네임스페이스 열거의 색인 생성 허용 fs.indexFolders=boolean

true (기본값)로 설정하면 커넥터가 폴더를 크롤링할 때 CONTAINER_ITEM 객체를 만듭니다. false로 설정하면 커넥터가 VIRTUAL_CONTAINER_ITEM 객체를 대신 만듭니다.

파일 시스템 변경 모니터링 사용 설정 fs.monitorForUpdates=boolean

true (기본값)로 설정하면 콘텐츠 또는 액세스 제어가 변경되면 커넥터가 다시 크롤링됩니다. 모니터링을 사용 중지 (false로 설정)하면 커넥터의 리소스 사용량이 크게 줄어들지만 커넥터에 변경사항이 반영되는 시점이 지연됩니다.

디렉터리 캐시의 최대 크기 설정 fs.directoryCacheSize=number-of-entries

디렉터리 캐시의 최대 크기 커넥터는 숨겨진 폴더에 있는 파일 및 폴더의 색인을 생성하지 않도록 캐시를 사용하여 숨김 폴더를 식별합니다.

기본값은 50,000개 항목이며 일반적으로 10~15MB의 RAM을 사용합니다.

타임스탬프 보존 및 크롤링 제어

설정 매개변수
마지막 액세스 타임스탬프 보존 fs.preserveLastAccessTime=value

커넥터는 파일 및 폴더를 크롤링할 때 파일 및 폴더의 최종 액세스 타임스탬프를 크롤링 시간으로 변경할 수 있습니다. 마지막 액세스 시간이 보존되지 않으면 커넥터의 방문으로 인해 백업 및 아카이브 시스템에서 적절한 파일과 폴더를 보조 저장소로 이동하지 못할 수 있습니다.

기본적으로 커넥터는 마지막 액세스 시간 (fs.preserveLastAccessTimeALWAYS으로 설정됨)을 보존하려 합니다. 순회 사용자에게 파일 속성을 쓸 수 있는 권한이 없으면 커넥터가 파일의 마지막 액세스 시간을 복원하지 못할 수 있습니다. ALWAYS로 설정하면 커넥터는 파일의 마지막 액세스 타임스탬프를 변경하지 않도록 파일 시스템에 대한 크롤링 요청을 거부합니다.

가능한 값은 다음과 같습니다.

  • ALWAYS: 커넥터가 파일 및 폴더를 크롤링할 때 마지막 액세스 시간을 보존하려고 합니다. 커넥터가 마지막 액세스 시간을 처음 보존할 수 없는 경우 커넥터는 마지막 액세스 타임스탬프를 변경하지 못하도록 파일 시스템에 대한 이후의 모든 크롤링 요청을 거부합니다.
  • IF_ALLOWED: 커넥터가 파일 및 폴더를 크롤링할 때 마지막 액세스 시간을 보존하려고 합니다. 일부 타임스탬프가 보존되지 않더라도 계속해서 크롤링됩니다.
  • NEVER: 커넥터가 파일과 폴더를 크롤링할 때 마지막 액세스 시간을 보존하려고 시도하지 않습니다.
특정 날짜 이후에 액세스된 파일만 크롤링 fs.lastAccessedDate=YYYY-MM-DD

마지막 액세스 시간이 지정된 날짜 이후인 경우에만 콘텐츠를 크롤링합니다. 기본값은 disabled입니다.

ISO8601 날짜 형식(YYYY-MM-DD)으로 날짜를 지정합니다. 예를 들어 값이 2010-01-01이면 커넥터는 2010년 초 이후에 액세스된 콘텐츠만 크롤링합니다.

fs.lastAccessedDate를 지정하면 fs.lastAccessedDays의 값을 설정할 수도 없습니다.

지난 기간 동안 액세스한 파일만 크롤링 fs.lastAccessedDays=number-of-days

마지막 액세스 시간이 현재 일수 이내인 경우에만 콘텐츠를 크롤링합니다. 기본값은 disabled입니다.

이 속성을 사용하여 이전에 색인이 생성된 콘텐츠 중 한동안 액세스하지 않은 콘텐츠를 만료 처리합니다. 예를 들어 작년에 액세스한 경우에만 콘텐츠를 크롤링하려면 365로 설정합니다.

fs.lastAccessedDays를 지정하면 fs.lastAccessedDate의 값을 설정할 수도 없습니다.

특정 날짜 이후에 수정된 파일만 크롤링 fs.lastModifiedDate=YYYY-MM-DD

최종 수정 시간이 지정된 날짜 이후인 경우에만 콘텐츠를 크롤링합니다. 기본값은 disabled입니다.

ISO8601 날짜 형식(YYYY-MM-DD)으로 날짜를 지정합니다. 예를 들어 값이 2010-01-01이면 커넥터는 2010년 초 이후에 수정된 콘텐츠만 크롤링합니다.

fs.lastModifiedDate를 지정하면 fs.lastModifiedDays의 값을 설정할 수도 없습니다.

지난 기간 동안 수정된 파일만 크롤링 fs.lastModifiedDays=number-of-days

마지막 수정 시간이 그로부터 남은 일 수 내에 있는 경우에만 콘텐츠를 크롤링합니다. 기본값은 disabled입니다.

이 속성을 사용하여 이전에 색인이 생성된 콘텐츠 중 한동안 수정되지 않은 콘텐츠를 만료하세요. 예를 들어 작년에 수정된 콘텐츠만 크롤링하려면 365로 설정합니다.

fs.lastModifiedDays를 지정하면 fs.lastModifiedDate의 값을 설정할 수도 없습니다.

파일 공유 액세스 제어 건너뛰기

기본적으로 커넥터는 파일 공유의 ACL을 포함하여 액세스 제어 목록 (ACL)을 Indexing API에 보낼 때 액세스 제어 무결성을 보존합니다. 하지만 일부 구성에서는 커넥터에 공유 ACL을 읽을 수 있는 충분한 권한이 없을 수 있습니다. 이러한 경우 커넥터는 검색 결과에 해당 파일 공유에서 유지 관리된 파일을 반환하지 않습니다.

공유 ACL을 무시하도록 커넥터를 설정하여 콘텐츠가 항상 검색 결과에 반환되도록 할 수 있습니다. 이 경우 Indexing API는 실제 공유 ACL 대신 완전히 허용된 공유 ACL을 가져옵니다.

설정 매개변수
파일 공유 액세스 제어 건너뛰기 fs.skipShareAccessControl=boolean

false (기본값)로 설정하여 공유 ACL을 적용합니다. true로 설정하여 공유 ACL을 무시합니다.