Я пытаюсь сузить минимальную политику для запуска предопределенного образа машины. Образ основан на двух снимках, и я хочу, чтобы запускались только экземпляры типа «m1.medium».
На основании этого и с помощью этой страницы и эту статью, Я выработал такую политику:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1385026304010",
"Effect": "Allow",
"Action": [
"ec2:RunInstances"
],
"Condition": {
"StringEquals": {
"ec2:InstanceType": "m1.medium"
}
},
"Resource": [
"arn:aws:ec2:us-east-1::instance/*",
"arn:aws:ec2:us-east-1::image/ami-f1c3e498",
"arn:aws:ec2:us-east-1::snapshot/snap-e2f51ffa",
"arn:aws:ec2:us-east-1::snapshot/snap-18ca2000",
"arn:aws:ec2:us-east-1::key-pair/shenton",
"arn:aws:ec2:us-east-1::security-group/sg-6af56d02",
"arn:aws:ec2:us-east-1::volume/*"
]
}
]
}
Политика сужает точное изображение, моментальные снимки, группу безопасности и пару ключей, оставляя открытыми конкретный экземпляр и том.
Я использую инструменты CLI следующим образом, как описано здесь:
aws ec2 run-instances --dry-run \
--image-id ami-f1c3e498 \
--key-name shenton \
--security-group-ids sg-6af56d02 \
--instance-type m1.medium
~/.aws/config
выглядит следующим образом:
[default]
output = json
region = us-east-1
aws_access_key_id = ...
aws_secret_access_key = ...
Команда приводит к общему сообщению You are not authorized to perform this operation
, а закодированное сообщение об ошибке авторизации указывает, что ни один из моих операторов не был найден, и поэтому оно отклоняет действие.
Очевидно, что переход на "Resource": "*"
решает проблему, но я хочу лучше понять, почему вышеперечисленное не работает. Я полностью понимаю, что это требует некоторой степени догадок, поэтому я приветствую любые идеи.