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

このガイドは、Google Cloud Search File Systems コネクタの管理者、つまり、コネクタのダウンロード、構成、実行、モニタリングを担当するユーザーを対象としています。このガイドでは、Microsoft Windows File Systems コネクタのデプロイに関連する主要なタスクの実施手順について説明します。

  • Google Cloud Search File Systems コネクタ ソフトウェアをダウンロードする
  • コネクタを特定のファイル システム データソースに合わせて構成する
  • コネクタをデプロイして稼働させる

このドキュメントのコンセプトを理解するには、G Suite と Microsoft Windows ファイル システムに関する基本的な知識が必要です。

Google Cloud Search File Systems コネクタの概要

Google Cloud Search File Systems コネクタを使用すると、Google Cloud Search は Microsoft Windows 共有からコンテンツを検出し、それを Cloud Search のインデックス API を介して Cloud Search にインデックス登録できます。インデックス登録すると、Microsoft Windows 共有のコンテンツを Cloud Search のクライアントまたは Cloud Search の Query API から検索できるようになります。

1 つのコネクタ インスタンスで複数の Microsoft Windows 共有をサポートできます。DFS 名前空間と DFS リンクがコネクタでサポートされています。ただし、コネクタでサポートされているのは DFS 名前空間内の DFS リンクのみで、DFS 名前空間内の通常のフォルダはサポートされていません。

構成プロパティ ファイル

コネクタがファイル システムでコンテンツを検出し、インデックス API にアップロードできるようにするために、コネクタ管理者は、デプロイ手順に記載されている手順を使用して構成ファイルを作成し、Windows File Systems コネクタに渡す設定を指定する必要があります。

このドキュメントで説明している File Systems コネクタのパラメータ以外にも、すべての Cloud Search コネクタで使用される構成パラメータがあります。詳細については、Google 提供のコネクタ パラメータをご覧ください。

コネクタで必要となる Microsoft Windows アカウントの権限

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

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

コネクタは、クロール中にドキュメントの内容を読み取った後、ドキュメントの最終アクセス日を復元しようとします。内容を読み取る前の元の値に最終アクセス日を復元するには、コネクタを実行するユーザー アカウントにドキュメントの書き込み権限が必要です。アカウントに読み取り専用権限があり、書き込み権限がない場合、コネクタがクロール中にドキュメントの内容を読み取ると、ドキュメントの最終アクセス日が変更されます。

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

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

継続的な自動更新

デフォルトでは、コネクタは起動時に、ファイル共有または DFS リンクである開始パス(fs.src の値)のモニタリングを開始します。開始パスが DFS 名前空間である場合、コネクタは名前空間内の各リンクのモニタリングを開始します。これらのモニタリングが起動時に開始されない場合は、Cloud Search インデックスにすでに存在する開始パスまたは DFS リンクがポーリング リクエストの結果としてコネクタに返されたときに、モニタリングが開始されます。connector-config.properties 変数の説明に従ってコネクタ構成オプション fs.monitorForUpdates の値を設定することにより、この機能を有効または無効にできます。

DFS のアクセス制御

DFS システムでは、リンクをナビゲートするときにアクセス制御が使用され、通常は各 DFS リンクに独自の ACL があります。DFS システムで使用されるメカニズムの 1 つがアクセスベースの列挙(ABE)です。ABE をデプロイすると、ユーザーには DFS リンクのサブセットのみが表示されます。ABE を使用して、ホストされているホーム ディレクトリを分離すると、1 つしか表示されないこともあります。コネクタは、DFS リンクをクロールするときに名前付きリソースとしてターゲットの共有 ACL を提供するのに加え、DFS システムを走査するときには DFS リンクの ACL を提供します。この場合、共有 ACL は DFS ACL から継承されます。

サポートされているオペレーティング システム

Cloud Search File Systems コネクタは、サポートされている次のいずれかの Windows オペレーティング システムにインストールする必要があります。

  • Windows Server 2016
  • Windows Server 2012
  • Windows Server 2008 R2

Cloud Search File Systems コネクタは Linux では動作しません。

サポートされているファイル システム プロトコル

次の表は、ファイル共有との通信に使用されるファイル システム プロトコルのリストです。各プロトコルがコネクタでサポートされているかどうかも示します。

ファイル システム プロトコル オペレーティング システム上の共有との通信 サポート対象
サーバー メッセージ ブロック(SMB) - SMB1 Windows Server 2016
Windows Server 2012
Windows Server 2008 R2
サーバー メッセージ ブロック(SMB) - SMB2 Windows Server 2016
Windows Server 2012
Windows Server 2008 R2
分散ファイル システム(DFS) Windows Server 2016
Windows Server 2012
Windows Server 2008 R2
ローカル Windows ファイル システム Windows Server 2016
Windows Server 2012
Windows Server 2008 R2
×
Sun ネットワーク ファイル システム(NFS)2.0 ×
Sun ネットワーク ファイル システム(NFS)3.0 ×
ローカル Linux ファイル システム ×

既知の制限事項

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

要件

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

  • コネクタを実行するコンピュータに Java JRE 1.8 がインストールされている。
  • Google Cloud Search とデータソースの関係を確立するために必要な G Suite 情報:

    通常、これらの認証情報はドメインの G Suite 管理者から提供されます。

  • 次のセクションで説明するように、Windows アカウントに十分な権限がある。

  • Windows プラットフォームからフォルダを共有する場合、共有 ACL とそのフォルダの NTFS ACL で権限を付与できる。両方の ACL で、適切なアクセス権をコネクタに付与する必要があります。また、両方の ACL がコネクタによって読み取られます。管理者は、fs.skipShareAccessControl 構成オプションを true に設定することにより、共有 ACL の読み取りをスキップできます。

デプロイ手順

Google Cloud Search File Systems コネクタをデプロイする手順は、次のとおりです。

  1. Cloud Search File Systems コネクタをインストールする
  2. File Systems コネクタの構成を指定する
  3. Google Cloud Search データソースへのアクセスを構成する
  4. ファイル システムへのアクセスを構成する
  5. パス区切り文字を構成する
  6. コネクタ動作の制御を構成する
  7. 最終アクセスの制御を構成する
  8. クロールされるドキュメントやフォルダへのアクセスを制限する
  9. ファイル共有のアクセス制御をスキップする
  10. ロギングを有効にする
  11. mime-type.properties を構成する

1. Cloud Search File Systems コネクタをインストールする

  1. GitHub からコネクタ リポジトリのクローンを作成します。

    $ git clone https://github.com/google-cloudsearch/windows-filesystems-connector.git
        $ cd windows-filesystems-connector
  2. 希望するバージョンのコネクタをチェックアウトします。

    $ git checkout tags/v1-0.0.3
  3. コネクタをビルドします。

    $ mvn package

    コネクタをビルドするときにテストをスキップするには、mvn package の代わりに mvn package -DskipTests を実行します。

  4. コネクタ 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. File Systems コネクタの構成を指定する

コネクタが所定のファイル システムにアクセスし、関連コンテンツをインデックスに登録できるようにするには、まず構成ファイルを作成する必要があります。コネクタの構成ファイルでパラメータを定義して、File Systems コネクタの動作や属性を制御します。構成可能なパラメータによって、次のことが制御されます。

  • データソースへのアクセス
  • ファイル システムへのアクセス
  • ファイル システムへのコネクタのアクセスに関連するメタデータ

    Google 提供のコネクタ パラメータもご覧ください。

構成ファイルを作成するには:

  1. 任意のテキスト エディタを開き、構成ファイルに名前を付けます。ファイルに key=value ペアを追加します(次のセクションの説明を参照)。
  2. 構成ファイルに名前を付けて保存します。Google は構成ファイルの名前を connector-config.properties にすることを推奨しています。これで、追加のコマンドライン パラメータを指定しなくてもコネクタが実行されます。

3. Google Cloud Search データソースへのアクセスを構成する

すべての構成ファイルでは、Cloud Search データソースにアクセスするために必要なパラメータを最初に指定する必要があります。次の表をご覧ください。Cloud Search へのコネクタのアクセスを構成するには、通常、データソースの ID、サービス アカウントの ID、サービス アカウントの秘密鍵ファイルへのパスが必要です。データソースを設定するために必要な手順については、検索対象のデータソースを追加するをご覧ください。

