Использование ролей EC2 и профилей экземпляров в AWS
Сервис EC2 — облачное решение, предоставляющее доступ к вычислительным мощностям, которые физически размещены в удаленном ЦОД. Пользоваться же ими можно на любом рабочем месте с доступом к интернету независимо от производительности локальной машины, ее типа (ноутбук, планшет или смартфон). На базе Elastic Compute Cloud разворачивают виртуальные АРМ на Windows, Ubuntu, Debian и других платформах (схоже с услугами cloud.timeweb.com).
Общая информация
Безопасность работы с EC2 обеспечивает система идентификации и управления доступом AWS IAM (Identity and Access Management). Она позволяет создавать удостоверения экземпляров непрерывного или временного доступа к AWS. Последним проще манипулировать через роли EC2, которые назначают перечень разрешений для пользователя или целой группы. Их можно назначать не только людям, а еще и приложениям, сторонним сервисам.
Процедура настройки довольно проста: достаточно «привязать» конкретную роль пользователю, задать ее имя для удобства и прикрепить к ней заранее созданную политику. Такой подход создает предпосылки для оперативного управления временным доступом. Например, при организации облака публичного типа. Особых ограничений по количеству ролей нет, как и по способу их организации. Так, разработчикам доступны инструменты API IAM и полная автоматизация системы.
Ближе к практике
В рамках одного аккаунта AWS допускается создавать до 1000 ролей. Если требуется расширение количества, необходимо отправить запрос в поддержку Amazon с подробным описанием. Процесс настройки включает создание политики, роли, их привязку к конкретному аккаунту в сервисе EC2 и последующую проверку штатными средствами. Это весь цикл управления ролями AWC.
Последовательность действий при настройке:
- Открыть консоль AIM по адресу https://ваш-аккаунт.signin.aws.amazon.com/. Подробнее о входе в консоль здесь.
- В левой панели навигации кликнуть «Политики» и следом «Создать политику».
- Выбрать вкладку JSON и в поле «Документ политики» вставить одну из политик.
Пользователю доступен визуальный редактор, можно ограничиться и одним из типовых вариантов. Пример открытия доступа к My-Pod-Secrets-Bucket:
{"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::my-pod-secrets-bucket/*"
]
}
]
}
Теперь создаем роль IAM. Например, через консоль управления eksctl:
eksctl create iamserviceaccount \
--name kubernetes_service_account_name \
--namespace kubernetes_service_account_namespace \
--cluster my-cluster \
--attach-policy-arn IAM_policy_ARN \
--approve \
--override-existing-serviceaccounts
Результат — будет развернут шаблон AWS CloudFormation, который одновременно создает роль и присоединяет к ней политику IAM. Роль будет связана с учетной записью Kubernetes (ее требуется создать заранее). Если в кластере ранее не было поставщика IAM OIDC, он создается «автоматом». Ничего сложного, ведь разработчик предусмотрел все необходимые функции для работы с сервисами компании.