Infelizmente, não é possível bloquear isso em um nível de recurso no momento. Há um grupo de ações do EC2 / a> que não suporta permissões de nível de recurso e ec2:CreateImage
é uma delas.
Analisei os documentos oficiais e não consegui para encontrar qualquer referência sobre quais permissões o usuário do IAM precisa para poder usar este comando.
Eu quero que o usuário do IAM só possa criar imagens para essa instância específica, por isso, minha política foi configurada assim:
{
"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>"
]
}
]
}
Mas continuei recebendo erros de acesso negado ao usar o EC2 CLI. Mudei a parte Resource
para apenas "*"
e agora funciona, mas agora meu usuário do IAM pode criar AMIs (portanto, causar reinicializações) para qualquer instância do EC2 na minha conta.
Como posso bloquear isso?
Infelizmente, não é possível bloquear isso em um nível de recurso no momento. Há um grupo de ações do EC2 / a> que não suporta permissões de nível de recurso e ec2:CreateImage
é uma delas.
A criação de imagem também envolve a criação de instantâneos anexados a essa instância. Abaixo, a política do IAM deve funcionar.
{
"Effect": "Allow",
"Action": [
"ec2:Describe*",
"ec2:CreateSnapshot",
"ec2:CreateImage"
],
"Resource": [
"*"
]
}
Você não pode bloquear / limitar o CreateImage no nível do recurso e a resposta do @nkryption estava correta. link
Use o papel do IAM como indicado Tente definir o sinalizador "--no-reboot" ao usar a criação de imagem. Isso impedirá que seu servidor seja reinicializado ao criar AMIs, por exemplo:
## Take the actual ami backup, and store the ami id in "AMI" AMI=$(aws ec2 create-image --instance-id ${instance-id} --name ${Random-Name}.AutoScript.${DATE} --description 'This is created by amibackup.sh' --no-reboot | ${GREP} -i ami)