증명 가능한 AMI

증명 가능한 AMI (Attestable AMIs)

Attestable AMI는 모든 내용을 나타내는 암호화 해시가 있는 AMI(Amazon Machine Image)예요. 해시는 AMI 생성 과정에서 만들어지며, 애플리케이션·코드·부팅 과정을 포함한 해당 AMI의 전체 내용을 기반으로 계산돼요.

출처: 문서

본문

증명 가능한 상태 유지 (Maintaining an Attestable State)

인스턴스의 측정값(measurements)은 초기 부팅 상태를 기반으로 해요. 실행 후 인스턴스에 가해지고 재시작 후에도 유지되는 소프트웨어·코드 변경은 재시작 후 인스턴스의 측정값을 바꿔요. 측정값이 변경되면 Attestable AMI의 기준 측정값과 달라지고, 재시작 후 인스턴스는 더 이상 AWS KMS에 성공적으로 증명할 수 없어요. 따라서 Attestable AMI가 유용하려면 인스턴스가 재시작 후 원래 부팅 상태로 돌아가야 해요.

항상 원래 부팅 상태로 돌아가는 것은 재시작 후 인스턴스가 성공적으로 증명할 수 있게 보장해요. 재시작 후에도 인스턴스가 증명 가능하게 유지되도록 다음 유틸리티를 사용할 수 있어요.

  • erofs – Enhanced Read-Only File System. 루트 파일시스템이 읽기 전용으로 유지되게 해요. 이 유틸리티로 /etc, /run, /var를 포함한 파일시스템 쓰기는 메모리에 저장되어 인스턴스 재시작 시 사라지고, 루트 파일시스템이 원래 실행 상태로 남아요.
  • dm-verity – 읽기 전용 루트 파일시스템에 대한 무결성 보호를 제공해요. 파일시스템 블록의 해시를 계산해 커널 명령줄에 저장해요. 이를 통해 커널이 부팅 중 파일시스템 무결성을 검증할 수 있어요.

Attestable AMI 생성 요구사항

  • 기본 운영 체제 – Amazon Linux 2023 및 NixOS
  • 아키텍처 – x86_64 또는 arm64
  • TPM 지원 – NitroTPM을 활성화해야 해요.
  • 부팅 모드 – UEFI 부팅 모드를 활성화해야 해요.

Attestable AMI 만들기

Attestable AMI를 만들려면 KIWI NG(KIWI Next Generation)와 함께 Amazon Linux 2023을 사용해야 해요. Amazon Linux 2023은 KIWI NG로 Attestable AMI를 빌드하는 데 필요한 모든 소프트웨어와 유틸리티를 제공해요.

KIWI NG는 미리 구성된 Linux 기반 이미지를 빌드하는 오픈소스 도구예요. KIWI NG는 이미지 내용을 정의하는 XML 이미지 설명(image descriptions)을 사용해요. 이미지 설명은 기본 운영 체제, 소프트웨어, 커널 구성, 특정 사용 사례에 맞는 사용 준비된 AMI를 빌드하는 스크립트를 지정해요.

AMI 빌드 시간에 nitro-tpm-pcr-compute 유틸리티를 사용해 KIWI NG가 생성한 UKI(Unified Kernel Image)를 기반으로 기준 측정값을 생성해야 해요. AWS는 격리된 컴퓨팅 환경에서 EC2 인스턴스를 구성하는 데 필요한 모든 구성을 포함하는 샘플 Amazon Linux 2023 이미지 설명을 제공해요.

주제:

  • Attestable AMI 만들기
  • 샘플 이미지 설명 빌드
  • 샘플 Amazon Linux 2023 이미지 설명
  • 샘플 이미지 설명 커스터마이즈
  • PCR 측정값 계산

더 알아보기