Проблема политики AWS IAM: невозможно разрешить все, кроме RunInstances

Мы изо всех сил пытаемся создать политику IAM, которая разрешает все действия EC2, ЗА ИСКЛЮЧЕНИЕМ RunInstances. Это необходимо для предотвращения взлома ключа API от несанкционированного доступа. Мы пробовали это как с разрешением EC2, так и без него, потому что мне не ясно, подразумевает ли NotAction все действия.

С NotAction на месте я не могу предоставить тома EBS (ниже). Нужно ли объединять разрешения EC2 allow * и Notaction Runinces в один и тот же раздел политики?

EC2 Все разрешения:

"Действие": "ec2:", "Эффект": "Разрешить", "Ресурс": "",

а затем вторая политика, которая запрещает RunInstances (из предыдущего ответа политики IAM по аналогичной теме

{"Statement": [{"NotAction": ["ec2: RunInstances *"], "Effect": "Deny", "Resource": "*"}]}

ec2-54-196-184-11.compute-1.amazonaws.com * aws_ebs_volume [ip-10-140-10-132.volume15] action create

ec2-54-196-184-11.compute-1.amazonaws.com [2014-06-26T18:17:53+00:00] WARN: ##### RightAws::Ec2 возвратил ошибку: 403 запрещено

ec2-54-196-184-11.compute-1.amazonaws.com

ec2-54-196-184-11.compute-1.amazonaws.com UnauthorizedOperationВы не авторизованы для выполнения этой операции.fcd71112-db50-4102-9855-a46749574de9 #####

ec2-54-196-184-11.compute-1.amazonaws.com [2014-06-26T18:17:53+00:00] ПРЕДУПРЕЖДЕНИЕ: ##### RightAws::Ec2 запрос: https://us-east-1.ec2.amazonaws.com/?AWSAccessKeyId=XXXXXXXXXXXXXXXXXXX&Action=DescribeVolumes&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2014-06-26T18%3A17%3A53.000Z&Version=2012-06-15&Signature=cRMAxfs3RP0R9rlQeb7JU9zYeey8L3CWQI2Pkj2o3V0%3D ####

ec2-54-196-184-11.compute-1.amazonaws.com

ec2-54-196-184-11.compute-1.amazonaws.com ================================ ===============================================

ec2-54-196-184-11.compute-1.amazonaws.com Ошибка при выполнении действия create на ресурсе 'aws_ebs_volume [ip-10-140-10-132.volume15]'

ec2-54-196-184-11.compute-1.amazonaws.com ================================ ===============================================

ec2-54-196-184-11.compute-1.amazonaws.com

ec2-54-196-184-11.compute-1.amazonaws.com

ec2-54-196-184-11.compute-1.amazonaws.com RightAws:: AwsError

ec2-54-196-184-11.compute-1.amazonaws.com ------------------

ec2-54-196-184-11.compute-1.amazonaws.com UnauthorizedOperation: Вы не авторизованы для выполнения этой операции.

ec2-54-196-184-11.compute-1.amazonaws.com

ec2-54-196-184-11.compute-1.amazonaws.com

ec2-54-196-184-11.compute-1.amazonaws.com Трассировка поваренной книги:

ec2-54-196-184-11.compute-1.amazonaws.com ---------------

ec2-54-196-184-11.compute-1.amazonaws.com /var/chef/cache/cookbooks/aws/providers/ebs_volume.rb:138:in `now_attached_volume '

ec2-54-196-184-11.compute-1.amazonaws.com /var/chef/cache/cookbooks/aws/providers/ebs_volume.rb:26:in `блок в class_from_file '

ec2-54-196-184-11.compute-1.amazonaws.com

ec2-54-196-184-11.compute-1.amazonaws.com

ec2-54-196-184-11.compute-1.amazonaws.com Декларация ресурса:

ec2-54-196-184-11.compute-1.amazonaws.com ---------------------

ec2-54-196-184-11.compute-1.amazonaws.com # In /var/chef/cache/cookbooks/cook_aws/recipes/ebs.rb

ec2-54-196-184-11.compute-1.amazonaws.com

ec2-54-196-184-11.compute-1.amazonaws.com 26: узел aws_ebs_volume['w2o']['ebs']['имя_тома'] do

ec2-54-196-184-11.compute-1.amazonaws.com 27: действие [: создать,: прикрепить]

ec2-54-196-184-11.compute-1.amazonaws.com 28: узел aws_access_key ['aws'] ['access_key_id']

ec2-54-196-184-11.compute-1.amazonaws.com 29: узел aws_secret_access_key ['aws'] ['secret_access_key']

ec2-54-196-184-11.compute-1.amazonaws.com 30: узел устройства ['w2o'] ['ebs'] ['ebs_device']

ec2-54-196-184-11.compute-1.amazonaws.com 31: размер узла ['w2o'] ['ebs'] ['ebs_mount_size']

ec2-54-196-184-11.compute-1.amazonaws.com 32:

ec2-54-196-184-11.compute-1.amazonaws.com 33: # укажите piops, если он присутствует в узле attr

ec2-54-196-184-11.compute-1.amazonaws.com 34: если узел ['w2o'] ['ebs'] ['ebs_piops']> 0

ec2-54-196-184-11.compute-1.amazonaws.com 35: узел piops ['w2o'] ['ebs'] ['ebs_piops']

ec2-54-196-184-11.compute-1.amazonaws.com 36: том_типа 'io1'

ec2-54-196-184-11.compute-1.amazonaws.com 37: конец

ec2-54-196-184-11.compute-1.amazonaws.com 38:

ec2-54-196-184-11.compute-1.amazonaws.com

ec2-54-196-184-11.compute-1.amazonaws.com

ec2-54-196-184-11.compute-1.amazonaws.com

ec2-54-196-184-11.compute-1.amazonaws.com Скомпилированный ресурс:

ec2-54-196-184-11.compute-1.amazonaws.com ------------------

ec2-54-196-184-11.compute-1.amazonaws.com # Объявлено в /var/chef/cache/cookbooks/cook_aws/recipes/ebs.rb:26:in `from_file '

ec2-54-196-184-11.compute-1.amazonaws.com

ec2-54-196-184-11.compute-1.amazonaws.com aws_ebs_volume ("ip-10-140-10-132.volume15") do

ec2-54-196-184-11.compute-1.amazonaws.com action [: create,: attach]

ec2-54-196-184-11.compute-1.amazonaws.com повторяет попытку 0

ec2-54-196-184-11.compute-1.amazonaws.com retry_delay 2

ec2-54-196-184-11.compute-1.amazonaws.com cookbook_name "cook_aws"

ec2-54-196-184-11.compute-1.amazonaws.com recipe_name "ebs"

ec2-54-196-184-11.compute-1.amazonaws.com aws_access_key "XXXXXXXXXXXXXXXXXXXXX"

ec2-54-196-184-11.compute-1.amazonaws.com aws_secret_access_key "XXXXXXXXXXXXXXXXXXXXX"

ec2-54-196-184-11.compute-1.amazonaws.com устройство "/ dev / xvdf"

ec2-54-196-184-11.compute-1.amazonaws.com размер 50

ec2-54-196-184-11.compute-1.amazonaws.com конец

ec2-54-196-184-11.compute-1.amazonaws.com

ec2-54-196-184-11.compute-1.amazonaws.com

ec2-54-196-184-11.compute-1.amazonaws.com

ec2-54-196-184-11.compute-1.amazonaws.com [2014-06-26T18:17:53+00:00] ОШИБКА: запущены обработчики исключений

ec2-54-196-184-11.compute-1.amazonaws.com [2014-06-26T18:17:53+00:00] ОШИБКА: обработчики исключений завершены

ec2-54-196-184-11.compute-1.amazonaws.com [2014-06-26T18:17:53+00:00] FATAL: стек трассировки выгружен в /var/chef/cache/chef-stacktrace.out ec2-54-196-184-11.compute-1.amazonaws.com Сбой клиента Chef. 2 ресурса обновлены

ec2-54-196-184-11.compute-1.amazonaws.com [2014-06-26T18:17:54+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Процесс запуска Chef завершился неудачно (код выхода 1)

1 ответ

Потратил час с пробной учетной записью и симулятором IAM, чтобы получить:

{
"Version": "2012-10-17",
"Statement": [
    {
        "NotAction": [
            "ec2:RunInstances*"
        ],
        "Effect": "Allow",
        "Resource": "*"
    },
    {
        "Effect": "Allow",
        "Action": "elasticloadbalancing:*",
        "Resource": "*"
    },
    {
        "Effect": "Allow",
        "Action": "cloudwatch:*",
        "Resource": "*"
    },
    {
        "Effect": "Allow",
        "Action": "autoscaling:*",
        "Resource": "*"
    }
]

}

Публикация в случае, если это кому-то пригодится, вы можете поместить любые действия, которые вы хотите, в NotAction.

Другие вопросы по тегам