6.3. Kubernetes KMS v2 の無効化


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

重要

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

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

6.3.1. KMS 暗号化の無効化

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

前提条件

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

暗号化の種類を変更すると、etcd のすべてのデータが再暗号化されます。

手順

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

    $ oc edit apiserver cluster
  2. 以下の例を参考に、暗号化タイプを変更し、kms セクションを削除してください。

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

    <encryption> は、aescbc、aesgcm、または identity に置き換えます。aescbc および aesgcm タイプは、ローカルで管理される暗号鍵を使用します。この アイデンティティー タイプでは、すべての暗号化が無効になり、データは平文として保存されます。暗号化タイプが KMS でない場合、API は kms セクションを拒否するため、kms セクション全体を削除する必要があります。

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

    OpenShift Container Platform は etcd のデータを移行します。KMS プラグインは、移行が完了するまで読み取り専用プロバイダーとして動作します。

  4. 以下のコマンドを入力して、移行の進行状況を監視します。

    $ oc get kubeapiserver cluster -o jsonpath='{.status.conditions[?(@.type=="Encrypted")]}' | jq .

    暗号化完了の理由 が表示されるまで待ちます。kube-apiserver は通常、最後に完了します。

  5. 以下のコマンドを入力して、kube-apiserver Pod がロールアウトされたことを確認してください。

    $ oc get pods -n openshift-kube-apiserver -l app=openshift-kube-apiserver
  6. 移行が完了したら、以下の手順に従って KMS プロバイダーのリソースをクリーンアップしてください。

    1. 以下のコマンドを入力して、認証情報シークレットを削除してください。

      $ oc delete secret vault-approle-secret -n openshift-config
    2. オプション: 以下のコマンドを入力して、CA バンドル config map を削除します。

      $ oc delete configmap vault-ca-bundle -n openshift-config
    3. バックアップの保持期間が経過したら、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. 以下のコマンドを入力して、etcd Pod 名を取得します。

      $ 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
トップに戻る