Это руководство для всех, кто плохо знаком с AWS и хочет настроить свою учетную запись - и убедиться, что они сделали это правильно. Изначально я написал его как часть этого руководства о том, как разместить веб-сайт Gatsby на S3 с собственным доменным именем и SSL, но решил, что он может быть полезен (и достаточно долго!) Для автономного сообщения.

Мы будем:

  • 1️⃣ Зарегистрируйтесь в AWS
  • 2️⃣ Настройте группу IAM для пользователей с правами администратора
  • 3️⃣ Добавить пользователя IAM в группу администратора
  • 4️⃣ Установите интерфейс командной строки
  • 5️⃣ Выберите регион по умолчанию
  • 6️⃣ Настройте наши учетные данные для интерфейса командной строки
  • 7️⃣ Убедитесь, что мы можем использовать SDK
  • 8️⃣ Следуйте рекомендациям AWS по защите своего аккаунта.
  • 9️⃣ Настройте псевдоним учетной записи
  • 🔟 Настроить платежные оповещения

1️⃣ Зарегистрируйтесь. Прежде всего Зарегистрируйтесь в AWS здесь и следуйте инструкциям по созданию учетной записи. Он запросит платежные данные, которые вам нужно будет ввести. Однако все, что мы делаем во время этого руководства, не будет стоить никаких денег. Вам решать, будете ли вы тратить деньги с AWS - многие из его сервисов бесплатны, многие из них будут стоить не дороже копейки для любителей, а огромный спектр сервисов попадает под уровень бесплатного пользования, где новые и существующие пользователи получают определенный объем использования некоторых услуг бесплатно. Подробнее об уровне бесплатного пользования см. Здесь.

2️⃣ Создайте группу IAM для пользователей-администраторов: вы только что создали так называемого «пользователя root». Это пользователь, который создается при первом создании учетной записи AWS. У него автоматически есть разрешение делать что-либо в AWS, и это здорово, но, поскольку это такой привилегированный аккаунт, мы хотим быть уверены, что защищаем его любой ценой. Если вы когда-нибудь потеряете доступ к своей учетной записи root (на самом деле я сделал это с моей первой учетной записью AWS, это очень раздражало), вы не сможете восстановить всю свою учетную запись AWS. Представьте, что у вас действительно есть важная инфраструктура.

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

Мы собираемся создать еще одного пользователя, у которого будет доступ к учетной записи AWS, и вместо этого вы войдете в систему с этим пользователем. Поверьте, это правильное решение.

В AWS у нас есть концепции пользователей, ролей, групп и политик.

Политики - это документы, описывающие разрешения. Например, политика «Доступ администратора» описывает возможность делать практически все на AWS. Когда вы создаете пользователя, вы можете прикрепить политику к пользователю (или более чем одному), и именно так вы контролируете, что этот пользователь может делать.

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

Чтобы создать группу администраторов, найдите службу под названием IAM (Управление идентификацией и доступом).

Выберите Группы на боковой панели, дайте группе имя, например «admin», и, когда вас попросят выбрать политику, выполните поиск политики AdministratorAccess. Это предоставит всем, кого мы добавим в эту группу, полный доступ к AWS. Если вы планируете создавать пользователей для других людей, вам следует дважды подумать, прежде чем назначать их администратором. В идеале вы должны предоставить им наименьшие привилегии, чтобы они могли выполнять свою работу, и не более того.

По завершении нажмите «Далее» и Создать группу.

Необязательно: по умолчанию только пользователь root имеет доступ к Billing Dashboard. Было бы полезно предоставить вашим администраторам доступ к нему, чтобы вам не приходилось входить в систему как root - если вы хотите сделать это, есть хороший учебник AWS о том, как добавить разрешение на выставление счетов в группу.

3️⃣ Создание пользователя IAM для добавления в группу

