신뢰할 수 있는 하드웨어 ID 관리
THIM(신뢰할 수 있는 하드웨어 ID 관리) 서비스는 Azure에 있는 모든 TEE(신뢰할 수 있는 실행 환경)에 대한 인증서의 캐시 관리를 처리하고 증명 솔루션에 대한 최소 기준을 적용하는 TCB(신뢰할 수 있는 컴퓨팅 기반) 정보를 제공합니다.
THIM & 증명 상호 작용
THIM은 ACC(Azure 기밀 컴퓨팅) 노드에 대한 Azure 보안 기준을 정의하고 TEE 공급자의 참고 자료를 캐시합니다. 캐시된 정보는 더 나아가 증명 서비스 및 ACC 노드에서 TEE의 유효성을 검사하는 데 사용할 수 있습니다. 아래 다이어그램은 증명 서비스 또는 노드, THIM 및 enclave 호스트 간의 상호 작용을 보여 줍니다.
질문과 대답
Microsoft Azure Attestation에서 사용하는 Azure 내부 캐싱 서비스 API의 “다음 업데이트” 날짜가 만료된 것으로 보입니다. 아직 작동 중이며 사용할 수 있나요?
“tcbinfo” 필드에는 TCB 정보가 포함됩니다. 기본적으로 THIM 서비스는 이전 tcbinfo를 제공합니다. Intel에서 최신 tcbinfo로 업데이트하면 최신 Intel SDK로 마이그레이션하지 않은 고객에게 증명 오류가 발생하고 중단이 발생할 수 있습니다.
그러나 Open Enclave SDK 및 Microsoft Azure Attestation은 nextUpdate 날짜를 보지 않으며 증명을 전달합니다.
Azure DCAP 라이브러리란?
Intel QPL(견적 공급자 라이브러리)을 대체하는 Azure DCAP(Data Center Attestation Primitives)는 THIM 서비스에서 직접 견적 생성 참고 자료 및 견적 유효성 검사 참고 자료를 페치합니다. THIM 서비스에서 직접 참고 자료를 페치하면 모든 Azure 호스트가 외부 종속성을 줄이기 위해 Azure 클라우드 내에서 쉽게 참고 자료를 사용할 수 있습니다. DCAP 라이브러리의 현재 권장 버전은 1.11.2입니다.
최신 DCAP 패키지는 어디에서 다운로드할 수 있나요?
- Ubuntu 20.04: https://packages.microsoft.com/ubuntu/20.04/prod/pool/main/a/az-dcap-client/az-dcap-client_1.11.2_amd64.deb
- Ubuntu 18.04: https://packages.microsoft.com/ubuntu/18.04/prod/pool/main/a/az-dcap-client/az-dcap-client_1.11.2_amd64.deb
- Windows: https://www.nuget.org/packages/Microsoft.Azure.DCAP/1.11.2
THIM과 Intel 간에 다른 기준이 있는 이유는 무엇인가요?
THIM과 Intel은 신뢰할 수 있는 컴퓨팅 기반에 대해 다른 기준 수준을 제공합니다. Intel은 최신 버전과 가장 우수한 버전을 보유하고 있는 것으로 간주될 수 있지만, 이는 소비자에게 모든 요구 사항이 충족되는지 확인하는 요구 사항을 부과하기 때문에 지정된 요구 사항을 업데이트하지 않으면 고객의 잠재적 파손으로 이어질 수 있습니다. THIM은 고객이 자신의 속도로 필요한 변경을 할 수 있도록 TCB 기준을 업데이트하는 느린 접근 방식을 취합니다. 이 방법은 이전 TCB 기준을 제공하지만 고객이 새 TCB 기준의 요구 사항을 충족할 수 없는 경우 중단되지 않도록 합니다. 이것이 THIM의 TCB 기준이 Intel과 다른 버전인 이유입니다. 고객에게 업데이트를 강요하고 작업 흐름의 우선순위를 다시 정해야 하는 중단을 야기시키는 것이 아니라, 고객에 초점을 맞추고 있으며 고객이 새로운 TCB 기준에 따라 부과되는 요구 사항을 자신의 속도로 충족할 수 있도록 지원하고자 합니다.
또한 THIM은 고객이 자신의 사용자 지정 기준을 선택할 수 있도록 하는 새로운 기능을 도입하고 있습니다. 이 기능을 통해 고객은 최신 TCB 또는 Intel에서 제공하는 이전 TCB를 사용할지 결정할 수 있으므로 적용할 TCB 버전이 특정 구성을 준수하는지 고객이 확인할 수 있습니다. 이 새로운 기능은 THIM 문서의 향후 반복에 반영됩니다.
Coffeelake를 사용하면 Intel PCK에서 직접 내 인증서를 가져올 수 있습니다. Icelake를 사용하여 THIM에서 인증서를 가져와야 하는 이유와 해당 인증서를 페치하기 위해 수행해야 하는 작업은 무엇인가요?
인증서는 플랫폼 매니페스트 및 간접 등록을 사용하여 THIM 서비스에서 페치 및 캐시됩니다. 따라서 키 캐싱 정책은 지정된 플랫폼에 대한 플랫폼 루트 키를 저장하지 않도록 설정됩니다. VM 내부에서 Intel 서비스에 대한 직접 호출은 실패할 것으로 예상됩니다.
인증서를 검색하려면 Intel QPL을 대체하는 Azure DCAP 라이브러리 를 설치해야 합니다. 이 라이브러리는 페치 요청을 Azure 클라우드에서 실행되는 THIM 서비스로 전달합니다. 최신 DCAP 패키지를 다운로드하는 경우 다음을 참조 하세요. 최신 DCAP 패키지는 어디에서 다운로드할 수 있나요?
CVM(기밀 가상 머신)에서 참고 자료를 요청하려면 어떻게 해야 하나요?
VCEK 인증서 및 인증서 체인을 포함하는 AMD 참고 자료를 요청하려면 CVM 게스트에서 다음 샘플을 사용합니다. 이 담보 및 원본 위치에 대한 자세한 내용은 버전이 지정된 VCEK(Chip 인증 키) 인증서 및 KDS 인터페이스 사양을 참조하세요.
URI 매개 변수
GET "http://169.254.169.254/metadata/THIM/amd/certification"
요청 본문
Name | 형식 | 설명 |
---|---|---|
메타데이터 | 부울 | True로 설정하면 참고 자료를 반환할 수 있습니다. |
샘플 요청
curl GET "http://169.254.169.254/metadata/THIM/amd/certification" -H "Metadata: true”
응답
Name | 설명 |
---|---|
200 정상 | JSON 형식 내의 http 본문에 사용 가능한 참고 자료가 나열됩니다. JSON의 키에 대한 자세한 내용은 정의를 참조하세요. |
기타 상태 코드 | 작업이 실패한 이유를 설명하는 오류 응답 |
정의
키 | 설명 |
---|---|
VcekCert | RFC 5280에 정의된 X.509v3 인증서입니다. |
tcbm | 신뢰할 수 있는 컴퓨팅 기반 |
certificateChain | AMD SEV 키(ASK) 및 ARK(AMD 루트 키) 인증서 포함 |
CVM(기밀 가상 머신) 노드의 AKS(Azure Kubernetes Service) 컨테이너에서 AMD 담보를 요청할 어떻게 할까요? 있나요?
기밀 컨테이너에서 AMD 담보를 요청하는 단계를 따릅니다.
먼저 CVM 모드에서 AKS 클러스터를 만들거나 기존 클러스터에 CVM 노드 풀을 추가합니다.
- CVM 노드에서 AKS 클러스터를 만듭니다.
- CVM 지원 지역 중 하나에서 리소스 그룹을 만듭니다.
az group create --resource-group <RG_NAME> --location <LOCATION>
- 리소스 그룹에 하나의 CVM 노드가 있는 AKS 클러스터를 만듭니다.
az aks create --name <CLUSTER_NAME> --resource-group <RG_NAME> -l <LOCATION> --node-vm-size Standard_DC4as_v5 --nodepool-name <POOL_NAME> --node-count 1
- 클러스터에 연결하도록 kubectl을 구성합니다.
az aks get-credentials --resource-group <RG_NAME> --name <CLUSTER_NAME>
- 기존 AKS 클러스터에 CVM 노드 풀을 추가합니다.
az aks nodepool add --cluster-name <CLUSTER_NAME> --resource-group <RG_NAME> --name <POOL_NAME > --node-vm-size Standard_DC4as_v5 --node-count 1
- kubectl get 명령을 사용하여 클러스터에 대한 연결을 확인합니다. 이 명령은 클러스터 노드 목록을 반환합니다.
kubectl get nodes
다음 출력 예는 이전 단계에서 만들어진 단일 노드를 보여 줍니다. 노드 상태가 준비인지 확인합니다.
이름 상태 ROLES AGE VERSION aks-nodepool1-31718369-0 준비 에이전트 6m44s v1.12.8 - CVM 노드에서 AKS 클러스터를 만듭니다.
AKS 클러스터가 만들어지면 다음 콘텐츠가 포함된 curl.yaml 파일을 만듭니다. THIM 엔드포인트에서 AMD 담보를 가져오기 위해 curl 컨테이너를 실행하는 작업을 정의합니다. Kubernetes 작업에 대한 자세한 내용은 Kubernetes 설명서를 참조하세요.
curl.yaml
apiVersion: batch/v1 kind: Job metadata: name: curl spec: template: metadata: labels: app: curl spec: nodeSelector: kubernetes.azure.com/security-type: ConfidentialVM containers: - name: curlcontainer image: alpine/curl:3.14 imagePullPolicy: IfNotPresent args: ["-H", "Metadata:true", "http://169.254.169.254/metadata/THIM/amd/certification"] restartPolicy: "Never"
인수
속성 형식 설명 메타데이터 부울 담보를 반환할 수 있도록 True로 설정 curl.yaml을 적용하여 작업을 실행합니다.
kubectl apply -f curl.yaml
Pod가 작업을 완료할 때까지 확인하고 기다립니다.
kubectl get pods
응답 예제
이름 준비 상태 Restarts 연령 Curl-w7nt8 0/1 완료됨 0 72 s 다음 명령을 실행하여 작업 로그를 가져와서 작동하는지 확인합니다. 성공적인 출력에는 vcekCert, tcbm 및 certificateChain이 포함되어야 합니다.
kubectl logs job/curl
다음 단계
- Azure Attestation 설명서에 대해 자세히 알아보기
- Azure 기밀 컴퓨팅에 대해 자세히 알아보기