
Eu olhei através dodocumentos oficiaise não consegui encontrar nenhuma referência sobre quais permissões o usuário do IAM precisa para poder usar este comando.
Quero que o usuário IAM só possa criar imagens para esta instância específica, então configurei minha política 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 a CLI do EC2. Mudei a Resource
parte para just "*"
e agora funciona, mas agora meu usuário IAM pode criar AMIs (portanto, causar reinicializações) para qualquer instância do EC2 em minha conta.
Como posso bloquear isso?
Responder1
Infelizmente, você não pode bloquear isso no nível dos recursos no momento. Há ummonte de ações EC2que não oferece suporte a permissões em nível de recurso e ec2:CreateImage
é uma delas.
Responder2
A criação de imagem também envolve a criação de instantâneos anexados a essa instância. Abaixo da política IAM deve funcionar.
{
"Effect": "Allow",
"Action": [
"ec2:Describe*",
"ec2:CreateSnapshot",
"ec2:CreateImage"
],
"Resource": [
"*"
]
}
Responder3
Você não pode bloquear/limitar CreateImage no nível do recurso e a resposta do @nkryption estava certa. http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ec2-api-permissions.html
Responder4
CreateImage agora oferece suporte a políticas em nível de recurso. A política a seguir permite a criação de uma imagem, mas apenas para o ID de instância especificado:
{
"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",
}
]
}
Atualize o número da conta e o ID da instância para atender às suas necessidades. Você também pode restringir isso com base nas tags da instância:
{
"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"
}
}
}
]
}