Почему мой экземпляр EC2 не запускается без элементов «сбой»? - PullRequest
0 голосов
/ 07 марта 2020

Я пытаюсь создать экземпляр EC2 на AWS, но он не запускается и возвращает закодированное сообщение.

Когда я декодирую сообщение, оно показывает «позволено»: ложь, но не показывает элементы, которые потерпели неудачу.
Я предполагаю, что это проблема политики, но я не уверен, какой one.
Мой пользователь имеет полные права на разрешения ec2.

{
   "allowed":false,
   "explicitDeny":false,
   "matchedStatements":{
      "items":[

      ]
   },
   "failures":{
      "items":[

      ]
   },
   "context":{
      "principal":{
         "id":"<redacted>",
         "name":"<redacted>",
         "arn":"arn:aws:iam::<redacted>:user/<redacted>"
      },
      "action":"ec2:RunInstances",
      "resource":"arn:aws:ec2:us-east-2::image/ami-0e38b48473ea57778",
      "conditions":{
         "items":[
            {
               "key":"ec2:ImageID",
               "values":{
                  "items":[
                     {
                        "value":"ami-0e38b48473ea57778"
                     }
                  ]
               }
            },
            {
               "key":"ec2:ImageType",
               "values":{
                  "items":[
                     {
                        "value":"machine"
                     }
                  ]
               }
            },
            {
               "key":"aws:Resource",
               "values":{
                  "items":[
                     {
                        "value":"image/ami-0e38b48473ea57778"
                     }
                  ]
               }
            },
            {
               "key":"aws:Account",
               "values":{
                  "items":[
                     {
                        "value":"<redacted>"
                     }
                  ]
               }
            },
            {
               "key":"ec2:IsLaunchTemplateResource",
               "values":{
                  "items":[
                     {
                        "value":"false"
                     }
                  ]
               }
            },
            {
               "key":"ec2:RootDeviceType",
               "values":{
                  "items":[
                     {
                        "value":"ebs"
                     }
                  ]
               }
            },
            {
               "key":"aws:Region",
               "values":{
                  "items":[
                     {
                        "value":"us-east-2"
                     }
                  ]
               }
            },
            {
               "key":"aws:Service",
               "values":{
                  "items":[
                     {
                        "value":"ec2"
                     }
                  ]
               }
            },
            {
               "key":"ec2:Owner",
               "values":{
                  "items":[
                     {
                        "value":"amazon"
                     }
                  ]
               }
            },
            {
               "key":"ec2:Public",
               "values":{
                  "items":[
                     {
                        "value":"true"
                     }
                  ]
               }
            },
            {
               "key":"aws:Type",
               "values":{
                  "items":[
                     {
                        "value":"image"
                     }
                  ]
               }
            },
            {
               "key":"ec2:Region",
               "values":{
                  "items":[
                     {
                        "value":"us-east-2"
                     }
                  ]
               }
            },
            {
               "key":"aws:ARN",
               "values":{
                  "items":[
                     {
                        "value":"arn:aws:ec2:us-east-2::image/ami-0e38b48473ea57778"
                     }
                  ]
               }
            }
         ]
      }
   }
}

Ответы [ 2 ]

0 голосов
/ 08 марта 2020

Для действия ec2:RunInstances требуется AMI и создается экземпляр; и пользователи могут указать пару ключей и группу безопасности в запросе. Запуск в VP C требует su bnet и создает сетевой интерфейс. Запуск из AMI, поддерживаемого Amazon EBS, создает том. Следовательно, пользователь должен иметь разрешения на использование всех этих ресурсов Amazon EC2.

Поэтому, если вы хотите быть более точным c с ресурсами, ваша политика должна выглядеть примерно так.

{
   "Version": "2012-10-17",
   "Statement": [{
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": [
        "arn:aws:ec2:region::image/ami-0e38b48473ea57778",
        "arn:aws:ec2:region:account:instance/*",
        "arn:aws:ec2:region:account:volume/*",
        "arn:aws:ec2:region:account:key-pair/*",
        "arn:aws:ec2:region:account:security-group/*",
        "arn:aws:ec2:region:account:subnet/*",
        "arn:aws:ec2:region:account:network-interface/*"
      ]
    }
   ]
}

Вы можете найти несколько примеров политик здесь: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExamplePolicies_EC2.html

0 голосов
/ 07 марта 2020

Кажется, что ec2:RunInstances нужно явно определить, потому что совпадение ресурсов не работает так же.

Симулятор политики -
https://policysim.aws.amazon.com/home/index.jsp?#

Используя симулятор политики, я получил его для работы с этим -

{
  "Sid": "VisualEditor3",
  "Effect": "Allow",
  "Action": "ec2:RunInstances",
  "Resource": "*"
}

I Не могу понять, как получить более точные значения c со значением Resource.

Пробовал -

arn:aws:ec2:us-east-2:<redacted>:*
arn:aws:ec2:us-east-2::*
arn:aws:ec2:::*
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...