Пришло время добавить пользователя для себя в группу администраторов. Выберите Пользователи на боковой панели, выберите Создать нового пользователя и введите свое имя. Выберите программный и консольный доступ, что означает, что пользователь сможет войти в панель управления И ему будут предоставлены учетные данные, чтобы они могли взаимодействовать с AWS через интерфейс командной строки или через SDK.

Выберите пароль для пользователя (или позвольте AWS создать его) и на следующей странице добавьте их в группу администраторов, которую вы только что создали, а затем завершите создание пользователя. На этом этапе нет необходимости добавлять теги.

На последней странице вам будет предложена возможность загрузить файл учетных данных. Этот файл содержит ваш пароль - если вы выбрали автоматически сгенерированный пароль, вы узнаете, что он здесь находится. Он также содержит идентификатор ключа доступа и секретный ключ. Эти значения необходимо использовать для взаимодействия с AWS через его интерфейс командной строки или SDK, которые мы настроим на следующем шаге.

4️⃣ Установите интерфейс командной строки

Для взаимодействия с AWS вы можете использовать консоль, которую вы использовали для создания группы и пользователя, командную строку или с помощью кода. Некоторые вещи можно сделать только через командную строку, а некоторые просто сделать таким образом намного проще.

На этом этапе мы установим интерфейс командной строки для AWS.

Установка CLI состоит из нескольких шагов и может зависеть от вашей операционной системы, поэтому я рекомендую следовать официальному Руководству AWS по этому вопросу. Обратите внимание, что вам необходимо установить Python в качестве предварительного условия. Я бы рекомендовал прокрутить страницу вниз и следовать подробным инструкциям для вашей конкретной операционной системы.

После установки интерфейса командной строки закройте и снова откройте терминал и попробуйте запустить

$ aws --version

Если он сообщает, что команда aws не может быть найдена, вам нужно будет следовать инструкциям в Руководстве по AWS, чтобы добавить исполняемый файл AWS CLI в путь к командной строке.

С другой стороны, если команда напечатает что-то вроде этого:

aws-cli/1.11.81 Python/3.6.1 Darwin/17.7.0 botocore/1.5.44

Значит, вы правильно установили CLI.

CLI в основном позволяет делать все, что вы можете делать в веб-интерфейсе, через терминал. И больше! Документация по интерфейсу командной строки довольно обширна - ознакомьтесь со списком служб, с которыми вы можете взаимодействовать, здесь. Для любой конкретной службы у вас есть всевозможные команды, которые вы можете использовать. Например, список того, что мы можем делать со службой IAM, указан на странице документации IAM. Затем вы можете прочитать о дополнительных параметрах для всех команд.

Вы можете попробовать простую команду:

$ aws iam list-groups

Вы могли бы ожидать, что в нем будет указана только что созданная нами группа, но вместо этого он сообщает нам:

Unable to locate credentials. You can configure credentials by running "aws configure".

Чтобы действительно использовать CLI, нам нужно его настроить.

Но сначала давайте быстро решим, каким должен быть наш «регион по умолчанию».

5️⃣ Выберите регион по умолчанию

Я не собираюсь вдаваться в подробности о регионах и зонах доступности AWS, но вкратце, если вы создаете какие-либо сервисы на AWS, вам, как правило, придется решать, в какой части мира они физически должны размещаться. Это может быть, скажем, Ирландия, Токио или Пекин. В принципе, лучше ближе к клиентам, чтобы сократить время ожидания. Если вам нужны определенные услуги, возможно, стоит проверить список предложений, доступных в каждом регионе Amazon, на случай, если нужная услуга недоступна там, где вы находитесь.

Довольно забавный инструмент - Cloudping, который показывает задержку между вашим местоположением и различными центрами обработки данных AWS!

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

У каждого региона есть своего рода справочный код, например eu-west-1, что означает Ирландия. Найдите код нужного региона, посмотрев на столбец регион в этой таблице.

6️⃣ Настройте наши учетные данные для интерфейса командной строки

