4.4. Azure에 기밀 컨테이너 배포
OpenShift 샌드박스 컨테이너를 배포한 후 Microsoft Azure 클라우드 컴퓨팅 서비스에 기밀 컨테이너를 배포할 수 있습니다.
Azure의 기밀 컨테이너는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
클러스터 요구 사항
- Confidential Compute attestation Operator를 설치하는 클러스터에 Red Hat OpenShift Container Platform 4.15 이상을 설치했습니다.
다음 단계를 수행하여 기밀 컨테이너를 배포합니다.
- Confidential Compute attestation Operator를 설치합니다.
- Trustee의 경로를 만듭니다.
- 기밀성 컨테이너 기능 게이트를 활성화합니다.
- 피어 Pod 구성 맵을 업데이트합니다.
-
KataConfigCR(사용자 정의 리소스)을 삭제합니다. -
KataConfigCR을 다시 만듭니다. - Trustee 인증 시크릿을 생성합니다.
- Trustee 구성 맵을 생성합니다.
인증 정책을 구성합니다.
- 참조 값을 생성합니다.
- 테스트된 클라이언트의 시크릿을 생성합니다.
- 리소스 액세스 정책을 생성합니다.
- 선택 사항: 기본 정책을 재정의하는 인증 정책을 생성합니다.
- TEE가 Intel Trust Domain Extensions인 경우 Provisioning Certificate Caching Service를 구성합니다.
-
KbsConfigCR을 생성합니다. - 인증 프로세스를 확인합니다.
4.4.1. 기밀 컴퓨팅 인증 Operator 설치 링크 복사링크가 클립보드에 복사되었습니다!
CLI를 사용하여 Azure에 Confidential Compute attestation Operator를 설치할 수 있습니다.
사전 요구 사항
-
OpenShift CLI(
oc)가 설치되어 있습니다. -
cluster-admin역할의 사용자로 클러스터에 액세스할 수 있어야 합니다.
프로세스
trustee-namespace.yaml매니페스트 파일을 생성합니다.apiVersion: v1 kind: Namespace metadata: name: trustee-operator-system
apiVersion: v1 kind: Namespace metadata: name: trustee-operator-systemCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
trustee-operator-system네임스페이스를 생성합니다.oc apply -f trustee-namespace.yaml
$ oc apply -f trustee-namespace.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow trustee-operatorgroup.yaml매니페스트 파일을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 operator 그룹을 생성합니다.
oc apply -f trustee-operatorgroup.yaml
$ oc apply -f trustee-operatorgroup.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow trustee-subscription.yaml매니페스트 파일을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 서브스크립션을 생성합니다.
oc apply -f trustee-subscription.yaml
$ oc apply -f trustee-subscription.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 Operator가 올바르게 설치되었는지 확인합니다.
oc get csv -n trustee-operator-system
$ oc get csv -n trustee-operator-systemCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 명령을 완료하는 데 몇 분이 걸릴 수 있습니다.
다음 명령을 실행하여 프로세스를 확인합니다.
watch oc get csv -n trustee-operator-system
$ watch oc get csv -n trustee-operator-systemCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME DISPLAY PHASE trustee-operator.v0.1.0 Trustee Operator 0.1.0 Succeeded
NAME DISPLAY PHASE trustee-operator.v0.1.0 Trustee Operator 0.1.0 SucceededCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.2. Trustee를 위한 경로 생성 링크 복사링크가 클립보드에 복사되었습니다!
Trustee의 엣지 TLS 종료를 사용하여 보안 경로를 생성할 수 있습니다. 외부 수신 트래픽은 라우터 Pod에 HTTPS로 도달하고 Trustee Pod에 HTTP로 전달합니다.
사전 요구 사항
- 기밀 컨테이너 기능 게이트를 활성화했습니다.
- Confidential Compute attestation Operator를 설치했습니다.
프로세스
다음 명령을 실행하여 엣지 경로를 만듭니다.
oc create route edge --service=kbs-service --port kbs-port \ -n trustee-operator-system
$ oc create route edge --service=kbs-service --port kbs-port \ -n trustee-operator-systemCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고참고: 현재 유효한 CA 서명 인증서가 있는 경로만 지원됩니다. 자체 서명된 인증서가 있는 경로를 사용할 수 없습니다.
다음 명령을 실행하여
TRUSTEE_HOST변수를 설정합니다.TRUSTEE_HOST=$(oc get route -n trustee-operator-system kbs-service \ -o jsonpath={.spec.host})$ TRUSTEE_HOST=$(oc get route -n trustee-operator-system kbs-service \ -o jsonpath={.spec.host})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 경로를 확인합니다.
echo $TRUSTEE_HOST
$ echo $TRUSTEE_HOSTCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
kbs-service-trustee-operator-system.apps.memvjias.eastus.aroapp.io
kbs-service-trustee-operator-system.apps.memvjias.eastus.aroapp.ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow 피어 Pod 구성 맵의 이 값을 기록합니다.
4.4.3. 기밀성 컨테이너 기능 게이트 활성화 링크 복사링크가 클립보드에 복사되었습니다!
기밀 컨테이너 기능 게이트를 활성화해야 합니다.
프로세스
cc-feature-gate.yaml매니페스트 파일을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 구성 맵을 생성합니다.
oc apply -f cc-feature-gate.yaml
$ oc apply -f cc-feature-gate.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.4. 피어 Pod 구성 맵 업데이트 링크 복사링크가 클립보드에 복사되었습니다!
기밀 컨테이너의 피어 Pod 구성 맵을 업데이트해야 합니다.
Secure Boot를 true 로 설정하여 기본적으로 활성화합니다. 기본값은 false 이며 보안 위험을 나타냅니다.
프로세스
Azure 인스턴스에서 다음 값을 가져옵니다.
Azure 리소스 그룹을 검색하고 기록합니다.
AZURE_RESOURCE_GROUP=$(oc get infrastructure/cluster -o jsonpath='{.status.platformStatus.azure.resourceGroupName}') && echo "AZURE_RESOURCE_GROUP: \"$AZURE_RESOURCE_GROUP\""$ AZURE_RESOURCE_GROUP=$(oc get infrastructure/cluster -o jsonpath='{.status.platformStatus.azure.resourceGroupName}') && echo "AZURE_RESOURCE_GROUP: \"$AZURE_RESOURCE_GROUP\""Copy to Clipboard Copied! Toggle word wrap Toggle overflow Azure VNet 이름을 검색하고 기록합니다.
AZURE_VNET_NAME=$(az network vnet list --resource-group ${AZURE_RESOURCE_GROUP} --query "[].{Name:name}" --output tsv)$ AZURE_VNET_NAME=$(az network vnet list --resource-group ${AZURE_RESOURCE_GROUP} --query "[].{Name:name}" --output tsv)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 값은 Azure 서브넷 ID를 검색하는 데 사용됩니다.
Azure 서브넷 ID를 검색하고 기록합니다.
AZURE_SUBNET_ID=$(az network vnet subnet list --resource-group ${AZURE_RESOURCE_GROUP} --vnet-name $AZURE_VNET_NAME --query "[].{Id:id} | [? contains(Id, 'worker')]" --output tsv) && echo "AZURE_SUBNET_ID: \"$AZURE_SUBNET_ID\""$ AZURE_SUBNET_ID=$(az network vnet subnet list --resource-group ${AZURE_RESOURCE_GROUP} --vnet-name $AZURE_VNET_NAME --query "[].{Id:id} | [? contains(Id, 'worker')]" --output tsv) && echo "AZURE_SUBNET_ID: \"$AZURE_SUBNET_ID\""Copy to Clipboard Copied! Toggle word wrap Toggle overflow Azure NSS(Network Security Group) ID를 검색하고 기록합니다.
AZURE_NSG_ID=$(az network nsg list --resource-group ${AZURE_RESOURCE_GROUP} --query "[].{Id:id}" --output tsv) && echo "AZURE_NSG_ID: \"$AZURE_NSG_ID\""$ AZURE_NSG_ID=$(az network nsg list --resource-group ${AZURE_RESOURCE_GROUP} --query "[].{Id:id}" --output tsv) && echo "AZURE_NSG_ID: \"$AZURE_NSG_ID\""Copy to Clipboard Copied! Toggle word wrap Toggle overflow Azure 리전을 검색하고 기록합니다.
AZURE_REGION=$(az group show --resource-group ${AZURE_RESOURCE_GROUP} --query "{Location:location}" --output tsv) && echo "AZURE_REGION: \"$AZURE_REGION\""$ AZURE_REGION=$(az group show --resource-group ${AZURE_RESOURCE_GROUP} --query "{Location:location}" --output tsv) && echo "AZURE_REGION: \"$AZURE_REGION\""Copy to Clipboard Copied! Toggle word wrap Toggle overflow
다음 예에 따라
peer-pods-cm.yaml매니페스트 파일을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 워크로드에 인스턴스 크기가 정의되지 않은 경우
"Standard_DC2as_v5"값이 기본값입니다. 인스턴스 유형이 신뢰할 수 있는 환경을 지원하는지 확인합니다. 기본"Standard_DC2as_v5"값은 AMD SEV-SNP용입니다. TEE가 Intel TDX인 경우Standard_EC4eds_v5를 지정합니다. - 2
- Pod를 생성할 때 지정할 수 있는 모든 인스턴스 크기를 나열합니다. 이를 통해 더 적은 메모리와 더 적은 CPU 또는 대규모 워크로드의 인스턴스 크기가 필요한 워크로드에 대해 더 작은 인스턴스 크기를 정의할 수 있습니다. Intel TDX의 경우
"Standard_EC4eds_v5, Standard_EC8eds_v5, Standard_EC16eds_v5"를 지정합니다. - 3
- 검색한
AZURE_SUBNET_ID값을 지정합니다. - 4
- 검색한
AZURE_NSG_ID값을 지정합니다. - 5
- 선택 사항: 기본적으로 클러스터 인증 정보를 기반으로 Azure 이미지 ID를 사용하여
KataConfigCR을 실행할 때 이 값이 채워집니다. 자체 Azure 이미지를 생성하는 경우 올바른 이미지 ID를 지정합니다. - 6
- 검색한
AZURE_REGION값을 지정합니다. - 7
- 검색한
AZURE_RESOURCE_GROUP값을 지정합니다. - 8
- Trustee 경로의 호스트 이름을 지정합니다.
- 9
- 기본적으로 Secure Boot를 활성화하려면
true를 지정합니다.
다음 명령을 실행하여 구성 맵을 생성합니다.
oc apply -f peer-pods-cm.yaml
$ oc apply -f peer-pods-cm.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
peerpodconfig-ctrl-caa-daemon데몬 세트를 다시 시작합니다.oc set env ds/peerpodconfig-ctrl-caa-daemon \ -n openshift-sandboxed-containers-operator REBOOT="$(date)"
$ oc set env ds/peerpodconfig-ctrl-caa-daemon \ -n openshift-sandboxed-containers-operator REBOOT="$(date)"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.5. KataConfig 사용자 지정 리소스 삭제 링크 복사링크가 클립보드에 복사되었습니다!
명령줄을 사용하여 KataConfig CR(사용자 정의 리소스)을 삭제할 수 있습니다.
KataConfig CR을 삭제하면 클러스터에서 런타임 및 관련 리소스가 제거됩니다.
KataConfig CR을 삭제하면 작업자 노드가 자동으로 재부팅됩니다. 재부팅에는 10분에서 60분 이상 걸릴 수 있습니다. 재부팅 시간을 방해하는 요소는 다음과 같습니다.
- 더 많은 작업자 노드가 있는 대규모 OpenShift Container Platform 배포
- BIOS 및 Cryostat 유틸리티 활성화.
- SSD가 아닌 하드 드라이브에 배포합니다.
- 가상 노드가 아닌 베어 메탈과 같은 물리적 노드에 배포됩니다.
- 느린 CPU 및 네트워크입니다.
사전 요구 사항
-
OpenShift CLI(
oc)가 설치되어 있습니다. -
cluster-admin역할의 사용자로 클러스터에 액세스할 수 있어야 합니다.
프로세스
다음 명령을 실행하여
KataConfigCR을 삭제합니다.oc delete kataconfig example-kataconfig
$ oc delete kataconfig example-kataconfigCopy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift 샌드박스된 컨테이너 Operator는 클러스터에서 런타임을 활성화하기 위해 처음 생성된 모든 리소스를 제거합니다.
중요KataConfigCR을 삭제하면 모든 작업자 노드가 재부팅될 때까지 CLI가 응답하지 않습니다. 확인을 수행하기 전에 삭제 프로세스가 완료될 때까지 기다려야 합니다.다음 명령을 실행하여 사용자 정의 리소스가 삭제되었는지 확인합니다.
oc get kataconfig example-kataconfig
$ oc get kataconfig example-kataconfigCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
No example-kataconfig instances exist
No example-kataconfig instances existCopy to Clipboard Copied! Toggle word wrap Toggle overflow
클라우드 공급자를 사용하여 배포된 OpenShift 샌드박스 컨테이너를 제거하는 경우 모든 Pod를 삭제해야 합니다. 나머지 Pod 리소스로 인해 클라우드 공급자의 예기치 않은 요금이 발생할 수 있습니다.
4.4.6. KataConfig 사용자 지정 리소스 다시 생성 링크 복사링크가 클립보드에 복사되었습니다!
기밀 컨테이너를 위해 KataConfig CR(사용자 정의 리소스)을 다시 생성해야 합니다.
KataConfig CR을 생성하면 작업자 노드가 자동으로 재부팅됩니다. 재부팅에는 10분에서 60분 이상 걸릴 수 있습니다. 재부팅 시간을 방해하는 요소는 다음과 같습니다.
- 더 많은 작업자 노드가 있는 대규모 OpenShift Container Platform 배포
- BIOS 및 Cryostat 유틸리티 활성화.
- SSD가 아닌 하드 디스크 드라이브에 배포합니다.
- 가상 노드가 아닌 베어 메탈과 같은 물리적 노드에 배포됩니다.
- 느린 CPU 및 네트워크입니다.
사전 요구 사항
-
cluster-admin역할의 사용자로 클러스터에 액세스할 수 있어야 합니다.
프로세스
다음 예에 따라
example-kataconfig.yaml매니페스트 파일을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 선택 사항: 노드 레이블을 적용하여 특정 노드에
kata-remote를 설치한 경우 키와 값(예:cc: 'true')을 지정합니다.
다음 명령을 실행하여
KataConfigCR을 생성합니다.oc apply -f example-kataconfig.yaml
$ oc apply -f example-kataconfig.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 새로운
KataConfigCR이 생성되고 작업자 노드에kata-remote가 런타임 클래스로 설치됩니다.설치를 확인하기 전에
kata-remote설치가 완료되고 작업자 노드가 재부팅될 때까지 기다립니다.다음 명령을 실행하여 설치 진행 상황을 모니터링합니다.
watch "oc describe kataconfig | sed -n /^Status:/,/^Events/p"
$ watch "oc describe kataconfig | sed -n /^Status:/,/^Events/p"Copy to Clipboard Copied! Toggle word wrap Toggle overflow kataNodes아래의 모든 작업자의 상태가설치되고이유를 지정하지 않고InProgress조건이False이면 클러스터에kata-remote가 설치됩니다.다음 명령을 실행하여 데몬 세트를 확인합니다.
oc get -n openshift-sandboxed-containers-operator ds/peerpodconfig-ctrl-caa-daemon
$ oc get -n openshift-sandboxed-containers-operator ds/peerpodconfig-ctrl-caa-daemonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 런타임 클래스를 확인합니다.
oc get runtimeclass
$ oc get runtimeclassCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME HANDLER AGE kata kata 152m kata-remote kata-remote 152m
NAME HANDLER AGE kata kata 152m kata-remote kata-remote 152mCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.7. Trustee 인증 보안 생성 링크 복사링크가 클립보드에 복사되었습니다!
Trustee에 대한 인증 시크릿을 생성해야 합니다.
사전 요구 사항
-
OpenShift CLI(
oc)가 설치되어 있습니다. -
cluster-admin역할의 사용자로 클러스터에 액세스할 수 있어야 합니다.
프로세스
다음 명령을 실행하여 개인 키를 생성합니다.
openssl genpkey -algorithm ed25519 > privateKey
$ openssl genpkey -algorithm ed25519 > privateKeyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 공개 키를 생성합니다.
openssl pkey -in privateKey -pubout -out publicKey
$ openssl pkey -in privateKey -pubout -out publicKeyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 보안을 생성합니다.
oc create secret generic kbs-auth-public-key --from-file=publicKey -n trustee-operator-system
$ oc create secret generic kbs-auth-public-key --from-file=publicKey -n trustee-operator-systemCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 시크릿을 확인합니다.
oc get secret -n trustee-operator-system
$ oc get secret -n trustee-operator-systemCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.8. Trustee 구성 맵 생성 링크 복사링크가 클립보드에 복사되었습니다!
Trustee 서버를 구성하려면 구성 맵을 생성해야 합니다.
사전 요구 사항
- Trustee를 위한 경로를 생성했습니다.
프로세스
kbs-config-cm.yaml매니페스트 파일을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 구성 맵을 생성합니다.
oc apply -f kbs-config-cm.yaml
$ oc apply -f kbs-config-cm.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.9. 인증 정책 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 인증 정책 설정을 구성할 수 있습니다.
- 참조 값
하드웨어 플랫폼의 신뢰할 수 있는 다이제스트를 지정하여 RVPS(Reference Value Provider Service)에 대한 참조 값을 구성할 수 있습니다.
클라이언트는 실행 중인 소프트웨어, TEE(신뢰할 수 있는 실행 환경) 하드웨어 및 펌웨어에서 측정을 수집하고 클레임과 함께 Attestation Server에 견적을 제출합니다. 이러한 측정은 Trustee에 등록된 신뢰할 수 있는 다이제스트와 일치해야 합니다. 이 프로세스에서는 기밀 VM(CVM)이 예상 소프트웨어 스택을 실행 중이고 변조되지 않도록 합니다.
- 클라이언트의 시크릿
- 테스트된 클라이언트와 공유할 하나 이상의 시크릿을 생성해야 합니다.
- 리소스 액세스 정책
액세스할 리소스를 결정하려면 Trustee 정책 엔진에 대한 정책을 구성해야 합니다.
TEE 증명의 유효성을 결정하는 신뢰 정책 엔진과 인증 서비스 정책 엔진을 혼동하지 마십시오.
- 인증 정책
- 선택 사항: 자체 인증 정책을 생성하여 기본 인증 정책을 덮어쓸 수 있습니다.
- TDX용 인증서 캐싱 서비스 프로비저닝
TEE가 TDX(Intel Trust Domain Extensions)인 경우 프로비저닝 인증서 캐싱 서비스(PCCS)를 구성해야 합니다. PCCS는 프로비저닝 인증 키(PCK) 인증서를 검색하고 로컬 데이터베이스에 캐시합니다.
중요공용 Intel PCCS 서비스를 사용하지 마십시오. 온프레미스 또는 퍼블릭 클라우드에서 로컬 캐싱 서비스를 사용합니다.
프로세스
rvps-configmap.yaml매니페스트 파일을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 필요한 경우 하드웨어 플랫폼에 대해 신뢰할 수 있는 다이제스트를 지정합니다. 그렇지 않으면 비워 둡니다.
다음 명령을 실행하여 RVPS 구성 맵을 생성합니다.
oc apply -f rvps-configmap.yaml
$ oc apply -f rvps-configmap.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 예에 따라 인증된 클라이언트와 공유할 하나 이상의 시크릿을 생성합니다.
oc create secret generic kbsres1 --from-literal key1=<res1val1> \ --from-literal key2=<res1val2> -n trustee-operator-system
$ oc create secret generic kbsres1 --from-literal key1=<res1val1> \ --from-literal key2=<res1val2> -n trustee-operator-systemCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서
kbsres1시크릿에는 두 개의 항목(key1,key2)이 있으며, 이 항목은 Trustee 클라이언트가 검색합니다. 요구 사항에 따라 더 많은 시크릿을 추가할 수 있습니다.resourcepolicy-configmap.yaml매니페스트 파일을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 리소스 정책의 이름
policy.rego는 Trustee 구성 맵에 정의된 리소스 정책과 일치해야 합니다. - 2
- 리소스 정책은 Open Policy Agent 사양을 따릅니다. 이 예제에서는 TEE가 샘플 attester가 아닌 경우 모든 리소스를 검색할 수 있습니다.
다음 명령을 실행하여 리소스 정책 구성 맵을 생성합니다.
oc apply -f resourcepolicy-configmap.yaml
$ oc apply -f resourcepolicy-configmap.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 다음 예에 따라
attestation-policy.yaml매니페스트 파일을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 인증 정책은 Open Policy Agent 사양을 따릅니다. 이 예에서 attestation 정책은 테스트 보고서에 제공된 클레임을 RVPS 데이터베이스에 등록된 참조 값과 비교합니다. 인증 프로세스는 모든 값이 일치하는 경우에만 성공합니다.
다음 명령을 실행하여 인증 정책 구성 맵을 생성합니다.
oc apply -f attestation-policy.yaml
$ oc apply -f attestation-policy.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow TEE가 Intel TDX인 경우
tdx-config.yaml매니페스트 파일을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- PCCS URL을 지정합니다(예:
https://localhost:8081/sgx/certification/v4/).
다음 명령을 실행하여 TDX 구성 맵을 생성합니다.
oc apply -f tdx-config.yaml
$ oc apply -f tdx-config.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.10. KbsConfig 사용자 정의 리소스 생성 링크 복사링크가 클립보드에 복사되었습니다!
Trustee를 시작하려면 KbsConfig CR(사용자 정의 리소스)을 생성해야 합니다.
그런 다음 Trustee pod 및 pod 로그를 확인하여 구성을 확인합니다.
프로세스
kbsconfig-cr.yaml매니페스트 파일을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
KbsConfigCR을 생성합니다.oc apply -f kbsconfig-cr.yaml
$ oc apply -f kbsconfig-cr.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 실행하여 기본 프로젝트를 설정합니다.
oc project trustee-operator-system
$ oc project trustee-operator-systemCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 Pod를 확인합니다.
oc get pods -n trustee-operator-system
$ oc get pods -n trustee-operator-systemCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE trustee-deployment-8585f98449-9bbgl 1/1 Running 0 22m trustee-operator-controller-manager-5fbd44cd97-55dlh 2/2 Running 0 59m
NAME READY STATUS RESTARTS AGE trustee-deployment-8585f98449-9bbgl 1/1 Running 0 22m trustee-operator-controller-manager-5fbd44cd97-55dlh 2/2 Running 0 59mCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
POD_NAME환경 변수를 설정합니다.POD_NAME=$(oc get pods -l app=kbs -o jsonpath='{.items[0].metadata.name}' -n trustee-operator-system)$ POD_NAME=$(oc get pods -l app=kbs -o jsonpath='{.items[0].metadata.name}' -n trustee-operator-system)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 Pod 로그를 확인합니다.
oc logs -n trustee-operator-system $POD_NAME
$ oc logs -n trustee-operator-system $POD_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.11. 인증 프로세스 확인 링크 복사링크가 클립보드에 복사되었습니다!
테스트 Pod를 생성하고 시크릿을 검색하여 인증 프로세스를 확인할 수 있습니다.
이 절차는 인증이 작동하는지 확인하는 예입니다. 메모리 덤프를 사용하여 데이터를 캡처할 수 있으므로 표준 I/O에 민감한 데이터를 작성하지 마십시오. 메모리에 기록된 데이터만 암호화됩니다.
기본적으로 Pod VM 이미지에 포함된 에이전트 측 정책은 기밀 컨테이너 Pod에 대한 exec 및 로그 API를 비활성화합니다. 이 정책은 민감한 데이터가 표준 I/O에 기록되지 않도록 합니다.
테스트 시나리오에서는 Pod에 정책 주석을 추가하여 런타임에 제한을 덮어쓸 수 있습니다. 기술 프리뷰의 경우 런타임 정책 주석은 원격 테스트에서 확인하지 않습니다.
사전 요구 사항
- Trustee 서버와 테스트 Pod가 동일한 클러스터에서 실행되지 않는 경우 경로를 생성했습니다.
프로세스
verification-pod.yaml매니페스트 파일을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 이 pod 주석은 중요한 데이터가 표준 I/O에 기록되지 않도록 하는 정책을 재정의합니다.
다음 명령을 실행하여 Pod를 생성합니다.
oc create -f verification-pod.yaml
$ oc create -f verification-pod.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
ocp-cc-pod의 Bash 쉘에 연결합니다.oc exec -it ocp-cc-pod -- bash
$ oc exec -it ocp-cc-pod -- bashCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 Pod 시크릿을 가져옵니다.
curl http://127.0.0.1:8006/cdh/resource/default/kbsres1/key1
$ curl http://127.0.0.1:8006/cdh/resource/default/kbsres1/key1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
res1val1
res1val1Copy to Clipboard Copied! Toggle word wrap Toggle overflow Trustee 서버는 인증에 성공한 경우에만 시크릿을 반환합니다.