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)があります。これにより、ユーザーに返される DFS リンクを制限できます。DFS リンクのサブセットのみが取得できます。また、ABE によりホストされるホーム ディレクトリが分離されている場合、リンクは 1 つだけになる可能性があります。コネクタが DFS システムを経由する際、コネクタは DFS リンク ACL とターゲットの共有 ACL に従います。共有 ACL は DFS ACL から継承します。

既知の制限事項

  • ファイル システム: ファイル システム コネクタは、マッピングされたドライブとローカル ドライブをサポートしていません。
  • 分散ファイル システム: UNC DFS にマッピングされたドライブが正しく機能しません。一部の ACL が正しく読み取られません。
  • ファイル システム コネクタは、分散ファイル システム(DFS)の名前空間とリンクをサポートしています。ただし、コネクタでは、DFS 名前空間内の通常のフォルダではなく、DFS 名前空間内の DFS リンクのみがサポートされています。
  • cloudsearch.google.com で返されたファイルのリンクはクリックできません。Query API から返されるファイルリンクも、ほとんどのブラウザではクリックできません。

システム要件

システム要件
OS
  • Windows Server 2016
  • Windows Server 2012
  • Windows Server 2008 R2
ソフトウェア
  • Google Cloud Search File Systems コネクタを実行するパソコンに Java JRE 1.8 がインストールされている。
ファイル システム プロトコル
  • Server Message Block(SMB)- SMB1
  • Server Message Block(SMB)- SMB2
  • 分散ファイル システム(DFS)

サポートされていない: ローカル Windows ファイル システム、Sun Network File System(NFS)2.0、Sun Network File System(NFS)3.0、Local Linux ファイル システム。

コネクタのデプロイ

前提条件

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

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

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

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

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

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

ステップ 1. 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. [クローンまたはダウンロード] [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: ファイル システム コネクタを実行する

ファイル システム コネクタをインストールして構成した後、ホストマシンでコネクタを起動するには、次の例のようなコマンドを実行します。

> 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 メガバイトの 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 です。

しばらく変更されていない、以前にインデックス登録されたコンテンツの有効期限を設定するには、このプロパティを使用します。たとえば、過去 1 年間に変更されたコンテンツのみをクロールするように 365 に設定します。

fs.lastModifiedDays を指定する場合、fs.lastModifiedDate の値も設定できません。

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

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

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

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

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