6.3. Kubernetes KMS v2 を無効にする


KMS 暗号化を無効にしてローカルの etcd 暗号化に移行することで、操作を簡素化したり、外部 KMS 接続の問題を解決したりできます。

重要

Kubernetes KMS v2 は、テクノロジープレビュー版の機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

6.3.1. KMS 暗号化を無効にする

外部 KMS 暗号化を無効にしてローカル暗号化に移行することで、操作を簡素化したり、KMS 接続の問題を解決したりできます。

前提条件

  • cluster-admin ロールを持つユーザーとしてクラスターにアクセスできる。
  • etcd のバックアップを作成しました。
警告

etcd のすべてのデータが再暗号化されます。

手順

  1. 以下のコマンドを入力して、APIServer の カスタムリソースを編集します。

    $ oc edit apiserver cluster
  2. 暗号化設定を変更します。

    apiVersion: config.openshift.io/v1
    kind: APIServer
    metadata:
      name: cluster
    spec:
      encryption:
        type: <encryption>

    <encryption> を aescbcaesgcm、または アイデンティティー に置き換えてください。

  3. 保存して終了します。

    OpenShift Container Platform は etcd データを自動的に移行します。移行時間は、etcd のサイズとシークレットの数によって異なります。

  4. 移行の進行状況を監視するには、次のコマンドを入力してください。

    $ oc get openshiftapiserver -o=jsonpath='{range .items[0].status.conditions[?(@.type=="Encrypted")]}{.reason}{"\n"}{.message}{"\n"}{end}'

    出力に EncryptionCompleted と表示されるまでお待ちください。

  5. 以下のコマンドを入力して、kube-apiserverPod が正しく展開されていることを確認します。

    $ oc get pods -n openshift-kube-apiserver -l app=openshift-kube-apiserver
  6. 以下のコマンドを実行して、各コントロールプレーンノードから静的 Pod マニフェストを削除します。

    $ for node in $(oc get nodes --selector=node-role.kubernetes.io/master -o name | cut -d/ -f2); do
        echo "Removing static pod from $node..."
        oc debug node/$node -- chroot /host \
          rm -f /etc/kubernetes/manifests/vault-kms-plugin.yaml
      done

    kubelet は 、/etc/kubernetes/manifests/ からマニフェストが削除されると、静的 Pod を自動的に停止します。

  7. 以下のコマンドを実行して、ソケットディレクトリーをクリーンアップしてください。

    $ for node in $(oc get nodes --selector=node-role.kubernetes.io/master -o name | cut -d/ -f2); do
        oc debug node/$node -- chroot /host rm -rf /var/run/kmsplugin
      done
  8. バックアップの保持期間が経過したら、KMS キーを無効化してください。

検証

  1. 暗号化の種類を確認するには、以下のコマンドを入力してください。

    $ oc get apiserver cluster -o jsonpath='{.spec.encryption.type}'
  2. テスト用シークレットが新しい暗号化タイプを使用していることを確認します。

    1. 以下のコマンドを入力して、テスト用のシークレットを作成します。

      $ oc create secret generic encryption-test --from-literal=key=value -n default
    2. 以下のコマンドを入力して、etcdPod 名を取得します。

      $ oc get pods -n openshift-etcd -l app=etcd -o name | head -1
    3. 以下のコマンドを入力して、暗号化プレフィックスを確認してください。

      $ oc exec -n openshift-etcd <etcd_pod_name> -- etcdctl get /kubernetes.io/secrets/default/encryption-test --print-value-only | hexdump -C | head -1

      出力は k8s:enc:aescbc:v1:k8s:enc:aesgcm:v1: で始まるか、または アイデンティティー に対して読みやすい JSON を表示する必要があります。

    4. 以下のコマンドを入力して、テストシークレットを削除してください。

      $ oc delete secret encryption-test -n default
注記

移行が正常に完了するまで、KMS キーを削除しないでください。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る