Назад | Перейти на главную страницу

AWS - разрешение пользователю запускать и останавливать экземпляр EC2

У меня проблемы с созданием политики IAM для определенного пользователя, чтобы предоставить права на запуск и остановку экземпляра EC2.

Я пробовал несколько способов, но не нашел ошибок.

Это моя политика:

{
"Version": "2012-10-17",
"Statement": [
    {
        "Sid": "Stmt1468227127000",
        "Effect": "Allow",
        "Action": [
            "ec2:DescribeInstances"
        ],
        "Resource": [
            "*"
        ]
    },
    {
        "Sid": "Stmt1468227157000",
        "Effect": "Allow",
        "Action": [
            "ec2:StartInstances",
            "ec2:StopInstances"
        ],
        "Resource": [
            "arn:aws:ec2:region:user:instance/instance-ID"
        ]
    }
]

}

Насколько я прочитал, я не могу описать только один экземпляр, в первой части я описываю все свои экземпляры ec2, и он работает, но во второй части я разрешаю пользователю запускать и останавливать один экземпляр, но я не могу запустить Это.

Этот мне подходит. Пожалуйста, обратите внимание, я добавил несколько довольно полезных (с моей точки зрения) действий, конечно, не стесняйтесь удалять их, если они не нужны:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstances",
                "ec2:DescribeInstanceStatus",
                "ec2:DescribeTags"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:StartInstances",
                "ec2:StopInstances",
                "ec2:RebootInstances"
            ],
            "Resource": "arn:aws:ec2:us-east-1:361111111111:instance/i-0e411111111111111"
        }
    ]
}

Вот 361111111111 это идентификатор учетной записи, как вы видите в настройках учетной записи, i-0e411111111111111 это именно идентификатор экземпляра, должен начинаться с i-, можно найти в самой левой верхней строке на вкладке описания экземпляра.

Обратите внимание, в этом регионе нет зоны доступности.

Для любопытных: старался ограничить ec2:Describe* действия по arn:aws:ec2:us-east-1:361111111111:instance/*, но это не работает. Я снял крайние правые части, пока не заработает, и оказывается, что "*" работает только.

Попытка предложения Путника у меня не сработала, да и что-то подобное.

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

Я не мог ни запустить, ни остановить экземпляры EC2, так как остановленные экземпляры на короткое время переходили в состояние ожидания, а затем снова возвращались в состояние «остановлено» с довольно бесполезным Client.InternalError сообщение.

Однако добавление PassRole в мою политику работала.

https://aws.amazon.com/blogs/security/granting-permission-to-launch-ec2-instances-with-iam-roles-passrole-permission/

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [ "ec2:Describe*" ],
            "Resource": [ "*" ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "ec2:StartInstances",
                "ec2:StopInstances",
                "ec2:RebootInstances"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1:361111111111:instance/i-0e411111111111111"
            ],
            "Effect": "Allow"
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "*"
        }
    ]
}

Проверьте свой ARN. Он должен быть в формате, показанном на этой странице. http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-ec2

Когда он говорит, что аккаунт есть. Это числовой аккаунт AWS для идентификатора