Microsoft Windows File Systems コネクタのデプロイ

Google Workspace のコンテンツに加えて、組織の Microsoft Windows 共有からの結果を返すように Google Cloud Search を設定できます。Google Cloud Search File Systems コネクタを使用し、指定された Windows 共有にアクセスするように構成します。1 つのコネクタ インスタンスで複数の Microsoft Windows 共有をサポートできます。

重要な考慮事項

継続的な自動更新

デフォルトでは、コネクタは起動時に開始パス(コネクタ構成ファイルの fs.src の値)を継続的にモニタリングします。ファイル システムからコンテンツまたはアクセス制御の変更が報告されると、コネクタがトリガーされ、ファイル システムを再クロールします。この再クロールにより、リソースを大量に消費する可能性があります。ファイル システムのモニタリングを無効にするには、fs.monitorForUpdatesfalse に設定します。コネクタのリソース使用量は大幅に削減しますが、コネクタに変更が反映されるまで遅延します。詳細

DFS のアクセス制御

DFS システムはリンクにアクセス制御を適用し、通常、各 DFS リンクには独自の ACL があります。DFS が使用するメカニズムの一つに、Access-based Enumeration(ABE)があります。これにより、ユーザーに返される DFS リンクを制限できます。ABE がホストされているホーム ディレクトリを隔離すると、DFS リンクの一部のみを取得することも、1 つのリンクのみを取得することも考えられます。コネクタが 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 File Systems コネクタを実行するパソコンに Java JRE 1.8 がインストールされている
ファイル システム プロトコル
  • サーバーメッセージブロック(SMB) - SMB1
  • サーバーメッセージブロック(SMB) - SMB2
  • 分散ファイル システム(DFS)

サポート対象外: ローカル Windows ファイル システム、Sun ネットワーク ファイル システム(NFS)2.0、Sun ネットワーク ファイル システム(NFS)3.0、ローカル Linux ファイル システム。

コネクタをデプロイする

前提条件

Cloud Search File Systems コネクタをデプロイする前に、環境に次の前提条件のコンポーネントがすべてあることを確認してください。

必要な Microsoft Windows アカウント権限

コネクタを実行する Microsoft Windows アカウントには、次の操作を行うための十分な権限が必要です。

  • フォルダの内容を一覧表示する
  • ドキュメントの内容を読み取る
  • ファイルやフォルダの属性を読み取る
  • ファイルとフォルダ両方の権限(ACL)を読み取る
  • 基本属性を書き込む

次のいずれかのグループのメンバーになると、コネクタが必要とする十分な権限が Windows アカウントに付与されます。

  • 管理者
  • Power Users
  • Print Operators
  • Server Operators

ステップ 1: Google Cloud Search File Systems コネクタをインストールする

  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. [Clone or download] [Download 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. 次の例のように、パラメータを Key-Value ペアとしてファイルの内容に追加します。

    ### 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. コネクタ ディレクトリに、mime-type.properties という名前の Latin-1 で暗号化されたファイルを作成します。
  2. 次の例に示すように、ファイル拡張子とそれに対応するメディアタイプを入力します。

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

ステップ 5: ファイル システム コネクタを実行する

File Systems コネクタをインストールして構成したら、ホストマシンで起動するために、次の例のようなコマンドを実行します。

> 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 File Systems コネクタへのアクセスに必要な Google Cloud Search サービス アカウント キー ファイル。

ID ソースの ID api.identitySourceId=x0987654321

必須。GCDS を使用して Active Directory の ID を同期するために Google Workspace 管理者がセットアップした、Cloud Search ID ソースの ID。

ファイル システムへのアクセス

設定 パラメータ
ソース ファイル システム fs.src=path1[,path2, ...]

必須。ソースファイル システムを、fs.src.separator で構成された区切り文字で区切られた 1 つ以上の UNC ソースとして指定します。Latin1 以外の文字を使用する場合は、Java Unicode エスケープでエンコードします。

パス区切り文字

設定 パラメータ
パス区切り文字 fs.src.separator=separator-character

デフォルトの区切り文字は「;」です。ソースパスにセミコロンが含まれている場合、パス内の文字と競合せず、プロパティ ファイルの構文自体で予約されていない別の区切り文字(カンマ(",")など)を設定できます。

fs.src.separator 値が空の文字列の場合、fs.src 値は単一のパスとして扱われます。

コネクタの動作

設定 パラメータ
Windows ドメイン fs.supportedDomain=domain

GCDS で設定されたユーザーが Cloud Search を介してドキュメントにアクセスできるようにするために必要です。Active Directory の単一の NetBIOS ドメイン名として指定します。

ACL にアカウントを含める 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 ~ 15 MB の 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 です。

このプロパティを使用して、以前にインデックスに登録され、しばらくアクセスされていないコンテンツを期限切れにします。たとえば、過去 1 年にアクセスされたコンテンツのみをクロールするには、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)を Indexing API(ファイル共有上の ACL を含む)に送信する際に、アクセス制御の整合性を維持します。ただし、構成によっては、共有 ACL を読み取るための十分な権限がコネクタに付与されていないことがあります。このような場合、コネクタは、そのファイル共有に保持されているファイルを検索結果で返しません。

共有 ACL を無視するようにコネクタを設定すると、検索結果にコンテンツが常に返されるようになります。この場合、Indexing API は実際の共有 ACL ではなく、完全に制限の緩い共有 ACL を取得します。

設定 パラメータ
ファイル共有のアクセス制御をスキップする fs.skipShareAccessControl=boolean

共有 ACL を適用するには、false(デフォルト)に設定します。共有 ACL を無視するには、true に設定します。