14.2.3.2. Tang 디스크 암호화 활성화
다음 절차에 따라 OpenShift Container Platform 설치 중에 Tang 모드 디스크 암호화를 활성화합니다.
사전 요구 사항
- 설치 노드에 OpenShift Container Platform 설치 프로그램이 다운로드되어 있습니다.
- Tang 교환 키의 지문을 생성하는 데 사용할 수 있는 RHEL (Red Hat Enterprise Linux) 8 시스템에 액세스할 수 있습니다.
프로세스
- Tang 서버를 설정하거나 기존 서버에 액세스합니다. 자세한 내용은 Network-bound disk encryption에서 참조하십시오.
클러스터에 대해 Red Hat Enterprise Linux CoreOS (RHCOS) 설치를 수행할 때 네트워크를 설정하기 위해 커널 인수를 추가합니다. 예를 들어 DHCP 네트워킹을 설정하려면
ip=dhcp
를 지정하거나 커널 명령 줄에 매개 변수를 추가할 때 정적 네트워크를 설정합니다. DHCP 및 정적 네트워킹 모두에 대해rd.neednet = 1
커널 인수도 제공해야 합니다.중요이 단계를 건너 뛰면 두 번째 부팅이 실패합니다.
아직 설치되지 않은 경우 RHEL 8 시스템에
clevis
패키지를 설치합니다.$ sudo yum install clevis
RHEL 8 시스템에서 다음 명령을 실행하여 교환 키의 지문을 생성합니다.
http://tang.example.com:7500
을 Tang 서버의 URL로 바꿉니다.$ clevis-encrypt-tang '{"url":"http://tang.example.com:7500"}' < /dev/null > /dev/null 1
- 1
- 이 예에서
tangd.socket
은 Tang 서버의 포트7500
에서 수신 대기 중입니다.
참고clevis-encrypt-tang
명령은 이 단계에서 교환 키의 지문을 생성하는 데만 사용됩니다. 이때 데이터가 암호화를 위해 명령에 전달되지 않으므로/dev/null
은 일반 텍스트 대신 입력으로 제공됩니다. 이 프로세스에 필요하지 않으므로 암호화된 출력은/dev/null
에도 전송됩니다.출력 예
The advertisement contains the following signing keys: PLjNyRdGw03zlRoGjQYMahSZGu9 1
- 1
- 교환 키의 지문입니다.
Do you wish to trust these keys? [ynYN]
프롬프트가 표시되면Y
를 입력합니다.참고RHEL 8에서는 SHA-1 해시 알고리즘을 사용하여 지문을 생성하는 Clevis 버전 15를 제공합니다. 다른 일부 배포에서는 지문에 SHA-256 해시 알고리즘을 사용하는 Clevis 버전 17 이상을 제공합니다. OpenShift Container Platform 클러스터 노드에 RHCOS(Red Hat Enterprise Linux CoreOS)를 설치할 때 Clevis 바인딩 문제를 방지하려면 SHA-1을 사용하여 지문을 생성하는 Clevis 버전을 사용해야 합니다.
Base64로 인코딩된 파일을 만들고 값을 새로 생성된 Tang 서버 (
url
) URL 및 지문 (thp
)으로 바꿉니다.$ (cat <<EOM { "url": "http://tang.example.com:7500", 1 "thp": "PLjNyRdGw03zlRoGjQYMahSZGu9" 2 } EOM ) | base64 -w0
출력 예
ewogInVybCI6ICJodHRwOi8vdGFuZy5leGFtcGxlLmNvbTo3NTAwIiwgCiAidGhwIjogIlBMak55UmRHdzAzemxSb0dqUVlNYWhTWkd1OSIgCn0K
Kubernetes 매니페스트를 아직 생성하지 않은 경우 설치 노드에 설치 프로그램이 포함된 디렉터리로 변경하고 생성합니다.
출력 예
$ ./openshift-install create manifests --dir <installation_directory> 1
- 1
<installation_directory>
를 설치 파일을 저장하려는 디렉토리의 경로로 바꿉니다.
Tang 암호화 모드를 사용하여 컨트롤 플레인 또는 컴퓨팅 노드의 부팅 디스크를 암호화하도록 머신 구성 파일을 생성합니다.
컨트롤 플레인 노드에서 암호화를 구성하려면 다음 머신 구성 샘플을
<installation_directory>/openshift
디렉터리의 파일에 저장합니다. 예를 들어 파일 이름을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: 3.1.0 storage: files: - contents: source: data:text/plain;base64,e30K source: data:text/plain;base64,ewogInVybCI6ICJodHRwOi8vdGFuZy5leGFtcGxlLmNvbTo3NTAwIiwgCiAidGhwIjogIlBMak55UmRHdzAzemxSb0dqUVlNYWhTWkd1OSIgCn0K 1 mode: 420 overwrite: true path: /etc/clevis.json kernelArguments: - rd.neednet=1 2
계산 노드에서 암호화를 구성하려면 다음 머신 구성 샘플을
<installation_directory>/openshift
디렉터리의 파일에 저장합니다. 예를 들어 파일 이름을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: 3.1.0 storage: files: - contents: source: data:text/plain;base64,e30K source: data:text/plain;base64,ewogInVybCI6ICJodHRwOi8vdGFuZy5leGFtcGxlLmNvbTo3NTAwIiwgCiAidGhwIjogIlBMak55UmRHdzAzemxSb0dqUVlNYWhTWkd1OSIgCn0K 1 mode: 420 overwrite: true path: /etc/clevis.json kernelArguments: - rd.neednet=1 2
- YAML 파일의 백업 사본을 생성합니다. Ignition 구성 파일을 생성할 때 원본 YAML 파일이 사용됩니다.
- 나머지 OpenShift Container Platform 설치를 계속합니다.