設定 パラメータ
データソース ID api.sourceId=1234567890abcdef
必須。G Suite 管理者がセットアップした、Google Cloud Search ソースの ID。
サービス アカウントの秘密鍵ファイルへのパス api.serviceAccountPrivateKeyFile=./PrivateKey.json
必須。Google Cloud Search File Systems コネクタへのアクセスに必要な Google Cloud Search サービス アカウント キー ファイル。
ID ソースの ID api.identitySourceId=x0987654321
必須。G Suite 管理者がセットアップした、GCDS を使用して Active Directory の ID を同期するために必要な Cloud Search ID ソースの ID。

4. ファイル システムへのアクセスを構成する

コネクタがファイル システムにアクセスし、インデックスに登録するデータを抽出できるようにするには、ソース ファイル システムへのアクセスを構成する必要があります。次のパラメータを使用して、ソースパス情報を構成ファイルに追加します。

設定 パラメータ
ソース ファイル システム fs.src=path1,path2
fs.src プロパティに複数のソース ファイル システムを指定するには、UNC ソースを fs.src.separator で構成した区切り文字で区切って列挙します。Latin1 にない文字を使用する場合は、Java Unicode エスケープでエンコードします。

5. パス区切り文字を構成する

次のパラメータを使用して区切り文字情報を構成ファイルに追加します。

設定 パラメータ
パス区切り文字 fs.src.separator=,
デフォルトの区切り文字は「;」です(PATH または CLASS_PATH 環境変数を設定する方法と同様です)。ただし、指定したソースパスにセミコロンが含まれている場合は、パス内の文字と競合せず、プロパティ ファイルの構文自体で予約されていない別の区切り文字を構成できます。

fs.src.separator が空の文字列に設定されている場合、fs.src の値は単一のパス名であるとみなされます。

6. コネクタ動作の制御を構成する

次のパラメータを使用して、コネクタの動作に関する情報を構成ファイルに追加します。

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

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

ACL にアカウントを含める fs.supportedAccounts=BUILTIN\\Administrators,\\Everyone,BUILTIN\\Users

組み込みアカウントであるかどうかにかかわらず、supportedAccounts にあるアカウントが ACL に含まれます。

デフォルト値は BUILTIN\\Administrators,Everyone,BUILTIN\\Users, \ BUILTIN\\Guest,NT AUTHORITY\\INTERACTIVE, \ NT AUTHORITY\\Authenticated Users です。

ACL から組み込みアカウントを除外する fs.builtinGroupPrefix=BUILTIN\\

インデックス API に push される ACL から組み込みアカウントが除外されます。この接頭辞で始まるアカウントは組み込みアカウントとみなされ、ACL から除外されます。

デフォルト値は BUILTIN\\ です。

隠しファイルと隠しフォルダのインデックス登録を許可または禁止する fs.crawlHiddenFiles=true

隠しファイルと隠しフォルダの定義は、プラットフォームによって異なります。Windows ファイル システムでは、DOS の隠し属性が設定されている場合、ファイルやフォルダは隠されているとみなされます。デフォルトでは、隠しファイルはインデックスに登録されず、隠しフォルダの内容はインデックスに登録されません。fs.crawlHiddenFiles true に設定すると、コネクタは隠しファイルと隠しフォルダをクロールできるようになります。

デフォルト値は false です。

クロールされたフォルダ一覧と DFS 名前空間列挙のインデックス登録を許可または禁止する fs.indexFolders=false

フォルダがクロールされると、コネクタは CONTAINER_ITEM オブジェクトを作成します。indexFolders を false に設定すると、コネクタは代わりに VIRTUAL_CONTAINER_ITEM オブジェクトを作成します。

デフォルト値は true です。

ファイル システムの変更のモニタリングを有効または無効にする fs.monitorForUpdates=false

モニタリングが無効になっている場合、コンテンツまたはアクセス制御の更新および変更は、すぐには再クロールのリクエストとともにインデックス API へ送信されません。モニタリングを無効にすると、コネクタのリソース使用量が大幅に減少します。

