AMI에 대한 블록 공용 액세스 설정 관리하기
AMI에 대한 블록 공용 액세스 설정 관리하기 (Manage the block public access setting for AMIs)
AMI에 대한 블록 공용 액세스(block public access) 설정을 관리하면 AMI가 공용으로 공유될 수 있는지 제어할 수 있어요. Amazon EC2 콘솔이나 AWS CLI로 이 설정을 활성화·비활성화하거나 현재 상태를 볼 수 있어요.
출처: 문서
본문
AMI의 블록 공용 액세스 상태 보기 (View the block public access state for AMIs)
계정에서 AMI의 공용 공유가 차단되었는지 확인하려면 AMI에 대한 블록 공용 액세스 상태를 봐요. 공용 공유 차단 여부를 확인하려는 각 리전에서 상태를 확인해야 해요.
현재 AMI 블록 공용 액세스 설정을 얻으려면 GetImageBlockPublicAccessState IAM 권한이 필요해요.
콘솔:
- Amazon EC2 콘솔(https://console.aws.amazon.com/ec2/)을 엽니다.
- 탐색 표시줄(화면 상단)에서 AMI 블록 공용 액세스 상태를 볼 리전을 선택해요.
- 탐색 창에서 Dashboard를 선택해요.
- Account attributes 카드의 Settings 아래에서 Data protection and security를 선택해요.
- Block public access for AMIs 아래의 Public access 필드를 확인해요. 값은 New public sharing blocked 또는 New public sharing allowed예요.
AWS CLI: get-image-block-public-access-state 명령을 사용해요. 값은 block-new-sharing 또는 unblocked예요.
특정 리전 예시:
aws ec2 get-image-block-public-access-state --region us-east-1
ManagedBy 필드는 설정을 구성한 주체를 나타내요. 이 예시에서 account는 계정에서 직접 설정을 구성했음을 뜻해요. declarative-policy 값은 선언적 정책(declarative policy)으로 설정이 구성되었음을 의미해요. 자세한 내용은 AWS Organizations 사용자 가이드의 "Declarative policies"를 참고하세요.
{
"ImageBlockPublicAccessState": "block-new-sharing",
"ManagedBy": "account"
}
계정의 모든 리전에 대한 예시:
echo -e "Region \t Public Access State" ; \
echo -e "-------------- \t ----------------------" ; \
for region in $(
aws ec2 describe-regions \
--region us-east-1 \
--query "Regions[*].[RegionName]" \
--output text
);
do (output=$(
aws ec2 get-image-block-public-access-state \
--region $region \
--output text)
echo -e "$region \t $output"
);
done
다음은 예시 출력이에요.
Region Public Access State
-------------- ----------------------
ap-south-1 block-new-sharing
eu-north-1 unblocked
eu-west-3 block-new-sharing
...
PowerShell: Get-EC2ImageBlockPublicAccessState cmdlet을 사용해요.
특정 리전:
Get-EC2ImageBlockPublicAccessState -Region us-east-1
모든 리전:
(Get-EC2Region).RegionName | `
ForEach-Object {
[PSCustomObject]@{
Region = $_
PublicAccessState = (Get-EC2ImageBlockPublicAccessState -Region $_)
}
} | `
Format-Table -AutoSize
AMI에 대한 블록 공용 액세스 활성화하기 (Enable block public access for AMIs)
AMI의 공용 공유를 막으려면 계정 수준에서 AMI에 대한 블록 공용 액세스를 활성화해요. 공용 공유를 막으려는 각 리전에서 활성화해야 해요. 이미 공용인 AMI가 있으면 공개 상태는 유지돼요.
활성화하려면 EnableImageBlockPublicAccess IAM 권한이 필요해요.
고려 사항: 이 설정을 구성하는 데 최대 10분 걸릴 수 있어요. 이 시간 동안 공용 액세스 상태를 설명하면 응답이
unblocked예요. 구성이 완료되면block-new-sharing으로 응답해요.
콘솔: Dashboard → Account attributes 카드의 Settings 아래 Data protection and security → Block public access for AMIs 아래 Manage → Block new public sharing 체크박스 선택 후 Update를 선택해요.
AWS CLI: enable-image-block-public-access 명령을 사용해요.
특정 리전:
aws ec2 enable-image-block-public-access \
--region us-east-1 \
--image-block-public-access-state block-new-sharing
모든 리전:
echo -e "Region \t Public Access State" ; \
echo -e "-------------- \t ----------------------" ; \
for region in $(
aws ec2 describe-regions \
--region us-east-1 \
--query "Regions[*].[RegionName]" \
--output text
);
do (output=$(
aws ec2 enable-image-block-public-access \
--region $region \
--image-block-public-access-state block-new-sharing \
--output text)
echo -e "$region \t $output"
);
done
PowerShell: Enable-EC2ImageBlockPublicAccess 명령을 사용해요.
특정 리전:
Enable-EC2ImageBlockPublicAccess `
-Region us-east-1 `
-ImageBlockPublicAccessState block-new-sharing
모든 리전:
(Get-EC2Region).RegionName | `
ForEach-Object {
[PSCustomObject]@{
Region = $_
PublicAccessState = (
Enable-EC2ImageBlockPublicAccess `
-Region $_ `
-ImageBlockPublicAccessState block-new-sharing)
}
} | `
Format-Table -AutoSize
AMI에 대한 블록 공용 액세스 비활성화하기 (Disable block public access for AMIs)
계정의 사용자가 AMI를 공용으로 공유하도록 허용하려면 계정 수준에서 블록 공용 액세스를 비활성화해요. AMI 공용 공유를 허용하려는 각 리전에서 비활성화해야 해요.
비활성화하려면 DisableImageBlockPublicAccess IAM 권한이 필요해요.
고려 사항: 설정 구성에 최대 10분 걸릴 수 있어요. 이 시간 동안 공용 액세스 상태를 설명하면 응답이
block-new-sharing이에요. 구성 완료 후에는unblocked로 응답해요.
콘솔: Dashboard → Account attributes 카드 Settings 아래 Data protection and security → Block public access for AMIs 아래 Manage → Block new public sharing 체크박스 해제 후 Update → 확인 메시지에 confirm을 입력하고 Allow public sharing을 선택해요.
AWS CLI: disable-image-block-public-access 명령을 사용해요.
특정 리전:
aws ec2 disable-image-block-public-access --region us-east-1
모든 리전:
echo -e "Region \t Public Access State" ; \
echo -e "-------------- \t ----------------------" ; \
for region in $(
aws ec2 describe-regions \
--region us-east-1 \
--query "Regions[*].[RegionName]" \
--output text
);
do (output=$(
aws ec2 disable-image-block-public-access \
--region $region \
--output text)
echo -e "$region \t $output"
);
done
PowerShell: Disable-EC2ImageBlockPublicAccess cmdlet을 사용해요.
특정 리전:
Disable-EC2ImageBlockPublicAccess -Region us-east-1
모든 리전:
(Get-EC2Region).RegionName | `
ForEach-Object {
[PSCustomObject]@{
Region = $_
PublicAccessState = (Disable-EC2ImageBlockPublicAccess -Region $_)
}
} | `
Format-Table -AutoSize