Allowed AMIs 설정 관리하기
Allowed AMIs 설정 관리하기
Allowed AMIs(허용 AMI) 설정을 관리할 수 있어요. 이 설정은 계정별·리전별로 적용됩니다. 이 글에서는 Allowed AMIs 활성화, 기준(criteria) 지정, 비활성화, 현재 상태 조회, 기준에 맞는 AMI 찾기, 그리고 허용되지 않은 AMI로 시작된 인스턴스 찾기까지 모두 다룰게요.
출처: 문서
본문
Allowed AMIs 설정을 관리할 수 있어요. 이 설정은 리전별·계정별로 적용됩니다.
- Allowed AMIs 활성화
- Allowed AMIs 기준 설정
- Allowed AMIs 비활성화
- Allowed AMIs 기준 조회
- 허용된 AMI 찾기
- 허용되지 않은 AMI로 시작된 인스턴스 찾기
Allowed AMIs 활성화하기 (Enable Allowed AMIs)
Allowed AMIs를 활성화하고 기준을 지정할 수 있어요. 실제로 액세스를 제한하지 않고 기준의 영향을 확인할 수 있는 **감사 모드(audit mode)**로 시작하는 것을 권장합니다.
콘솔 (Console)
Allowed AMIs를 활성화하려면
- Amazon EC2 콘솔을 엽니다: https://console.aws.amazon.com/ec2/
- 탐색 창에서 Dashboard를 선택해요.
- Account attributes 카드의 Settings에서 Allowed AMIs를 선택해요.
- Allowed AMIs 탭에서 Manage를 선택해요.
- Allowed AMIs settings에서 Audit mode 또는 Enabled를 선택해요. 감사 모드로 시작해서 기준을 테스트한 뒤, 이 단계로 돌아와 Allowed AMIs를 활성화하는 것을 권장합니다.
- (선택) AMI criteria에 기준을 JSON 형식으로 입력해요.
- Update를 선택해요.
AWS CLI
Allowed AMIs를 활성화하려면
enable-allowed-images-settings 명령을 사용해요.
aws ec2 enable-allowed-images-settings --allowed-images-settings-state enabled
대신 감사 모드를 활성화하려면 enabled 대신 audit-mode를 지정해요.
aws ec2 enable-allowed-images-settings --allowed-images-settings-state audit-mode
PowerShell
Allowed AMIs를 활성화하려면
Enable-EC2AllowedImagesSetting cmdlet을 사용해요.
Enable-EC2AllowedImagesSetting -AllowedImagesSettingsState enabled
대신 감사 모드를 활성화하려면 enabled 대신 audit-mode를 지정해요.
Enable-EC2AllowedImagesSetting -AllowedImagesSettingsState audit-mode
Allowed AMIs 기준 설정하기 (Set the Allowed AMIs criteria)
Allowed AMIs를 활성화한 뒤에는 기준을 설정하거나 교체할 수 있어요. 올바른 구성과 유효한 값에 대해서는 Allowed AMIs configuration과 Allowed AMIs parameters를 참고하세요.
콘솔 (Console)
Allowed AMIs 기준을 설정하려면
- Amazon EC2 콘솔을 엽니다: https://console.aws.amazon.com/ec2/
- 탐색 창에서 Dashboard를 선택해요.
- Account attributes 카드의 Settings에서 Allowed AMIs를 선택해요.
- Allowed AMIs 탭에서 Manage를 선택해요.
- AMI criteria에 기준을 JSON 형식으로 입력해요.
- Update를 선택해요.
AWS CLI
Allowed AMIs 기준을 설정하려면
replace-image-criteria-in-allowed-images-settings 명령을 사용하고, Allowed AMIs 기준이 담긴 JSON 파일을 지정해요.
aws ec2 replace-image-criteria-in-allowed-images-settings --cli-input-json file://file_name.json
PowerShell
Allowed AMIs 기준을 설정하려면
Set-EC2ImageCriteriaInAllowedImagesSetting cmdlet을 사용하고, Allowed AMIs 기준이 담긴 JSON 파일을 지정해요.
$imageCriteria = Get-Content -Path .\file_name.json | ConvertFrom-Json
Set-EC2ImageCriteriaInAllowedImagesSetting -ImageCriterion $imageCriteria
Allowed AMIs 비활성화하기 (Disable Allowed AMIs)
Allowed AMIs를 다음과 같이 비활성화할 수 있어요.
콘솔 (Console)
Allowed AMIs를 비활성화하려면
- Amazon EC2 콘솔을 엽니다: https://console.aws.amazon.com/ec2/
- 탐색 창에서 Dashboard를 선택해요.
- Account attributes 카드의 Settings에서 Allowed AMIs를 선택해요.
- Allowed AMIs 탭에서 Manage를 선택해요.
- Allowed AMIs settings에서 Disabled를 선택해요.
- Update를 선택해요.
AWS CLI
Allowed AMIs를 비활성화하려면
disable-allowed-images-settings 명령을 사용해요.
aws ec2 disable-allowed-images-settings
PowerShell
Allowed AMIs를 비활성화하려면
Disable-EC2AllowedImagesSetting cmdlet을 사용해요.
Disable-EC2AllowedImagesSetting
Allowed AMIs 기준 조회하기 (Get the Allowed AMIs criteria)
Allowed AMIs 설정의 현재 상태와 기준을 조회할 수 있어요.
콘솔 (Console)
Allowed AMIs 상태와 기준을 조회하려면
- Amazon EC2 콘솔을 엽니다: https://console.aws.amazon.com/ec2/
- 탐색 창에서 Dashboard를 선택해요.
- Account attributes 카드의 Settings에서 Allowed AMIs를 선택해요.
- Allowed AMIs 탭에서 Allowed AMIs settings가
Enabled,Disabled,Audit mode중 어느 상태인지 확인해요. - Allowed AMIs 상태가
Enabled또는Audit mode라면 AMI criteria에 기준이 JSON 형식으로 표시돼요.
AWS CLI
Allowed AMIs 상태와 기준을 조회하려면
get-allowed-images-settings 명령을 사용해요.
aws ec2 get-allowed-images-settings
다음은 예시 출력이에요. 상태가 audit-mode이고 이미지 기준이 계정에 설정되어 있습니다.
{
"State": "audit-mode",
"ImageCriteria": [
{
"MarketplaceProductCodes": [
"abcdefg1234567890"
]
},
{
"ImageProviders": [
"123456789012",
"123456789013"
],
"CreationDateCondition": {
"MaximumDaysSinceCreated": 300
}
},
{
"ImageProviders": [
"123456789014"
],
"ImageNames": [
"golden-ami-*"
]
},
{
"ImageProviders": [
"amazon"
],
"DeprecationTimeCondition": {
"MaximumDaysSinceDeprecated": 0
}
}
],
"ManagedBy": "account"
}
PowerShell
Allowed AMIs 상태와 기준을 조회하려면
Get-EC2AllowedImagesSetting cmdlet을 사용해요.
Get-EC2AllowedImagesSetting | Select-Object `
State, `
ManagedBy, `
@{Name='ImageProviders'; Expression={($_.ImageCriteria.ImageProviders)}}, `
@{Name='MarketplaceProductCodes'; Expression={($_.ImageCriteria.MarketplaceProductCodes)}}, `
@{Name='ImageNames'; Expression={($_.ImageCriteria.ImageNames)}}, `
@{Name='MaximumDaysSinceCreated'; Expression={($_.ImageCriteria.CreationDateCondition.MaximumDaysSinceCreated)}}, `
@{Name='MaximumDaysSinceDeprecated'; Expression={($_.ImageCriteria.DeprecationTimeCondition.MaximumDaysSinceDeprecated)}}
다음은 예시 출력이에요. 상태가 audit-mode이고 이미지 기준이 계정에 설정되어 있습니다.
State : audit-mode
ManagedBy : account
ImageProviders : {123456789012, 123456789013, 123456789014, amazon}
MarketplaceProductCodes : {abcdefg1234567890}
ImageNames : {golden-ami-*}
MaximumDaysSinceCreated : 300
MaximumDaysSinceDeprecated: 0
허용된 AMI 찾기 (Find AMIs that are allowed)
현재 Allowed AMIs 기준에 따라 허용되거나 허용되지 않는 AMI를 찾을 수 있어요.
Note
Allowed AMIs는 감사 모드(audit mode)여야 해요.
콘솔 (Console)
AMI가 Allowed AMIs 기준을 충족하는지 확인하려면
- Yes – AMI가 Allowed AMIs 기준을 충족해요. Allowed AMIs를 활성화하면 이 AMI가 계정의 사용자에게 제공됩니다.
- No – AMI가 Allowed AMIs 기준을 충족하지 않아요.
탐색 창에서 AMI Catalog를 선택하면, Not allowed로 표시된 AMI가 Allowed AMIs 기준을 충족하지 않는 AMI예요. Allowed AMIs가 활성화되면 이 AMI는 계정 사용자에게 보이지 않고 사용할 수 없어요.
AWS CLI
AMI가 Allowed AMIs 기준을 충족하는지 확인하려면
describe-images 명령을 사용해요.
aws ec2 describe-images \
--image-id ami-0abcdef1234567890 \
--query Images[].ImageAllowed \
--output text
다음은 예시 출력이에요.
True
Allowed AMIs 기준을 충족하는 AMI 찾으려면
describe-images 명령을 사용해요.
aws ec2 describe-images \
--filters "Name=image-allowed,Values=true" \
--max-items 10 \
--query Images[].ImageId
다음은 예시 출력이에요.
ami-000eaaa8be2fd162a
ami-000f82db25e50de8e
ami-000fc21eb34c7a9a6
ami-0010b876f1287d7be
ami-0010b929226fe8eba
ami-0010957836340aead
ami-00112c992a47ba871
ami-00111759e194abcc1
ami-001112565ffcafa5e
ami-0011e45aaee9fba88
PowerShell
AMI가 Allowed AMIs 기준을 충족하는지 확인하려면
Get-EC2Image cmdlet을 사용해요.
(Get-EC2Image -ImageId ami-0abcdef1234567890).ImageAllowed
다음은 예시 출력이에요.
True
Allowed AMIs 기준을 충족하는 AMI 찾으려면
Get-EC2Image cmdlet을 사용해요.
Get-EC2Image `
-Filter @{Name="image-allows";Values="true"} `
-MaxResult 10 | `
Select ImageId
다음은 예시 출력이에요.
ami-000eaaa8be2fd162a
ami-000f82db25e50de8e
ami-000fc21eb34c7a9a6
ami-0010b876f1287d7be
ami-0010b929226fe8eba
ami-0010957836340aead
ami-00112c992a47ba871
ami-00111759e194abcc1
ami-001112565ffcafa5e
ami-0011e45aaee9fba88
허용되지 않은 AMI로 시작된 인스턴스 찾기 (Find instances launched from AMIs that aren't allowed)
Allowed AMIs 기준을 충족하지 않는 AMI로 시작된 인스턴스를 식별할 수 있어요.
콘솔 (Console)
인스턴스가 허용되지 않은 AMI로 시작되었는지 확인하려면
- Yes – AMI가 Allowed AMIs 기준을 충족해요.
- No – AMI가 Allowed AMIs 기준을 충족하지 않아요.
AWS CLI
허용되지 않은 AMI로 시작된 인스턴스 찾으려면
image-allowed 필터와 함께 describe-instance-image-metadata 명령을 사용해요.
aws ec2 describe-instance-image-metadata \
--filters "Name=image-allowed,Values=false" \
--query "InstanceImageMetadata[*].[InstanceId,ImageMetadata.ImageId]" \
--output table
다음은 예시 출력이에요.
--------------------------------------------------
| DescribeInstanceImageMetadata |
+----------------------+-------------------------+
| i-08fd74f3f1595fdbd | ami-09245d5773578a1d6 |
| i-0b1bf24fd4f297ab9 | ami-07cccf2bd80ed467f |
| i-026a2eb590b4f7234 | ami-0c0ec0a3a3a4c34c0 |
| i-006a6a4e8870c828f | ami-0a70b9d193ae8a799 |
| i-0781e91cfeca3179d | ami-00c257e12d6828491 |
| i-02b631e2a6ae7c2d9 | ami-0bfddf4206f1fa7b9 |
+----------------------+-------------------------+
PowerShell
허용되지 않은 AMI로 시작된 인스턴스 찾으려면
Get-EC2InstanceImageMetadata cmdlet을 사용해요.
Get-EC2InstanceImageMetadata `
-Filter @{Name="image-allowed";Values="false"} | `
Select InstanceId, @{Name='ImageId'; Expression={($_.ImageMetadata.ImageId)}}
다음은 예시 출력이에요.
InstanceId ImageId
---------- -------
i-08fd74f3f1595fdbd ami-09245d5773578a1d6
i-0b1bf24fd4f297ab9 ami-07cccf2bd80ed467f
i-026a2eb590b4f7234 ami-0c0ec0a3a3a4c34c0
i-006a6a4e8870c828f ami-0a70b9d193ae8a799
i-0781e91cfeca3179d ami-00c257e12d6828491
i-02b631e2a6ae7c2d9 ami-0bfddf4206f1fa7b9
AWS Config
ec2-instance-launched-with-allowed-ami AWS Config 규칙을 추가해 요구사항에 맞게 구성한 뒤, 이를 사용해 인스턴스를 평가할 수 있어요. 자세한 내용은 AWS Config Developer Guide의 Adding AWS Config rules와 ec2-instance-launched-with-allowed-ami를 참고하세요.