影響度を測定しながらNextcloudのサーバーサイド暗号化を有効にする

サードパーティのストレージにファイルが保存されているため、Nextcloudのサーバー側暗号化を検討している場合は、SSEが脅威モデルに対応していることを確認してから有効にしてください。パフォーマンスへの影響をゼロに抑える暗号化を保証する設定はありません。サーバーはファイルの内容を暗号化および復号化する必要があるため、転送量やCPU使用率が変化する可能性があります。影響を抑えるには、代表的なファイルでテストを行い、暗号化が必要なストレージのみを有効にし、大量のデータ変換は処理の少ない時間帯にスケジュールしてください。

2026年10月10日現在、Nextcloud 35管理マニュアルでは、組み込みのサーバー側暗号化(SSE)は主に外部ストレージに保存されているファイルの保護を目的としていると説明されています。ファイル名やフォルダ構造は隠蔽されず、侵害されたNextcloudサーバーや悪意のある管理者からファイルを保護するものでもありません。ローカルディスクや物理的な盗難対策としては、オペレーティングシステムのディスク暗号化の方が適しているかもしれません。サーバー管理者がデータを読み取れないようにするには、エンドツーエンド暗号化を検討してください。

暗号化を有効にする前に

設定を変更する前に、キーと復旧計画を立ててください。Nextcloudの設定と暗号化キーのデータをバックアップし、バックアップがアクセス制御付きで別々に保存されていることを確認してください。キー情報はデータディレクトリに保存されます。暗号化キーやインスタンスシークレットを紛失すると、暗号化されたデータが復旧できなくなる可能性があります。データベースのコピーだけでなく、テスト済みの復旧手順も保管しておいてください。

変更前のベースラインも記録してください。代表的なファイルについてアップロードとダウンロードの時間をテストし、CPUとストレージのアクティビティを観察し、ユーザーが経験する遅延を記録します。有効化後にも同じテストを繰り返してください。これにより、パフォーマンスに関する一般的な主張に頼るのではなく、変更がご使用のハードウェアで許容できるかどうかを確認できます。

Nextcloudのデフォルトの暗号化モジュールを有効にする

  1. Nextcloud管理者としてサインインし、管理設定の「サーバー側暗号化」セクションを開きます。
  2. 「サーバー側暗号化を有効にする」を選択します。Nextcloud から暗号化モジュールがロードされていないという報告があった場合は、「アプリ」ページを開いて「デフォルトの暗号化モジュール」を有効にしてから、暗号化設定に戻ります。
  3. 続行する前に暗号化モードを確認してください。ほとんどの環境ではデフォルトのマスターキーモードが推奨されますが、管理者はファイルを復号化できます。ユーザーキーモードには互換性と復旧に関する追加の制限があり、パフォーマンスの最適化にはつながりません。
  4. インターフェースの指示に従って、一度ログアウトしてから再度ログインし、暗号化キーを初期化してください。コマンドラインから暗号化の状態を確認してください。
sudo -E -u www-data php /var/www/nextcloud/occ encryption:status

例示されているパスとHTTPユーザー名を、ご使用の環境で使用されているものに置き換えてください。Nextcloudでは、正しいファイル権限を維持するために、OCCをHTTPユーザーとして実行する必要があります。Docker、AIO、Snap、またはマネージドホスティング環境では、このホストコマンドをそのままコピーするのではなく、その環境でサポートされているシェルとユーザーを使用してください。コマンド実行の詳細については、 OCCの公式ガイドを参照してください。

何をいつ暗号化するかを決定する

SSEを有効にすると、新規ファイルと変更されたファイルは暗号化されます。設定をオンにしただけでは、既存のファイルは自動的に変換されません。既存のファイルライブラリを暗号化する必要がある場合は、Nextcloudが提供する次のOCCコマンドを使用してください。

sudo -E -u www-data php /var/www/nextcloud/occ encryption:encrypt-all

実行する前に、バックアップが最新であることを確認し、メンテナンス期間を設定してください。この操作では、すべてのユーザーのファイルを処理し、進行状況を表示します。大規模なインスタンスでは、かなりの時間とリソースが必要になる場合があります。Nextcloud では、この処理中はユーザーがファイルにアクセスしないように推奨しています。ピーク時の使用状況では実行しないでください。また、無害な切り替え操作として扱わないでください。特定の外部マウントのみが SSE を必要とする場合は、サーバー全体の変換を不必要に開始するのではなく、そのマウントの暗号化オプションを設定してください。

ファイルコンテンツの暗号化の対象外となるデータもあります。現在のマニュアルでは、SSEで暗号化されない項目として、ファイル名とフォルダ構造、既存のごみ箱ファイル、過去のファイルバージョン、画像のサムネイルとプレビュー、および全文検索インデックスが挙げられています。外部ストレージに暗号化されたファイルを共有するには、Nextcloudを経由する必要があります。ストレージプロバイダから直接共有することはできません。

パフォーマンスへの影響を軽減し、測定する

