6.3. Kubernetes KMS v2 비활성화


KMS 암호화를 비활성화하고 로컬 etcd 암호화로 마이그레이션하여 작업을 간소화하거나 외부 KMS 연결 문제를 해결할 수 있습니다.

중요

Kubernetes KMS v2는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

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>

    &lt ;encryption >를 aescbc,aesgcm 또는 ID 로 바꿉니다.

  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-apiserver Pod가 롤아웃되었는지 확인합니다.

    $ 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

    /etc/kubernetes/manifests/ 에서 매니페스트가 제거되면 kubelet에서 정적 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. 다음 명령을 입력하여 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: 또는 ID 에 대해 읽을 수 있는 JSON으로 시작되어야 합니다.

    4. 다음 명령을 입력하여 테스트 시크릿을 삭제합니다.

      $ oc delete secret encryption-test -n default
참고

마이그레이션이 성공적으로 완료될 때까지 KMS 키를 삭제하지 마십시오.

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동