AMI 빌드 모범 사례 - AWS Marketplace

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AMI 빌드 모범 사례

이 주제에서는 에서 사용할 Amazon 머신 이미지 (AMI) 를 구축하는 데 도움이 되는 몇 가지 모범 사례와 AWS Marketplace참조를 제공합니다. 작성 및 제출 대상 AMI는 모든 AWS Marketplace 제품 정책을 AWS Marketplace 준수해야 합니다.

재판매 권한 확보

무료로 제공되지 않는 Linux 배포판에 대한 재판매 권한을 확보할 책임은 귀하에게 있습니다. 단, AWS Amazon Linux, RHEL, SUSE 및 Windows AMI는 예외입니다.

AMI 작성

AMI 빌드에 대한 다음 지침을 따릅니다.

  • AMI가 루트 로그인 비활성화를 비롯한 모든 AWS Marketplace 정책을 준수하는지 확인하십시오.

  • 미국 동부(버지니아 북부) 리전에서 AMI를 생성합니다.

  • AWS Marketplace와 같이 신뢰할 수 있고 평판이 좋은 출처에서 제공하며 수명 주기가 분명히 정의되고 잘 유지되는 기존의 Amazon Elastic Block Store(Amazon EBS) 기반 AMI에서 제품을 생성합니다.

  • 대부분의 up-to-date 운영 체제, 패키지 및 소프트웨어를 사용하여 AMI를 구축하십시오.

  • 모든 AMI는 HVM(하드웨어 가상 머신) 가상화 및 64비트 아키텍처를 사용하는 퍼블릭 AMI로 시작해야 합니다.

  • AMI 개발, 업데이트, 리퍼블리싱을 위한 반복적인 프로세스를 개발합니다.

  • 모든 버전과 제품에서 일관성 있는 운영 체제(OS) 사용자 이름을 사용합니다. ec2-user를 권장합니다.

  • 최종 AMI에서 실행 중인 인스턴스를 원하는 최종 사용자 경험으로 구성하고 모든 설치 방법, 기능 및 성능을 테스트한 후 AWS Marketplace에 제출합니다.

  • 다음과 같이 포트 설정을 확인합니다.

    • Linux 기반 AMI - 유효한 SSH 포트가 열려 있는지 확인합니다. 기본 SSH 포트는 22입니다.

    • Windows 기반 AMI - RDP 포트가 열려 있는지 확인합니다. 기본 RDP 포트는 3389입니다. 또한 WinRM 포트(기본적으로 5985)는 10.0.0.0/16 및 10.2.0.0/16으로 열려 있어야 합니다.

AMI 생성에 대한 자세한 내용은 다음 리소스를 참조하세요.

Amazon EC2 사용 설명서에서 자체 AMI 생성

Amazon EC2 사용 설명서에서 사용자 지정 Windows AMI 생성

EBS 기반 인스턴스에서 Amazon Machine Image(AMI)를 생성하려면 어떻게 해야 합니까?

Amazon Linux AMI

Amazon EC2 인스턴스 유형인스턴스 유형

다음을 위한 AMI 준비 및 보안 AWS Marketplace

보안 AMI 생성 시 다음 지침을 따르는 것이 좋습니다.

  • Amazon EC2 사용 설명서의 공유 Linux AMI에 대한 지침을 사용하십시오.

  • 최소 설치로 배포하도록 AMI를 설계하여 공격 대상 영역을 축소합니다. 필요 없는 서비스와 프로그램을 비활성화하거나 제거합니다.

  • 가능하면 네트워크 트래픽에 end-to-end 암호화를 사용하십시오. 예를 들어 Secure Socket Layer(SSL)를 사용하여 귀사와 구매자 간 HTTP 세션을 보호합니다. 서비스에서 유효한 및 up-to-date 인증서만 사용하는지 확인하세요.

  • AMI 제품에 새 버전을 추가할 때, 인스턴스에 대한 인바운드 트래픽 액세스를 제어하는 보안 그룹을 구성합니다. 서비스의 필수 기능을 제공하는 데 필요한 최소한의 포트 세트에만 액세스를 허용하도록 보안 그룹이 구성되도록 하십시오. 필요한 소스 IP 주소 범위와 최소한의 포트 세트에만 관리 액세스를 허용합니다. AMI 제품에 새 버전을 추가하는 방법에 대한 자세한 내용은 새 버전 추가 섹션을 참조하세요.

  • 정기적으로 AWS 컴퓨팅 환경을 대상으로 침투 테스트를 수행하거나 타사를 고용하여 이러한 테스트를 대신 수행하는 것을 고려해 보십시오. 침투 테스트 요청 양식을 포함한 자세한 내용은 AWS 침투 테스트를 참조하세요.

  • 웹 애플리케이션의 10대 취약성에 주의하며 애플리케이션을 빌드합니다. 자세한 내용은 Open Web Application Security Project (OWASP) - Top 10 Web Application Security Risks를 참조하세요. 새로운 인터넷 취약성이 발견되면 AMI에 제공되는 모든 웹 애플리케이션을 즉시 업데이트합니다. 이 정보가 포함된 리소스의 예로는 SecurityFocusNIST 국가 취약성 데이터베이스가 있습니다.

