
나는 그것을 통해 보았다공식 문서이 명령을 사용하기 위해 IAM 사용자에게 필요한 권한에 대한 참조를 찾을 수 없는 것 같습니다.
IAM 사용자가 이 특정 인스턴스에 대해서만 이미지를 생성할 수 있기를 원하므로 정책을 다음과 같이 설정했습니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt999",
"Effect": "Allow",
"Action": [
"ec2:CreateImage"
],
"Effect": "Allow",
"Resource": [
"arn:aws:ec2:us-east-1:<my account id>:instance/<my instance id>"
]
}
]
}
하지만 EC2 CLI를 사용할 때 계속해서 액세스 거부 오류가 발생했습니다. Resource
부분을 변경했는데 "*"
이제 작동하지만 이제 IAM 사용자가 내 계정의 모든 EC2 인스턴스에 AMI를 생성할 수 있습니다(따라서 재부팅이 발생함).
어떻게 잠글 수 있나요?
답변1
안타깝게도 지금은 리소스 수준에서 이를 잠글 수 없습니다. 있다여러 EC2 작업리소스 수준 권한을 지원하지 않으며 ec2:CreateImage
그 중 하나입니다.
답변2
이미지 생성에는 해당 인스턴스에 연결된 스냅샷 생성도 포함됩니다. 아래 IAM 정책이 작동해야 합니다.
{
"Effect": "Allow",
"Action": [
"ec2:Describe*",
"ec2:CreateSnapshot",
"ec2:CreateImage"
],
"Resource": [
"*"
]
}
답변3
리소스 수준에서 CreateImage를 잠그거나 제한할 수 없으며 @nkryption 답변이 옳았습니다. http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ec2-api-permissions.html
답변4
CreateImage는 이제 리소스 수준 정책을 지원합니다. 다음 정책은 지정된 인스턴스 ID에 대해서만 이미지 생성을 허용합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowCreateImage",
"Effect": "Allow",
"Action": "ec2:CreateImage",
"Resource": "arn:aws:ec2:*::image/*"
},
{
"Sid": "RestrictCreateImageToInstance",
"Effect": "Allow",
"Action": "ec2:CreateImage",
"Resource": "arn:aws:ec2:*:999999999999:instance/i-999999999",
}
]
}
요구 사항에 맞게 계정 번호와 인스턴스 ID를 업데이트하세요. 인스턴스 태그를 기반으로 이를 제한할 수도 있습니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowCreateImage",
"Effect": "Allow",
"Action": "ec2:CreateImage",
"Resource": "arn:aws:ec2:*::image/*"
},
{
"Sid": "RestrictCreateImageToInstances",
"Effect": "Allow",
"Action": "ec2:CreateImage",
"Resource": "arn:aws:ec2:*:999999999999:instance/*",
"Condition": {
"StringEquals": {
"ec2:ResourceTag/Name": "Test"
}
}
}
]
}