13.2.3.2. Tang ディスク暗号化の有効化
以下の手順を使用して、OpenShift Container Platform のデプロイメント時に Tang モードのディスク暗号化を有効にします。
手順
-
暗号化の設定を設定し、
openshift-install
を実行してクラスターをインストールし、oc
を使用してクラスターを操作するために Red Hat Enterprise Linux サーバーにアクセスします。 - 既存の Tang サーバーを設定するか、またはこれにアクセスします。手順については、NBDE (Network-Bound Disk Encryption) を参照してください。タグの表示についての詳細は、Securing Automated Decryption New Cryptography and Techniques を参照してください。
-
クラスターについて Red Hat Enterprise Linux CoreOS (RHCOS) インストールを実行する際にネットワークを設定するためにカーネル引数を追加します。たとえば、DHCP ネットワークを設定するには、
ip=dhcp
を特定するか、またはカーネルコマンドラインにパラメーターを追加する際に静的ネットワークを設定します。DHCP と静的ネットワークの両方の場合、rd.neednet=1
カーネル引数も指定する必要があります。
このステップを省略すると、2 番目の起動に失敗します。
-
clevis
パッケージがインストールされていない場合はインストールします。
$ sudo yum install clevis -y
Tang サーバーからサムプリントを生成します。
以下のコマンドでは、
url
の値を Tang サーバーの URL に置き換えます。$ echo nifty random wordwords \ | clevis-encrypt-tang \ '{"url":"https://tang.example.org"}'
出力例
The advertisement contains the following signing keys: PLjNyRdGw03zlRoGjQYMahSZGu9
Do you want to trust these key? [ynYN]
プロンプトが表示されたら、Y
を入力します。その後サムプリントが表示されます。出力例
eyJhbmc3SlRyMXpPenc3ajhEQ01tZVJiTi1oM...
Base64 でエンコードされたファイルを作成します。値を Tang サーバーの URL (
url
) と生成したサムプリント (thp
) で置き換えます。$ (cat <<EOM { "url": "https://tang.example.com", "thp": "PLjNyRdGw03zlRoGjQYMahSZGu9" } EOM ) | base64 -w0
出力例
ewogInVybCI6ICJodHRwczovL3RhbmcuZXhhbXBsZS5jb20iLAogInRocCI6ICJaUk1leTFjR3cwN3psVExHYlhuUWFoUzBHdTAiCn0K
openshift
ディレクトリーで、マスターまたはワーカーファイルを作成し、それらのノードのディスクを暗号化します。ワーカーノードの場合は、以下のコマンドを使用します。
$ cat << EOF > ./99-openshift-worker-tang-encryption.yaml apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: name: worker-tang labels: machineconfiguration.openshift.io/role: worker spec: config: ignition: version: 2.2.0 storage: files: - contents: source: data:text/plain;base64,e30K source: data:text/plain;base64,ewogInVybCI6ICJodHRwczovL3RhbmcuZXhhbXBsZS5jb20iLAogInRocCI6ICJaUk1leTFjR3cwN3psVExHYlhuUWFoUzBHdTAiCn0K filesystem: root mode: 420 path: /etc/clevis.json EOF
マスターノードの場合は、以下のコマンドを使用します。
$ cat << EOF > ./99-openshift-master-tang-encryption.yaml apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: name: master-tang labels: machineconfiguration.openshift.io/role: master spec: config: ignition: version: 2.2.0 storage: files: - contents: source: data:text/plain;base64,e30K source: data:text/plain;base64,ewogInVybCI6ICJodHRwczovL3RhbmcuZXhhbXBsZS5jb20iLAogInRocCI6ICJaUk1leTFjR3cwN3psVExHYlhuUWFoUzBHdTAiCn0K filesystem: root mode: 420 path: /etc/clevis.json EOF
以下の例で示すように
rd.neednet=1
カーネル引数を追加します。apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: name: <node_type>-tang 1 spec: config: ignition: version: 3.1.0 kernelArguments: - rd.neednet=1 2
- 残りの OpenShift Container Platform のデプロイメントを継続します。