12.2. etcd 암호화 활성화
etcd 암호화를 활성화하여 클러스터에서 중요한 리소스를 암호화할 수 있습니다.
초기 암호화 프로세스가 완료될 때까지 etcd 리소스를 백업하지 마십시오. 암호화 프로세스가 완료되지 않으면 백업이 부분적으로만 암호화될 수 있습니다.
etcd 암호화를 활성화하면 다음과 같은 몇 가지 변경이 발생할 수 있습니다.
- etcd 암호화는 몇 가지 리소스의 메모리 사용에 영향을 줄 수 있습니다.
- 리더가 백업을 제공해야 하기 때문에 백업 성능에 일시적인 영향을 미칠 수 있습니다.
- 디스크 I/O는 백업 상태를 수신하는 노드에 영향을 줄 수 있습니다.
사전 요구 사항
-
cluster-admin
역할의 사용자로 클러스터에 액세스할 수 있어야 합니다.
프로세스
APIServer
오브젝트를 수정합니다.$ oc edit apiserver
암호화
필드 유형을aescbc
로 설정합니다.spec: encryption: type: aescbc 1
- 1
aescbc
유형은 PKCS# 7 패딩 및 32바이트 키가 있는 AES-CBC가 암호화를 수행하는 데 사용됨을 나타냅니다.
파일을 저장하여 변경 사항을 적용합니다.
암호화 프로세스가 시작됩니다. 클러스터 크기에 따라 이 프로세스를 완료하는 데 20분 이상 걸릴 수 있습니다.
etcd 암호화에 성공했는지 확인합니다.
OpenShift API 서버의
Encrypted
상태 조건을 검토하여 해당 리소스가 성공적으로 암호화되었는지 확인합니다.$ oc get openshiftapiserver -o=jsonpath='{range .items[0].status.conditions[?(@.type=="Encrypted")]}{.reason}{"\n"}{.message}{"\n"}'
암호화에 성공하면 출력에
EncryptionCompleted
가 표시됩니다.EncryptionCompleted All resources encrypted: routes.route.openshift.io
출력에
EncryptionInProgress
가 표시되는 경우에도 암호화는 계속 진행 중입니다. 몇 분 기다린 후 다시 시도합니다.쿠버네티스 API 서버의
Encrypted
상태 조건을 검토하여 해당 리소스가 성공적으로 암호화되었는지 확인합니다.$ oc get kubeapiserver -o=jsonpath='{range .items[0].status.conditions[?(@.type=="Encrypted")]}{.reason}{"\n"}{.message}{"\n"}'
암호화에 성공하면 출력에
EncryptionCompleted
가 표시됩니다.EncryptionCompleted All resources encrypted: secrets, configmaps
출력에
EncryptionInProgress
가 표시되는 경우에도 암호화는 계속 진행 중입니다. 몇 분 기다린 후 다시 시도합니다.OpenShift OAuth API 서버의
Encrypted
상태 조건을 검토하여 해당 리소스가 성공적으로 암호화되었는지 확인합니다.$ oc get authentication.operator.openshift.io -o=jsonpath='{range .items[0].status.conditions[?(@.type=="Encrypted")]}{.reason}{"\n"}{.message}{"\n"}'
암호화에 성공하면 출력에
EncryptionCompleted
가 표시됩니다.EncryptionCompleted All resources encrypted: oauthaccesstokens.oauth.openshift.io, oauthauthorizetokens.oauth.openshift.io
출력에
EncryptionInProgress
가 표시되는 경우에도 암호화는 계속 진행 중입니다. 몇 분 기다린 후 다시 시도합니다.