지정된 AMI를 참조하는 리소스 식별
AMI가 퍼블릭 또는 프라이빗인지, 누가 소유하는지 관계없이 지정된 Amazon Machine Image(AMI)를 참조하는 AWS 리소스를 식별할 수 있습니다. 이러한 가시성은 리소스가 최신 규정 준수 AMI를 사용하는지 확인하는 데 도움이 됩니다.
주요 이점
AMI 참조를 확인하면 다음과 같은 이점이 있습니다.
지원되는 리소스
AMI 참조는 다음에서 확인할 수 있습니다.
-
EC2 인스턴스
-
시작 템플릿
-
SSM 파라미터
-
Image Builder 이미지 레시피
-
Image Builder 컨테이너 레시피
AMI 참조 확인 작동 방식
기본 작업
AMI 참조 확인을 실행할 때 다음 작업을 수행합니다.
리소스 유형 선택
콘솔에서 스캔할 리소스 유형을 선택합니다.
CLI에서 다음 CLI 파라미터 중 하나 또는 둘 다를 사용하여 스캔할 리소스 유형을 지정합니다.
응답 범위 지정
ResourceTypes 파라미터를 사용하여 ResourceTypeOptions 값을 사용자 지정하면 EC2 인스턴스 및 시작 템플릿에 대한 응답의 범위를 지정할 수 있습니다. 콘솔과 IncludeAllResourceTypes 파라미터 모두 기본 옵션 값을 사용합니다. ResourceTypes과 IncludeAllResourceTypes를 함께 사용하면 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를 참조하는 리소스를 식별하려면
-
https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.
-
탐색 창에서 AMI를 선택합니다.
-
참조를 확인할 AMI를 하나 이상 선택합니다.
-
작업, AMI 사용, 참조된 리소스 보기를 선택합니다.
-
선택한 AMI를 참조하는 리소스 보기 페이지에서
-
리소스 유형에서 하나 이상의 리소스 유형을 선택합니다.
-
리소스 보기를 선택합니다.
-
선택한 AMI를 참조하는 리소스 섹션이 나타납니다. 목록에는 지정된 AMI를 참조하는 리소스가 표시됩니다. 각 행은 다음 정보를 제공합니다.
- 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')
}
)
}
)