すべてを一度に暗号化するのではなく、段階的なチェックを使用してください。

  • まずは、暗号化オプションの適用範囲を検証できる小規模なテスト環境、または新たにマウントした外部ストレージから始めましょう。
  • 同様の負荷条件下での基準値と比較して、アップロード時間とダウンロード時間、CPU使用率、およびユーザーが認識できる遅延時間を比較します。
  • 暗号化処理はサーバー側で行われるため、より大きなファイルや、同期クライアントによるアップロードやダウンロードといった一般的なワークフローについても、テストを繰り返してください。
  • 測定された影響が許容範囲内であり、かつ重要なバックアップおよび復旧プロセスが検証された場合にのみ、範囲を拡大してください。

Nextcloudはオーバーヘッドゼロを保証するものではなく、実際の影響はハードウェア、ファイルサイズ、ストレージ、同時実行数、ワークロードによって異なります。SSEは保存されるファイルサイズをわずかに増加させる可能性があり、最新のマニュアルでは最新バージョンでは約1%の増加と記載されていますが、以前のリリースではより大きなオーバーヘッドが発生していました。古いパフォーマンス推定値がご使用のバージョンに当てはまると想定しないでください。

結果を確認し、安全なロールバックパスを確保しておく。

SSEを有効にした後、occ encryption:status重要度の低いファイルを使用して、アップロード、ダウンロード、共有、同期の動作を確認およびテストしてください。目的のストレージ上のデータがNextcloudから読み取り可能であり、測定された遅延が許容範囲内であることを確認してください。既存のファイルについては、一括処理が完了するまで暗号化されていると想定しないでください。

後でSSEを無効にすることにした場合でも、暗号化されたファイルが残っている状態でアプリやモジュールを単純にオフにしないでください。Nextcloudのドキュメントに記載されている手順は、まずファイルを復号化してから暗号化を無効にすることです。復号化コマンドはメンテナンスモードに入る可能性があり、バックアップが確保されている状態で実行する必要があります。

sudo -E -u www-data php /var/www/nextcloud/occ encryption:decrypt-all

暗号化設定を変更する前に、操作が完了し、ファイルへのアクセスが検証されていることを確認してください。測定されたオーバーヘッドが高すぎる場合は、暗号化ストレージの範囲を狭めるか、脅威モデルに適したストレージレイヤー保護を選択してください。暗号化されたデータが存在する限り、鍵とインスタンスシークレットのバックアップを保持してください。

公式資料

コメントを残す

Redisを使用してNextcloudのファイルロック警告を解消する

信頼性の高いNextcloudファイルロックを有効にし、適切なRedisまたはValkeyバックエンドを選択し、同時ファイル変更のリスクを冒すことなく警告が解消されることを確認してください。

Nextcloudのセキュリティ評価でA+を獲得するために必要なこと

Nextcloudのセキュリティ評価でA+を獲得するために必要なこと

最新のアップデート、HTTPSおよびHSTS、正確なリバースプロキシの信頼設定、およびパブリックサーバーに対するチェックによって、Nextcloudのスキャンでよく見られる問題を修正します。

影響度を測定しながらNextcloudのサーバーサイド暗号化を有効にする

必要なストレージに対してNextcloud SSEを設定し、暗号化キーを保護し、既存ファイルを暗号化する前に転送量とCPUへの影響を測定します。

NextcloudにElasticsearchの全文検索機能を追加する

Nextcloudのファイル検索機能をElasticsearchに接続し、ドキュメントの内容をインデックス化し、サーバーとセキュリティのニーズに合った設定を選択してください。

Nextcloudで削除されたファイルの信頼性の高い有効期限ポリシーを設定する

Nextcloudで削除されたファイルの信頼性の高い有効期限ポリシーを設定する

Nextcloudを設定して、削除されたファイルを一定期間後に削除するようにし、バックグラウンドジョブを確実にスケジュールし、すべてのユーザーのゴミ箱を空にするコマンドを回避するようにします。

Nextcloudのデータベースインデックスが見つからないという警告をクリアする

Nextcloudのデータベースインデックスが見つからないという警告をクリアする

NextcloudのOCC修復を安全に実行し、データベースの変更をプレビューして、警告が残る理由を確認してください。

Nextcloudのウェブアップロード制限を2GB以上に引き上げる

Nextcloudのウェブアップロード制限を2GB以上に引き上げる

PHP、Nginx、Apache、一時ストレージ、タイムアウトの設定を調整することで、Nextcloudブラウザからのより大きなファイルアップロードを可能にし、どの制限がファイルのアップロードを妨げているかを確認してください。

WebサーバーでNextcloudのPHPメモリ警告をクリアする

Nextcloudが実際に使用するPHPメモリの制限を設定し、該当するサービスを再起動して、管理画面の概要で512MBの設定を確認してください。

S3互換バケットをNextcloud外部ストレージに接続する

NextcloudのS3バックエンドを使用して、適切なエンドポイント、認証情報、アクセス範囲、および検証手順を設定し、互換性のあるオブジェクトストレージバケットをマウントします。

ストレージを壊さずにNextcloudデータを外部ドライブに移動する方法

ストレージを壊さずにNextcloudデータを外部ドライブに移動する方法

永続的なUUIDマウント、メンテナンスモード、検証済みコピー、および元のパスのシンボリックリンクを使用して、Linux Nextcloudのデータディレクトリを安全に外部ドライブに移動します。