デフォルト値は true です。

ディレクトリのキャッシュの最大サイズを設定する fs.directoryCacheSize=25000

検出されたディレクトリのキャッシュの最大サイズを設定します。このキャッシュは現在、隠されているフォルダと隠されていないフォルダを識別して、祖先が隠されているファイルとフォルダのインデックス登録を回避するために使用されています。DOS の隠し属性が設定されている場合、フォルダは隠されているとみなされます。

デフォルトの最大キャッシュ サイズは 50,000 エントリで、通常は 10~15 メガバイトの RAM を消費します。

7. 最終アクセスの制御を構成する

次のパラメータを使用して、クロールされたファイルとフォルダへの最終アクセスに関する情報を構成ファイルに追加します。

設定 パラメータ
最終アクセス タイムスタンプを保持する fs.preserveLastAccessTime=NEVER

この構成プロパティでは、クロールされたファイルとフォルダの最終アクセス タイムスタンプの保持に関する強制のレベルを制御します。最終アクセス時刻を保持できないと、バックアップ システムやアーカイブ システムでは、ファイルやフォルダにユーザーが最近アクセスしたとみなされ、長い間使用されていないアイテムがセカンダリ ストレージに移動されません。

コネクタがファイルの最終アクセス時刻を復元できない場合、ファイルの属性を書き込むための十分な権限が走査ユーザーにない可能性があります。予防措置として、コネクタは、数千にも及ぶ可能性があるファイルの最終アクセス タイムスタンプが変更されないように、ファイル システムに対するクロール リクエストを拒否します。

fs.preserveLastAccessTime プロパティには、次の 3 つの値を指定できます。

  • ALWAYS: コネクタは、クロールされたすべてのファイルとフォルダの最終アクセス時刻を保持しようと試みます。最初に保持できなかった時点で、コネクタは、数千にも及ぶ可能性があるファイルの最終アクセス タイムスタンプが変更されないように、ファイル システムに対する後続のクロール リクエストをすべて拒否するよう強制されます。
  • IF_ALLOWED: コネクタは、一部のタイムスタンプが保持されない可能性があっても、クロールされたすべてのファイルとフォルダの最終アクセス時刻を保持しようとします。
  • NEVER: コネクタは、クロールされたファイルとフォルダの最終アクセス時刻を保持しようとしません。最終アクセス タイムスタンプの保持に関するデフォルトの強制レベルは ALWAYS です。
最終アクセス時刻が特定の日付より前のファイルのクロールを無効にする fs.lastAccessedDate=2010-01-01

期限日は、ISO 8601 の日付形式(YYYY-MM-DD)で指定します。

fs.lastAccessedDate を 2010-01-01 に設定すると、2010 年の始まり以降にアクセスされたコンテンツのみがクロールされます。fs.lastAccessedDate または fs.lastAccessedDays のいずれか 1 つのみを指定できます。デフォルト値は disabled です。

指定した日数以内にアクセスされていないファイルのクロールを無効にする fs.lastAccessedDays=365

このプロパティを使用すると、fs.lastAccessedDate で使用される絶対期限日とは異なり、以前にインデックス登録されたコンテンツがしばらくアクセスされていない場合、そのコンテンツを期限切れにできます。有効期限は、日数を表す正の整数として指定します。fs.lastAccessedDays を 365 に設定すると、過去 1 年間にアクセスされたコンテンツのみがクロールされます。fs.lastAccessedDate または fs.lastAccessedDays のいずれか 1 つのみを指定できます。デフォルト値は disabled です。

8. クロールされるドキュメントとフォルダへのアクセスを制限する

次のパラメータを使用して、クロールされるファイルとフォルダへのアクセスの制限に関する情報を構成ファイルに追加します。

設定 パラメータ
最終アクセス時刻が特定の日付より前のファイルのクロールを無効にする fs.lastModifiedDate=2010-01-01

期限日は、ISO 8601 の日付形式(YYYY-MM-DD)で指定します。

