AWS, ограничивающий разрешения политики для создания EC2 - PullRequest
0 голосов
/ 05 июня 2018

Какова тогда самая ограниченная политика iam, которую я могу дать пользователю, чтобы он все еще мог создавать EC2?Они больше ничего не нуждаются в политике, я включал и выключал ее в течение дня и не могу получить правильную комбинацию?

1 Ответ

0 голосов
/ 06 июня 2018

Минимальные разрешения для запуска экземпляра Amazon EC2 через Интерфейс командной строки AWS (CLI) просто RunInstances:

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

Используя эту политику, я запустилэкземпляр с этой командой CLI AWS:

aws ec2 run-instances --image-id ami-xxx --key-name my-key --security-group-id sg-xxx --instance-type t2.nano

Как отлаживать ошибки прав доступа

Если вы добавите какие-либо другие параметры, команда может завершиться неудачей.

Например, я добавил этот параметр:

--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=Temp}]'

Сбой:

Произошла ошибка (UnauthorizedOperation) при вызове операции RunInstances: у вас нет прав на выполнениеэта операция.Закодированное сообщение об ошибке авторизации: xxx

Затем я расшифровал закодированное сообщение об ошибке (используя пользователя Admin IAM), используя:

aws sts decode-authorization-message --encoded-message xxx

Это вернуло:

{
    "allowed": false,
    "explicitDeny": false,
    "matchedStatements": {
        "items": []
    },
    "failures": {
        "items": []
    },
    "context": {
        "principal": {
            "id": "AIDAxxx",
            "name": "my-user",
            "arn": "arn:aws:iam::123456789012:user/my-user"
        },
        "action": "ec2:CreateTags",
        "resource": "arn:aws:ec2:ap-southeast-2:123456789012:instance/*",
        "conditions": {
            "items": [
                {
                    "key": "aws:Resource",
                    "values": {
                        "items": [
                            {
                                "value": "instance/*"
                            }
                        ]
                    }
                },
                ...
            ]
        }
    }
}

Очевидно, что проблема была с ec2:CreateTags, потому что моя команда просила добавить теги к экземпляру.Поэтому мне нужно было бы либо добавить эти разрешения, либо удалить параметр тега из команды RunInstances.

Общая информация

Вы когда-нибудь задумывались, почему команданазывается RunInstances, а не LaunchInstances или CreateInstances?

(я думаю), потому что в первые дни Amazon EC2 было только хранилище экземпляров (без Amazon Elastic Block Storage (EBS)).Поэтому было невозможно остановить экземпляр, так как это потеряло бы содержимое диска, и экземпляр не мог быть запущен снова.Таким образом, команды были RunInstances и TerminateInstances.

В наши дни мы можем StartInstances и StopInstances.Однако старая терминология RunInstances остается, что всегда немного сбивает с толку новых пользователей, поскольку неясно, означает ли это запуск или начало .

...