3.6. initdata 생성
initdata를 생성하여 런타임 시 민감하거나 워크로드별 데이터로 Pod를 안전하게 초기화하므로 이 데이터를 가상 머신 이미지에 포함할 필요가 없습니다. 이 접근 방식은 기밀 정보 노출 위험을 줄이고 사용자 정의 이미지 빌드의 필요성을 제거하여 추가 보안을 제공합니다.
Pod 구성 맵에서 글로벌 구성 또는 Pod 매니페스트에서 특정 Pod에 initdata를 지정할 수 있습니다. Pod 매니페스트의 initdata 값은 Pod 구성 맵에 설정된 값을 덮어씁니다.
프로덕션 환경에서는 기본 허용 Kata 에이전트 정책을 재정의하려면 initdata를 생성해야 합니다.
피어 Pod 구성 맵에서 글로벌 구성 또는 특정 Pod에 대해 피어 Pod 매니페스트에서 initdata를 지정할 수 있습니다. 피어 Pod 매니페스트의 initdata 값은 피어 Pod 구성 맵에 설정된 값을 덮어씁니다.
그런 다음 Red Hat build of Trustee를 위한 RVPS(Reference Value Provider Service) 구성 맵에 대한 initdata.toml 파일에서 PCR(Platform Configuration Register) 8 해시를 생성합니다.
Red Hat build of Trustee는 RVPS를 사용하여 기밀 워크로드에서 보낸 인증 정보를 검증합니다. RVPS에는 인증 요청에 포함된 PCR 측정과 비교되는 파일 해시와 같은 신뢰할 수 있는 참조 값이 포함되어 있습니다. 이러한 해시는 Red Hat build of Trustee에 의해 생성되지 않습니다.
Red Hat build of Trustee의 kbs-config 구성 맵에서 insecure_http = true 를 구성하는 경우 kbs_cert 설정을 삭제해야 합니다.
프로세스
다음 명령을 실행하여 Red Hat build of Trustee URL을 받으십시오.
TRUSTEE_URL=$(oc get route kbs-service \ -n trustee-operator-system -o jsonpath='{.spec.host}') \ && echo $TRUSTEE_URL$ TRUSTEE_URL=$(oc get route kbs-service \ -n trustee-operator-system -o jsonpath='{.spec.host}') \ && echo $TRUSTEE_URLCopy to Clipboard Copied! Toggle word wrap Toggle overflow initdata.toml파일을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - url
-
Red Hat build of Trustee URL을 지정합니다. 테스트 목적으로
insecure_http로 Red Hat build of Trustee를 구성하는 경우 HTTP를 사용합니다. 그렇지 않으면 HTTPS를 사용합니다. 프로덕션 시스템의 경우 프록시와 같이 외부에서 TLS를 처리하도록 환경을 구성하지 않는 한insecure_http를 사용하지 마십시오. - <kbs_certificate>
- 인증 에이전트의 Base64로 인코딩된 TLS 인증서를 지정합니다.
- kbs_cert
-
Red Hat build of Trustee의
kbs-config구성 맵에서insecure_http = true를 구성하는 경우kbs_cert설정을 삭제합니다. - image_security_policy_uri
-
컨테이너 이미지 서명 확인 정책을 활성화한 경우에만 선택 사항입니다. <
secret-policy-name> 및 <key>를 KbsConfig 사용자 정의 리소스 생성에 각각 지정된 보안 이름 및 키로 바꿉니다.
다음 명령을 실행하여
initdata.toml파일을 텍스트 파일의 gzip 형식의 Base64 인코딩 문자열로 변환합니다.cat initdata.toml | gzip | base64 -w0 > initdata.txt
$ cat initdata.toml | gzip | base64 -w0 > initdata.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 피어 Pod 구성 맵 또는 피어 Pod 매니페스트에 사용할 이 문자열을 기록합니다.
initdata.toml파일의 SHA-256 해시를 계산하고 다음 명령을 실행하여 해당 값을해시변수에 할당합니다.hash=$(sha256sum initdata.toml | cut -d' ' -f1)
$ hash=$(sha256sum initdata.toml | cut -d' ' -f1)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 32바이트의 0s를
initial_pcr변수에 할당합니다.initial_pcr=0000000000000000000000000000000000000000000000000000000000000000
$ initial_pcr=0000000000000000000000000000000000000000000000000000000000000000Copy to Clipboard Copied! Toggle word wrap Toggle overflow hash및initial_pcr의 SHA-256 해시를 계산하고 다음 명령을 실행하여 해당 값을PCR8_HASH변수에 할당합니다.PCR8_HASH=$(echo -n "$initial_pcr$hash" | xxd -r -p | sha256sum | cut -d' ' -f1) && echo $PCR8_HASH
$ PCR8_HASH=$(echo -n "$initial_pcr$hash" | xxd -r -p | sha256sum | cut -d' ' -f1) && echo $PCR8_HASHCopy to Clipboard Copied! Toggle word wrap Toggle overflow RVPS 구성 맵의
PCR8_HASH값을 기록합니다.