2.6. TDX 워크로드에 대한 TDX 원격 인증 인프라 구성
Intel Trust Domain Extensions (TDX)에 대한 원격 인증 정보를 제공하는 다음 구성 요소가 포함된 기밀 컨테이너 베어 메탈 인프라에 대해 Pod VM 이미지를 배포할 수 있습니다.
- In-cluster Provisioning Certificate Caching Service (PCCS) 배포
- 자동 노드 PCK Cert ID Retrieval Tool based platform (re-)registration
- 서비스 별 TDX-QGS 인용
배포에 필요한 네임스페이스, 시크릿, 인증서 및 환경 변수를 설정할 수 있습니다.
사전 요구 사항
- Intel Device Plugins Operator를 설치하고 Intel Software Guard Extensions Device 플러그인 인스턴스를 생성했습니다. 자세한 내용은 OpenShift Container Platform 설명서 의 웹 콘솔을 사용하여 소프트웨어 카탈로그 에서 설치를 참조하십시오.
- PCCS를 배포하는 노드에는 인터넷에 액세스할 수 있어야 합니다.
프로세스
다음 명령을 실행하여
intel-dcap네임스페이스를 생성합니다.oc create namespace intel-dcap
$ oc create namespace intel-dcapCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
intel-dcap프로젝트로 전환합니다.oc project intel-dcap
$ oc project intel-dcapCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 보안 컨텍스트 제약 조건을 업데이트합니다.
oc adm policy add-scc-to-user privileged -z default
$ oc adm policy add-scc-to-user privileged -z defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 기본 프로젝트로 전환합니다.
oc project default
$ oc project defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
PCCS_API_KEY변수를 설정합니다.export PCCS_API_KEY="${PCCS_API_KEY:-}"$ export PCCS_API_KEY="${PCCS_API_KEY:-}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow PCCS_API_KEY- Intel® SGX 및 Intel® TDX 프로비저닝 인증 서비스의 API 키입니다. Intel Trusted Services API 포털 로 이동하여 로그인하여 Intel® SGX 및 Intel® TDX Provisioning Certification Service에 가입하십시오. API 키는 서브스크립션 관리 페이지에 표시됩니다.
다음 명령을 실행하여
PCCS_USER_TOKEN변수를 설정합니다.export PCCS_USER_TOKEN="${PCCS_USER_TOKEN:-mytoken}"$ export PCCS_USER_TOKEN="${PCCS_USER_TOKEN:-mytoken}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow PCCS_USER_TOKEN- PCCS 사용자 토큰을 지정합니다. 자세한 내용은 Intel® SGX Provisioning Certificate Caching Service(Intel® SGX PCCS)의 설계 가이드를 참조하십시오.
다음 명령을 실행하여
PCCS_ADMIN_TOKEN변수를 설정합니다.export PCCS_ADMIN_TOKEN="${PCCS_ADMIN_TOKEN:-mytoken}"$ export PCCS_ADMIN_TOKEN="${PCCS_ADMIN_TOKEN:-mytoken}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow PCCS_ADMIN_TOKEN- PCCS 관리 토큰을 지정합니다. 자세한 내용은 Intel® SGX Provisioning Certificate Caching Service(Intel® SGX PCCS)의 설계 가이드를 참조하십시오.
다음 명령을 실행하여
PCCS_NODE변수의 값을 컨트롤 플레인 노드의 이름으로 설정합니다.export PCCS_NODE=$(oc get nodes \ -l 'node-role.kubernetes.io/control-plane=,node-role.kubernetes.io/master=' \ -o jsonpath='{.items[0].metadata.name}')$ export PCCS_NODE=$(oc get nodes \ -l 'node-role.kubernetes.io/control-plane=,node-role.kubernetes.io/master=' \ -o jsonpath='{.items[0].metadata.name}')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 클러스터 전체 프록시 변수를 설정합니다.
클러스터 전체 프록시를 사용하는 경우 다음 명령을 실행합니다.
export CLUSTER_HTTPS_PROXY="$(oc get proxy/cluster \ -o jsonpath={.spec.httpsProxy})"$ export CLUSTER_HTTPS_PROXY="$(oc get proxy/cluster \ -o jsonpath={.spec.httpsProxy})"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 프록시를 사용하지 않는 경우 다음 명령을 실행합니다.
export CLUSTER_NO_PROXY="$(oc get proxy/cluster \ -o jsonpath={.spec.noProxy})"$ export CLUSTER_NO_PROXY="$(oc get proxy/cluster \ -o jsonpath={.spec.noProxy})"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
다음 명령을 실행하여 PCCS 사용자 토큰의 SHA-512 해시를 생성합니다.
export PCCS_USER_TOKEN_HASH=$(echo -n "$PCCS_USER_TOKEN" | sha512sum | tr -d '[:space:]-')
$ export PCCS_USER_TOKEN_HASH=$(echo -n "$PCCS_USER_TOKEN" | sha512sum | tr -d '[:space:]-')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 PCCS 관리자 토큰의 SHA-512 해시를 생성합니다.
export PCCS_ADMIN_TOKEN_HASH=$(echo -n "$PCCS_ADMIN_TOKEN" | sha512sum | tr -d '[:space:]-')
$ export PCCS_ADMIN_TOKEN_HASH=$(echo -n "$PCCS_ADMIN_TOKEN" | sha512sum | tr -d '[:space:]-')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 PCCS 인증서 및 키의 임시 디렉터리를 생성합니다.
PCCS_PEM_CERT_PATH=$(mktemp -d)
$ PCCS_PEM_CERT_PATH=$(mktemp -d)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 자체 서명된 PCCS 인증서 및 개인 키를 생성합니다.
openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 \ -keyout $PCCS_PEM_CERT_PATH/private.pem \ -out $PCCS_PEM_CERT_PATH/certificate.pem \ -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com"
$ openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 \ -keyout $PCCS_PEM_CERT_PATH/private.pem \ -out $PCCS_PEM_CERT_PATH/certificate.pem \ -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
PCCS_PEM값을 Base64로 인코딩된 PCCS 개인 키로 설정합니다.export PCCS_PEM=$(cat "$PCCS_PEM_CERT_PATH"/private.pem | base64 | tr -d '\n')
$ export PCCS_PEM=$(cat "$PCCS_PEM_CERT_PATH"/private.pem | base64 | tr -d '\n')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
PCCS_CERT값을 Base64 인코딩 PCCS 인증서로 설정합니다.export PCCS_CERT=$(cat "$PCCS_PEM_CERT_PATH"/certificate.pem | base64 | tr -d '\n')
$ export PCCS_CERT=$(cat "$PCCS_PEM_CERT_PATH"/certificate.pem | base64 | tr -d '\n')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 PCCS의 일반 시크릿을 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow