Amazon EC2 AMI 복사 권한 부여

Amazon EC2 AMI 복사 권한 부여

EBS 기반 또는 Amazon S3 기반 AMI를 복사하려면 다음 IAM 권한이 필요해요.

출처: 문서

본문

  • ec2:CopyImage – AMI를 복사하는 권한이에요. EBS 기반 AMI의 경우 AMI를 받치는 스냅샷을 복사하는 권한도 함께 부여돼요.
  • ec2:CreateTags – 대상 AMI에 태그를 다는 권한이에요. EBS 기반 AMI의 경우 대상 AMI의 스냅샷에도 태그를 달 수 있게 해줘요.

인스턴스 스토어 기반(instance store-backed) AMI를 복사한다면 다음 추가 IAM 권한이 필요해요.

  • s3:CreateBucket – 새 AMI를 위한 대상 리전에 S3 버킷을 만드는 권한
  • s3:PutBucketOwnershipControls – 새로 만든 S3 버킷에서 aws-exec-read canned ACL로 객체를 쓸 수 있도록 ACL을 활성화하는 권한
  • s3:GetBucketAcl – 소스 버킷의 ACL을 읽는 권한
  • s3:ListAllMyBuckets – 대상 리전에서 AMI를 위한 기존 S3 버킷을 찾는 권한
  • s3:GetObject – 소스 버킷의 객체를 읽는 권한
  • s3:PutObject – 대상 버킷에 객체를 쓰는 권한
  • s3:PutObjectAcl – 대상 버킷의 새 객체에 권한을 쓰는 권한

참고: 2024년 10월 28일부터 소스 AMI에 대한 CopyImage 작업에 리소스 수준 권한을 지정할 수 있어요. 대상 AMI에 대한 리소스 수준 권한은 기존과 같이 사용할 수 있습니다. 자세한 내용은 서비스 권한 부여 참조(Service Authorization Reference)의 Amazon EC2가 정의한 작업 표에 있는 CopyImage를 참고하세요.

EBS 기반 AMI 복사 + 대상 AMI와 스냅샷 태그 지정 예시 IAM 정책

다음 예시 정책은 어떤 EBS 기반 AMI든 복사하고, 대상 AMI와 그 스냅샷에 태그를 달 권한을 부여해요.

참고: 2024년 10월 28일부터 Resource 요소에 스냅샷을 지정할 수 있어요. 자세한 내용은 서비스 권한 부여 참조의 Amazon EC2가 정의한 작업 표에서 CopyImage를 참고하세요.

{
    "Version":"2012-10-17",
    "Statement": [{
        "Sid": "PermissionToCopyAllImages",
        "Effect": "Allow",
        "Action": [
            "ec2:CopyImage",
            "ec2:CreateTags"
        ],
        "Resource": [
            "arn:aws:ec2:*::image/*",
            "arn:aws:ec2:*::snapshot/*"
        ]
    }]
}

EBS 기반 AMI는 복사하되 새 스냅샷 태그 지정은 거부하는 예시 IAM 정책

ec2:CopyImage 권한을 얻으면 ec2:CopySnapshot 권한도 자동으로 부여돼요. 새 스냅샷에 태그를 다는 권한은 명시적으로 거부해서 ec2:CreateTags 작업의 Allow 효과를 덮어쓸 수 있어요.

다음 예시 정책은 어떤 EBS 기반 AMI든 복사할 권한을 주면서, 대상 AMI의 새 스냅샷에 태그를 다는 것은 거부해요.

{
    "Version":"2012-10-17",
    "Statement": [{
            "Effect": "Allow",
            "Action": [
                "ec2:CopyImage",
                "ec2:CreateTags"
            ],
            "Resource": [
                "arn:aws:ec2:*::image/*",
                "arn:aws:ec2:*::snapshot/*"
            ]
        },
        {
            "Effect": "Deny",
            "Action": "ec2:CreateTags",
            "Resource": "arn:aws:ec2:::snapshot/*"
        }
    ]
}

Amazon S3 기반 AMI 복사 + 대상 AMI 태그 지정 예시 IAM 정책

다음 예시 정책은 지정된 소스 버킷의 어떤 Amazon S3 기반 AMI든 지정된 리전으로 복사하고 대상 AMI에 태그를 달 권한을 부여해요.

{
    "Version":"2012-10-17",
    "Statement": [{
            "Sid": "PermissionToCopyAllImages",
            "Effect": "Allow",
            "Action": [
                "ec2:CopyImage",
                "ec2:CreateTags"
            ],
            "Resource": "arn:aws:ec2:*::image/*"
        },
        {
            "Effect": "Allow",
            "Action": "s3:ListAllMyBuckets",
            "Resource": [
                "arn:aws:s3:::*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "s3:GetObject",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-source-bucket/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:CreateBucket",
                "s3:GetBucketAcl",
                "s3:PutObjectAcl",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::amis-for-111122223333-in-us-east-2-hash"
            ]
        }
    ]
}

AMI 소스 버킷의 ARN(Amazon Resource Name)을 찾으려면 Amazon EC2 콘솔을 열고 https://console.aws.amazon.com/ec2/, 탐색 창에서 AMIs를 선택한 다음 Source 열에서 버킷 이름을 찾으면 돼요.

참고: s3:CreateBucket 권한은 Amazon S3 기반 AMI를 개별 리전으로 처음 복사할 때만 필요해요. 그 이후에는 해당 리전에 이미 생성된 S3 버킷이 그 리전으로 복사하는 모든 향후 AMI를 저장하는 데 사용됩니다.

더 알아보기 (Learn more)