보안과 관련된 자세한 내용은 다음 리소스를 참조하세요.

AMI를 스캔하여 게시 요구 사항 확인

AMI를 새 제품 또는 새 버전으로 제출하기 전에 셀프 서비스 검사를 사용하면 AMI를 확인하는 데 도움이 됩니다. 셀프 서비스 스캐너는 패치가 적용되지 않은 일반적인 취약점 및 노출(CVE)이 있는지 확인하고 보안 모범 사례를 준수하는지 확인합니다. 자세한 내용은 다음을 위한 AMI 준비 및 보안 AWS Marketplace 섹션을 참조하세요.

의 AWS Marketplace Management Portal자산 메뉴에서 Amazon 머신 이미지를 선택합니다. AMI 추가를 선택하여 스캔 프로세스를 시작합니다. 이 페이지로 돌아가면 AMI의 스캔 상태를 볼 수 있습니다.

참고

AMI에 대한 AWS Marketplace 액세스 권한을 부여하는 방법에 대한 자세한 내용은 을 참조하십시오AMI에 AWS Marketplace 대한 액세스 권한 부여.

AWS Marketplace AMI에서 소프트웨어가 실행되고 있는지 확인

소프트웨어가 AMI 제품에서 생성된 Amazon EC2 인스턴스에서 실행되고 있는지 런타임에 확인하려는 경우가 있습니다.

Amazon EC2 인스턴스가 AMI 제품에서 생성되었는지 확인하려면 Amazon EC2에 내장된 인스턴스 메타데이터 서비스를 사용합니다. 다음 단계를 따라 검증을 수행할 수 있습니다. 메타데이터 서비스 사용에 대한 자세한 내용은 Amazon Elastic Compute Cloud 사용 설명서인스턴스 메타데이터 및 사용자 데이터를 참조하세요.

  1. 인스턴스 자격 증명 문서 획득

    실행 중인 각 인스턴스에는 인스턴스에서 액세스할 수 있는 자격 증명 문서가 있으며, 이 문서는 인스턴스 자체에 대한 데이터를 제공합니다. 다음 예제는 인스턴스에서 curl을 사용하여 인스턴스 자격 증명 문서를 검색하는 방법을 보여줍니다.

    curl http://169.254.169.254/latest/dynamic/instance-identity/document { "accountId" : "0123456789", "architecture" : "x86_64", "availabilityZone" : "us-east-1e", "billingProducts" : null, "devpayProductCodes" : null, "marketplaceProductCodes" : [ "0vg0000000000000000000000" ], "imageId" : "ami-0123456789abcdef1", "instanceId" : "i-0123456789abcdef0", "instanceType" : "t2.medium", "kernelId" : null, "pendingTime" : "2020-02-25T20:23:14Z", "privateIp" : "10.0.0.2", "ramdiskId" : null, "region" : "us-east-1", "version" : "2017-09-30" }
  2. 인스턴스 자격 증명 문서 확인

    서명을 사용하여 인스턴스 자격 증명이 올바른지 확인할 수 있습니다. 이 프로세스에 대한 자세한 내용은 Amazon Elastic Compute Cloud 사용 설명서 인스턴스 자격 증명 문서를 참조하세요.

  3. 제품 코드 확인

    게시할 AMI 제품을 처음으로 제출하면 AWS Marketplace에서 제품에 제품 코드를 할당합니다. 인스턴스 자격 증명 문서의 marketplaceProductCodes 필드를 확인하여 제품 코드를 확인할 수도 있고, 메타데이터 서비스에서 직접 제품 코드를 가져올 수도 있습니다.

    curl http://169.254.169.254/latest/meta-data/product-codes 0vg0000000000000000000000

    제품 코드가 AMI 제품 코드와 일치하면 인스턴스가 제품에서 생성된 것입니다.

인스턴스 자격 증명 문서의 다른 정보(예: instanceId 및 인스턴스 privateIp)를 확인하려는 경우도 있습니다.