Amazon EC2 인스턴스 증명
Amazon EC2 인스턴스 증명 (Amazon EC2 instance attestation)
증명(attestation)은 신뢰할 수 있는 소프트웨어, 드라이버, 부트 프로세스만 Amazon EC2 인스턴스에서 실행되고 있음을 어떤 당사자에게나 암호학적으로 증명할 수 있게 해주는 프로세스예요. Amazon EC2 인스턴스 증명은 Nitro Trusted Platform Module(NitroTPM)과 Attestable AMIs로 구동돼요.
출처: 문서
본문
증명의 첫 단계는 Attestable AMI를 빌드하고 그 AMI의 참조 측정값(reference measurements)을 결정하는 것이에요. Attestable AMI는 증명을 위해 처음부터 빌드된 AMI예요. 참조 측정값은 AMI에 포함한 모든 소프트웨어와 구성의 측정값이에요. 참조 측정값을 얻는 방법에 대한 자세한 내용은 Build the sample image description을 참고하세요.
다음 단계는 Attestable AMI로 Nitro-TPM이 활성화된 EC2 인스턴스를 시작하는 것이에요. 인스턴스를 시작한 후 NitroTPM 도구를 사용해 Attestation Document를 생성할 수 있어요. 그런 다음 Attestation Document의 EC2 인스턴스 실제 측정값을 참조 측정값과 비교해 인스턴스에 신뢰하는 소프트웨어와 구성이 있는지 확인할 수 있어요.
Attestable AMI 생성 과정에서 생성된 참조 측정값을 인스턴스의 Attestation Document에 포함된 측정값과 비교함으로써, 신뢰하는 소프트웨어와 코드만 인스턴스에서 실행 중인지 검증할 수 있어요.
AWS KMS와의 통합 (Integration with AWS KMS)
측정값 비교 과정을 더 쉽게 만들기 위해 AWS Key Management Service(AWS KMS)를 Attestation Document의 검증자(verifier)로 사용할 수 있어요. AWS KMS를 사용하면 Attestation Document를 제공해서 측정값이 참조 측정값과 일치할 때만 KMS 키로 특정 작업을 허용하는 증명 기반(attestation-based) KMS 키 정책을 만들 수 있어요. 이렇게 하려면 참조 측정값을 조건 키(condition key) 값으로 사용하는 특정 조건 키를 KMS 키 정책에 추가하고, 조건 키가 충족되면 허용되는 KMS 작업을 지정해요.
KMS 키로 KMS 작업을 수행할 때는 KMS 요청에 Attestation Document를 첨부해야 해요. 그러면 AWS KMS는 Attestation Document의 측정값을 KMS 키 정책의 참조 측정값과 비교해, 측정값이 일치할 때만 키 액세스를 허용해요.
또한 인스턴스에 대한 Attestation Document를 생성할 때, 여러분이 소유한 키 페어의 공개 키를 지정해야 해요. 지정된 공개 키는 Attestation Document에 포함돼요. AWS KMS가 Attestation Document를 검증하고 복호화(decryption) 작업을 허용하면, 응답을 반환하기 전에 Attestation Document에 포함된 공개 키로 응답을 자동으로 암호화해요. 이렇게 하면 응답이 Attestation Document에 포함된 공개 키와 일치하는 프라이빗 키로만 복호화되고 사용될 수 있어요.
이를 통해 신뢰할 수 있는 소프트웨어와 코드를 실행하는 인스턴스만 KMS 키를 사용해 암호화 작업을 수행할 수 있게 보장해요.
격리된 컴퓨팅 환경 증명 (Attesting isolated compute environments)
일반적으로 EC2 인스턴스를 격리된 컴퓨팅 환경(isolated compute environment)으로 빌드·구성할 수 있는데, 이는 대화형 액세스를 제공하지 않으며 관리자와 사용자가 EC2 인스턴스에서 처리되는 데이터에 접근할 메커니즘도 제공하지 않는 환경이에요. EC2 인스턴스 증명을 사용해 제3자나 서비스에 인스턴스가 격리된 컴퓨팅 환경으로 실행되고 있음을 증명할 수 있어요. 자세한 내용은 Isolate data from your own operators를 참고하세요.
예시는 격리된 컴퓨팅 환경을 만드는 sample Amazon Linux 2023 image description을 참고하세요. 이 샘플 이미지 설명을 시작점으로 사용해 요구 사항에 맞게 사용자 지정할 수 있어요.
AWS 공동 책임 모델 (AWS shared responsibility model)
NitroTPM과 Attestable AMIs는 EC2 인스턴스에서 증명을 설정·구성하는 데 도움이 되는 빌딩 블록이에요. AMI를 각자의 사용 사례에 맞게 구성하는 것은 여러분의 책임이에요. 자세한 내용은 AWS Shared Responsibility Model을 참고하세요.
항목 (Topics)
- Attestable AMIs
- Prepare AWS KMS for attestation
- Get the NitroTPM Attestation Document
- Integrating with AWS KMS
- Isolate data from your own operators