허용된 AMI를 사용하여 Amazon EC2에서 AMI 검색 및 사용 제어
AWS 계정의 사용자가 Amazon Machine Image(AMIs)를 검색하고 사용하는 것을 제어하려면 허용된 AMI 기능을 사용할 수 있습니다. 계정 내에서 표시하고 사용할 수 있도록 AMI가 충족해야 하는 기준을 지정합니다. 기준이 활성화되면 인스턴스를 시작하는 사용자는 지정된 기준을 준수하는 AMI만 볼 수 있습니다. 예를 들어 신뢰할 수 있는 AMI 공급자 목록을 기준으로 지정할 수 있으며 이러한 공급자의 AMI만 표시되고 사용할 수 있습니다.
허용된 AMI 설정을 활성화하기 전에 감사 모드를 활성화하여 표시되거나 표시되지 않고 사용할 수 있는 AMI를 미리 볼 수 있습니다. 이렇게 하면 계정의 사용자가 의도한 AMI만 보고 사용할 수 있도록 필요에 따라 기준을 세분화할 수 있습니다. 또한 describe-instance-image-metadata 명령을 실행하하여 지정된 기준을 충족하지 않는 AMI로 시작된 인스턴스를 찾을 수 있습니다. 이 정보는 기준을 준수하는 AMI를 사용하도록 시작 구성을 업데이트하거나(예: 시작 템플릿에서 다른 AMI 지정) 이러한 AMI를 허용하도록 기준을 조정하는 결정의 지침이 될 수 있습니다.
계정에서 직접 지정하거나 선언적 정책을 사용하여 계정 수준에서 허용된 AMI 설정을 지정합니다. 이러한 설정은 AMI 사용을 제어하려는 각 AWS 리전에서 구성되어야 합니다. 선언적 정책을 사용하면 여러 리전과 여러 계정에 동시에 설정을 적용할 수 있습니다. 선언적 정책을 사용 중인 경우 계정 내에서 직접 설정을 수정할 수 없습니다. 이 주제에서는 계정 내에서 직접 설정을 구성하는 방법을 설명합니다. 선언적 정책 사용에 대한 자세한 내용은 AWS Organizations 사용 설명서의 선언적 정책을 참조하세요.
참고
허용된 AMI 기능은 퍼블릭 AMI 또는 계정과 공유된 AMI의 검색 및 사용만 제어합니다. 계정이 소유한 AMI는 제한하지 않습니다. 설정한 기준과 관계없이 본인의 계정에서 생성된 AMI를 계정의 사용자가 항상 검색하고 사용할 수 있습니다.
허용된 AMI의 주요 이점
-
규정 준수 및 보안: 사용자는 지정된 기준을 충족하는 AMI만 검색하고 사용할 수 있으므로 규정을 준수하지 않는 AMI 사용의 위험이 줄어듭니다.
-
효율적인 관리: 허용되는 AMI의 수를 줄이면 다른 AMI를 더 쉽고 효율적으로 관리할 수 있습니다.
-
중앙 집중식 계정 수준 구현: 계정 내에서 직접 또는 선언적 정책을 통해 계정 수준에서 허용되는 AMI 설정을 구성합니다. 이를 통해 효율적인 중앙 집중식 방식으로 전체 계정에서 AMI 사용량을 제어할 수 있습니다.
허용된 AMI 작동 방식
계정에서 검색하고 사용할 수 있는 AMI를 제어하려면 AMI를 평가할 기준 세트를 정의합니다. 기준은 다음 다이어그램에서와 같이 하나 이상이 ImageCriterion으로 구성됩니다. 설명은 다이어그램 뒤에 나옵니다.
구성에는 세 가지 수준이 있습니다.
-
1 - 파라미터 값
-
다중 값 파라미터:
-
ImageProviders -
ImageNames -
MarketplaceProductCodes허용을 위해 AMI는 한 파라미터 내 임의 값과 일치할 수 있습니다.
예:
ImageProviders=amazonOR 계정111122223333OR 계정444455556666(파라미터 값에 대한 평가 로직은 다이어그램에 표시되지 않음).
-
-
단일 값 파라미터:
-
CreationDateCondition -
DeprecationTimeCondition
-
-
-
2 -
ImageCriterion-
AND 로직을 사용하여 여러 파라미터를 그룹화합니다.
-
허용을 위해 AMI는
ImageCriterion내 모든 파라미터와 일치해야 합니다. -
예:
ImageProviders=amazonANDCreationDateCondition= 300일 이하
-
-
3 -
ImageCriteria-
OR 로직으로 여러
ImageCriterion을 그룹화합니다. -
허용을 위해 AMI는 임의의
ImageCriterion과 일치할 수 있습니다. -
AMI가 평가되는 전체 구성을 구성합니다.
-
허용된 AMI 파라미터
ImageCriterion을 생성하도록 다음 파라미터를 구성할 수 있습니다.
ImageProviders-
허용되는 AMI를 제공하는 AMI 공급업체.
유효한 값은 다음과 같이 AWS 및 AWS 계정 ID로 정의되는 별칭입니다.
-
amazon– Amazon 또는 확인된 공급업체가 생성한 AMI를 식별하는 별칭 -
aws-marketplace– AWS Marketplace에서 확인된 공급업체가 생성한 AMI를 식별하는 별칭 -
aws-backup-vault- 논리적 에어 갭 백업 저장소 계정에 있는 AWS 백업 AMI를 식별하는 별칭 논리적 에어 갭 저장소 AWS 백업 기능을 사용하는 경우 이 별칭이 AMI 공급업체로 포함되어 있는지 확인하세요. -
AWS 계정 ID - 하나 이상의 12자리 AWS 계정 ID
-
none- 계정이 생성한 AMI만 검색하여 사용할 수 있음을 나타냅니다. 퍼블릭 또는 공유 AMI는 검색하고 사용할 수 없습니다. 지정하면 다른 기준을 지정할 수 없습니다.
-
ImageNames-
정확한 일치 또는 와일드카드(
?또는*)를 사용하여 허용되는 AMI의 이름. MarketplaceProductCodes-
허용되는 AMI의 AWS Marketplace 제품 코드.
CreationDateCondition-
허용되는 AMI의 최대 경과 기간.
DeprecationTimeCondition-
허용되는 AMI의 사용 중단 이후 최대 기간.
각 기준에 대한 유효한 값 및 제약 조건은 Amazon EC2 API 참조의 ImageCriterionRequest를 참조하세요.
허용된 AMI 구성
허용된 AMI의 핵심 구성은 허용된 AMI에 대한 기준을 정의하는 ImageCriteria 구성입니다. 다음 JSON 구조는 지정할 수 있는 파라미터를 보여줍니다.
{ "State": "enabled" | "disabled" | "audit-mode", "ImageCriteria" : [ { "ImageProviders": ["string",...], "MarketplaceProductCodes": ["string",...], "ImageNames":["string",...], "CreationDateCondition" : { "MaximumDaysSinceCreated": integer }, "DeprecationTimeCondition" : { "MaximumDaysSinceDeprecated": integer } }, ... }
ImageCriteria 예제
다음 ImageCriteria 예제에서는 4개의 ImageCriterion을 구성합니다. AMI는 이러한 ImageCriterion 중 하나와 일치하는 경우 허용됩니다. 기준이 평가되는 방식에 대한 자세한 정보는 기준 평가 방법 섹션을 참조하세요.
{ "ImageCriteria": [ // ImageCriterion 1: Allow AWS Marketplace AMIs with product code "abcdefg1234567890" { "MarketplaceProductCodes": [ "abcdefg1234567890" ] }, // ImageCriterion 2: Allow AMIs from providers whose accounts are // "123456789012" OR "123456789013" AND AMI age is less than 300 days { "ImageProviders": [ "123456789012", "123456789013" ], "CreationDateCondition": { "MaximumDaysSinceCreated":300} }, // ImageCriterion 3: Allow AMIs from provider whose account is "123456789014" // AND with names following the pattern "golden-ami-*" { "ImageProviders": [ "123456789014" ], "ImageNames": [ "golden-ami-*" ] }, // ImageCriterion 4: Allow AMIs from Amazon or verified providers // AND which aren't deprecated { "ImageProviders": [ "amazon" ], "DeprecationTimeCondition": { "MaximumDaysSinceDeprecated":0} } ] }
기준 평가 방법
다음 표에서는 AMI가 허용되는지 확인하는 평가 규칙을 설명하며, 각 수준에서 AND 또는 OR 연산자가 적용되는 방법을 보여줍니다.
| 평가 수준 | 연산자 | 허용되는 AMI가 되기 위한 요구 사항 |
|---|---|---|
ImageProviders, ImageNames 및 MarketplaceProductCodes의 파라미터 값 |
OR |
AMI는 각 파라미터 목록에서 하나 이상의 값과 일치해야 합니다. |
ImageCriterion |
AND |
AMI는 각 ImageCriterion에서 모든 파라미터와 일치해야 합니다. |
ImageCriteria |
OR |
AMI는 ImageCriterion 중 하나와 일치해야 합니다. |
위의 평가 규칙을 사용하여 ImageCriteria 예제에 적용하는 방법을 살펴보겠습니다.
-
ImageCriterion1: AWS Marketplace 제품 코드가abcdefg1234567890인 AMI 허용OR -
ImageCriterion2: 다음 두 기준을 모두 충족하는 AMI 허용:-
두
123456789012OR123456789013계정 중 하나가 소유함-
AND
-
-
지난 300일 이내에 생성됨
OR -
-
ImageCriterion3: 다음 두 기준을 모두 충족하는 AMI 허용:-
123456789014계정이 소유함-
AND
-
-
golden-ami-*패턴으로 이름이 지정됨
OR -
-
ImageCriterion4: 다음 두 기준을 모두 충족하는 AMI 허용:-
Amazon 또는 확인된 공급자가 게시(
amazon별칭으로 지정됨)-
AND
-
-
사용 중단되지 않음(사용 중단 기간이
0이므로 최대 일수)
-
Limits
ImageCriteria에는 최대한으로 다음이 포함될 수 있습니다.
-
10
ImageCriterion
각 ImageCriterion에는 다음이 포함될 수 있습니다.
-
ImageProviders의 경우 200개 값 -
ImageNames의 경우 50개 값 -
MarketplaceProductCodes의 경우 50개 값
제한의 예
이전 ImageCriteria 예제 사용:
-
4개의
ImageCriterion이 있습니다. 요청에 최대 6개를 더 추가하여 10개 한도에 도달할 수 있습니다. -
첫 번째
ImageCriterion에는MarketplaceProductCodes에 대한 값이 1개 있습니다. 이ImageCriterion에 최대 49개를 더 추가하여 50개 한도에 도달할 수 있습니다. -
두 번째
ImageCriterion에는ImageProviders에 대한 2개의 값이 있습니다. 이ImageCriterion에 최대 198개를 더 추가하여 200개 한도에 도달할 수 있습니다. -
세 번째
ImageCriterion에는ImageNames에 대한 값이 1개 있습니다. 이ImageCriterion에 최대 49개를 더 추가하여 50개 한도에 도달할 수 있습니다.
허용된 AMI 작업
허용된 AMI 기능에는 이미지 기준을 관리하기 위한 활성화, 비활성화 및 감사 모드의 세 가지 운영 상태가 있습니다. 이를 통해 이미지 기준을 활성화 또는 비활성화하거나 필요에 따라 검토할 수 있습니다.
활성화됨
허용된 AMI가 활성화된 경우:
-
ImageCriteria가 적용됩니다. -
허용된 AMI만 EC2 콘솔과 이미지를 사용하는 API(예: 이미지를 사용하는 다른 작업을 설명, 복사, 저장 또는 수행하는 API)에서 검색할 수 있습니다.
-
인스턴스는 허용된 AMI를 사용해서만 시작할 수 있습니다.
비활성
허용된 AMI가 비활성화된 경우:
-
ImageCriteria가 적용되지 않습니다. -
AMI 검색 또는 사용에는 제한이 없습니다.
감사 모드
감사 모드에서:
-
ImageCriteria가 적용되지만 AMI 검색 또는 사용에는 제한이 없습니다. -
EC2 콘솔의 각 AMI에 대해 허용된 이미지 필드에는 허용되는 AMI가 활성화된 경우 계정의 사용자가 AMI를 검색하고 사용할 수 있는지 여부를 나타내는 예 또는 아니요가 표시됩니다.
-
명령줄에서
describe-image작업에 대한 응답에는 허용된 AMI가 활성화된 경우 계정의 사용자가 AMI를 검색하고 사용할 수 있는지 여부를 나타내는"ImageAllowed": true또는"ImageAllowed": false가 포함됩니다. -
EC2 콘솔에서 AMI 카탈로그는 허용된 AMI가 활성화된 경우 계정의 사용자가 검색하거나 사용할 수 없는 AMI 옆에 허용되지 않음을 표시합니다.
허용된 AMI 구현 모범 사례
허용된 AMI를 구현할 때는 이러한 모범 사례를 고려하여 원활한 전환을 보장하고 AWS 환경의 잠재적 중단을 최소화할 수 있습니다.
-
감사 모드 활성화
먼저 감사 모드에서 허용된 AMI를 활성화합니다. 이 상태를 사용하면 실제로 액세스를 제한하지 않고 기준의 영향을 받는 AMI를 확인하여 위험 없는 평가 기간을 확보할 수 있습니다.
-
허용된 AMI 기준 설정
조직의 보안 정책, 규정 준수 요구 사항 및 운영 요구 사항에 맞는 AMI 공급업체를 신중하게 설정합니다.
참고
Amazon ECS 또는 Amazon EKS와 같은 AWS 관리형 서비스를 사용할 때는 AWS에서 생성한 AMI를 허용하도록
amazon별칭을 지정하는 것이 좋습니다. 이러한 서비스는 Amazon에서 게시한 AMI를 사용하여 인스턴스를 시작합니다.AMI에 대한
CreationDateCondition제한을 설정할 때는 주의해야 합니다. 지나치게 제한적인 날짜 조건(예: AMI가 5일 미만이어야 함)을 설정하면, AWS 또는 다른 공급자로부터 제공된 AMI가 지정된 기간 내에 업데이트되지 않을 경우 인스턴스 시작이 실패할 수 있습니다.더 나은 제어와 구체성을 위해
ImageNames와ImageProviders를 함께 사용하는 것이 좋습니다.ImageNames만 사용하면 AMI를 고유하게 식별하지 못할 수 있습니다. -
예상 비즈니스 프로세스에 미치는 영향 확인
콘솔 또는 CLI를 사용하여 지정된 기준을 충족하지 않는 AMI로 시작된 인스턴스를 식별할 수 있습니다. 이 정보는 기준을 준수하는 AMI를 사용하도록 시작 구성을 업데이트하거나(예: 시작 템플릿에서 다른 AMI 지정) 이러한 AMI를 허용하도록 기준을 조정하는 결정의 지침이 될 수 있습니다.
콘솔: ec2-instance-launched-with-allowed-ami AWS Config 규칙을 사용하여 실행 중이거나 중지된 인스턴스가 허용된 AMI 기준을 충족하는 AMI로 시작되었는지 확인합니다. AMI가 허용된 AMI 기준을 충족하지 않는 경우 규칙은 NON_COMPLIANT이고, 충족하는 경우 COMPLIANT입니다. 규칙은 허용된 AMI 설정이 활성화 또는 감사 모드로 설정된 경우에만 작동합니다.
CLI: describe-instance-image-metadata 명령을 실행하고 응답을 필터링하여 지정된 기준을 충족하지 않는 AMI로 시작된 인스턴스를 식별합니다.
콘솔 및 CLI 지침은 허용되지 않는 AMI에서 시작된 인스턴스 찾기 섹션을 참조하세요.
-
허용된 AMI 활성화
기준이 예상 비즈니스 프로세스에 부정적인 영향을 미치지 않을 것을 확인한 후 허용된 AMI를 활성화합니다.
-
인스턴스 시작 모니터링
애플리케이션 및 Amazon EMR, Amazon ECR, Amazon EKS, AWS Elastic Beanstalk와 같이 사용하는 AWS 관리형 서비스 전반의 AMI에서 인스턴스 시작을 계속 모니터링합니다. 예상치 못한 문제가 있는지 확인하고 허용된 AMI 기준을 필요한 만큼 조정합니다.
-
새 AMI 파일럿
현재 허용된 AMI 설정을 준수하지 않는 타사 AMI를 테스트하는 경우 AWS는 다음 접근 방식을 권장합니다.
-
별도의 AWS 계정 사용: 비즈니스 크리티컬 리소스에 액세스할 수 없는 계정을 생성합니다. 허용된 AMI 설정이 이 계정에서 활성화되어 있지 않은지 또는 테스트하려는 AMI가 명시적으로 허용되는지 확인하여 테스트할 수 있습니다.
-
다른 AWS 리전에서 테스트: 타사 AMI를 사용할 수 있지만 허용된 AMI 설정을 아직 활성화하지 않은 리전을 사용합니다.
이러한 접근 방식은 새로운 AMI를 테스트하는 동안 비즈니스 크리티컬 리소스의 보안을 유지하는 데 도움이 됩니다.
-
필수 IAM 권한
허용된 AMI 기능을 사용하려면 다음 IAM 권한이 필요합니다.
-
GetAllowedImagesSettings -
EnableAllowedImagesSettings -
DisableAllowedImagesSettings -
ReplaceImageCriteriaInAllowedImagesSettings