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 で使用されるメカニズムの 1 つがアクセスベースの列挙(ABE)です。ABE を使用すると、ユーザーに返される DFS リンクを制限できます。ABE がホストされているホーム ディレクトリを分離すると、ユーザーには DFS リンクのサブセットのみが表示されることがあります。1 つのリンクしか表示されないこともあります。コネクタが DFS システムを走査するとき、コネクタは DFS リンクの ACL とターゲットの共有 ACL を尊重し、共有 ACL は DFS ACL から継承されます。

既知の制限事項

  • ファイル システム: File Systems コネクタは、マッピングされたドライブとローカル ドライブをサポートしていません。
  • 分散ファイル システム: UNC DFS にマッピングされたドライブは正しく機能しません。一部の ACL が正しく読み取られません。
  • File Systems コネクタは、分散ファイル システム(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 コネクタを実行する

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

必須。Google Workspace 管理者がセットアップした、GCDS を使用して Active Directory の ID を同期するために必要な 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 メガバイトの 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 に設定すると、過去 1 年間にアクセスされたコンテンツのみがクロールされます。

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 に設定すると、過去 1 年間に変更されたコンテンツのみがクロールされます。

fs.lastModifiedDays を指定した場合、fs.lastModifiedDate の値を設定することはできません。

ファイル共有のアクセス制御をスキップする

デフォルトでは、コネクタは、ファイル共有の ACL を含むアクセス制御リスト(ACL)をインデックス API に送信するときに、アクセス制御の完全性を維持します。ただし、構成によっては、コネクタに共有 ACL を読み取るための十分な権限がない場合があります。このような場合、コネクタは、そのファイル共有で管理されているファイルを検索結果に返しません。

コネクタを共有 ACL を無視するように設定すると、コンテンツが常に検索結果に返されます。この場合、インデックス API には実際の共有 ACL ではなく、まったく制限のない共有 ACL が送信されます。

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

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