Имея в виду регион по умолчанию, запустите $ aws configure, как он говорит, и вставьте ключ доступа и секретный ключ доступа из загруженного файла. Введите регион, который вы выбрали на предыдущем шаге. Вы можете пока оставить выходной формат по умолчанию.

N.B. Я удалил эти учетные данные - иначе я бы ни за что не поделился ими в Интернете!

N.B.2 Вы можете деактивировать / удалить свои ключи в любое время через панель управления IAM, и вы можете сгенерировать новые, если вы потеряете их или беспокоитесь, что они были скомпрометированы. Не храните старые ключи без дела - удалите их, если ими никто не пользуется.

Эта команда создаст 2 файла: ~/.aws/config и ~/.aws/credentials, в которых перечислены ваши ключи доступа и регион по умолчанию. Это то, что вам действительно нужно, чтобы начать использовать CLI. Интерфейс командной строки автоматически просматривает эти два файла, когда вы запускаете с ним любую команду. Учетные данные используются для получения доступа к вашей учетной записи AWS, а в файле конфигурации указываются любые другие значения по умолчанию, которые могут быть интересны CLI.

Если вы снова запустите $ aws iam list-groups, результат на этот раз должен быть примерно таким, показывая группу администраторов, которую мы создали ранее.

{
    "Groups": [
        {
            "Path": "/",
            "GroupName": "admin",
            "GroupId": "AGPAJG6XQYWZQ7EAGMS3K",
            "Arn": "arn:aws:iam::674027929103:group/admin",
            "CreateDate": "2018-11-29T07:31:25Z"
        }
    ]
}

Ура, теперь интерфейс командной строки настроен правильно! 🎉

7️⃣ Убедитесь, что мы можем использовать SDK

SDK (Software Development Kit) - это третий способ взаимодействия с AWS, в основном через код. Это тоже круто, и у него есть свои применения. Этот шаг на самом деле не требует от вас каких-либо действий, потому что SDK будет автоматически читать из файла учетных данных, который мы только что настроили на предыдущем шаге, как и интерфейс командной строки. Однако, если вы хотите попробовать это, взгляните на SDK, доступные здесь, и попробуйте сделать что-нибудь простое, например, перечислить группы, с SDK для вашего языка программирования.

Например, в NodeJS получение списка групп IAM выглядит так:

const AWS = require('aws-sdk');
const iam = new AWS.IAM();
iam.listGroups({}, (err, res) => {
    if (err) console.log(err);
    else console.log(res);
});

8️⃣ Следуйте рекомендациям AWS по защите своего аккаунта

На этом этапе вы все равно должны войти в систему как пользователь root - перед выходом из системы попробуйте выполнить все пункты этого контрольного списка, который можно просмотреть на главной странице IAM:

9️⃣ Создайте псевдоним учетной записи

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

🔟 Настроить платежные оповещения

Рекомендуется настроить оповещения, когда вы тратите деньги на платформу AWS. Опять же, у AWS есть очень хорошее руководство, как это сделать. Я бы порекомендовал установить будильник, когда счет превышает пороговое значение в $ 0, поскольку сначала вы должны получать много услуг в рамках бесплатного уровня, поэтому в идеале вы хотите знать, когда вы подниметесь выше этого уровня.

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

Наконец-то…

Теперь вы готовы выйти из системы как пользователь root и войти в систему как пользователь IAM, которого вы создали.

Обратите внимание, как вы можете использовать понятный идентификатор (псевдоним) для своей учетной записи (в моем случае это harrietryder), а не идентификатор учетной записи.

Вот и все! Конец!

Извините, это был марафон, но, надеюсь, теперь у вас есть безопасная учетная запись AWS, с которой вы можете взаимодействовать через веб-интерфейс, командную строку или код, и вы готовы приступить к созданию в облаке! ☁️☁️☁️

Сообщите мне, если вы нашли это руководство полезным, хотите ли вы еще что-нибудь узнать, если что-то из вышеперечисленного не помогло вам. Свяжитесь со мной в Twitter или подписывайтесь на меня на Medium!

🙌