fs.lastModifiedDate を 2010-01-01 に設定すると、2010 年の始まり以降に変更されたコンテンツのみがクロールされます。fs.lastModifiedDate または fs.lastModifiedDays のいずれか 1 つのみを指定できます。デフォルト値は disabled です。

指定した日数以内に変更されていないファイルのクロールを無効にする fs.lastModifiedDays=365

このプロパティを使用すると、fs.lastModifiedDate で使用される絶対期限日とは異なり、以前にインデックス登録されたコンテンツがしばらく変更されていない場合、そのコンテンツを期限切れにできます。有効期限は、日数を表す正の整数として指定します。fs.lastModifiedDays365 に設定すると、過去 1 年間に変更されたコンテンツのみがクロールされます。fs.lastModifiedDate または fs.lastModifiedDays のいずれか 1 つのみを指定できます。デフォルト値は disabled です。

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

コネクタは、インデックス API にアクセス制御リスト(ACL)を送信する際にアクセス制御の整合性を維持しようとします。一般に、ファイル共有に対するアクセス権を持つユーザーのみが、その共有に保持されているファイルにアクセスできるため、コネクタは、インデックス API に送信する ACL に共有の ACL を含めます。ただし、構成によっては、共有 ACL を読み取るための十分な権限がコネクタにない場合があります。そのような場合、破損した共有 ACL により、そのファイル共有に保持されているすべてのファイルが検索結果に表示されなくなります。コネクタが共有 ACL を読み取ることができない場合、管理者は、fs.skipShareAccessControl 構成オプションを true に設定することにより、共有 ACL の読み取りをスキップできます。これにより、実際の共有 ACL ではなく、まったく制限のない共有 ACL がインデックス API に送信されます。

次のパラメータを使用して、ファイル共有のアクセス制御のスキップに関する情報を構成ファイルに追加します。

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

このブール型構成プロパティでは、インデックス API へのファイル共有のアクセス制御リスト(ACL)の送信を有効または無効にします。

デフォルト値は false です(インデックス API に共有 ACL が送信されます)。

例: 構成ファイル

次の構成ファイルの例は、コネクタの動作の例を定義するパラメータの Key-Value ペアを示しています。

api.serviceAccountPrivateKeyFile=/path/to/file.json
    api.sourceId=0123456789abcde
    api.identitySourceId=a1b1c1234567
    traverse.abortAfterExceptions=500
    fs.src=\\\\host\\share;\\\\dfshost\\dfsnamespace;\\\\dfshost\\dfsnamespace\\link
    fs.monitorForUpdates = true
    fs.preserveLastAccessTime = IF_ALLOWED
    

10. ロギングを有効にする

コネクタ バイナリを含むディレクトリに、logs という名前のフォルダを作成します。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
    

11. mime-type.properties を構成する

オプションで、mime-type.properties という名前の ASCII または UTF-8 ファイルをコネクタのディレクトリに作成できます。このファイルでは、各ファイル形式の Multipurpose Internet Mail Extensions(MIME)タイプを指定します。MIME タイプを指定しない場合、コネクタは、各ファイルの MIME タイプを検出しようとします。コネクタは、JDK が提供する MIME タイプ検出機能を使用します。Microsoft Windows では、JDK は Windows レジストリに基づいてファイルの MIME タイプを特定します。レジストリ エントリがない場合、特定のファイルの MIME タイプが null になることがあります。

標準アプリケーションには標準の MIME タイプがあります。mime-type.properties の目的は単に、バインディングを上書きして変更することです。mime-type.properties ファイルは、connector-config.properties および logging.properties と同じ最上位ディレクトリに配置する必要があります。仕様の形式は、ファイル拡張子とその MIME タイプです。次に例を示します。

xlsx=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
    one=application/msonenote
    

例: MIME タイプのファイル

次の例は、MIME タイプのファイルを示しています。

txt=text/plain
    pdf=application/pdf
    

Cloud Search File Systems コネクタを実行する

Cloud Search File Systems コネクタをインストールしたら、次のようなコマンドを使用してホストマシン上でコネクタを実行できます。

$ java -jar google-cloudsearch-windows-filesystems-connector-v1-0.0.3.jar -Dconfig=my.config