CPFS 汎用は、サーバ側暗号化と転送中暗号化により、エンドツーエンドでデータを保護します。
-
サーバ側暗号化:保存中のデータを保護し、物理ディスクの紛失や盗難によるデータ侵害を防止します。
-
転送中暗号化:ネットワーク上で転送されるデータを盗聴や改ざんから保護します。
仕組み
-
サーバ側暗号化
この機能は、業界標準のエンベロープ暗号化メカニズムを Alibaba Cloud Key Management Service (KMS) と組み合わせて実装されています。システムは各ファイルシステムごとに一意のデータ暗号化キー (DEK) を生成し、AES-256 アルゴリズムを使用してデータを暗号化します。DEK 自体は、KMS で指定したカスタマーマスターキー (CMK) によって暗号化・保護されます。この透過的なプロセスにより、DEK キャッシュ機構を通じてデータセキュリティを確保しつつ、高い読み取り/書き込みパフォーマンスを維持します。
-
転送中暗号化
この機能は、オープンソースソフトウェア Stunnel をベースにエンドツーエンドの安全なデータ転送を提供します。ファイルシステムをマウントする際、CPFS クライアントツール (
aliyun-alinas-utils) がご利用の ECS インスタンス上で Stunnel プロキシプロセスを起動します。このプロセスは、すべての NFS トラフィックを Transport Layer Security (TLS) 暗号化トンネル内にカプセル化し、ネットワーク上での盗聴や改ざんを効果的に防止します。
暗号化オプション
最高レベルのセキュリティが求められるシナリオでは、エンドツーエンドのデータ保護のために、サーバ側暗号化と転送中暗号化の両方を有効にすることを推奨します。
|
ディメンション |
サーバ側暗号化 |
転送中暗号化 |
|
主なメリット |
保存中のデータを保護し、物理ディスクの紛失や盗難によるデータ侵害を防止します。 |
転送中のデータを保護し、ネットワーク上の盗聴を防止します。 |
|
利用シーン |
|
|
|
パフォーマンスへの影響 |
IOPS およびスループットがわずかに低下し、CPU オーバーヘッドが若干増加します。 |
パフォーマンスへの影響は約 10% です(アクセス遅延が 10% 増加し、IOPS が 10% 低下します)。 スループット重視型アプリケーションの場合、マウントポイントごとの Stunnel プロセスが極端なケースで CPU コア 1 個分を消費する可能性があります。そのため、ワークロードに応じて十分な CPU リソースを確保してください。 |
|
コスト |
|
無料です。 |
|
管理の複雑さ |
作成時に一度だけ設定します。 カスタマー管理キーを誤って削除した場合、そのキーで暗号化されたデータは永久に失われます。 |
クライアントのインストールと保守を行い、証明書の有効期限をモニターする必要があります。 クライアント証明書の有効期限が切れると、ファイルシステムが応答しなくなります。 |
サーバ側暗号化
サーバ側暗号化は、ファイルシステム作成時のみ設定可能です。作成後は、暗号化を無効化したりキーを変更したりすることはできません。暗号化を有効にするとパフォーマンスにわずかな影響があり、IOPS およびスループットが若干低下する可能性があります。
手順 1: キー管理方法を選択
セキュリティおよびコンプライアンス要件に基づき、以下のいずれかのキー管理方法を選択します。
-
マネージドキー:CPFS がお客様に代わってキーを作成・管理するため、ライフサイクルを管理する必要はありません。監査権限は保持されます。この方法は無料で管理が容易であり、一般的なセキュリティシナリオに適しています。
-
カスタマー管理キー (KMS 経由):KMS で管理しているキーを使用してファイルシステムを暗号化します。キーの作成、有効化、無効化、ローテーション、削除など、ライフサイクルを完全制御できます。この方法は、厳格なコンプライアンス要件がある場合や、自社でキーを制御する必要があるシナリオに適しています。以下の 2 種類のキー ソースがサポートされています。
-
KMS 作成キー:KMS コンソールでカスタマーマスターキー (CMK) を作成します。
-
Bring Your Own Key (BYOK):外部で生成したキーを KMS にインポートして使用します。
カスタマー管理キーを選択する場合は、事前に Key Management Service コンソールでカスタマーマスターキー (CMK) を作成またはインポートする必要があります。
-
手順 2:暗号化ファイルシステムの作成
-
CPFS コンソールにログインし、ファイルシステム作成ページに移動します。
-
暗号化タイプをマネージドキーまたはカスタマー管理キー (KMS 経由)に設定します。
-
カスタマー管理キー (KMS 経由)を選択した場合、キー ID ドロップダウンリストからキーを選択します。
この機能を初めて使用する際、CPFS が KMS リソースにアクセスできるようにするため、サービスリンクロールの作成ガイダンスが表示されます。
-
他の構成パラメーターを設定し、ファイルシステムを作成します。
手順 3:暗号化構成の確認
ファイルシステム作成後、ファイルシステム一覧の暗号化 列でステータスを確認し、暗号化が有効になっていることを確認します。
これにより、ファイルシステムに書き込まれるすべてのデータが自動的に暗号化されます。
転送中暗号化
転送中暗号化は、ファイルシステムをマウントする際に特定のパラメーターを追加することで有効になります。この機能により、ネットワーク上で転送される NFS トラフィックが保護されます。
前提条件
-
汎用 CPFS ファイルシステムが作成済みであること。
-
対象の ECS インスタンスにパブリック IP アドレスまたは関連付けられた EIP が割り当てられていること。
手順 1:CPFS-NFS クライアントのインストール
-
CPFS ファイルシステムをマウントする ECS インスタンスにログインします。ECS インスタンスへの接続方法の詳細については、「接続方法」をご参照ください。
-
CPFS-NFS クライアントをダウンロードしてインストールします。
Alibaba Cloud Linux
-
CPFS-NFS クライアントをダウンロードします。
wget https://cpfs-hangzhou-nfs-client.oss-cn-hangzhou.aliyuncs.com/aliyun-alinas-utils-latest.al.noarch.rpm -
CPFS-NFS クライアントをインストールします。
sudo yum install aliyun-alinas-utils-*.rpm
CentOS
-
CPFS-NFS クライアントをダウンロードします。
wget https://cpfs-hangzhou-nfs-client.oss-cn-hangzhou.aliyuncs.com/aliyun-alinas-utils-latest.el.noarch.rpm -
CPFS-NFS クライアントをインストールします。
sudo yum install aliyun-alinas-utils-*.rpm
Ubuntu
-
CPFS-NFS クライアントをダウンロードします。
sudo wget https://cpfs-hangzhou-nfs-client.oss-cn-hangzhou.aliyuncs.com/aliyun-alinas-utils-latest.deb -O /tmp/aliyun-alinas-utils-latest.deb -
CPFS-NFS クライアントをインストールします。
sudo apt-get update sudo apt-get install /tmp/aliyun-alinas-utils-latest.deb
Debian
-
CPFS-NFS クライアントをダウンロードします。
sudo wget https://cpfs-hangzhou-nfs-client.oss-cn-hangzhou.aliyuncs.com/aliyun-alinas-utils-latest.deb -O /tmp/aliyun-alinas-utils-latest.deb -
CPFS-NFS クライアントをインストールします。
sudo apt-get update sudo apt-get install /tmp/aliyun-alinas-utils-latest.deb
SUSE
-
CPFS-NFS クライアントをダウンロードします。
wget https://cpfs-hangzhou-nfs-client.oss-cn-hangzhou.aliyuncs.com/aliyun-alinas-utils-latest.lp15.x86_64.rpm -
CPFS-NFS クライアントをインストールします。
sudo zypper --no-gpg-checks install -y aliyun-alinas-utils-*.rpm
-
-
インストールを確認します。
which mount.cpfs-nfsインストールが成功すると、次の出力が返されます。
/usr/sbin/mount.cpfs-nfs
手順 2:転送中暗号化によるマウント
転送中暗号化を有効にする際、ご利用の ECS インスタンス上の対象ディレクトリ(例:/mnt)にすでに NFS ファイルシステムがマウントされている場合は、まずNFS ファイルシステムをアンマウントし、本トピックの手順に従って再マウントする必要があります。
転送中暗号化を有効にするには、標準のマウントコマンドに -o tls パラメーターを追加します。ファイルシステムをマウントすると、CPFS クライアントツールが自動的にマウントポイントのマッピングを /etc/hosts ファイルに書き込み、アンマウント時にマッピングを削除します。
# 例:転送中暗号化を有効にしてマウントします。
sudo mount -t cpfs-nfs -o tls,vers=3,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport file-system-id.region.cpfs.aliyuncs.com:/share/path /mnt
-
-o tls:必須。転送中暗号化を有効にします。 -
vers=3:互換性を高めるために NFSv3 プロトコルを指定します。 -
rsize=1048576,wsize=1048576:転送パフォーマンスを最適化するために、読み取りおよび書き込みブロックサイズを 1 MB に設定します。 -
hard:データ整合性を確保するためにハードマウントを指定します。
マウントパラメーターの詳細については、「CPFS-NFSクライアントを使用してファイルシステムをマウントする(推奨)」をご参照ください。
手順 3:暗号化の確認
ファイルシステムのマウント後、Stunnel プロセスおよびネットワーク接続を確認することで、暗号化が有効になっていることを検証できます。
-
Stunnelプロセスの確認:Stunnel プロキシプロセスが実行中であることを確認します。ps aux | grep stunnel -
ネットワーク接続の確認:Stunnel が CPFS サーバーとの間で暗号化接続を確立していることを確認します。
netstat -anp | grep stunnelstunnelプロセスが CPFS サーバーのポート12049との接続を確立していることが確認できます。
確認後、マウントディレクトリに対するすべての読み取りおよび書き込み操作は、暗号化トンネルを通じて転送されます。
制限事項
-
サーバ側暗号化の制限事項
-
作成時のみ設定可能:サーバ側暗号化はファイルシステム作成時に設定する必要があり、作成後の変更はできません。
-
アルゴリズムの制限:AES-256 アルゴリズムのみサポートされます。SM4 などの他のアルゴリズムはサポートされていません。
-
-
転送中暗号化の制限事項
-
サポートされるファイルシステム:NFS プロトコルを使用する汎用 CPFS ファイルシステムのみサポートされます。
-
ポート使用:デフォルトで、Stunnel プロセスはローカルポート
12049を使用します。このポートが他のサービスで使用されていないことを確認してください。ss -ant | grep -w 12049コマンドを実行して、ポートが使用中かどうかを確認できます。コマンドの結果が空の場合、ポートは使用されていません。ポートが使用中の場合は、設定ファイルを変更することでポートを変更できます。 -
ローカル IP アドレスの使用:転送中暗号化を有効にしたマウントポイントごとに、
127.0.1.1~127.0.255.254の範囲から IP アドレスが順次使用されます。ファイルシステムをアンマウントすると、IP アドレスは解放されます。cat /etc/hostsコマンドを実行して、現在の使用状況を確認できます。 -
マウントモードの排他性:同一のファイルシステムを同一のマウントポイントに、暗号化 (TLS) と非暗号化の両方のモードでマウントすることはできません。モードを切り替えるには、まず既存のマウントポイントをアンマウントする必要があります。
-
サポートされるオペレーティングシステム:以下の 64 ビットオペレーティングシステム バージョンのみサポートされます。
オペレーティングシステム タイプ
オペレーティングシステム バージョン
Alibaba Cloud Linux
-
Alibaba Cloud Linux 3.2104 64 ビット
-
Alibaba Cloud Linux 2.1903 64 ビット
CentOS
-
CentOS 8.x 64 ビット
-
CentOS 7.x 64 ビット
Ubuntu
-
Ubuntu 20.04 64 ビット
-
Ubuntu 18.04 64 ビット
-
Ubuntu 16.04 64 ビット
Debian
-
Debian 10.x 64 ビット
-
Debian 9.x 64 ビット
-
Debian 8.x 64 ビット
SUSE
-
SUSE Linux Enterprise Server 15 64 ビット
-
-
トラブルシューティングとログ
転送中暗号化に関連するクライアントログは、/var/log/aliyun/alinas/ ディレクトリに保存されます。/etc/aliyun/alinas/alinas-utils.conf ファイルを編集することで、ログ設定を調整できます。
|
パラメーター |
説明 |
デフォルト |
|
|
クライアントツールのログレベル。 |
INFO |
|
|
単一のログファイルの最大サイズ。 |
1048576 (1 MB) |
|
|
保持するログファイルの最大数。 |
10 |
|
|
Stunnel デバッグログの有効/無効を切り替えます。有効にすると、より詳細な TLS ハンドシェイク情報が出力されます。 |
false |
|
|
サーバー証明書のドメイン名をチェックするかどうかを指定します。本番環境では、 |
false |
|
|
サーバー証明書の有効期間および発行者をチェックするかどうかを指定します。本番環境では、このパラメーターを |
false |
設定を変更した後は、次のコマンドを実行してサービスを再起動します。
sudo service aliyun-alinas-mount-watchdog restart
本番運用時の注意点
-
キー管理リスク (サーバ側暗号化)
カスタマー管理キーを使用する場合は、厳格なキー管理プロセスを確立する必要があります。キーを無効化または削除すると、暗号化されたファイルシステムにアクセスできなくなり、データは回復不能となります。KMS でキーの削除保護機能を有効にすることを推奨します。 -
証明書管理 (転送中暗号化)
CPFS クライアントの転送中暗号化機能は、定期的にローテーションが必要なサードパーティ証明書に依存しています。CPFS は、証明書の有効期限が切れる 1 か月前にメールおよびサイト内メッセージでお知らせします。
aliyun-alinas-utilsクライアントツールを速やかに更新してください。クライアントを更新しない場合、証明書の有効期限切れ後に転送中暗号化でマウントされたファイルシステムが応答しなくなります。
よくある質問
Q:暗号化キーを無効化または削除した場合、データにアクセスできますか?
A:いいえ。 カスタマー管理キーを使用している場合、キーを無効化または削除すると、暗号化されたファイルシステムに対する読み取りおよび書き込み操作が完全に不可能になります。キー管理には十分ご注意ください。
Q:サーバ側暗号化によりストレージ容量が減少しますか?
A:いいえ。 AES は自動パディング機構を備えたブロック暗号です。このパディングデータは、ファイルシステムのストレージ容量には含まれません。
Q:サーバ側暗号化は SM4 アルゴリズムをサポートしていますか?
A:いいえ。 CPFS のサーバ側暗号化は、保存中のデータを保護するために業界標準の AES-256 アルゴリズムを使用し、不正なデータアクセスを防止するためのエンベロープ暗号化を採用しています。サーバ側暗号化キーは KMS を使用して生成・管理されます。KMS は、お客様のキーの機密性、整合性、可用性を保証します。暗号化の詳細については、「KMS を使用したエンベロープ暗号化によるローカルデータの暗号化と復号」をご参照ください。
Q:次のマウントエラーの意味は何ですか? The mountpoint <mountpoint> is already mounted with tls/non-tls, mixing tls and non-tls is not supported in this version
A:原因: マウントポイントでは、暗号化 (TLS) と非暗号化 (non-TLS) の両方のモードを同時にサポートできません。クライアントがこの混在マウントを検出し、エラーを報告して処理を終了します。
解決策: umount コマンドを使用して現在のマウントポイントをアンマウントし、TLS または non-TLS のいずれか一方のモードを選択してから、再度マウントコマンドを実行します。
Q:次のマウントエラーの意味は何ですか? Cannot mount with tls/non-tls now, please wait <sec> seconds for the unmount to complete
A:原因: 暗号化モードと非暗号化モードを切り替える際、アンマウント完了後、再マウントを実行するまでに短い猶予期間が必要です。この猶予期間中に再マウントを試みると、このエラーが発生します。
解決策:
-
エラーメッセージに記載された秒数待機してから、再度マウントコマンドを実行します。
-
unmount_grace_period_secパラメーターを設定することで、アンマウント猶予期間の長さを調整することもできます。設定の詳細については、「CPFS クライアントパラメーター設定の詳細」をご参照ください。