OCIのOKEでFSSの転送中暗号化を有効にする

はじめに

こんにちは、技術部の内藤です。

OCIのOKEでプロビジョニングしたFSSではNSGを使えないという記事で、OKEでFSSをプロビジョニングする場合のNSGやセキュリティルールについて書きました。

今回は、FSSで転送中暗号化を有効にする場合の設定方法について説明します。転送中暗号化を使用することで、クライアントとFSSマウントターゲット間の通信をより安全に行うことができます。

転送中暗号化とは

転送中暗号化は、NFSクライアントとFSSマウントターゲット間の通信をTLSで暗号化する機能です。これにより、ネットワーク上でデータが盗聴されるリスクを軽減できます。

転送中暗号化を使用する場合、通常のNFSポートではなく、専用のポート(2051)を使用します。

ノードプールの設定

ノードに必要なパッケージのインストール

ノードのイメージがOracle Linux 8の場合で説明します。

転送中暗号化を使用するには、ノードに oci-fss-utils パッケージが必要です。OKEのノードプールでは、Cloud-Initスクリプトを使用してこのパッケージをインストールできます。
※正直、Cloud-Initスクリプトを使う方法がベストかは不明ですが、私はこの方法で実現できました

ノードプールに、以下のCloud-Initスクリプトを設定します。

まず、ノードプールの作成・編集画面で「カスタム・クラウド初期化スクリプト・テンプレートのダウンロード」から、テンプレートをダウンロードしてください。

Cloud-Initスクリプト

そして、必要なパッケージをインストールするために、コードを以下のようにして、コンソールに貼り付けます。

#!/bin/bash
# 変更NG https://docs.oracle.com/ja-jp/iaas/Content/ContEng/Tasks/contengusingcustomcloudinitscripts.htm
curl --fail -H "Authorization: Bearer Oracle" -L0 http://169.254.169.254/opc/v2/instance/metadata/oke_init_script | base64 --decode >/var/run/oke-init.sh
bash /var/run/oke-init.sh

# FSSで転送中暗号化を利用するために oci-fss-utils をインストール
# https://docs.oracle.com/ja-jp/iaas/Content/File/Tasks/intransitencryption.htm#upgrade
sudo yum-config-manager --enable ol8_developer
sudo dnf install -y oci-fss-utils
sudo dnf upgrade -y oci-fss-utils

注意点

カスタムのCloud-init初期化スクリプトを使用した管理対象ノードの設定に、以下の記載があります。

Kubernetes Engineは、cloud-initを使用して、管理対象ノードをホストするコンピュート・インスタンスを設定します。Kubernetes Engineは、管理対象ノードをホストする各インスタンスにデフォルトの起動スクリプトをインストールします。インスタンスが初めて起動すると、cloud-initによってデフォルトの起動スクリプトが実行されます。

デフォルトの起動スクリプトをカスタマイズする場合は、Kubernetes Engineによって提供されるロジックを変更しないでください。

私はこれを読まずに、デフォルトのコードを消して、ノードがAPIエンドポイントから認識されず、しばらくハマりました、、、

ブート・ボリュームの転送中暗号化の有効化

ノードプールの作成・編集画面で「転送中暗号化の使用」にチェックを入れます。

ブートボリュームの転送中暗号化

ノードプール作成後に上記変更をした場合

既存のノードを削除して、新しいノードを(自動で)立ち上げてください。ノードプールの変更を反映するには、変更後にノードを立ち上げる必要があります。

セキュリティリストの設定

転送中暗号化を使用する場合、マウントターゲットのサブネットに設定するセキュリティリストでポート2051の通信を許可する必要があります。

「ファイル・ストレージに対するVCNセキュリティ・ルールの構成」のシナリオC: マウント・ターゲットおよびインスタンスでTLS転送中暗号化を使用に従い、ノードが存在するサブネットのCIDRからの2051ポートのインバウンドをステートフルで許可します。

  • TCP
  • 宛先ポート: 2051
  • ソースCIDR: ノードがあるサブネット

ノードのサブネットが 172.22.1.0/24 の場合は、以下のようになります。

セキュリティ

参考

おわりに

OKEでFSSの転送中暗号化を使用する場合は、パッケージのインストールとセキュリティリストの設定が重要です。初めてだと地味にハマると思うので、本記事を参考に設定してみてください!