지정된 AMI를 참조하는 리소스 식별 - Amazon Elastic Compute Cloud

지정된 AMI를 참조하는 리소스 식별

AMI가 퍼블릭 또는 프라이빗인지, 누가 소유하는지 관계없이 지정된 Amazon Machine Image(AMI)를 참조하는 AWS 리소스를 식별할 수 있습니다. 이러한 가시성은 리소스가 최신 규정 준수 AMI를 사용하는지 확인하는 데 도움이 됩니다.

주요 이점

AMI 참조를 확인하면 다음과 같은 이점이 있습니다.

  • 계정의 AMI 사용을 감사합니다.

  • 특정 AMI가 참조되는 위치를 확인합니다.

  • 최신 AMI를 참조하도록 리소스를 업데이트하여 규정 준수를 유지합니다.

 

지원되는 리소스

AMI 참조는 다음에서 확인할 수 있습니다.

  • EC2 인스턴스

  • 시작 템플릿

  • SSM 파라미터

  • Image Builder 이미지 레시피

  • Image Builder 컨테이너 레시피

AMI 참조 확인 작동 방식

기본 작업

AMI 참조 확인을 실행할 때 다음 작업을 수행합니다.

  • 확인할 AMI를 지정합니다.

  • 스캔할 리소스 유형을 선택합니다.

  • 지정된 AMI를 참조하는 리소스의 목록을 받습니다.

리소스 유형 선택

콘솔에서 스캔할 리소스 유형을 선택합니다.

CLI에서 다음 CLI 파라미터 중 하나 또는 둘 다를 사용하여 스캔할 리소스 유형을 지정합니다.

  • IncludeAllResourceTypes: 지원되는 리소스 유형을 모두 스캔합니다.

  • ResourceTypes: 지정된 리소스 유형을 스캔합니다.

응답 범위 지정

ResourceTypes 파라미터를 사용하여 ResourceTypeOptions 값을 사용자 지정하면 EC2 인스턴스 및 시작 템플릿에 대한 응답의 범위를 지정할 수 있습니다. 콘솔과 IncludeAllResourceTypes 파라미터 모두 기본 옵션 값을 사용합니다. ResourceTypesIncludeAllResourceTypes를 함께 사용하면 ResourceTypes 옵션 값이 기본값보다 우선합니다.

기본값은 다음과 같습니다.

리소스 유형 범위 지정 옵션(OptionName) 용도 OptionValue 및 콘솔의 기본값
EC2 인스턴스 state-name 인스턴스 상태를 기준으로 필터링 pending, running, shutting-down, terminated, stopping, stopped(모든 상태)
시작 템플릿 version-depth 확인할 시작 템플릿 버전 수를 지정(최신 버전부터 시작) 10(최신 버전)

필수 IAM 권한

DescribeImageReferences API를 사용하여 지정된 AMI를 참조하는 리소스를 식별하려면 리소스를 설명할 수 있는 다음 IAM 권한이 필요합니다.

  • ec2:DescribeInstances

  • ec2:DescribeLaunchTemplates

  • ec2:DescribeLaunchTemplateVersions

  • ssm:DescribeParameters

  • ssm:GetParameters

  • imagebuilder:ListImageRecipes

  • imagebuilder:ListContainerRecipes

  • imagebuilder:GetContainerRecipe

DescribeImageReferences API 사용을 위한 예제 IAM 정책

다음 예제 정책은 EC2 인스턴스, 시작 템플릿, Systems Manager 파라미터, Image Builder 이미지 레시피 및 Image Builder 컨테이너 레시피를 설명할 수 있는 권한을 포함하는 DescribeImageReferences API 사용 권한을 부여합니다.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:DescribeImageReferences", "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:DescribeLaunchTemplates", "ec2:DescribeLaunchTemplateVersions", "ssm:DescribeParameters", "ssm:GetParameters", "imagebuilder:ListImageRecipes", "imagebuilder:ListContainerRecipes", "imagebuilder:GetContainerRecipe" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": [ "ec2-images.amazonaws.com" ] } } } ] }
중요

정책을 직접 생성하는 대신 AWS 관리형 정책 AmazonEC2ImageReferencesAccessPolicy를 사용하는 것이 좋습니다. 필요한 권한만 제공하는 사용자 지정 IAM 정책을 생성하려면 시간과 전문 지식이 필요하며 새 리소스 유형을 사용할 수 있게 되면 업데이트가 필요합니다.

AmazonEC2ImageReferencesAccessPolicy 관리형 정책:

  • DescribeImageReferences API를 사용하는 데 필요한 모든 권한(EC2 인스턴스, 시작 템플릿, Systems Manager 파라미터, Image Builder 컨테이너 및 이미지 레시피를 설명할 수 있는 권한 포함)을 부여합니다.

  • 새 리소스 유형을 사용할 수 있게 되면 자동으로 지원합니다(IncludeAllResourceTypes 파라미터를 사용할 때 특히 중요함).

AmazonEC2ImageReferencesAccessPolicy 정책을 IAM 자격 증명(사용자, 그룹, 역할)에 연결할 수 있습니다.

이 정책에 포함된 권한을 보려면 AWS 관리형 정책 참조에서 AmazonEC2ImageReferencesAccessPolicy를 참조하세요.

AMI 참조를 확인하는 단계

다음 절차에 따라 지정된 AMI를 참조하는 AWS 리소스를 식별합니다.

Console
지정된 AMI를 참조하는 리소스를 식별하려면
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 AMI를 선택합니다.

  3. 참조를 확인할 AMI를 하나 이상 선택합니다.

  4. 작업, AMI 사용, 참조된 리소스 보기를 선택합니다.

  5. 선택한 AMI를 참조하는 리소스 보기 페이지에서

    1. 리소스 유형에서 하나 이상의 리소스 유형을 선택합니다.

    2. 리소스 보기를 선택합니다.

  6. 선택한 AMI를 참조하는 리소스 섹션이 나타납니다. 목록에는 지정된 AMI를 참조하는 리소스가 표시됩니다. 각 행은 다음 정보를 제공합니다.

    • AMI ID - 참조된 AMI의 ID입니다.

    • 리소스 유형 - AMI를 참조하는 리소스의 리소스 유형입니다.

    • 리소스 ID - AMI를 참조하는 리소스의 ID입니다.

AWS CLI
특정 리소스 유형의 AMI 참조를 확인하려면

describe-image-references 명령을 --resource-types 파라미터와 함께 사용합니다. 다음 예제에서는 EC2 인스턴스(인스턴스 상태별 범위 지정), 시작 템플릿(가장 최근의 시작 템플릿 버전 20개로 범위 지정) 및 기타 특정 리소스 유형을 확인합니다.

aws ec2 describe-image-references \ --image-ids ami-0abcdef1234567890 ami-1234567890abcdef0 \ --resource-types \ 'ResourceType=ec2:Instance,ResourceTypeOptions=[{OptionName=state-name,OptionValues=[running,pending]}]' \ 'ResourceType=ec2:LaunchTemplate,ResourceTypeOptions=[{OptionName=version-depth,OptionValues=[20]}]' \ 'ResourceType=ssm:Parameter' \ 'ResourceType=imagebuilder:ImageRecipe' \ 'ResourceType=imagebuilder:ContainerRecipe'

출력의 예시는 다음과 같습니다.

{ "ImageReferences": [ { "ImageId": "ami-0abcdef1234567890", "ResourceType": "ec2:Instance", "Arn": "arn:aws:ec2:us-east-1:123456789012:instance/i-1234567890abcdef0" }, { "ImageId": "ami-1234567890abcdef0", "ResourceType": "ec2:LaunchTemplate", "Arn": "arn:aws:ec2:us-east-1:123456789012:launch-template/lt-1234567890abcdef0" } ] }
지원되는 모든 리소스 유형에 대한 AMI 참조를 확인하려면

describe-image-references 명령을 --include-all-resource-types 파라미터와 함께 사용합니다.

aws ec2 describe-image-references \ --image-ids ami-0abcdef1234567890 ami-1234567890abcdef0 \ --include-all-resource-types
지원되는 모든 리소스 유형 및 특정 옵션에 대한 AMI 참조를 확인하려면

describe-image-references 명령을 --include-all-resource-types--resource-types 파라미터와 함께 사용합니다. 이 예제에서는 EC2 인스턴스의 응답 범위를 실행 중 또는 보류 중 인스턴스로 조정하면서 모든 리소스 유형을 확인합니다.

aws ec2 describe-image-references \ --image-ids ami-0abcdef1234567890 ami-1234567890abcdef0 \ --include-all-resource-types \ --resource-types 'ResourceType=ec2:Instance,ResourceTypeOptions=[{OptionName=state-name,OptionValues=[running,pending]}]'
PowerShell
특정 리소스 유형의 AMI 참조를 확인하려면

Get-EC2ImageReference cmdlet을 -ResourceType 파라미터와 함께 사용합니다. 다음 예제에서는 EC2 인스턴스(인스턴스 상태별 범위 지정), 시작 템플릿(가장 최근의 시작 템플릿 버전 20개로 범위 지정) 및 기타 특정 리소스 유형을 확인합니다.

Get-EC2ImageReference ` -ImageId 'ami-0abcdef1234567890', 'ami-1234567890abcdef0' ` -ResourceType @( @{ ResourceType = 'ec2:Instance' ResourceTypeOptions = @( @{ OptionName = 'state-name' OptionValues = @('running', 'pending') } ) }, @{ ResourceType = 'ec2:LaunchTemplate' ResourceTypeOptions = @( @{ OptionName = 'version-depth' OptionValues = @('20') } ) }, @{ ResourceType = 'ssm:Parameter' }, @{ ResourceType = 'imagebuilder:ImageRecipe' }, @{ ResourceType = 'imagebuilder:ContainerRecipe' } )
지원되는 모든 리소스 유형에 대한 AMI 참조를 확인하려면

Get-EC2ImageReference cmdlet을 -IncludeAllResourceTypes 파라미터와 함께 사용합니다.

Get-EC2ImageReference ` -ImageId 'ami-0abcdef1234567890', 'ami-1234567890abcdef0' ` -IncludeAllResourceTypes
지원되는 모든 리소스 유형 및 특정 옵션에 대한 AMI 참조를 확인하려면

Get-EC2ImageReference cmdlet을 -IncludeAllResourceTypes-ResourceType 파라미터와 함께 사용합니다. 이 예제에서는 EC2 인스턴스의 응답 범위를 실행 중 또는 보류 중 인스턴스로 조정하면서 모든 리소스 유형을 확인합니다.

Get-EC2ImageReference ` -ImageId 'ami-0abcdef1234567890', 'ami-1234567890abcdef0' ` -IncludeAllResourceTypes ` -ResourceType @( @{ ResourceType = 'ec2:Instance' ResourceTypeOptions = @( @{ OptionName = 'state-name' OptionValues = @('running', 'pending') } ) } )