CPFS 汎用型は、サーバ側暗号化と転送中暗号化をサポートし、データのライフサイクル全体を保護します。
サーバ側暗号化:保管中のデータを保護し、物理ディスクの紛失や盗難によるデータ漏洩を防ぎます。
転送中暗号化:転送中のデータを保護し、ネットワーク伝送中の盗聴や改ざんを防ぎます。
仕組み
サーバ側暗号化
サーバ側暗号化は、業界標準のエンベロープ暗号化メカニズムを使用しており、Alibaba Cloud Key Management Service (KMS) を利用して実装されています。システムはファイルシステムごとに一意のデータ暗号化キー (DEK) を生成し、AES-256 アルゴリズムを使用してデータを暗号化します。DEK は、KMS で指定したカスタマーマスターキー (CMK) によって保護されます。このプロセスはユーザーに対して透過的です。DEK キャッシュ機構を使用することで、高い読み取り/書き込み性能を維持しながら、データのセキュリティを確保します。
転送中暗号化
転送中暗化は、オープンソースソフトウェアの Stunnel を使用して、エンドツーエンドの安全なデータ伝送を提供します。ファイルシステムをマウントすると、CPFS クライアントツール (
aliyun-alinas-utils) が Elastic Compute Service (ECS) インスタンス上で Stunnel プロキシプロセスを起動します。このプロセスは、すべての NFS トラフィックを TLS 暗号化トンネルにカプセル化して伝送します。このカプセル化により、ネットワーク上でのデータの盗聴や改ざんを効果的に防ぎます。
暗号化ソリューションの選択
最高のセキュリティ要件を持つビジネス向けに、サーバ側暗号化と転送中暗号化の両方を有効にして、エンドツーエンドのデータ保護を実現できます。
比較項目 | サーバ側暗号化 | 転送中暗号化 |
主な価値 | 保管中のデータのセキュリティを保護し、物理メディアからのデータ漏洩を防ぎます。 | 転送中のデータのセキュリティを保護し、ネットワーク盗聴を防ぎます。 |
利用シーン |
|
|
パフォーマンスへの影響 | IOPS (Input/Output Operations Per Second) とスループットがわずかに低下する可能性があります。CPU オーバーヘッドが少量増加します。 | 約 10% のパフォーマンス低下が発生します。アクセスレイテンシーが 10% 増加し、IOPS が 10% 減少します。 スループット集約型のアプリケーションでは、各マウントターゲットの Stunnel プロセスが極端な場合に CPU コア全体を占有する可能性があります。ビジネスワークロードに基づいて十分な CPU リソースを確保してください。 |
費用 |
| 無料 |
管理の複雑さ | 作成時に 1 回限りの設定。 カスタムキーが誤って削除された場合、データは永久に失われ、回復できません。 | クライアントのインストールとメンテナンスが必要です。また、証明書の有効期間を監視する必要があります。 クライアント証明書の有効期限が切れると、ファイルシステムが応答しなくなります。 |
サーバ側暗号化の設定
サーバ側暗号化は、ファイルシステムの作成時にのみ設定できます。ファイルシステム作成後は、暗号化を無効にしたり、関連するキーを変更したりすることはできません。暗号化を有効にすると、パフォーマンスにわずかな影響があります。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 インスタンスがパブリックネットワークアクセスを持つか、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.rpmCPFS-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.rpmCPFS-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.debCPFS-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.debCPFS-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.rpmCPFS-NFS クライアントをインストールします。
sudo zypper --no-gpg-checks install -y aliyun-alinas-utils-*.rpm
CPFS-NFS クライアントのインストールを確認します。
which mount.cpfs-nfs以下は、成功した場合の応答例です。
/usr/sbin/mount.cpfs-nfs
ステップ 2:転送中暗号化を有効にしてファイルシステムをマウント
転送中暗号化を有効にする際、NFS ファイルシステムが既にターゲットディレクトリ (例:/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プロセスがポート12049で CPFS サーバー側との接続を確立していることが表示されます。
確認後、マウントされたディレクトリでのすべての読み取りおよび書き込み操作は、暗号化されたトンネルを介して実行されます。
クォータと制限事項
サーバ側暗号化の制限事項
作成時の設定:ファイルシステムの作成時に暗号化を設定する必要があります。作成後に有効化、無効化、または変更することはできません。
アルゴリズムの制限:AES-256 アルゴリズムのみがサポートされています。SM4 などの他のアルゴリズムはサポートされていません。
転送中暗号化の制限事項
ファイルシステムのサポート:CPFS 汎用型の NFS ファイルシステムのみがサポートされています。
ネットワークポートの使用: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 か月前にメールと内部メッセージで通知を送信します。通知の指示に従い、CPFS クライアントツール
aliyun-alinas-utilsを速やかに最新バージョンに更新してください。クライアントツールを更新しない場合、転送中暗号化でマウントされた CPFS ファイルシステムは、証明書の有効期限が切れた後に応答しなくなります。
よくある質問
Q:サーバ側暗号化のキーを無効化または削除した後、データにアクセスできますか?
いいえ、できません。 カスタムキーを使用している場合、キーが無効化または削除されると、暗号化されたファイルシステムへのデータの読み書きができなくなります。操作には十分ご注意ください。
Q:ファイルシステムで保存時暗号化タイプのサーバ側暗号化を有効にすると、有効ストレージ容量は減少しますか?
いいえ、減少しません。 AES はブロック暗号であり、自動パディングメカニズムを使用します。保存時暗号化のために自動パディングで追加されたデータは、ファイルシステムの有効ストレージ容量にはカウントされません。
Q:サーバ側暗号化は SM4 アルゴリズムをサポートしていますか?
いいえ、サポートしていません。 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」というエラーメッセージが表示されます。どうすればよいですか?
原因:同じマウントターゲットを、暗号化 (TLS) と非暗号化 (非 TLS) の両方で同時にマウントすることはできません。クライアントは混合マウント操作を検出すると、エラーを報告してマウント操作を終了します。
解決策:umount コマンドを実行して現在のマウントターゲットをアンマウントします。その後、TLS または非 TLS のいずれかのモードを選択し、再度マウントコマンドを実行します。
Q:転送中暗号化を使用してファイルシステムをマウントする際に、「Cannot mount with tls/non-tls now, please wait <sec> seconds for the unmount to complete」というエラーメッセージが表示されます。どうすればよいですか?
原因:暗号化モードと非暗号化モードを切り替える際、システムが再マウントする前にアンマウントプロセスを完了するための猶予期間が必要です。切り替えの間隔が短すぎると、このエラーが発生します。
解決策:
エラーメッセージに指定された秒数待ってから、再度マウントコマンドを実行します。
unmount_grace_period_secパラメーターを設定することで、アンマウントの猶予期間を調整することもできます。設定方法の詳細については、「CPFS クライアントのパラメーター設定詳細」をご参照ください。