Amazon EC2 실행 템플릿으로 인스턴스 실행 제어하기

Amazon EC2 실행 템플릿으로 인스턴스 실행 제어하기

Amazon EC2 인스턴스의 구성을 제어하려면 사용자가 실행 템플릿(launch template)을 사용할 때만 인스턴스를 실행할 수 있고, 특정 실행 템플릿만 사용할 수 있게 지정하면 돼요. 실행 템플릿과 실행 템플릿 버전을 만들고, 수정하고, 설명하고, 삭제할 수 있는 사람도 제어할 수 있습니다.

출처: 문서

본문

실행 템플릿으로 실행 파라미터 제어하기

실행 템플릿은 실행 시 인스턴스를 구성하는 파라미터의 전부 또는 일부를 담을 수 있어요. 하지만 실행 템플릿을 사용해 인스턴스를 실행할 때 실행 템플릿에 지정된 파라미터를 덮어쓸(override) 수 있고, 실행 템플릿에 없는 추가 파라미터를 지정할 수도 있습니다.

참고: 실행 중에는 실행 템플릿 파라미터를 제거할 수 없어요(예: 파라미터에 null 값을 지정할 수 없습니다). 파라미터를 제거하려면 그 파라미터가 없는 실행 템플릿의 새 버전을 만들어 그 버전으로 인스턴스를 실행하세요.

인스턴스를 실행하려면 사용자에게 ec2:RunInstances 작업을 사용할 권한이 있어야 해요. 사용자는 인스턴스와 함께 생성되거나 연결되는 리소스를 만들거나 사용할 권한도 있어야 합니다. ec2:RunInstances 작업에 리소스 수준 권한을 사용해 사용자가 지정할 수 있는 실행 파라미터를 제어할 수 있어요. 또는 실행 템플릿을 사용해 인스턴스를 실행할 권한을 사용자에게 부여할 수도 있습니다. 이렇게 하면 실행 파라미터를 IAM 정책이 아니라 실행 템플릿에서 관리하고, 실행 템플릿을 인스턴스 실행의 권한 부여 수단으로 사용할 수 있어요. 예를 들어 사용자가 실행 템플릿을 사용할 때만 인스턴스를 실행할 수 있고 특정 실행 템플릿만 사용할 수 있도록 지정할 수 있어요. 실행 템플릿에서 사용자가 덮어쓸 수 있는 실행 파라미터도 제어할 수 있습니다. 예시 정책은 Launch templates 문서를 참고하세요.

실행 템플릿 사용 제어하기 (Control the use of launch templates)

기본적으로 사용자는 실행 템플릿을 작업할 권한이 없어요. 실행 템플릿과 실행 템플릿 버전을 만들고, 수정하고, 설명하고, 삭제할 권한을 부여하는 정책을 만들 수 있습니다. 일부 실행 템플릿 작업에 리소스 수준 권한을 적용해 해당 작업에 특정 리소스를 사용하는 사용자의 능력을 제어할 수도 있어요. 자세한 내용은 다음 예시 정책을 참고하세요: Example: Work with launch templates.

사용자에게 ec2:CreateLaunchTemplate와 ec2:CreateLaunchTemplateVersion 작업을 사용할 권한을 부여할 때는 주의해야 해요. 리소스 수준 권한으로는 사용자가 실행 템플릿에서 지정할 수 있는 리소스를 제어할 수 없습니다. 인스턴스를 실행하는 데 사용되는 리소스를 제한하려면 실행 템플릿과 실행 템플릿 버전을 만들 권한을 적절한 관리자에게만 부여해야 해요.

EC2 Fleet 또는 Spot Fleet과 실행 템플릿을 사용할 때의 중요한 보안 고려사항

참고: Spot Fleet은 계획된 투자가 없는 레거시 API예요. 대신 EC2 Fleet 또는 Auto Scaling 그룹을 사용할 것을 권장합니다. 자세한 내용은 Which is the best fleet method to use? 문서를 참고하세요.

실행 템플릿을 사용하려면 사용자에게 실행 템플릿과 실행 템플릿 버전을 만들고, 수정하고, 설명하고, 삭제할 권한을 부여해야 해요. ec2:CreateLaunchTemplate와 ec2:CreateLaunchTemplateVersion 작업에 대한 접근을 제어해 누가 실행 템플릿과 실행 템플릿 버전을 만들 수 있는지 제어할 수 있습니다. ec2:ModifyLaunchTemplate 작업에 대한 접근을 제어해 누가 실행 템플릿을 수정할 수 있는지도 제어할 수 있어요.

중요: EC2 Fleet 또는 Spot Fleet이 Latest 또는 Default 실행 템플릿 버전을 사용하도록 구성된 경우, Fleet은 나중에 Latest 또는 Default가 다른 실행 템플릿 버전을 가리키도록 변경되어도 이를 인지하지 못해요. Latest 또는 Default에 다른 실행 템플릿 버전이 사용되면, Amazon EC2는 Fleet의 대상 용량을 충족하기 위해 새 인스턴스를 실행할 때 완료할 작업에 대한 권한을 다시 확인하지 않습니다. 실행 템플릿 버전을 만들고 관리할 수 있는 사람, 특히 사용자가 Default 실행 템플릿 버전을 변경할 수 있게 하는 ec2:ModifyLaunchTemplate 작업에 권한을 부여할 때 이 점이 중요한 고려사항이에요.

사용자에게 실행 템플릿 API의 EC2 작업을 사용할 권한을 부여하면, 사용자가 IAM 역할의 컨테이너인 인스턴스 프로필(instance profile)을 포함한 다른 실행 템플릿 버전을 가리키도록 EC2 Fleet 또는 Spot Fleet을 만들거나 업데이트한다면, 실질적으로 iam:PassRole 권한도 부여된 것이 됩니다. 이는 사용자가 iam:PassRole 권한이 없어도 실행 템플릿을 업데이트해 인스턴스에 IAM 역할을 전달할 수 있게 된다는 뜻이에요. 자세한 내용과 예시 IAM 정책은 IAM 사용 설명서의 Using an IAM role to grant permissions to applications running on Amazon EC2 instances 문서를 참고하세요.

자세한 내용은 Control the use of launch templates와 Example: Work with launch templates 문서를 참고하세요.

더 알아보기 (Learn more)