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를 활성화하려면

  1. Amazon EC2 콘솔을 엽니다: https://console.aws.amazon.com/ec2/
  2. 탐색 창에서 Dashboard를 선택해요.
  3. Account attributes 카드의 Settings에서 Allowed AMIs를 선택해요.
  4. Allowed AMIs 탭에서 Manage를 선택해요.
  5. Allowed AMIs settings에서 Audit mode 또는 Enabled를 선택해요. 감사 모드로 시작해서 기준을 테스트한 뒤, 이 단계로 돌아와 Allowed AMIs를 활성화하는 것을 권장합니다.
  6. (선택) AMI criteria에 기준을 JSON 형식으로 입력해요.
  7. 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 기준을 설정하려면

  1. Amazon EC2 콘솔을 엽니다: https://console.aws.amazon.com/ec2/
  2. 탐색 창에서 Dashboard를 선택해요.
  3. Account attributes 카드의 Settings에서 Allowed AMIs를 선택해요.
  4. Allowed AMIs 탭에서 Manage를 선택해요.
  5. AMI criteria에 기준을 JSON 형식으로 입력해요.
  6. 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를 비활성화하려면

  1. Amazon EC2 콘솔을 엽니다: https://console.aws.amazon.com/ec2/
  2. 탐색 창에서 Dashboard를 선택해요.
  3. Account attributes 카드의 Settings에서 Allowed AMIs를 선택해요.
  4. Allowed AMIs 탭에서 Manage를 선택해요.
  5. Allowed AMIs settings에서 Disabled를 선택해요.
  6. 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 상태와 기준을 조회하려면

  1. Amazon EC2 콘솔을 엽니다: https://console.aws.amazon.com/ec2/
  2. 탐색 창에서 Dashboard를 선택해요.
  3. Account attributes 카드의 Settings에서 Allowed AMIs를 선택해요.
  4. Allowed AMIs 탭에서 Allowed AMIs settings가 Enabled, Disabled, Audit mode 중 어느 상태인지 확인해요.
  5. 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를 참고하세요.

더 알아보기 (Learn more)